// // Created by xemon on 05.05.2022. // #ifndef PDM_FIR_TEST_XFCTRANSPACKLISTNER_H #define PDM_FIR_TEST_XFCTRANSPACKLISTNER_H #define XFC_COMINT_COUNTING #include "XfcCounting.h" #include "XfcProtDecoder.h" #include "XfcProtProcessor.h" #include "XfcProtTable.h" typedef struct { #ifdef XFC_COMINT_COUNTING struct { uint32_t rx; uint32_t rx_skip; } counters; #endif void *commonArgs; tXfcProtDecoder requestDecoder; tXfcArray requestBuffer; tXfcProtTable *processors; } tXfcProtListener; //Этот вид обработчика слушает комманды во входном потоке данных //находит обработчик по id, выполняет его, но ответ не посылает (в отличии от Respondent) void XfcProtListener_Init( tXfcProtListener *env, void *commonArgs, tXfcProtTable *processors, tXfcArray requestBuffer, uint8_t requestMagic ); bool XfcProtListener_Step(tXfcProtListener *env); void XfcProtListener_SkipCurrentRequest(tXfcProtListener *env); void XfcProtListener_AddBytes(tXfcProtListener *env, uint8_t *bytes, uint16_t size); bool XfcProtListener_isValidHeader(tXfcProtListener *env); bool XfcProtListener_HasPacket(tXfcProtListener *env); void XfcProtListener_SkipToNextMagic(tXfcProtListener *env, uint16_t begin); #endif //PDM_FIR_TEST_XFCTRANSPACKLISTNER_H