// // Created by xemon on 05.05.2022. // #ifndef PDM_FIR_TEST_XFCTRANSPACKRESPONSER_H #define PDM_FIR_TEST_XFCTRANSPACKRESPONSER_H #define XFC_COMINT_COUNTING #include "XfcCounting.h" #include "XfcProtDecoder.h" #include "XfcProtProcessor.h" #include "XfcProtEncoder.h" #include "XfcProtTable.h" #include "XfcProtCommon.h" typedef struct { #ifdef XFC_COMINT_COUNTING struct { uint32_t rx; uint32_t tx; uint32_t rx_skip; uint32_t tx_skip; } counters; #endif void *commonArgs; tXfcProtDecoder requestDecoder; tXfcProtEncoder responseEncoder; tXfcArray requestBuffer; tXfcArray responseBuffer; tXfcProtTable *processors; } tXfcProtRespondent; //Этот вид обработчика слушает комманды во входном потоке данных //находит обработчик по id, и возвращает ответ (в отличии от Listener) void XfcProtRespondent_Init( tXfcProtRespondent *env, void *commonArgs, tXfcProtTable *processors, tXfcArray requestBuffer, tXfcArray responseBuffer, tXfcProtMagicNumbers magicNumbers ); bool XfcProtRespondent_Step(tXfcProtRespondent *env); void XfcProtRespondent_SkipCurrentRequest(tXfcProtRespondent *env); void XfcProtRespondent_AddBytes(tXfcProtRespondent *env, uint8_t *bytes, uint16_t size); #endif //PDM_FIR_TEST_XFCTRANSPACKRESPONSER_H