Studer Innotec Xtender Serial Communication C Library
1.5.0
|
Go to the source code of this file.
Data Structures | |
struct | scom_frame_flags_t |
decoded content of frame_flags byte More... | |
struct | scom_service_flags_t |
decoded content of service_flags byte More... | |
struct | scom_frame_t |
a structure representing a frame More... | |
Macros | |
#define | SCOM_NBR_ELEMENTS(array) (sizeof(array)/sizeof((array)[0])) |
return the number of elements of an array (index max + 1) More... | |
#define | SCOM_MIN(a, b) ((a) < (b) ? (a) : (b)) |
return the minimum from two values | |
#define | SCOM_MAX(a, b) ((a) > (b) ? (a) : (b)) |
return the maximum from two values | |
#define | SCOM_FRAME_HEADER_SIZE 14 |
the size of the frame header | |
Functions | |
void | scom_initialize_frame (scom_frame_t *frame, char *buffer, size_t buffer_size) |
initialize a frame structure More... | |
void | scom_encode_request_frame (scom_frame_t *frame) |
encode a frame in its buffer More... | |
void | scom_decode_frame_header (scom_frame_t *frame) |
decode the frame header from its buffer More... | |
void | scom_decode_frame_data (scom_frame_t *frame) |
decode the frame data from its buffer More... | |
size_t | scom_frame_length (scom_frame_t *frame) |
return the total frame length More... | |
interface to send and receive scom frames (the Data Link Layer)
#define SCOM_NBR_ELEMENTS | ( | array) | (sizeof(array)/sizeof((array)[0])) |
return the number of elements of an array (index max + 1)
array | variable of array type |
enum scom_error_t |
scom error types
enum scom_format_t |
data format
void scom_decode_frame_data | ( | scom_frame_t * | frame) |
decode the frame data from its buffer
This function call be called after the reception of frame->data_length byte in frame->buffer. frame->last_error will contain SCOM_ERROR_INVALID_FRAME if the data checksum is invalid or the frame is misformed.
void scom_decode_frame_header | ( | scom_frame_t * | frame) |
decode the frame header from its buffer
This function call be called after the reception of SCOM_FRAME_HEADER_SIZE byte in frame->buffer. frame->last_error will contain SCOM_ERROR_INVALID_FRAME if the checksum is invalid or the header is misformed.
void scom_encode_request_frame | ( | scom_frame_t * | frame) |
encode a frame in its buffer
The frame must have been initialized with scom_initialize_frame(). The frame fields src_addr, dst_addr, service_id and data_length must have a valid value.
size_t scom_frame_length | ( | scom_frame_t * | frame) |
return the total frame length
This function can be called after scom_decode_frame_header() to know how many bytes we expect to receive.
void scom_initialize_frame | ( | scom_frame_t * | frame, |
char * | buffer, | ||
size_t | buffer_size | ||
) |
initialize a frame structure
frame | the structure to initialize |
buffer | the buffer used to encode the data |
buffer_size | the size of a buffer, allowing user defined size |