New defines for purge behavior (echo cancelation)
This commit is contained in:
parent
af80dda0d8
commit
78f16f0248
@ -1468,6 +1468,13 @@ mbus_recv_frame(mbus_handle * handle, mbus_frame *frame)
|
|||||||
|
|
||||||
result = handle->recv(handle, frame);
|
result = handle->recv(handle, frame);
|
||||||
|
|
||||||
|
/* frame valid, but wrong direction */
|
||||||
|
if (mbus_frame_direction(frame) == MBUS_CONTROL_MASK_DIR_M2S)
|
||||||
|
{
|
||||||
|
/* purge echo and retry (echo cancelation) */
|
||||||
|
result = handle->recv(handle, frame);
|
||||||
|
}
|
||||||
|
|
||||||
if (frame != NULL)
|
if (frame != NULL)
|
||||||
{
|
{
|
||||||
/* set timestamp to receive time */
|
/* set timestamp to receive time */
|
||||||
|
@ -70,12 +70,17 @@
|
|||||||
#define MBUS_PROBE_COLLISION 2
|
#define MBUS_PROBE_COLLISION 2
|
||||||
#define MBUS_PROBE_ERROR -1
|
#define MBUS_PROBE_ERROR -1
|
||||||
|
|
||||||
|
#define MBUS_FRAME_PURGE_S2M 2
|
||||||
|
#define MBUS_FRAME_PURGE_M2S 1
|
||||||
|
#define MBUS_FRAME_PURGE_NONE 0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unified MBus handle type encapsulating either Serial or TCP gateway.
|
* Unified MBus handle type encapsulating either Serial or TCP gateway.
|
||||||
*/
|
*/
|
||||||
struct _mbus_handle {
|
struct _mbus_handle {
|
||||||
int fd;
|
int fd;
|
||||||
int max_retry;
|
int max_retry;
|
||||||
|
char purge_first_frame;
|
||||||
char is_serial; /**< _handle type (non zero for serial) */
|
char is_serial; /**< _handle type (non zero for serial) */
|
||||||
int (*open) (struct _mbus_handle *handle);
|
int (*open) (struct _mbus_handle *handle);
|
||||||
int (*close) (struct _mbus_handle *handle);
|
int (*close) (struct _mbus_handle *handle);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user