[Gambas-user] Issue/Problem with Serial Port Component
nando
nando_f at ...951...
Mon Jun 5 00:52:24 CEST 2006
There is no CR/LF
The data is ASCII text
---------- Original Message -----------
From: ron <ronstk at ...239...>
To: nando_f at ...951..., mailing list for gambas users
<gambas-user at lists.sourceforge.net>
Sent: Mon, 5 Jun 2006 00:44:05 +0200
Subject: Re: [Gambas-user] Issue/Problem with Serial Port Component
> On Sunday 04 June 2006 23:52, nando wrote:
> > I have tested this for hours...
> >
> > PUBLIC SPortReceiveString AS STRING
> >
> > SUB SPort_Read()
> >
> > DIM s AS STRING
> > DIM ls AS INTEGER
> >
> > ls = LOF(SPort)
> > 'IF ls > 1 THEN DEC ls '<---always read 1 less than what LOF offers
> >
> > READ # SPort, s, ls
> >
> > PRINT s '<--help to debug
> >
> > SPortReceiveString = SPortReceiveString & s 'accumulate input
> >
> > 'There is some testing of SPortReceiveString here
> >
> > END
> >
> > Comments:
> > Serial Port data received is in groups of about 120 bytes every 10 minutes.
> > Every READ event is a small bunch of characters received.
> >
> > I have found out that it consistently happens that
> > the during the SPort_Read event of the second last bunch of chars,
> > there are more data being receive by the kernel or SPort control
> > but an event will not happen.
> >
> > If I unREM the REMed line...
> >
> > IF ls > 1 THEN DEC ls '<---always read 1 less than what LOF offers
> >
> > then it works perfect every time.
> > An event will happen for the very past burst of serial data in.
> >
> > -Fernando
> >
>
> What is the real content of those 120 bytes and what program
> send the data?
>
> I'm thinking on a CR/LF problem.
> *nix use normal only one of them and if both are used
> the are CR/LF (or LF/CR).
> Windows use always both but reverse to *nix.
>
> One of them is the line terminator in gambas and when I'm right
> not returned in the string
> With READ # SPort, s, ls you use a binairy transfer and this
> should include all bytes.
>
> >From the doc for READ
> If Variable is a string, you can specify a length that indicates the
> number of bytes to read. If the length is negative, then (- Length)
> bytes are read up to the end of stream.
>
> If no length is specified for a string, it is is read from the
> stream. The string then must have been written with the WRITE instruction.
>
> Maybe it helps to PRINT ASC(LEFT(s)) and PRINT ASC(left(s,-1))
> after each READ.
>
> Ron
>
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
------- End of Original Message -------
More information about the User
mailing list