TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: David Etheredge
from: Will Honea
date: 1995-04-25 23:34:02
subject: OS/2 programming tips ??

DE> Never. Unlike a telephone modem, a radio modem turns its carrier
DE> on  momentarily for a brief transmission and then off to wait  for a
DE> return message. There are time specific constraints  as to how soon
DE> after carrier is started and when data may  be transmitted. Also, it
DE> must be determined that the air  waves are carrier free before
DE> carrier is asserted. There  may be several hundred remote units
DE> communicating with the  host. 

PMJI, but this thread grabbed my attention since I'm doing about the
same thing.  I may just be lucky, but the radio modems I'm working with
all implement a CTS reply to the RTS assertion.  That handshake implies
carrier stable so that I can immediately begin stuffing the data.  The
biggest problem I have right now is to cleanly detect when all the data
has been transmitted in order to turn the line around and receive. 
This has gotten especially troublesome as I may be servicing up to 4
9600-14.4k baud channels at once and can't afford to poll for
transmitter empty on the UARTs.  Any good ideas on how to set this up? 
It wouldn't be a problem if I could assume 16550's on all channels but
I have to allow for 16450's and 8250's and they don't interrupt on
shift register empty.  So far, I'm resorting to blocking on a timer
after loading the last data byte then turning the line on timer
expiration but there's gotta be a better way.  

I played with a new line of modems last week that solve a lot of
problems.  They have internal buffers and do all their own collision
detection/avoidance, carrier control, etc.

PLC's, you say?  I gotta dup this radio modem stuff on RTU's using
6303 micro's (6800+ chips), so it's assembler on one end, C++ on the
other.  No wonder engineers go bald - we tear it out as fast as it
grows back.

For debug output, take a look at Ray Gwinn's SIO package.  The way he
implemented the line monitor (PMLM.EXE) might fill your logging
requirement.  I'm using his whole package for development and we'll
probably require users to license it or work a deal to supply it.  It
offers a lot of detail access to the ports for doing what you're trying
to do and might keep you from writing at the PDD level.

___
 X KWQ/2 1.2i X TANSTAAFL: You get what you pay for

--- Maximus/2 2.02
* Origin: The Canadian Connection (1:128/77)
SEEN-BY: 105/42 620/243 711/401 409 410 413 430 807 808 809 934 955 712/407
SEEN-BY: 712/515 628 704 713/888 800/1 7877/2809
@PATH: 128/77 58 12 1 190 3615/50 396/1 270/101 105/103 42 712/515 711/808
@PATH: 711/809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.