77 lines
1.4 KiB
C
77 lines
1.4 KiB
C
#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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|