From: js333 AT anvil DOT gatech DOT edu (Jonathan Swaby) Newsgroups: comp.os.msdos.djgpp Subject: reading data from the com port Date: Tue, 30 May 2000 13:56:02 GMT Organization: Student Affairs Ga Tech Lines: 56 Message-ID: <3933bf3a.1039708432@news.gatech.edu> NNTP-Posting-Host: gooberville.stucen.gatech.edu X-Trace: news-int.gatech.edu 959694892 25847 130.207.52.70 (30 May 2000 13:54:52 GMT) X-Complaints-To: usenet AT news DOT gatech DOT edu NNTP-Posting-Date: 30 May 2000 13:54:52 GMT X-Newsreader: Forte Free Agent 1.1/32.230 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com I have a ADC chip connected to com1: on my computer. I am using outportb to configure the port. This works fine. The ADC chip spits out a 7 byte packet. The first byte is 254 and the last is 85. I have been able to read the bytes, but only one at a time. How do I go about reading 7 bytes in on shot? I have used inportb to read on character at a time. That works fine. It prints that data as it comes in. I need to make sure that I am getting packets that start with 254 and end with 85. Since the device is constantly sending data, there are sometimes when the program gets data out of sequence. Also, I have the program working correctly on my Linux box. The code will compile fine under djgpp, but I don't know what to use for the port(MODEMDEVICE). Below is the code from the linux box to open the serial port: void setup () { fd = open (MODEMDEVICE, O_RDWR | O_NOCTTY); if (fd < 0) { perror (MODEMDEVICE); exit (-1); } tcgetattr (fd, &oldtio); /* save current port settings */ bzero (&newtio, sizeof (newtio)); newtio.c_cflag = BAUDRATE | CRTSCTS | CS8 | CLOCAL | CREAD; newtio.c_iflag = IGNPAR; newtio.c_oflag = 0; /* set input mode (non-canonical, no echo,...) */ newtio.c_lflag = 0; newtio.c_cc[VTIME] = 0; /* inter-character timer unused */ newtio.c_cc[VMIN] = 7; /* blocking read until 7 chars received */ tcflush (fd, TCIFLUSH); tcsetattr (fd, TCSANOW, &newtio); } A related question, I have a similar device that is polled. It responds with data the first 2 times I request it, then yields no responses after that. Again, I am using outportb and inportb. Thanks Jonathan Swaby MODEMDEVICE is /dev/ttyS1 and BUADRATE=B2400; Jonathan Swaby Computer Services Specialist IV Student Affairs Georgia Institute Of Technology