Structures

This section describes the structures that are included as part of the IRI host libraries. These structures are used for interacting with the modules via IRI in both directions, and for configuring the host libraries themselves.

The structures can be used to communicate configuration data to modules, for example by sending a list of key codes and values. The structures can be used to receive data from the modules, for example by storing tag operation report data. The structures can also be used to configure the way the host library communicates with modules, for example configuring the serial connection that enables IRI communication with the module.

IRI Connection Structures

The following structures all relate to configuring the IRI connection with the module.

ipj_serial_connection

struct ipj_serial_connection
#include <iri.h>

Public Members

ipj_baud_rate baudrate

ipj_parity parity

ipj_connection_params

Note

This union holds one of each type of connection parameter struct. In the future this will allow connection parameters for a variety of connection mediums to be set

IRI Device Structure

The ipj_iri_device structure is used to define a particular module that is connected to the IRI host. This structure is used as an argument in a number of the IRI host library API functions to specify which module the API is meant to interact with or configure.

ipj_iri_device

struct ipj_iri_device
#include <iri.h>

User application allocates or declares structure before connecting or communicating with the IRI device.

Public Members

IPJ_READER_CONTEXT reader_context

PLATFORM_OPEN_PORT_HANDLER_EXT platform_open_port_handler

void * platform_open_port_args

PLATFORM_CLOSE_PORT_HANDLER_EXT platform_close_port_handler

void * platform_close_port_args

PLATFORM_TRANSMIT_HANDLER_EXT platform_transmit_handler

void * platform_transmit_args

PLATFORM_RECEIVE_HANDLER_EXT platform_receive_handler

void * platform_receive_args

PLATFORM_TIMESTAMP_MS_HANDLER_EXT platform_timestamp_ms_handler

void * platform_timestamp_ms_args

PLATFORM_SLEEP_MS_HANDLER_EXT platform_sleep_ms_handler

void * platform_sleep_ms_args

PLATFORM_FLUSH_PORT_HANDLER_EXT platform_flush_port_handler

void * platform_flush_port_args

PLATFORM_MODIFY_CONNECTION_HANDLER_EXT platform_modify_connection_handler

void * platform_modify_connection_args

IPJ_READER_IDENTIFIER reader_identifier

IPJ_READER_USER_IDENTIFIER reader_user_identifier

REPORT_HANDLER_EXT report_handler

void * report_args

DIAGNOSTIC_HANDLER_EXT diagnostic_handler

void * diagnostic_args

uint32_t transmit_timeout_ms

uint32_t receive_timeout_ms

bool initialized

uint8_t protocol_flags

uint8_t rx_frame_sync_count

uint8_t tx_frame_sync_count

uint8_t sync_state

uint32_t frame_length

uint8_t transmit_buffer[IPJ_TRANSMIT_BUFFER_SIZE]

uint32_t receive_index

uint8_t receive_buffer[IPJ_RECEIVE_BUFFER_SIZE]