HP OpenVMS Systems

ask the wizard
Content starts here

Programming a Serial Line?

» close window

The Question is:

I am trying to read a 'dump screen' of a device through COM1, 9 pins on the
 VAX. The dump screen has several packets terminate with a '03'. How can I
 recognize each terminator and send a 06, ACK on the fly while the device is
 still dumping?  I am using SY
S$QIOW to read it.  I am able to read the buffer, but I can not acknowlege the
 information until a timeout. As a result, the device sends me each string
 three times, and I got half of the information that I wanted.  Right now, the
 maximum buffer size I ca
n read is 1950 bytes. If there is no way to acknowledge the information, how
 can I increase the buffer? 4096 would be preferable.
If I were to acknowlege each string, the buffer would need to be less than 300
 bytes.  Thank you in advance.

The Answer is :

  Increase the MAXBUF system parameter, and move to $qio and AST routines.
  The presence of STX and ETX is unusual in OpenVMS terminal output, and
  would imply binary data.  Binary data is difficult to process using the
  console serial lines, and binary data in general is particularly
  difficult if the data transfer involves any in-band (XON and XOFF) or
  out-of-band (hardware) flow control.
  Information on terminators and on terminator and flow-control processing
  is available in the I/O User's Reference Manual.
  Use of a network connection to the remote widget is strongly recommended.
  Failing that, the use of a non-console-related serial line -- a dedicated
  serial line controller or a terminal server -- is recommended.

answer written or last revised on ( 27-JAN-2003 )

» close window