3#include "externals/unity.h"
11char ascVersion_f, appVersion_f, command_f;
12char data_f[MAXDATALEN];
17 char command,
char *data,
size_t dataLen,
void *state);
20 char command,
char *data,
size_t dataLen,
void *state) {
26 for (
size_t i = 0; i < dataLen; i++) {
33 ascVersion_f = ascVersion;
34 appVersion_f = appVersion;
54void test_ascii_serial_com_device_receive_good(
void) {
58 &state_rw, &state_s, &state_nf};
67 TEST_ASSERT_EQUAL_CHAR(
'0', ascVersion_f);
68 TEST_ASSERT_EQUAL_CHAR(
'0', appVersion_f);
69 TEST_ASSERT_EQUAL_CHAR(
'w', command_f);
70 TEST_ASSERT_EQUAL_size_t(0, dataLen_f);
71 TEST_ASSERT_EQUAL(&state_rw, state_f);
72 TEST_ASSERT_EQUAL_INT(state_rw, *((
int *)state_f));
77 TEST_ASSERT_EQUAL_CHAR(
'1', ascVersion_f);
78 TEST_ASSERT_EQUAL_CHAR(
'2', appVersion_f);
79 TEST_ASSERT_EQUAL_CHAR(
'r', command_f);
80 TEST_ASSERT_EQUAL_size_t(0, dataLen_f);
81 TEST_ASSERT_EQUAL(&state_rw, state_f);
82 TEST_ASSERT_EQUAL_INT(state_rw, *((
int *)state_f));
87 TEST_ASSERT_EQUAL_CHAR(
'0', ascVersion_f);
88 TEST_ASSERT_EQUAL_CHAR(
'0', appVersion_f);
89 TEST_ASSERT_EQUAL_CHAR(
'w', command_f);
90 TEST_ASSERT_EQUAL_size_t(4, dataLen_f);
91 TEST_ASSERT_EQUAL_MEMORY(
"FFFF", data_f, 4);
92 TEST_ASSERT_EQUAL(&state_rw, state_f);
93 TEST_ASSERT_EQUAL_INT(state_rw, *((
int *)state_f));
97 ">FFs111 222 333 444.B049\n");
99 TEST_ASSERT_EQUAL_CHAR(
'F', ascVersion_f);
100 TEST_ASSERT_EQUAL_CHAR(
'F', appVersion_f);
101 TEST_ASSERT_EQUAL_CHAR(
's', command_f);
102 TEST_ASSERT_EQUAL_size_t(15, dataLen_f);
103 TEST_ASSERT_EQUAL_MEMORY(
"111 222 333 444", data_f, dataLen_f);
104 TEST_ASSERT_EQUAL(&state_s, state_f);
105 TEST_ASSERT_EQUAL_INT(state_s, *((
int *)state_f));
113 ">345666666666666666666666666666666666666666666666666666666.C7FB\n");
115 TEST_ASSERT_EQUAL_CHAR(
'\0', command_f);
118 printf(
"Uncaught exception: %u\n", e1);
119 TEST_FAIL_MESSAGE(
"Uncaught exception!");
123void test_ascii_serial_com_device_receive_null_state(
void) {
136 TEST_ASSERT_EQUAL_CHAR(
'0', ascVersion_f);
137 TEST_ASSERT_EQUAL_CHAR(
'0', appVersion_f);
138 TEST_ASSERT_EQUAL_CHAR(
'w', command_f);
139 TEST_ASSERT_EQUAL_size_t(0, dataLen_f);
140 TEST_ASSERT_EQUAL(NULL, state_f);
145 TEST_ASSERT_EQUAL_CHAR(
'1', ascVersion_f);
146 TEST_ASSERT_EQUAL_CHAR(
'2', appVersion_f);
147 TEST_ASSERT_EQUAL_CHAR(
'r', command_f);
148 TEST_ASSERT_EQUAL_size_t(0, dataLen_f);
149 TEST_ASSERT_EQUAL(NULL, state_f);
153 ">FFs111 222 333 444.B049\n");
155 TEST_ASSERT_EQUAL_CHAR(
'F', ascVersion_f);
156 TEST_ASSERT_EQUAL_CHAR(
'F', appVersion_f);
157 TEST_ASSERT_EQUAL_CHAR(
's', command_f);
158 TEST_ASSERT_EQUAL_size_t(15, dataLen_f);
159 TEST_ASSERT_EQUAL_MEMORY(
"111 222 333 444", data_f, dataLen_f);
160 TEST_ASSERT_EQUAL(NULL, state_f);
168 ">345666666666666666666666666666666666666666666666666666666.C7FB\n");
170 TEST_ASSERT_EQUAL_CHAR(
'\0', command_f);
171 TEST_ASSERT_EQUAL(NULL, state_f);
174 printf(
"Uncaught exception: %u\n", e1);
175 TEST_FAIL_MESSAGE(
"Uncaught exception!");
179void test_ascii_serial_com_device_receive_bad(
void) {
182 &state_rw, &state_s, &state_nf};
191 Catch(e2) { TEST_ASSERT_EQUAL(ASC_ERROR_INVALID_FRAME, e2); }
198 Catch(e2) { TEST_ASSERT_EQUAL(ASC_ERROR_INVALID_FRAME_PERIOD, e2); }
205 Catch(e2) { TEST_ASSERT_EQUAL(ASC_ERROR_INVALID_FRAME_PERIOD, e2); }
211 ">345666666666666666666666666666666666666666166666666666666.C7FB\n");
214 Catch(e2) { TEST_ASSERT_EQUAL(ASC_ERROR_INVALID_FRAME, e2); }
217void test_ascii_serial_com_device_receive_null_func(
void) {
227 size_t messageLen = 15;
228 const char *message =
">00e15,w,.DF68\n";
232 TEST_ASSERT_EQUAL_size_t(messageLen,
234 for (
size_t i = 0; i < messageLen; i++) {
235 TEST_ASSERT_EQUAL_UINT8(message[i],
242 message =
">12e15,r,.52D5\n";
246 TEST_ASSERT_EQUAL_size_t(messageLen,
248 for (
size_t i = 0; i < messageLen; i++) {
249 TEST_ASSERT_EQUAL_UINT8(message[i],
256 message =
">FFe15,s,111 222 3.7005\n";
258 ">FFs111 222 333 444.B049\n");
260 TEST_ASSERT_EQUAL_size_t(messageLen,
262 for (
size_t i = 0; i < messageLen; i++) {
263 TEST_ASSERT_EQUAL_UINT8(message[i],
270 message =
">34e15,5,666666666.6441\n";
273 ">345666666666666666666666666666666666666666666666666666666.C7FB\n");
275 TEST_ASSERT_EQUAL_size_t(messageLen,
277 for (
size_t i = 0; i < messageLen; i++) {
278 TEST_ASSERT_EQUAL_UINT8(message[i],
283 printf(
"Uncaught exception: %u\n", e1);
284 TEST_FAIL_MESSAGE(
"Uncaught exception!");
290 RUN_TEST(test_ascii_serial_com_device_receive_good);
291 RUN_TEST(test_ascii_serial_com_device_receive_null_state);
292 RUN_TEST(test_ascii_serial_com_device_receive_bad);
293 RUN_TEST(test_ascii_serial_com_device_receive_null_func);
circular_buffer_uint8 * ascii_serial_com_device_get_output_buffer(ascii_serial_com_device *ascd)
ASCII Serial Com Device get output buffer.
void ascii_serial_com_device_receive(ascii_serial_com_device *ascd)
ASCII Serial Com Device receive messages.
circular_buffer_uint8 * ascii_serial_com_device_get_input_buffer(ascii_serial_com_device *ascd)
ASCII Serial Com Device get input buffer.
void ascii_serial_com_device_init(ascii_serial_com_device *ascd, ascii_serial_com_device_config *config)
ASCII Serial Com Device init.
size_t circular_buffer_get_size_uint8(const circular_buffer_uint8 *circ_buf)
circular buffer get number of elements
uint8_t circular_buffer_get_element_uint8(const circular_buffer_uint8 *circ_buf, const size_t iElement)
circular buffer get element
size_t circular_buffer_push_back_string_uint8(circular_buffer_uint8 *circ_buf, const char *string)
circular buffer push back string (null terminated)
void circular_buffer_clear_uint8(circular_buffer_uint8 *circ_buf)
circular buffer clear
ASCII Serial Com Device Config Struct.
ASCII Serial Com Device State struct.
ASCII Serial Com Interface State struct.