I'm back again
Thought I had it. When I read there appears to be a 16 byte maximum
character return. Is there a way to set a buffer size for the serial
port?
--- In Donal <> wrote:
>
> Ah great stuff
>
> On Thu, Feb 5, 2009 at 2:21 PM, bonjelo2000 <> wrote:
>
> > Got it
> >
> > I had to set an additional flag
> >
> > termConf.c_lflag &= (~ICANON);
> >
> >
> > --- In <ts-7000%40yahoogroups.com>,
"bonjelo2000"
> > <rameandc@> wrote:
> > >
> > > Unfortunately the device I am comunicating with does not offer this
> > > functionality.
> > >
> > > --- In <ts-7000%40yahoogroups.com>, Donal
> > <donaloconnor@> wrote:
> > > >
> > > > Could try adding \x0D to end of string being sent back.
> > > >
> > > > On Thu, Feb 5, 2009 at 1:38 PM, bonjelo2000 <rameandc@> wrote:
> > > >
> > > > > OK,
> > > > >
> > > > > I found some dumb mistakes in coding. I tested with
Hyperterminal
> > > on
> > > > > another computer and could see write command work. Read appeared
> > > to
> > > > > work but required I hit the enter key when in Hyperterminal.
> > > > >
> > > > > When connecting back to device the write command works but I
hang
> > > > > when attempting to read. I must have one of the c_cflag
parameters
> > > > > sent wrong.
> > > > >
> > > > > Any help is appreciated
> > > > >
> > > > >
> > > > > --- In <ts-7000%40yahoogroups.com>
<ts-7000%
> > > 40yahoogroups.com>, "bonjelo2000"
> > > > > <rameandc@> wrote:
> > > > > >
> > > > > >
> > > > > > Hi,
> > > > > >
> > > > > > I am attempting to communicate with a device.
> > > > > >
> > > > > > I use the folowing write and read commands. The write
appears to
> > > > > work
> > > > > > in that the device responds correctly to the appropriate
command
> > > > > sent.
> > > > > > The read command always returns a -1.
> > > > > >
> > > > > > i=write(fd_com,cSendBuf,iSendLen);
> > > > > >
> > > > > > sleep(1);
> > > > > >
> > > > > > iReturnLen=read(fd_com,cRecBuf,6);
> > > > > >
> > > > > >
> > > > > > int comm_init ()
> > > > > > {
> > > > > > struct termios termConf;
> > > > > > bzero (&termConf, sizeof (struct termios));
> > > > > >
> > > > > > tcgetattr(fd_com, &termConf);
> > > > > >
> > > > > > termConf.c_cflag = B38400 | CREAD | CLOCAL;
> > > > > > termConf.c_cflag |= PARENB;
> > > > > > termConf.c_cflag &= ~PARODD;
> > > > > > termConf.c_cflag &= ~CSIZE;
> > > > > > termConf.c_cflag |= CS8;
> > > > > > termConf.c_cflag |= CRTSCTS;
> > > > > >
> > > > > > fd_com = open(PORT, O_RDWR | O_NOCTTY | O_NDELAY);
> > > > > > if (fd_com < 0)
> > > > > > {
> > > > > > return FAILURE;
> > > > > > }
> > > > > >
> > > > > > tcsetattr(fd_com, TCSADRAIN, &termConf); // Set the new
> > > > > options for
> > > > > > the port...
> > > > > >
> > > > > > return SUCCESS;
> > > > > > }
> > > > > >
> > > > > >
> > > > > >
> > > > > > -----------------------------------------------------
> > > > > > So what are you trying to do?
> > > > > >
> > > > > > I don't understand what you mean by "read commands"?
> > > > > >
> > > > > > did you write a program to use COM2, or are you trying to use
> > > > > > it as a login port?
> > > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > >
> >
> >
> >
>
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|