Files

77 lines
1.4 KiB
C
Raw Permalink Normal View History

2026-04-09 10:14:20 +08:00
#include "bsp_mx_lin.h"
#include "bsp_lin.h"
#include "bsp_airsac.h"
static lin_msg_struct g_lin_msg = {0};
uint8_t lin_set_airsac_stop(lin_msg_struct * p_lin_msg)
{
airsac_stop();
return 1;
}
uint8_t lin_set_airsac_discharge(lin_msg_struct * p_lin_msg)
{
if(p_lin_msg->datalen >= 2)
{
airsac_num airsac = (airsac_num)p_lin_msg->data[1];
airsac_discharge(airsac);
return 1;
}
return 0;
}
uint8_t lin_set_airsac_charge(lin_msg_struct * p_lin_msg)
{
if(p_lin_msg->datalen >= 2)
{
airsac_num airsac = (airsac_num)p_lin_msg->data[1];
airsac_charge(airsac);
return 1;
}
return 0;
}
uint8_t lin_set_all_airsac_discharge(lin_msg_struct * p_lin_msg)
{
all_airsac_discharge();
return 1;
}
uint8_t lin_set_all_airsac_charge(lin_msg_struct * p_lin_msg)
{
all_airsac_charge();
return 1;
}
void mx_lin_handle(void)
{
lin_msg_struct * p_lin_msg = &g_lin_msg;
if(rx_ring_buffer_get_lin_msg(p_lin_msg))
{
if(p_lin_msg->frameid == 0x03)
{
switch(p_lin_msg->data[0])
{
case 0x10: lin_set_airsac_stop(p_lin_msg);
break;
case 0x11: lin_set_airsac_discharge(p_lin_msg);
break;
case 0x12: lin_set_airsac_charge(p_lin_msg);
break;
case 0x13: lin_set_all_airsac_discharge(p_lin_msg);
break;
case 0x14: lin_set_all_airsac_charge(p_lin_msg);
break;
default:
break;
}
}
}
}