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