48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
//
|
|
// Created by cfif on 12.02.2026.
|
|
//
|
|
#include <SystemDelayInterface.h>
|
|
#include "LinSensorTasks.h"
|
|
#include "CmsisRtosThreadUtils.h"
|
|
#include "CanPorts.h"
|
|
#include "fc7xxx_driver_lin.h"
|
|
#include "Lins.h"
|
|
#include "LoggerInterface.h"
|
|
#include "memory.h"
|
|
|
|
#define LOG_SIGN "Lin0"
|
|
#define LOGGER env->logger
|
|
|
|
static lin_event_id_t SEND_SENSOR_COM_x(tLinIO *linIo, uint8_t COM_ADR) {
|
|
lin_event_id_t res = linIo->runCommand(linIo->env, COM_ADR, 40);
|
|
SystemDelayMs(30);
|
|
return res;
|
|
}
|
|
|
|
|
|
static lin_event_id_t Get_AirQS_Stat(tLinIO *linIo, tLinData *linData, tAirQS_Stat *p_AirQS_Stat) {
|
|
lin_event_id_t res;
|
|
|
|
tAirQS_Stat *tAirQS_Stat_ = (tAirQS_Stat *) linData->g_aRxBuffer;
|
|
|
|
uint8_t retry = 3;
|
|
|
|
while (retry) {
|
|
|
|
linData->direction = LIN_DIRECTION_GET;
|
|
|
|
linData->g_aTxBufferLen = 0;
|
|
linData->g_aRxBufferLen = sizeof(tAirQS_Stat);
|
|
|
|
res = SEND_SENSOR_COM_x(linIo, AirQS_Stat);
|
|
|
|
if (res == LIN_RX_COMPLETED) {
|
|
memcpy(p_AirQS_Stat, tAirQS_Stat_, sizeof(tAirQS_Stat));
|
|
break;
|
|
}
|
|
|
|
--retry;
|
|
}
|
|
|
|
return res;
|
|
} |