61 lines
1.4 KiB
C
61 lines
1.4 KiB
C
//
|
|
// 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
|