50 lines
1.8 KiB
C
50 lines
1.8 KiB
C
//
|
|
// Created by xemon on 21.04.2022.
|
|
//
|
|
|
|
#ifndef XFCTRANSPORTPROTOCOLPROCESSORDEFINES_H
|
|
#define XFCTRANSPORTPROTOCOLPROCESSORDEFINES_H
|
|
|
|
#include <XfcProtResponseCodes.h>
|
|
#include "XfcProtProcessor.h"
|
|
#include <XfcProtTable.h>
|
|
#include "stddef.h"
|
|
|
|
////Defines for read/write operations inside Packet Processor
|
|
|
|
//#define XFC_CMD_TX_SET_CODE(CODE) *response->fields.id = CODE;
|
|
|
|
#define XFC_CMD_TX_OVERFLOW() return XFC_TRANSPORT_PROTOCOL_RESPONSE_RESULT_CMD_OVERFLOW;
|
|
#define XFC_CMD_RX_CUTOFF() return XFC_TRANSPORT_PROTOCOL_REQUEST_UNEXPECTEDLY_SHORT;
|
|
|
|
#define XFC_CMD_TX_ADD_WITH_OVERFLOW_CHECK(DATA, LEN) \
|
|
if(XfcArrayAddBytes(response,DATA, LEN)!=LEN){ XFC_CMD_TX_OVERFLOW()};
|
|
|
|
|
|
#define XFC_CMD_RX_GET_WITH_CUTOFF_CHECK(DATA, LEN) \
|
|
if(XfcArrayGetBytesFront(request,DATA, LEN)!=LEN){ XFC_CMD_RX_CUTOFF()};
|
|
|
|
|
|
#define XFC_CMD_TX_ADD_STR(str) XFC_CMD_TX_ADD_WITH_OVERFLOW_CHECK((uint8_t*)str, sizeof(str)-1)
|
|
#define XFC_CMD_TX_ADD_STROBJ(str) XFC_CMD_TX_ADD_WITH_OVERFLOW_CHECK(str->data, str->length)
|
|
#define XFC_CMD_TX_ADD_RAW(obj) XFC_CMD_TX_ADD_WITH_OVERFLOW_CHECK((uint8_t*)&obj, sizeof(obj))
|
|
#define XFC_CMD_TX_ADD_ARR(arr, len) XFC_CMD_TX_ADD_WITH_OVERFLOW_CHECK((uint8_t*)arr, len)
|
|
|
|
#define XFC_CMD_TX_ADD_STRLINK(str) XFC_CMD_TX_ADD_RAW( *(str).length) XFC_CMD_TX_ADD_ARR((str).data, *(str).length)
|
|
|
|
|
|
#define XFC_CMD_TX_ADD_PSTR(str) {uint8_t len = sizeof(str)-1; XFC_CMD_TX_ADD_RAW(len); XFC_CMD_TX_ADD_STR(str);}
|
|
|
|
|
|
#define XFC_CMD_RX_GET_STR(str) XFC_CMD_RX_GET_WITH_CUTOFF_CHECK((uint8_t*)str, sizeof(str))
|
|
#define XFC_CMD_RX_GET_RAW(obj) XFC_CMD_RX_GET_WITH_CUTOFF_CHECK((uint8_t*)&obj, sizeof(obj))
|
|
#define XFC_CMD_RX_GET_ARR(arr, len) XFC_CMD_RX_GET_WITH_CUTOFF_CHECK((uint8_t*)arr, len)
|
|
|
|
|
|
|
|
//XFC_REQUEST_PROCESSOR_DIRECT
|
|
#define XFC_REQPROC_DIR(CODE, METHOD) [CODE]={.id=CODE, .process=METHOD}
|
|
|
|
|
|
#endif //XFCTRANSPORTPROTOCOLPROCESSORDEFINES_H
|