summaryrefslogtreecommitdiff
path: root/src/main-data.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main-data.c')
-rw-r--r--src/main-data.c146
1 files changed, 1 insertions, 145 deletions
diff --git a/src/main-data.c b/src/main-data.c
index 46b0f36..911a901 100644
--- a/src/main-data.c
+++ b/src/main-data.c
@@ -100,9 +100,7 @@ int main(void)
#endif /* MASTER */
#endif /* TESTING_ENABLE */
-#ifdef MASTER
- /* Add MDR */
-
+ /* Add MDR */
uint8_t dev_idx = GET_IDX_FROM_ADDR(I2C_ADDRESS);
subs_info[dev_idx] = malloc(sizeof(subscription_info_t));
subs_info[dev_idx]->mod_idx = subs_info[dev_idx]->entity_idx =
@@ -132,148 +130,6 @@ int main(void)
routing();
/* HAL_Delay(500); */
/* } */
-
-#else /* Slave code*/
- {
- 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, 10000) != 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);
- }
- else {
- sprintf((char*)debug_buf, "Got SOR\r\n");
- 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);
- }
- 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) {
- uint8_t data_buf[128];
- size_t data_enc_size;
- s2m_data data;
- data.datapoints.funcs.encode = encode_datapoint_callback;
- pb_ostream_t data_ostream = pb_ostream_from_buffer(data_buf, sizeof(data_buf));
- if (!pb_encode(&data_ostream, s2m_data_fields, &data)) {
- sprintf((char*)debug_buf, "Data encoding error\r\n");
- HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100);
- memset(debug_buf, 0, 128);
- Error_Handler();
- }
- 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);
- Error_Handler();
- }
-
- 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);
-
- 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));
- HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100);
- memset(debug_buf, 0, 128);
- Error_Handler();
- }
- else {
- sprintf((char*)debug_buf, "SENT DOC\r\n");
- HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100);
- memset(debug_buf, 0, 128);
- }
-
- uint8_t CTS_buf[8];
-
- if (HAL_I2C_Slave_Receive(&hi2c1, (uint8_t*)CTS_buf, 2, 10000) != HAL_OK) {
- sprintf((char*)debug_buf, "Failed to get CTS: %ld\r\n", HAL_I2C_GetError(&hi2c1));
- HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100);
- memset(debug_buf, 0, 128);
- Error_Handler();
- }
- else {
- sprintf((char*)debug_buf, "Got CTS\r\n");
- HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100);
- memset(debug_buf, 0, 128);
- }
-
- if (HAL_I2C_Slave_Transmit(&hi2c1, (uint8_t*)data_buf, data_enc_size, 10000) != HAL_OK) {
- sprintf((char*)debug_buf, "Data I2C send error: %ld\r\n", HAL_I2C_GetError(&hi2c1));
- HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100);
- memset(debug_buf, 0, 128);
- Error_Handler();
- }
- else {
- sprintf((char*)debug_buf, "SENT DATA\r\n");
- HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100);
- memset(debug_buf, 0, 128);
- }
- }
- else if (SOR_message.SOR_code == 2) {
- uint8_t CTS_buf[] = {0x0, 0x1};
- uint8_t len_buf[4], *MDR_buf, *data_buf;
- /* _datapoint datapoints[16]; */
-
- HAL_I2C_Slave_Transmit(&hi2c1, CTS_buf, 2, 10000);
- sprintf((char*)debug_buf, "Sent CTS\r\n");
- HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100);
- memset(debug_buf, 0, 128);
-
- HAL_I2C_Slave_Receive(&hi2c1, len_buf, 4, 1000);
-
- uint16_t MDR_len = len_buf[1]+(len_buf[0]<<8);
- MDR_buf = malloc(MDR_len);
- uint16_t data_len = len_buf[3]+(len_buf[2]<<8);
- data_buf = malloc(data_len);
-
- sprintf((char*)debug_buf, "Got lengths. MDR: %d, data: %d\r\n", MDR_len, data_len);
- HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100);
- memset(debug_buf, 0, 128);
-
- HAL_I2C_Slave_Transmit(&hi2c1, CTS_buf, 2, 10000);
- HAL_I2C_Slave_Receive(&hi2c1, MDR_buf, MDR_len, 10000);
- HAL_I2C_Slave_Receive(&hi2c1, data_buf, data_len, 10000);
-
- _datapoint datapoint_message;
- s2m_MDR_response MDR_message;
- pb_istream_t MDR_istream = pb_istream_from_buffer(MDR_buf, MDR_len);
- pb_istream_t data_istream = pb_istream_from_buffer(data_buf, data_len);
-
- pb_decode(&MDR_istream, s2m_MDR_response_fields, &MDR_message);
- pb_decode(&data_istream, _datapoint_fields, &datapoint_message);
-
- sprintf((char*)debug_buf, "Got data from %ld, running version %f\r\n\tdata 0: %f\r\n", MDR_message.module_id, MDR_message.MDR_version, datapoint_message.data);
- HAL_UART_Transmit(&huart1, debug_buf, sizeof(debug_buf), 100);
- memset(debug_buf, 0, 128);
- }
- }
- }
-#endif /* MASTER */
-
- while (1)
- {
-
- }
}
hs_status_t handshake(uint32_t i2c_addr)