2 s26_comreceive() – Sensoray 2600 User Manual

Page 73

Advertising
background image

Sensoray 2600 Programming Guide

69

Comport Transaction Functions

Example:

// Send an ASCII string to COM1 on MM number 0. Note that the message size

// is reduced by 1 because we don’t want to transmit the null stored at the

// end of the string.

char Msg[] = "This is a test.";

u32 errstat = S26_ComSend( 0, 1, Msg, sizeof(Msg) - 1, 1000, 1 );

if ( errstat & GWERRMASK )

printf( "COM1 error detected.\n" );

else if ( errstat & COM_REJECTED )

printf( "insufficient COM1 buffer space.\n" );

else

printf( "Sent string to COM1.\n" );

Example:

// Send a binary string to COM1 on MM number 0.

char Msg[] = { 1, 2, 3, 4, 5 };

u32 errstat = S26_ComSend( 0, 1, Msg, sizeof(Msg), 1000, 1 );

if ( errstat & GWERRMASK )

printf( "COM1 error detected.\n" );

else if ( errstat & COM_REJECTED )

printf( "insufficient COM1 buffer space.\n" );

else

printf( "Sent string to COM1.\n" );

8.3.2 S26_ComReceive()

Function:

Returns data bytes from a comport’s serial receiver queue.

Prototype:

u32 S26_ComReceive(u32 hbd, u8 LogDev, char *MsgBuf, u16 *MsgLen, u32 msec,u32 retries);

Returns:

Error/status value, as described in section 8.1.1.

Notes:

This function transfers bytes from the comport’s serial receiver queue into

MsgBuf[]

. If no bytes are present in the

queue, the byte count value at

*MsgLen

will be set to zero, otherwise the number of bytes that were transferred into

MsgBuf[]

will be indicated by

*MsgLen

.

The target comport must be open when this function is called. If the comport is closed, the command will be
rejected and the status byte’s

COM_REJECTED

flag will be set.

Example:

// Fetch and display an ASCII string from COM1 on MM number 0.

char RcvBuf[256];

// Buffer that will receive the string.

u16 BufLen = sizeof(RcvBuf);

// Max number of characters to receive.

u32 errstat = S26_ComReceive( 0, 1, RcvBuf, &BufLen, 1000, 1 );

if ( errstat & GWERRMASK )

printf( "COM1 error detected.\n" );

else

{

Parameter

Type

Description

hbd

u32

MM handle.

LogDev

u8

Logical device identifier for the target comport. Specify a value from 1 to 4 to
address comport 1 to 4, respectively.

MsgBuf

char*

Address of a buffer that is to receive the data bytes from the target comport.

MsgLen

u16*

Address of a 16-bit application buffer that contains a byte count. Before calling this
function, set the byte count to the maximum number of bytes that are to be
transferred from the comport into MsgBuf[]. The function will transfer this
number of bytes, or all of the unread bytes in the serial receiver queue, whichever is
less. When the function returns, the byte count will be set to the number of bytes
that were transferred into MsgBuf[].

msec

u32

Maximum time, in milliseconds, to wait for the MM to respond.

retries

u32

Maximum number of transaction retry attempts.

Advertising