handshake event implementation
This commit is contained in:
@@ -187,7 +187,6 @@ int main(void)
|
||||
HAL_UART_Receive_DMA(&huart2, (uint8_t*)&RX2Msg, sizeof(UARTMessage));
|
||||
HAL_UART_Receive_DMA(&huart4, (uint8_t*)&RX4Msg, sizeof(UARTMessage));
|
||||
HAL_UART_Receive_DMA(&huart5, (uint8_t*)&RX5Msg, sizeof(UARTMessage));
|
||||
|
||||
/* USER CODE END 2 */
|
||||
|
||||
/* Infinite loop */
|
||||
@@ -198,6 +197,11 @@ int main(void)
|
||||
case MODE_ACTIVE:
|
||||
resetReport();
|
||||
matrixScan();
|
||||
UARTMessage UARTREPORT;
|
||||
UARTREPORT.DEPTH = DEPTH;
|
||||
UARTREPORT.TYPE = 0xEE;
|
||||
memcpy(UARTREPORT.KEYPRESS, REPORT.KEYPRESS, sizeof(UARTREPORT.KEYPRESS));
|
||||
HAL_UART_Transmit_DMA(PARENT, (uint8_t*)&UARTREPORT, sizeof(UARTREPORT));
|
||||
break;
|
||||
|
||||
case MODE_INACTIVE:
|
||||
@@ -228,7 +232,11 @@ int main(void)
|
||||
matrixScan();
|
||||
USBD_HID_SendReport(&hUsbDeviceFS, (uint8_t*)&REPORT, sizeof(REPORT));
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
HAL_Delay(50);
|
||||
/* USER CODE END WHILE */
|
||||
|
||||
@@ -287,19 +295,19 @@ void SystemClock_Config(void)
|
||||
// UART Message Requests Goes Here
|
||||
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {
|
||||
if (huart->Instance == USART1) {
|
||||
handleUARTMessages((uint8_t*)&RX1Msg, huart);
|
||||
handleUARTMessages((uint8_t*)&RX1Msg, &huart1);
|
||||
HAL_UART_Receive_DMA(&huart1, (uint8_t*)&RX1Msg, sizeof(UARTMessage));
|
||||
}
|
||||
else if (huart->Instance == USART2) {
|
||||
handleUARTMessages((uint8_t*)&RX2Msg, huart);
|
||||
handleUARTMessages((uint8_t*)&RX2Msg, &huart2);
|
||||
HAL_UART_Receive_DMA(&huart2, (uint8_t*)&RX2Msg, sizeof(UARTMessage));
|
||||
}
|
||||
else if (huart->Instance == UART4) {
|
||||
handleUARTMessages((uint8_t*)&RX4Msg, huart);
|
||||
handleUARTMessages((uint8_t*)&RX4Msg, &huart4);
|
||||
HAL_UART_Receive_DMA(&huart4, (uint8_t*)&RX4Msg, sizeof(UARTMessage));
|
||||
}
|
||||
else if (huart->Instance == UART5) {
|
||||
handleUARTMessages((uint8_t*)&RX5Msg, huart);
|
||||
handleUARTMessages((uint8_t*)&RX5Msg, &huart5);
|
||||
HAL_UART_Receive_DMA(&huart5, (uint8_t*)&RX5Msg, sizeof(UARTMessage));
|
||||
}
|
||||
}
|
||||
@@ -320,6 +328,8 @@ void findBestParent(){
|
||||
if(least_val < 0xFF){
|
||||
PARENT = least_port;
|
||||
DEPTH = least_val + 1;
|
||||
MODE = MODE_ACTIVE;
|
||||
HAL_Delay(500);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -348,13 +358,21 @@ void handleUARTMessages(uint8_t *data, UART_HandleTypeDef *sender) {
|
||||
|
||||
// Requested to be a parent
|
||||
case 0xFF:
|
||||
reply.TYPE = 0xAA;
|
||||
reply.DEPTH = DEPTH; // use your local DEPTH
|
||||
memset(reply.KEYPRESS, 0, sizeof(reply.KEYPRESS));
|
||||
|
||||
HAL_UART_Transmit(sender, (uint8_t*)&reply, sizeof(reply), HAL_MAX_DELAY);
|
||||
if(MODE!=MODE_INACTIVE){
|
||||
reply.TYPE = 0xAA;
|
||||
reply.DEPTH = DEPTH; // use your local DEPTH
|
||||
memset(reply.KEYPRESS, 0, sizeof(reply.KEYPRESS));
|
||||
HAL_UART_Transmit_DMA(sender, (uint8_t*)&reply, sizeof(reply));
|
||||
}
|
||||
break;
|
||||
|
||||
case 0xEE:
|
||||
//TODO: Append message to the thingy
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
../Core/Src/main.c:149:5:main 6
|
||||
../Core/Src/main.c:244:6:SystemClock_Config 3
|
||||
../Core/Src/main.c:288:6:HAL_UART_RxCpltCallback 5
|
||||
../Core/Src/main.c:308:6:findBestParent 4
|
||||
../Core/Src/main.c:327:6:handleUARTMessages 7
|
||||
../Core/Src/main.c:362:6:addUSBReport 3
|
||||
../Core/Src/main.c:370:6:matrixScan 4
|
||||
../Core/Src/main.c:383:6:resetReport 1
|
||||
../Core/Src/main.c:394:6:Error_Handler 1
|
||||
../Core/Src/main.c:252:6:SystemClock_Config 3
|
||||
../Core/Src/main.c:296:6:HAL_UART_RxCpltCallback 5
|
||||
../Core/Src/main.c:316:6:findBestParent 4
|
||||
../Core/Src/main.c:337:6:handleUARTMessages 8
|
||||
../Core/Src/main.c:376:6:addUSBReport 3
|
||||
../Core/Src/main.c:384:6:matrixScan 4
|
||||
../Core/Src/main.c:397:6:resetReport 1
|
||||
../Core/Src/main.c:408:6:Error_Handler 1
|
||||
|
||||
Binary file not shown.
@@ -1,9 +1,9 @@
|
||||
../Core/Src/main.c:149:5:main 24 static
|
||||
../Core/Src/main.c:244:6:SystemClock_Config 88 static
|
||||
../Core/Src/main.c:288:6:HAL_UART_RxCpltCallback 16 static
|
||||
../Core/Src/main.c:308:6:findBestParent 24 static
|
||||
../Core/Src/main.c:327:6:handleUARTMessages 48 static
|
||||
../Core/Src/main.c:362:6:addUSBReport 24 static
|
||||
../Core/Src/main.c:370:6:matrixScan 16 static
|
||||
../Core/Src/main.c:383:6:resetReport 8 static
|
||||
../Core/Src/main.c:394:6:Error_Handler 4 static,ignoring_inline_asm
|
||||
../Core/Src/main.c:149:5:main 40 static
|
||||
../Core/Src/main.c:252:6:SystemClock_Config 88 static
|
||||
../Core/Src/main.c:296:6:HAL_UART_RxCpltCallback 16 static
|
||||
../Core/Src/main.c:316:6:findBestParent 24 static
|
||||
../Core/Src/main.c:337:6:handleUARTMessages 48 static
|
||||
../Core/Src/main.c:376:6:addUSBReport 24 static
|
||||
../Core/Src/main.c:384:6:matrixScan 16 static
|
||||
../Core/Src/main.c:397:6:resetReport 8 static
|
||||
../Core/Src/main.c:408:6:Error_Handler 4 static,ignoring_inline_asm
|
||||
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user