|
|
@@ -1,4 +1,4 @@
|
|
|
-/*
|
|
|
+/**
|
|
|
* @file NbusCommunicator.cpp
|
|
|
* @brief Implemetnácia komunikačnej vrstvy: 1) internej 2) externej
|
|
|
* @date Mar 7, 2025
|
|
|
@@ -54,7 +54,7 @@ void NbusCommunicator::_receive(){
|
|
|
memset(_data_packet_comm, 0, NBUS_MAX_FRAME_SIZE);
|
|
|
// komunikacia v DMA musi byt spracovana aj tak ako blokujuca
|
|
|
// takto je tu menej rezie. Timeout je 2ms
|
|
|
- HAL_StatusTypeDef status = HAL_UARTEx_ReceiveToIdle(_uart_nbus, _data_packet_comm, NBUS_MAX_FRAME_SIZE, &received_size, 2);
|
|
|
+ HAL_StatusTypeDef status = HAL_UARTEx_ReceiveToIdle(_uart_nbus, _data_packet_comm, NBUS_MAX_FRAME_SIZE, &received_size, UART_NBUS_RX_TIMEOUT);
|
|
|
|
|
|
_packet_rx->Init();
|
|
|
|
|
|
@@ -86,6 +86,7 @@ void NbusCommunicator::send(Nbus_pdu *pdu, uint8_t *data, uint8_t data_len){
|
|
|
for(int i = 0 ; i< data_len ; i++){
|
|
|
_packet_tx->AddInt8(data[i]);
|
|
|
}
|
|
|
+
|
|
|
int length = _packet_tx->Commit();
|
|
|
|
|
|
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);
|
|
|
@@ -100,6 +101,7 @@ void NbusCommunicator::sendToMaster(DataFrame *master_frame){
|
|
|
__NOP(); // cakanie na ukoncenie prebiehajuceho odosielania
|
|
|
// tu to moze byt vcelku tesno odoslany dalsi paket. je tam pauza o dlzke 1.2bit
|
|
|
}
|
|
|
+
|
|
|
HAL_UART_Transmit_DMA(_uart_master, master_frame->GetFrame(), master_frame->GetLength());
|
|
|
}
|
|
|
|