Skip to content

Commit 275e27b

Browse files
committed
CVW-77 WIP: test link reset
1 parent e655bf6 commit 275e27b

4 files changed

Lines changed: 32 additions & 0 deletions

File tree

lib/c/inc/cave_talk.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ extern "C"
7676
{
7777
#endif
7878

79+
CaveTalk_Error_t CaveTalk_Reset(CaveTalk_Handle_t *const handle);
7980
CaveTalk_Error_t CaveTalk_Hear(CaveTalk_Handle_t *const handle);
8081
CaveTalk_Error_t CaveTalk_SpeakOogaBooga(const CaveTalk_Handle_t *const handle, const cave_talk_Say ooga_booga);
8182
CaveTalk_Error_t CaveTalk_SpeakMovement(const CaveTalk_Handle_t *const handle, const CaveTalk_MetersPerSecond_t speed, const CaveTalk_RadiansPerSecond_t turn_rate);

lib/c/src/cave_talk.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,18 @@ static CaveTalk_Error_t CaveTalk_HandleRelativeMove(const CaveTalk_Handle_t *con
4141
static bool CaveTalk_EncodeString(pb_ostream_t *stream, const pb_field_t *field, void *const *arg);
4242
static bool CaveTalk_DecodeString(pb_istream_t *stream, const pb_field_t *field, void **arg);
4343

44+
CaveTalk_Error_t CaveTalk_Reset(CaveTalk_Handle_t *const handle)
45+
{
46+
CaveTalk_Error_t error = CAVE_TALK_ERROR_NULL;
47+
48+
if (NULL != handle)
49+
{
50+
error = CaveTalk_ListenReset(&handle->link_handle);
51+
}
52+
53+
return error;
54+
}
55+
4456
CaveTalk_Error_t CaveTalk_Hear(CaveTalk_Handle_t *const handle)
4557
{
4658
CaveTalk_Error_t error = CAVE_TALK_ERROR_NULL;

lib/common/inc/cave_talk_link.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ CaveTalk_Error_t CaveTalk_Listen(CaveTalk_LinkHandle_t *const handle,
5151
void *const data,
5252
const size_t size,
5353
CaveTalk_Length_t *const length);
54+
CaveTalk_Error_t CaveTalk_ListenReset(CaveTalk_LinkHandle_t *const handle);
5455

5556
#ifdef __cplusplus
5657
}

lib/common/src/cave_talk_link.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,24 @@ CaveTalk_Error_t CaveTalk_Listen(CaveTalk_LinkHandle_t *const handle,
114114
return error;
115115
}
116116

117+
CaveTalk_Error_t CaveTalk_ListenReset(CaveTalk_LinkHandle_t *const handle)
118+
{
119+
CaveTalk_Error_t error = CAVE_TALK_ERROR_NULL;
120+
121+
if (NULL != handle)
122+
{
123+
handle->receive_state = CAVE_TALK_LINK_STATE_RESET;
124+
handle->receive_id = CAVE_TALK_ID_NONE;
125+
handle->receive_length = 0U;
126+
handle->crc = 0U;
127+
handle->bytes_received = 0U;
128+
129+
error = CAVE_TALK_ERROR_NONE;
130+
}
131+
132+
return error;
133+
}
134+
117135
static CaveTalk_Error_t CaveTalk_Receive(CaveTalk_LinkHandle_t *const handle,
118136
CaveTalk_Id_t *const id,
119137
void *const data,

0 commit comments

Comments
 (0)