diff options
| author | Aditya Naik | 2020-06-05 13:26:13 -0400 |
|---|---|---|
| committer | Aditya Naik | 2020-06-05 13:26:13 -0400 |
| commit | 3f5f496bd809fa417dbaa7bbd33db0d903033155 (patch) | |
| tree | 82ca37765edc6ad81c914c8d14c1eaca7ff3f22f /src/main-slave.c | |
| parent | 1cb59504671100dd41d3072821e31b3da931f723 (diff) | |
Dataflow errors, switching CTS to bytes TX
Diffstat (limited to 'src/main-slave.c')
| -rw-r--r-- | src/main-slave.c | 39 |
1 files changed, 6 insertions, 33 deletions
diff --git a/src/main-slave.c b/src/main-slave.c index 8218290..39d31bb 100644 --- a/src/main-slave.c +++ b/src/main-slave.c @@ -76,11 +76,11 @@ int main(void) while (handshake() == false); - + uint8_t SOR_buf[2] = {0}, debug_buf[128]; HAL_Delay(1000); while (1) { - uint8_t SOR_buf[m2s_SOR_size] = {0}, debug_buf[128]; - if (HAL_I2C_Slave_Receive(&hi2c1, (uint8_t*)SOR_buf, m2s_SOR_size, 100) != HAL_OK) { + + if (HAL_I2C_Slave_Receive(&hi2c1, (uint8_t*)SOR_buf, 2, 500) != HAL_OK) { sprintf((char*)debug_buf, "Failed to get SOR\r\n"); HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100); memset(debug_buf, 0, 128); @@ -91,21 +91,8 @@ int main(void) HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100); memset(debug_buf, 0, 128); } - m2s_SOR SOR_message; - pb_istream_t SOR_istream = pb_istream_from_buffer(SOR_buf, 2); - if (!pb_decode(&SOR_istream, m2s_SOR_fields, &SOR_message)) { - sprintf((char*)debug_buf, "SOR decode error\r\n"); - HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100); - memset(debug_buf, 0, 128); - continue; - } - else { - sprintf((char*)debug_buf, "SOR decoded; code: %ld\r\n", SOR_message.SOR_code); - HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100); - memset(debug_buf, 0, 128); - } - if (SOR_message.SOR_code == 1) { + if (SOR_buf[0] == 1) { uint8_t data_buf[128]; size_t data_enc_size; s2m_data data; @@ -120,21 +107,7 @@ int main(void) data_enc_size = data_ostream.bytes_written; s2m_DOC doc = s2m_DOC_init_zero; - uint8_t doc_buf[s2m_DOC_size]; - doc.DOC_code = 5; - doc.tx_length = data_enc_size; - pb_ostream_t doc_ostream = pb_ostream_from_buffer(doc_buf, 4); - - if (!pb_encode(&doc_ostream, s2m_DOC_fields, &doc)) { - sprintf((char*)debug_buf, "DOC encoding error\r\n"); - HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100); - memset(debug_buf, 0, 128); - continue; - } - - sprintf((char*)debug_buf, "s2m_DOC encoded length: %d\r\n", doc_ostream.bytes_written); - HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100); - memset(debug_buf, 0, 128); + uint8_t doc_buf[4] = {0x0, 0x5, 0x0, data_enc_size}; if (HAL_I2C_Slave_Transmit(&hi2c1, (uint8_t*)doc_buf, 4, 10000) != HAL_OK) { sprintf((char*)debug_buf, "DOC I2C send error: %ld\r\n", HAL_I2C_GetError(&hi2c1)); @@ -174,7 +147,7 @@ int main(void) memset(debug_buf, 0, 128); } } - else if (SOR_message.SOR_code == 2) { + else if (SOR_buf[0] == 2) { uint8_t CTS_buf[] = {0x0, 0x1}; uint8_t len_buf[4], *MDR_buf, *data_buf; /* _datapoint datapoints[16]; */ |
