Initial commit: CCU621_M firmware project with BLE debug link support.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
#include "mdu_comm/mdu_stm_status_comm.h"
|
||||
#include "mdu_comm/mdu_comm_task.h"
|
||||
#include "collect_ctrl/yk_ctrl.h"
|
||||
|
||||
|
||||
#if (GUN_LINK_COMM_EN)
|
||||
|
||||
/* STM32072 板状态 CAN 帧:扩展帧 ID 0x1801AABB
|
||||
* data[0] = A枪插枪(0=未插枪 1=插枪)
|
||||
* data[1] = B枪插枪
|
||||
* data[2] = DI1
|
||||
* data[3] = DI2
|
||||
*/
|
||||
#define STM_STATUS_CAN_ID ((U32_T)0x1801AABB)
|
||||
|
||||
/* STM32072 板控制 CAN 帧:扩展帧 ID 0x1802BBAA
|
||||
* data[0] = DO0(本板 DO1,对应辅源1)
|
||||
* data[1] = DO1(本板 DO2,对应辅源2)
|
||||
*/
|
||||
#define STM_CTRL_CAN_ID ((U32_T)0x1802BBAA)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
U8_T u8_gun_plug[2]; // 0:A枪 1:B枪
|
||||
U8_T u8_di[2]; // 0:DI1 1:DI2
|
||||
U8_T u8_aux[2]; // 0:AUX_A 1:AUX_B
|
||||
} S_STM_STATUS_CAN;
|
||||
|
||||
static S_STM_STATUS_CAN s_stm_status_can;
|
||||
|
||||
U8_T u8_stm_status_can_rx(CAN_DATA *rxMsg)
|
||||
{
|
||||
if (rxMsg->ID != STM_STATUS_CAN_ID)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
s_stm_status_can.u8_gun_plug[0] = (rxMsg->Data[0] ? 1U : 0U);
|
||||
s_stm_status_can.u8_gun_plug[1] = (rxMsg->Data[1] ? 1U : 0U);
|
||||
s_stm_status_can.u8_di[0] = (rxMsg->Data[2] ? 1U : 0U);
|
||||
s_stm_status_can.u8_di[1] = (rxMsg->Data[3] ? 1U : 0U);
|
||||
s_stm_status_can.u8_aux[0] = (rxMsg->Data[4] ? 1U : 0U); // AUX_PADET_A
|
||||
s_stm_status_can.u8_aux[1] = (rxMsg->Data[5] ? 1U : 0U); // AUX_PADET_B
|
||||
return 1;
|
||||
}
|
||||
|
||||
void v_stm_status_can_send_aux_frame(void)
|
||||
{
|
||||
CAN_DATA can_data;
|
||||
memset(&can_data , 0 , sizeof(CAN_DATA));
|
||||
|
||||
can_data.ID = STM_CTRL_CAN_ID; /* 与 STM32 侧 APP_CTRL_CAN_ID 保持一致 */
|
||||
can_data.Len = 8;
|
||||
|
||||
/* 辅源1/2 控制:E_CMD 为 0/1,直接作为 DO0/DO1 的控制位 */
|
||||
can_data.Data[0] = (U8_T)e_yk_get_ctrl_cmd(E_KY_TYPE_AUX_POWER1);
|
||||
can_data.Data[1] = (U8_T)e_yk_get_ctrl_cmd(E_KY_TYPE_AUX_POWER2);
|
||||
|
||||
v_MduCanMsg_send(&can_data);
|
||||
}
|
||||
|
||||
U8_T u8_stm_status_get_gun_plug(U8_T u8_gunNo)
|
||||
{
|
||||
if (u8_gunNo < 2)
|
||||
{
|
||||
return s_stm_status_can.u8_gun_plug[u8_gunNo];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
U8_T u8_stm_status_get_di(U8_T u8_index)
|
||||
{
|
||||
if (u8_index < 2)
|
||||
{
|
||||
return s_stm_status_can.u8_di[u8_index];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
U8_T u8_stm_status_get_aux(U8_T u8_index)
|
||||
{
|
||||
if (u8_index < 2)
|
||||
{
|
||||
return s_stm_status_can.u8_aux[u8_index];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
// 判断是否有国标枪,若有则启用国标相关功能
|
||||
U8_T u8_stm_gb_enable(void)
|
||||
{
|
||||
return (g_t_share_data.t_sys_fix_cfg.u8_gun_type[0] == GUN_TYPE_GB ||
|
||||
g_t_share_data.t_sys_fix_cfg.u8_gun_type[1] == GUN_TYPE_GB);
|
||||
}
|
||||
|
||||
#else /* GUN_LINK_COMM_EN == 0 */
|
||||
|
||||
U8_T u8_stm_status_can_rx(CAN_DATA *rxMsg)
|
||||
{
|
||||
(void)rxMsg;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void v_stm_status_can_send_aux_frame(void)
|
||||
{
|
||||
}
|
||||
|
||||
U8_T u8_stm_status_get_gun_plug(U8_T u8_gunNo)
|
||||
{
|
||||
(void)u8_gunNo;
|
||||
return 0;
|
||||
}
|
||||
|
||||
U8_T u8_stm_status_get_di(U8_T u8_index)
|
||||
{
|
||||
(void)u8_index;
|
||||
return 0;
|
||||
}
|
||||
// 判断是否有国标枪,若有则启用国标相关功能
|
||||
U8_T u8_stm_gb_enable(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* GUN_LINK_COMM_EN */
|
||||
|
||||
Reference in New Issue
Block a user