COM port enhanced options
Fov
Posts: 26
Hi there.
I have a DateQ QFM device. I need to control it directly via RS-232, bypassing Musicall matrix.
For this to be done, i have to set enhanced COM port options such as RTS/DTR control, Xon/Xoff chars and so on.
I've made small C++ program able to control QFM via RS-232.
The COM port options I've set:
tDCB.BaudRate = 9600;
tDCB.fRtsControl = RTS_CONTROL_DISABLE;
tDCB.fDtrControl = DTR_CONTROL_HANDSHAKE;
tDCB.StopBits = ONESTOPBIT;
tDCB.Parity = NOPARITY;
tDCB.ByteSize = 8;
tDCB.EofChar = char(136);
tDCB.ErrorChar = 0;
tDCB.EvtChar = 0;
tDCB.XonChar = 17;
tDCB.XoffChar = 19;
tDCB.XonLim = 256;
tDCB.XoffLim = 256;
tCOMMTIMEOUTS.ReadIntervalTimeout = 50;
tCOMMTIMEOUTS.ReadTotalTimeoutMultiplier = 5;
tCOMMTIMEOUTS.ReadTotalTimeoutConstant = 300;
tCOMMTIMEOUTS.WriteTotalTimeoutMultiplier = 15;
tCOMMTIMEOUTS.WriteTotalTimeoutConstant = 10;
The question is: does Netlinx allow to set at least some of these options _for Netlinx Device (~ NI-700) COM port_ or not?
Thanks in advance.
PS: Sorry for my poor english.
I have a DateQ QFM device. I need to control it directly via RS-232, bypassing Musicall matrix.
For this to be done, i have to set enhanced COM port options such as RTS/DTR control, Xon/Xoff chars and so on.
I've made small C++ program able to control QFM via RS-232.
The COM port options I've set:
tDCB.BaudRate = 9600;
tDCB.fRtsControl = RTS_CONTROL_DISABLE;
tDCB.fDtrControl = DTR_CONTROL_HANDSHAKE;
tDCB.StopBits = ONESTOPBIT;
tDCB.Parity = NOPARITY;
tDCB.ByteSize = 8;
tDCB.EofChar = char(136);
tDCB.ErrorChar = 0;
tDCB.EvtChar = 0;
tDCB.XonChar = 17;
tDCB.XoffChar = 19;
tDCB.XonLim = 256;
tDCB.XoffLim = 256;
tCOMMTIMEOUTS.ReadIntervalTimeout = 50;
tCOMMTIMEOUTS.ReadTotalTimeoutMultiplier = 5;
tCOMMTIMEOUTS.ReadTotalTimeoutConstant = 300;
tCOMMTIMEOUTS.WriteTotalTimeoutMultiplier = 15;
tCOMMTIMEOUTS.WriteTotalTimeoutConstant = 10;
The question is: does Netlinx allow to set at least some of these options _for Netlinx Device (~ NI-700) COM port_ or not?
Thanks in advance.
PS: Sorry for my poor english.
0
Comments
SET BAUD <baudrate> <parity> <databits> <stopbits> <485 enable/disable>
you can also use HSON/HSOFF to enable/disable hardware handshaking (RTS/CTS) and enable/disable software handshaking
is that enough?
I'll try that today.
I've made the following to get it done:
SEND_COMMAND DATA.DEVICE, 'SET BAUD 9600, N, 8, 1'
SEND_COMMAND DATA.DEVICE, 'HSON'
SEND_COMMAND DATA.DEVICE, 'XON'
Another question:
I have to count sum of two bytes and take the low byte of resulting word. In C++ it can be done easily:
Res_Byte = LOBYTE(MSB+LSB);
How can I do the same thing in NetLinx?