summaryrefslogtreecommitdiff
path: root/Src
diff options
context:
space:
mode:
authorAditya Naik2020-03-26 16:19:38 -0400
committerAditya Naik2020-03-26 16:19:38 -0400
commit6681d89d0416f8695e3ca0633e4b6f304f727d02 (patch)
tree0bd49506442be34f9bfeab535f4d331e949cc78c /Src
parente000b28e44faf42b3747eec9031cd5d0c07c9e19 (diff)
Working MDR merge
Diffstat (limited to 'Src')
-rw-r--r--Src/main.c23
1 files changed, 4 insertions, 19 deletions
diff --git a/Src/main.c b/Src/main.c
index 87a4a16..8c500f9 100644
--- a/Src/main.c
+++ b/Src/main.c
@@ -145,21 +145,6 @@ int main(void)
HAL_UART_Transmit(&huart1, term, 2, 100);
memset(debug_buf, 0, 128);
#endif /* TESTING_ENABLE */
-
- /* if (HAL_I2C_IsDeviceReady(&hi2c1, (uint16_t)I2C_ADDRESS, 10, 100) == HAL_OK) { */
- while (HAL_I2C_Master_Transmit(&hi2c1, (uint16_t)I2C_ADDRESS, (uint8_t*)MDR_req_buf, m2s_MDR_request_size, 10000) != HAL_OK);
- while (HAL_I2C_Master_Receive(&hi2c1, (uint16_t)I2C_ADDRESS, (uint8_t*)MDR_ACK_buf, 2, 1000) != HAL_OK);
-
- s2m_MDR_req_ACK MDR_ACK;
- pb_istream_t MDR_ACK_istream = pb_istream_from_buffer(MDR_ACK_buf,
- sizeof(MDR_ACK_buf));
- if (!pb_decode(&MDR_ACK_istream, s2m_MDR_req_ACK_fields, &MDR_ACK)) {
-#ifdef DEBUG_ENABLE
- sprintf((char*)debug_buf, "Failed to decode MDR ACK\r\n");
- HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100);
- memset(debug_buf, 0, 128);
-#endif /* DEBUG_ENABLE */
- }
if (HAL_I2C_Master_Transmit(&hi2c1, (uint16_t)I2C_ADDRESS, (uint8_t*)MDR_req_buf, 2, 10000) != HAL_OK) {
#ifdef DEBUG_ENABLE
@@ -298,7 +283,6 @@ int main(void)
res.subscriptions.funcs.encode=encode_subscription_callback;
pb_ostream_t ostream = pb_ostream_from_buffer(MDR_buf, sizeof(MDR_buf));
if(!pb_encode(&ostream, s2m_MDR_response_fields, &res)){
-
#ifdef DEBUG_ENABLE
uint8_t err_buf[] = "MDR encoding error\r\n";
HAL_UART_Transmit(&huart1, err_buf, sizeof(err_buf), 100);
@@ -349,7 +333,7 @@ int main(void)
uint8_t MDR_req_buf[8];
m2s_MDR_request MDR_req;
- if (HAL_I2C_Slave_Receive(&hi2c1, (uint8_t*)MDR_req_buf, m2s_MDR_request_size, 10000) != HAL_OK) {
+ if (HAL_I2C_Slave_Receive(&hi2c1, (uint8_t*)MDR_req_buf, 2, 10000) != HAL_OK) {
#ifdef DEBUG_ENABLE
uint8_t debug_buf[] = "Failed to get MDR req\r\n";
HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100);
@@ -362,12 +346,12 @@ int main(void)
for(int x=0; x<2; x++) {
sprintf((char*)debug_buf+x, "%x", MDR_ACK_buf[x]);
}
- HAL_UART_Transmit(&huart1, debug_buf, MDR_enc_size, 100);
+ HAL_UART_Transmit(&huart1, debug_buf, MDR_enc_size, 100);
HAL_UART_Transmit(&huart1, term, 2, 100);
memset(debug_buf, 0, 128);
#endif
- pb_istream_t MDR_req_istream = pb_istream_from_buffer(MDR_req_buf, sizeof(MDR_req_buf));
+ pb_istream_t MDR_req_istream = pb_istream_from_buffer(MDR_req_buf, 2);
if(!pb_decode(&MDR_req_istream, m2s_MDR_request_fields, &MDR_req)) {
#ifdef DEBUG_ENABLE
uint8_t errbuf[] = "MDR request decoding error\r\n";
@@ -382,6 +366,7 @@ int main(void)
#endif /* TESTING_ENABLE */
HAL_GPIO_TogglePin(led_GPIO_Port, led_Pin);
+
if (HAL_I2C_Slave_Transmit(&hi2c1, (uint8_t*)MDR_ACK_buf, s2m_MDR_req_ACK_size, 10000) != HAL_OK) {
#ifdef DEBUG_ENABLE
sprintf((char*)debug_buf, "Unable to send MDR ACK. I2C error: %ld\r\n", HAL_I2C_GetError(&hi2c1));