From: <oh...@di...> - 2002-10-26 01:45:38
|
I to find an example of serial port in Mingw-users, but not this complete, can you send?, or to indicate like having. I believe that to send Michael Haertl to Lofstad Eric Thanks /***************************************************** > * > * transmit simple commands via rs232 > * > > *****************************************************/ > > #include <stdio.h> > #include <stdlib.h> > #include <string.h> > #include <conio.h> > #include <wtypes.h> > > /*****************************************************/ > #define TESTSTRING "Test... " > #define KEYB_Q `q` > #define KEYB_PLUS `+` > #define KEYB_MINUS `-` > #define KEYB_SPACE ` ` > > const char* ComPortStr[] = { > "ERR", > "COM1", > "COM2" > }; > > /*****************************************************/ > > > > void usage(int argc, char* argv[]) > { > > printf("********************************************"); > printf("wrong number of arguments. usage:"); > printf("%s <port> <vca-nr>", "txcom"); > printf(" where <port> is the number of the > used com port (1,2)"); > printf(" <vca-nr> is the number of the > used VCA (1...24)"); > } > > > > int main(int argc, char* argv[]) > { > // com port > int com_no; > HANDLE hCom; > DCB dcb; > ULONG nBytesWritten; > > // vca parameters > int vca_no; > int vca_val = 60; > int vca_delta = 10; > int vca_mutestate = 0; > unsigned char cmd_word[3]; > > // div > char c = 0; > > > printf("txcom - send commands to com port > (test)"); > > > // chk for no of arguments > if (argc != 3) { > usage(argc, argv); > // getchar(); > exit(-1); > } > > > // chk for com port > com_no = atoi(argv[1]); > if ((com_no != 1) && (com_no !=2)) { > printf("cannot open com port %d", com_no); > exit(-1); > } else { > // try to open com port > hCom = CreateFile( > ComPortStr[com_no], > GENERIC_READ | GENERIC_WRITE, > 0, /* com devs > must be opeend w/ exclusive-access */ > NULL, /* no > security attribs */ > OPEN_EXISTING, /* necessary > for com ports */ > 0, /* no > overlapped i/o */ > NULL /* must be > null for com */ > ); > > if (!hCom) { > printf("could not open com port %d!", > com_no); > exit(-1); > } else { > printf("com port %d opened.", com_no); > > // set dcb struct: 19200baud, 8bits no parity, > 1 stop bit etc > dcb.DCBlength = sizeof(dcb); > // sizeof(DCB) > dcb.BaudRate = CBR_19200; > // current baud rate > dcb.fParity = FALSE; > // disable parity checking > dcb.fOutxCtsFlow = FALSE; > // no CTS output flow control > dcb.fOutxDsrFlow = FALSE; > // no DSR output flow control > dcb.fDtrControl = DTR_CONTROL_DISABLE; > // DTR flow control type > dcb.fDsrSensitivity = FALSE; > // DSR sensitivity > dcb.fTXContinueOnXoff = TRUE; > // XOFF continues Tx > dcb.fOutX = FALSE; > // XON/XOFF out flow control > dcb.fInX = FALSE; > // XON/XOFF in flow control > dcb.fNull = FALSE; > // enable null stripping > dcb.fRtsControl = RTS_CONTROL_DISABLE; > // RTS flow control > dcb.fAbortOnError = FALSE; > // abort reads/writes on error > dcb.ByteSize = 8; > // number of bits/byte, 4-8 > dcb.Parity = NOPARITY; > // 0-4=no,odd,even,mark,space > dcb.StopBits = ONESTOPBIT; > // === message truncated === |