New defines for purge behavior (echo cancelation)
This commit is contained in:
parent
af80dda0d8
commit
78f16f0248
@ -1467,6 +1467,13 @@ mbus_recv_frame(mbus_handle * handle, mbus_frame *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)
|
||||
{
|
||||
|
@ -70,12 +70,17 @@
|
||||
#define MBUS_PROBE_COLLISION 2
|
||||
#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.
|
||||
*/
|
||||
struct _mbus_handle {
|
||||
int fd;
|
||||
int max_retry;
|
||||
char purge_first_frame;
|
||||
char is_serial; /**< _handle type (non zero for serial) */
|
||||
int (*open) (struct _mbus_handle *handle);
|
||||
int (*close) (struct _mbus_handle *handle);
|
||||
|
Loading…
x
Reference in New Issue
Block a user