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.