My software works through /dev/cua0 and /dev/cua1 but not Digi's devices
/dev/ttyD0, /dev/ttyD1, /dev/ttyD2, and /dev/ttyD3. This is rather
strange behavior. Does anyone have any experience with anything
I can communicate between any two of Digi's devices (i.e., ttyD0 and
ttyD1) via two mini test routines that read and write to the devices
through a loopback cable connecting the two ports. However, the same
mini test routines will not work between two /dev/cua* devices nor
between two /dev/cud* devices. The /dev/cua* devices do not produce
any results, whereas the /dev/cud* will produce some expected results.
I have been using the following termios function settings:
struct termios t;
t.c_iflag = ISTRIP;
t.c_cc[VMIN] = 1;
t.c_cc[VTIME] = 1;
t.c_lflag = 0;
t.c_cflag = B9600 | CS7 | CSTOPB | PARENB | CREAD | CLOCAL;
Then I set these valus through "tcsetattr".
If I perhaps could understand why my mini program will not work through
/dev/cua*, I might be able to figure out what settings the /dev/ttyD* or
/dev/cud* devices needs to be to work.
My mini test routines represent a minature version of the real
communications software that we have. The problems does not appear to
be a Digi hardware problem but it's still not completely ruled out
either. Digi said that the cua* and cud* devices should respond the
same but different than the ttyD* devices. The difference is modem
One of the mini test routines sets the device to the termios settings
mentioned above and does in infinite loop of trying to read from the
specified device. The other mini test routine sets the device to the
termios settings mentioned above also, but executes one write statement
to the specified device.
Any comments or assistance would be GREATLY appreciated!!!!