cMicroOrp  1.0.0
C code for microcontrollers - provides ORP remote interface
orp_protocol.h File Reference

Go to the source code of this file.

Macros

#define ORP_PACKET_TYPE_FIELD   0
 
#define ORP_PACKET_STATUS_FIELD   1
 
#define ORP_PACKET_SEGMENT_START_FIELD   2
 
#define ORP_PACKET_CONTENTS_START_FIELD   4
 
#define SBR_PKT_RQST_INPUT_CREATE   'I'
 
#define SBR_PKT_RESP_INPUT_CREATE   'i'
 
#define SBR_PKT_RQST_OUTPUT_CREATE   'O'
 
#define SBR_PKT_RESP_OUTPUT_CREATE   'o'
 
#define SBR_PKT_RQST_DELETE   'D'
 
#define SBR_PKT_RESP_DELETE   'd'
 
#define SBR_PKT_RQST_HANDLER_ADD   'H'
 
#define SBR_PKT_RESP_HANDLER_ADD   'h'
 
#define SBR_PKT_RQST_HANDLER_REMOVE   'K'
 
#define SBR_PKT_RESP_HANDLER_REMOVE   'k'
 
#define SBR_PKT_RQST_PUSH   'P'
 
#define SBR_PKT_RESP_PUSH   'p'
 
#define SBR_PKT_RQST_GET   'G'
 
#define SBR_PKT_RESP_GET   'g'
 
#define SBR_PKT_RQST_EXAMPLE_SET   'E'
 
#define SBR_PKT_RESP_EXAMPLE_SET   'e'
 
#define SBR_PKT_RQST_SENSOR_CREATE   'S'
 
#define SBR_PKT_RESP_SENSOR_CREATE   's'
 
#define SBR_PKT_RQST_SENSOR_REMOVE   'R'
 
#define SBR_PKT_RESP_SENSOR_REMOVE   'r'
 
#define SBR_PKT_NTFY_HANDLER_CALL   'c'
 
#define SBR_PKT_RESP_HANDLER_CALL   'C'
 
#define SBR_PKT_NTFY_SENSOR_CALL   'b'
 
#define SBR_PKT_RESP_SENSOR_CALL   'B'
 
#define SBR_PKT_RESP_UNKNOWN_RQST   '?'
 
#define SBR_DATA_TYPE_TRIGGER   'T'
 
#define SBR_DATA_TYPE_BOOLEAN   'B'
 
#define SBR_DATA_TYPE_NUMERIC   'N'
 
#define SBR_DATA_TYPE_STRING   'S'
 
#define SBR_DATA_TYPE_JSON   'J'
 
#define SBR_DATA_TYPE_UNDEF   ' '
 
#define OK   '@'
 
#define SBR_FIELD_ID_PATH   'P'
 
#define SBR_FIELD_ID_TIME   'T'
 
#define SBR_FIELD_ID_UNITS   'U'
 
#define SBR_FIELD_ID_DATA   'D'
 
#define SBR_VARLENGTH_SEPARATOR   ','
 

Typedefs

typedef void(* orp_hdlc_tx_cb) (uint8_t)
 
typedef void(* orp_delay100ms_cb) (void)
 
typedef void(* orp_protocol_genericRequestResponse_cb) (const uint8_t *buffer, uint16_t bufferLength)
 
typedef void(* orp_protocol_genericNotification_cb) (const uint8_t *buffer, uint16_t bufferLength)
 

Enumerations

enum  orp_responseStatusEnum {
  STATUS_OK, NOT_FOUND, NOT_POSSIBLE, OUT_OF_RANGE,
  NO_MEMORY, NOT_PERMITTED, FAULT, COMM_ERROR,
  TIMEOUT, OVERFLOW, UNDERFLOW, WOULD_BLOCK,
  DEADLOCK, FORMAT_ERROR, DUPLICATE, BAD_PARAMETER,
  CLOSED, BUSY, UNSUPPORTED, IO_ERROR,
  NOT_IMPLEMENTED, UNAVAILABLE, TERMINATED, WAITING_RESPONSE = -100,
  UN_INITIALISED = -101
}
 

Functions

void orp_protocol (char *app_orp_inPayload, size_t app_orp_inPayloadSize, orp_hdlc_tx_cb tx_char_cbh, uint8_t *hdlc_rx_buffer, uint16_t hdlc_rx_bufferSize, orp_protocol_genericRequestResponse_cb appRequestIn_cbf, orp_protocol_genericNotification_cb appNotificationIn_cbf)
 
void orp_protocol_processHdlcRx (uint8_t data)
 
void orp_protocol_wakeup (orp_delay100ms_cb)
 
int16_t orp_protocol_pushValue (uint8_t dataType, const char *path, const char *data)
 
int16_t orp_protocol_createResource (char packetType, char dataType, const char *path, const char *units)
 
int16_t orp_protocol_addpushHandler (uint8_t dataType, const char *path)
 

Macro Definition Documentation

◆ OK

#define OK   '@'

◆ ORP_PACKET_CONTENTS_START_FIELD

#define ORP_PACKET_CONTENTS_START_FIELD   4

◆ ORP_PACKET_SEGMENT_START_FIELD

#define ORP_PACKET_SEGMENT_START_FIELD   2

◆ ORP_PACKET_STATUS_FIELD

#define ORP_PACKET_STATUS_FIELD   1

◆ ORP_PACKET_TYPE_FIELD

#define ORP_PACKET_TYPE_FIELD   0

◆ SBR_DATA_TYPE_BOOLEAN

#define SBR_DATA_TYPE_BOOLEAN   'B'

◆ SBR_DATA_TYPE_JSON

#define SBR_DATA_TYPE_JSON   'J'

◆ SBR_DATA_TYPE_NUMERIC

#define SBR_DATA_TYPE_NUMERIC   'N'

◆ SBR_DATA_TYPE_STRING

#define SBR_DATA_TYPE_STRING   'S'

◆ SBR_DATA_TYPE_TRIGGER

#define SBR_DATA_TYPE_TRIGGER   'T'

◆ SBR_DATA_TYPE_UNDEF

#define SBR_DATA_TYPE_UNDEF   ' '

◆ SBR_FIELD_ID_DATA

#define SBR_FIELD_ID_DATA   'D'

◆ SBR_FIELD_ID_PATH

#define SBR_FIELD_ID_PATH   'P'

◆ SBR_FIELD_ID_TIME

#define SBR_FIELD_ID_TIME   'T'

◆ SBR_FIELD_ID_UNITS

#define SBR_FIELD_ID_UNITS   'U'

◆ SBR_PKT_NTFY_HANDLER_CALL

#define SBR_PKT_NTFY_HANDLER_CALL   'c'

◆ SBR_PKT_NTFY_SENSOR_CALL

#define SBR_PKT_NTFY_SENSOR_CALL   'b'

◆ SBR_PKT_RESP_DELETE

#define SBR_PKT_RESP_DELETE   'd'

◆ SBR_PKT_RESP_EXAMPLE_SET

#define SBR_PKT_RESP_EXAMPLE_SET   'e'

◆ SBR_PKT_RESP_GET

#define SBR_PKT_RESP_GET   'g'

◆ SBR_PKT_RESP_HANDLER_ADD

#define SBR_PKT_RESP_HANDLER_ADD   'h'

◆ SBR_PKT_RESP_HANDLER_CALL

#define SBR_PKT_RESP_HANDLER_CALL   'C'

◆ SBR_PKT_RESP_HANDLER_REMOVE

#define SBR_PKT_RESP_HANDLER_REMOVE   'k'

◆ SBR_PKT_RESP_INPUT_CREATE

#define SBR_PKT_RESP_INPUT_CREATE   'i'

◆ SBR_PKT_RESP_OUTPUT_CREATE

#define SBR_PKT_RESP_OUTPUT_CREATE   'o'

◆ SBR_PKT_RESP_PUSH

#define SBR_PKT_RESP_PUSH   'p'

◆ SBR_PKT_RESP_SENSOR_CALL

#define SBR_PKT_RESP_SENSOR_CALL   'B'

◆ SBR_PKT_RESP_SENSOR_CREATE

#define SBR_PKT_RESP_SENSOR_CREATE   's'

◆ SBR_PKT_RESP_SENSOR_REMOVE

#define SBR_PKT_RESP_SENSOR_REMOVE   'r'

◆ SBR_PKT_RESP_UNKNOWN_RQST

#define SBR_PKT_RESP_UNKNOWN_RQST   '?'

◆ SBR_PKT_RQST_DELETE

#define SBR_PKT_RQST_DELETE   'D'

◆ SBR_PKT_RQST_EXAMPLE_SET

#define SBR_PKT_RQST_EXAMPLE_SET   'E'

◆ SBR_PKT_RQST_GET

#define SBR_PKT_RQST_GET   'G'

◆ SBR_PKT_RQST_HANDLER_ADD

#define SBR_PKT_RQST_HANDLER_ADD   'H'

◆ SBR_PKT_RQST_HANDLER_REMOVE

#define SBR_PKT_RQST_HANDLER_REMOVE   'K'

◆ SBR_PKT_RQST_INPUT_CREATE

#define SBR_PKT_RQST_INPUT_CREATE   'I'

◆ SBR_PKT_RQST_OUTPUT_CREATE

#define SBR_PKT_RQST_OUTPUT_CREATE   'O'

◆ SBR_PKT_RQST_PUSH

#define SBR_PKT_RQST_PUSH   'P'

◆ SBR_PKT_RQST_SENSOR_CREATE

#define SBR_PKT_RQST_SENSOR_CREATE   'S'

◆ SBR_PKT_RQST_SENSOR_REMOVE

#define SBR_PKT_RQST_SENSOR_REMOVE   'R'

◆ SBR_VARLENGTH_SEPARATOR

#define SBR_VARLENGTH_SEPARATOR   ','

Typedef Documentation

◆ orp_delay100ms_cb

typedef void(* orp_delay100ms_cb) (void)

◆ orp_hdlc_tx_cb

typedef void(* orp_hdlc_tx_cb) (uint8_t)

◆ orp_protocol_genericNotification_cb

typedef void(* orp_protocol_genericNotification_cb) (const uint8_t *buffer, uint16_t bufferLength)

◆ orp_protocol_genericRequestResponse_cb

typedef void(* orp_protocol_genericRequestResponse_cb) (const uint8_t *buffer, uint16_t bufferLength)

Enumeration Type Documentation

◆ orp_responseStatusEnum

Enumerator
STATUS_OK 
NOT_FOUND 
NOT_POSSIBLE 
OUT_OF_RANGE 
NO_MEMORY 
NOT_PERMITTED 
FAULT 
COMM_ERROR 
TIMEOUT 
OVERFLOW 
UNDERFLOW 
WOULD_BLOCK 
DEADLOCK 
FORMAT_ERROR 
DUPLICATE 
BAD_PARAMETER 
CLOSED 
BUSY 
UNSUPPORTED 
IO_ERROR 
NOT_IMPLEMENTED 
UNAVAILABLE 
TERMINATED 
WAITING_RESPONSE 
UN_INITIALISED 

Function Documentation

◆ orp_protocol()

void orp_protocol ( char *  app_orp_inPayload,
size_t  app_orp_inPayloadSize,
orp_hdlc_tx_cb  tx_char_cbh,
uint8_t *  hdlc_rx_buffer,
uint16_t  hdlc_rx_bufferSize,
orp_protocol_genericRequestResponse_cb  appRequestIn_cbf,
orp_protocol_genericNotification_cb  appNotificationIn_cbf 
)

◆ orp_protocol_addpushHandler()

int16_t orp_protocol_addpushHandler ( uint8_t  dataType,
const char *  path 
)

◆ orp_protocol_createResource()

int16_t orp_protocol_createResource ( char  packetType,
char  dataType,
const char *  path,
const char *  units 
)

◆ orp_protocol_processHdlcRx()

void orp_protocol_processHdlcRx ( uint8_t  data)

◆ orp_protocol_pushValue()

int16_t orp_protocol_pushValue ( uint8_t  dataType,
const char *  path,
const char *  data 
)

◆ orp_protocol_wakeup()

void orp_protocol_wakeup ( orp_delay100ms_cb  )