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