[fpc-pascal]PDA and Linux communication
jonas at zeus.rug.ac.be
Tue Nov 27 12:32:40 CET 2001
On dinsdag, november 27, 2001, at 05:10 , jordi wrote:
> I'm trying to write a program that communicates with a Casio PDA.
> I have troubles with long commands which are sent in several
> packets. For example : when receive the link packet "calling up"
> -18303030303030- (7 bytes) no problem, but when receive the
> command packet "for negotiation" in this several packets
> -0130313043383131- (8 bytes)
> -3031303030323031- (8 bytes)
> -353341- (3 bytes) how can i know that I've received the full packet
> and the communication is stopped waiting for an answer?, i want to
> receive the full packet before process it, is that possible or I have to
> control it byte by byte?
You probably have to check it byte by byte, yes. You should completely
separate the receiving and the processing of the packets, just like the
compiler separates the scanner and the reading of the pascal source
code. If the scanner needs a new character, it just calls a function
called nextchar() (or something like that) which returns the next
character. This procedure checks whether the next character is already
in the memory buffer and if not, reloads the memory buffer with the next
part of the file.
You can do something similar, but with nextchar() waiting for more input
from the network.
More information about the fpc-pascal