Hylafax Developers Mailing List Archives
|
[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
[hylafax-devel] Re: My RH6.2 RPM hack & Q: Failure to train at 2400 bps or +FMINSP value
On Thu, 18 May 2000 15:35:55 -0400 (EDT), Robert Hardy wrote:
Hello Robert!
>Will attempting class 1 w/ the same modem in this case make any difference?
If your fax software is well implemented, than of course. An 'well implemented' means, that
programmer of faxsoftware KNOWs meaning of each single bit in a DIS/DCS frame ... but can
be read in ITU-T.30 :-)
>You will excuse my ignorance on this topic. I have never found a good
>explanation of class 1 vs. class 2/2.0
The difference is ONLY the protocol (the language level) between the fax program itself and
the modem.
>which clearly defined the consequences/advantages of using class 1.
Command/response set of class 1 is as simple as possible. There are mainly TWO commands,
one to switch on the MOdulator (V.17, V.29, V.27 or V.21 carrier) and one (mutal exclusiv
to the former) to switch on the DEModulator.
For example:
Enable modem to send frames in V.21 (300 Bd):
AT+FTM=3 or AT+FTH=3 if modem should generate zerobit insertation and CRC self.
Enable modem to send fax data (in V.29, 9600 bps):
AT+FTM=96 or AT+FTH=96 if you want to send ECM data, encapsulated in HDLC frames.
Thats (almost) all. The ATD and ATA commands are the same as in other modes, and there are
two 'helper' commands also:
AT+FTS=n which 'sends' n*10ms silence (both modulator and demodulator are switched off)
AT+FRS=n which lets modem hunt for silence (no carrier) for n*10ms.
If modem is in AT+FTM state, than each byte supplied from faxprogram is transmitted BITWISE
to the phoneline...
If modem is in AT+FRM state, modem collects all bits coming from remote, bundles them into
bytes and delivers them to faxprogram.
It is as simple as imaginable :-)
Timing consideration are of less importance, because the are in the magnitude of several
seconds (in contrary to class 272.0, where often some milliseconds decide for death or
alive :-)
All the timing assumption which are related to fax are under control of faxprogram in class
1. In class 2/2.0, the programmer of the fax firmware has done all timing and the
faxprogram in class 2 does not realy know, which timings are meaningfull (can only guess
and fail :-)
>From what I have read, I deduced (perhaps incorrectly) that class 1 was a bit like using a
winmodem.
No good comparison :-)
Class 2/2.0 makes a kind of mystery of fax. class 1 is clear and straight forward and has
the advantage, that faxprogram 'knows' really ALL neccessary parameters of a fax connection
and can handle each misbehaviour in the right way (in class 2/2.0, you can only hope or
pray, that developer has done its homework well).
CLass 1 faxsoftware with open source is like to have sourcecode of modem firmware :-)
>They are ok if your computer isn't doing alot of other things while you are using it
keep in mind, that real fax machine have Z80 (or 8085) type CPU with some (4 - 10) MHz ...
It is in practice possible to have a slow 386 based PC (eg IBM PS/2 model 56) where class 1
fax is possible with 2 faxmodems (one sends, the other receives) and incoming fax is shown
in REALTIME on (graphic) screen!
>or if you have a real time operating system which can guarantee enough time
>to the modem
There is really NO DIFFERENCE, if you use class 1 or class 2/2.0, because you deliver the
SAME faxdata over the SAME serial line interface. Difference is only in HOW you are
'speaking' to your modem (and HOW the modems responses) BETWEEN the single pages, and in
this state, timing is (in class 1) no real problem, because the T.30 protocol is sooo
tolerant (but NOT your modem, if you 'speak' in class 2/2.0).
Worst case in class 1 (which is also true for two fax machines) between two pages is in the
dimension of 15 to 20 seconds! Try such large times in class 2/2.0 (you will never deliver
one single page :-)
____________________ HylaFAX(tm) Developers Mailing List ____________________
To unsub: mail -s unsubscribe hylafax-devel-request@hylafax.org < /dev/null