delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/08/15/17:45:18

From: "Florent" <florent AT oih DOT rwth-aachen DOT de>
Newsgroups: comp.os.msdos.djgpp
Subject: read a character string from a serial port ......
Date: Tue, 15 Aug 2000 23:38:44 +0200
Organization: Aachen University of Technology (RWTH)
Lines: 45
Message-ID: <8ncd7g$18p$1@nets3.rz.RWTH-Aachen.DE>
NNTP-Posting-Host: pupulse.oih.rwth-aachen.de
X-Trace: nets3.rz.RWTH-Aachen.DE 966375472 1305 137.226.149.42 (15 Aug 2000 21:37:52 GMT)
X-Complaints-To: abuse AT rwth-aachen DOT de
NNTP-Posting-Date: 15 Aug 2000 21:37:52 GMT
X-Newsreader: Microsoft Outlook Express 4.72.3110.5
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Hi,
I manage to read a character from the serial port but I'm having problemes
for reading character string.

Here is my function which read the character string :

int ReceiveString (int ComNo,char *received,int *base) {

  int b,i=0,j=0;
  char string[127];

  string[0]=NULL;

  b = base[ComNo-1];
  if (!b) return 0;

  if ((inportb(b+STATUS) & 1) == 0) return 0;

  while  (inportb(b+STATUS) & 1) {
        inportb(b+STATUS);
        string[i] = inportb (b);
        i++;
        string[i]=NULL;
        delay(1);
  };
  strcpy(received,string);

  return  1;
}

ComNo is the port com choosen, and base are the adress of the serial port.
The things is that I can just read character by character, and sometimes I
miss some character.
I call my function in a loop, in order to get character (or character
string) at any moment.
I tried to put a small delay, but doesn't work well , I miss gain some
characters.
Does the serial port has a buffer ? Can we change the size of this buffer ?
Do you have any clue for my function ?

Thanks for helping me,
best regards,
Florent.


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019