[Gambas-user] Issue/Problem with Serial Port Component
nando
nando_f at ...951...
Mon Jun 5 18:27:00 CEST 2006
Thank you.
Many (other) things also communicate without CR/LF
especially if a device (like a radio, or machine, etc)
The things I use for communication do not use CR/LF for delineation.
Humans like CR/LF though because it visually separates lines.
For example, Chr$(2) and Chr$(3) are used by many devices for message
delineation.
Some devices are a binary stream and continuous parsing is the only
method possible especially when messages arrive at unknown bursts and
with varying formats. CR/LF or ONE specific sequence would certainly
make things easiest, but this is not the case.
Add to the mix that if a SUB does not exit because it is waiting for
mor input to the delineator, there is no (other) event processing.
Perhaps Benoit is thinking of a multi-threaded Gambas which would
really be wild. Having each coded event a possible separate thread
is a very new way to program. Each SUB would have the keyword THREADED
to signify this and when the event fires..a new thread happens.
---------- Original Message -----------
From: "Timothy Marshal-Nichols" <timothy.marshal-nichols at ...247...>
To: <nando_f at ...951...>, "mailing list for gambas users"
<gambas-user at lists.sourceforge.net>
Sent: Mon, 5 Jun 2006 10:19:58 +0100
Subject: Re: [Gambas-user] Issue/Problem with Serial Port Component
> I have just remembered you have version 1 of Gambas. The demo in the
> previous email was of a Gambas 2 project. Here is a version of the project
> in version 1.0.16.
>
> Thanks
>
> 8-{)} Timothy Marshal-Nichols
> <mailto: timothy.marshal-nichols at ...247...>
>
> > -----Original Message-----
> > From: gambas-user-bounces at lists.sourceforge.net
> > [mailto:gambas-user-bounces at lists.sourceforge.net]On Behalf Of nando
> > Sent: Sunday, 04 June 2006 23:52
> > To: mailing list for gambas users
> > Subject: Re: [Gambas-user] Issue/Problem with Serial Port Component
> >
> >
> > 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 -------
> >
> >
> >
> > _______________________________________________
> > 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