Programming the Serial port with QNX RTP...

Hi everyone!

Could someone could provides us a simple Serial Port
real-time program that transfer a bunch of bytes back and forth,
and that automatically callback a C function
void (*fn)( char *buf, size_t sz ),
once it gets some data.

Basically, I would really like to have something like:

void initSerialPort( void (*fn)( char *buf, size_t sz ), const char
*serialPort = “/dev/ser1” );
void initConsole( void (*fn)( char *buf, size_t sz ), const char
*console = “/dev/con1” );
void SendToSerialPort( char *buf, size_t sz );

And be able to write something like:

void serialHandler( char* buf, size_t sz )
{
// …
}

void consoleHandler( char* buf, size_t sz )
{
// …
}

int main() {
initSerial( serialHandler, “/dev/ser1” );
initConsole( consoleHandler, “/dev/con1” );

for(;:wink:
{
//…
sendToSerialPort( buf, sz );
}

return 0;
}


Any suggestions ?

Sincerly yours,

Fred.

Hi Fred,

In article <962tbg$7fr$1@inn.qnx.com>, “Fred” says…

Hi everyone!

Could someone could provides us a simple Serial Port
real-time program that transfer a bunch of bytes back and forth,
and that automatically callback a C function
void (*fn)( char *buf, size_t sz ),
once it gets some data.

Basically, I would really like to have something like:

void initSerialPort( void (*fn)( char *buf, size_t sz ), const char
*serialPort = “/dev/ser1” );

initSerial should start a worker thread which blocks on a read()
(VMIN==1,
VTIME==0) and calls after returning from read() the callback routine
fn().

void initConsole( void (*fn)( char *buf, size_t sz ), const char
*console = “/dev/con1” );

see above …

void SendToSerialPort( char *buf, size_t sz );

And be able to write something like:

void serialHandler( char* buf, size_t sz )
{
// …
}

void consoleHandler( char* buf, size_t sz )
{
// …
}

int main() {

initSerial( serialHandler, “/dev/ser1” ); // starts a worker thread

initConsole( consoleHandler, “/dev/con1” ); // starts a worker thread

for(;:wink:
{
//…
sendToSerialPort( buf, sz );
}

return 0;
}

Armin