You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

169 lines
5.0 KiB

3 weeks ago
/*
* echo.c
*
* Created on: Dec 24, 2024
* Author: akeguo
*/
#include "echo.h"
#include "BHBF_ROBOT.h"
#include "BSP/bsp_include.h"
void echo_back_485_1(uint8_t *buffer, uint16_t length);
void echo_back_485_2(uint8_t *buffer, uint16_t length);
void echo_back_485_3(uint8_t *buffer, uint16_t length);
void echo_back_485_4(uint8_t *buffer, uint16_t length);
void echo_back_InterCall_DEBUG(uint8_t *buffer, uint16_t length);
void echo_back_SBUS(uint8_t *buffer, uint16_t length);
void echo_back_LTE_7S0_Serial(uint8_t *buffer, uint16_t length);
void echo_back_LPUART1(uint8_t *buffer, uint16_t length);
struct UARTHandler *echoHandler_485_1;
struct UARTHandler *echoHandler_485_2;
struct UARTHandler *echoHandler_485_3;
struct UARTHandler *echoHandler_485_4;
struct UARTHandler *echoHandler_InterCall_DEBUG;
struct UARTHandler *echoHandler_E28_SBUS_UART;
struct UARTHandler *echoHandler_LTE_7S0_Serial_UART;
struct UARTHandler *echoHandler_LPUART1;
FDCANHandler *echo_CANFD_2;
FDCANHandler *echo_CANFD_1;
void echo_back_CANFD_1(uint32_t canID, uint8_t *buffer,
uint32_t length);
void echo_back_CANFD_2(uint32_t canID, uint8_t *buffer,
uint32_t length);
void echo_intialize()
{
echoHandler_485_1 = &RS_485_1_UART_Handler;
echoHandler_485_2 = &RS_485_2_UART_Handler;
echoHandler_485_3 = &RS_485_3_UART_Handler;
echoHandler_485_4 = &RS_485_4_UART_Handler;
echoHandler_InterCall_DEBUG = &InterCall_DEBUG_UART_Handler;
echoHandler_E28_SBUS_UART = &E28_SBUS_UART_Handler;
echoHandler_LTE_7S0_Serial_UART = &LTE_7S0_Serial_UART_Handler;
echoHandler_485_1->UART_Decode = echo_back_485_1;
echoHandler_485_1->Wait_time = 10;
echoHandler_485_2->UART_Decode = echo_back_485_2;
echoHandler_485_2->Wait_time = 10;
echoHandler_485_3->UART_Decode = echo_back_485_3;
echoHandler_485_3->Wait_time = 10;
echoHandler_485_4->UART_Decode = echo_back_485_4;
echoHandler_485_4->Wait_time = 10;
echoHandler_InterCall_DEBUG->UART_Decode = echo_back_InterCall_DEBUG;
echoHandler_InterCall_DEBUG->Wait_time = 10;
echoHandler_E28_SBUS_UART->UART_Decode = echo_back_SBUS;
echoHandler_E28_SBUS_UART->Wait_time = 10;
echoHandler_LTE_7S0_Serial_UART->UART_Decode = echo_back_LTE_7S0_Serial;
echoHandler_LTE_7S0_Serial_UART->Wait_time = 10;
echo_CANFD_1=&FD_CAN_1_Handler;
echo_CANFD_2=&FD_CAN_2_Handler;
echo_CANFD_1->CAN_Decode = echo_back_CANFD_1;
echo_CANFD_2->CAN_Decode = echo_back_CANFD_2;
echoHandler_LPUART1=&LPUART1_UART_Handler;
echoHandler_LPUART1->UART_Decode = echo_back_LPUART1;
echoHandler_LPUART1->Wait_time = 10;
}
void echo_back_485_1(uint8_t *buffer, uint16_t length)
{
memcpy(echoHandler_485_1->Tx_Buf, buffer, length);
echoHandler_485_1->TxCount = length;
echoHandler_485_1->UART_Tx(echoHandler_485_1);
}
void echo_back_485_2(uint8_t *buffer, uint16_t length)
{
// memcpy(echoHandler_485_2->Tx_Buf, buffer, length);
// echoHandler_485_2->TxCount = length;
// echoHandler_485_2->UART_Tx(echoHandler_485_2);
memcpy(echoHandler_485_1->Tx_Buf, buffer, length);
echoHandler_485_1->TxCount = length;
echoHandler_485_1->UART_Tx(echoHandler_485_1);
}
void echo_back_485_3(uint8_t *buffer, uint16_t length)
{
memcpy(echoHandler_485_3->Tx_Buf, buffer, length);
echoHandler_485_3->TxCount = length;
echoHandler_485_3->UART_Tx(echoHandler_485_3);
}
void echo_back_485_4(uint8_t *buffer, uint16_t length)
{
memcpy(echoHandler_485_4->Tx_Buf, buffer, length);
echoHandler_485_4->TxCount = length;
echoHandler_485_4->UART_Tx(echoHandler_485_4);
}
void echo_back_InterCall_DEBUG(uint8_t *buffer, uint16_t length)
{
memcpy(echoHandler_InterCall_DEBUG->Tx_Buf, buffer, length);
echoHandler_InterCall_DEBUG->TxCount = length;
echoHandler_InterCall_DEBUG->UART_Tx(echoHandler_InterCall_DEBUG);
}
void echo_back_SBUS(uint8_t *buffer, uint16_t length)
{
// memcpy(echoHandler_E28_SBUS_UART->Tx_Buf, buffer, length);
// echoHandler_E28_SBUS_UART->TxCount = length;
// echoHandler_E28_SBUS_UART->UART_Tx(echoHandler_E28_SBUS_UART);
memcpy(echoHandler_485_1->Tx_Buf, buffer, length);
echoHandler_485_1->TxCount = length;
echoHandler_485_1->UART_Tx(echoHandler_485_1);
}
void echo_back_LTE_7S0_Serial(uint8_t *buffer, uint16_t length)
{
memcpy(echoHandler_LTE_7S0_Serial_UART->Tx_Buf, buffer, length);
echoHandler_LTE_7S0_Serial_UART->TxCount = length;
echoHandler_LTE_7S0_Serial_UART->UART_Tx(echoHandler_LTE_7S0_Serial_UART);
}
void echo_back_LPUART1(uint8_t *buffer, uint16_t length)
{
memcpy(echoHandler_LPUART1->Tx_Buf, buffer, length);
echoHandler_LPUART1->TxCount = length;
echoHandler_LPUART1->UART_Tx(echoHandler_LPUART1);
}
void echo_back_CANFD_1(uint32_t canID, uint8_t *buffer,
uint32_t length)
{
memcpy(echo_CANFD_1->Tx_Buf,buffer,length);
echo_CANFD_1->Tx_Buf[0] = canID*2;
echo_CANFD_1->AddCANSendList(echo_CANFD_1, canID*2, length,
echo_CANFD_1->Tx_Buf, 2, NULL);
}
void echo_back_CANFD_2(uint32_t canID, uint8_t *buffer,
uint32_t length)
{
memcpy(echo_CANFD_2->Tx_Buf,buffer,length);
echo_CANFD_2->Tx_Buf[0] = canID*2;
echo_CANFD_2->AddCANSendList(echo_CANFD_2, canID*2, length,
echo_CANFD_2->Tx_Buf, 2, NULL); //
}