в модуль, который считывает фреймы с кана, добавлен объект содержаший ряд датчиком, температура двигателя, внешняя температура и др.

This commit is contained in:
parent 8d47450c8c
commit 5331b79999
2 changed files with 95 additions and 4 deletions

View File

@ -18,6 +18,7 @@ void CanMain_Init(
) {
env->CanIO = CanIO;
env->slog = slog;
env->canData.engineOXTemperature = 0;
InitThreadBlock(env->T_can_Main, "CanMain", osPriorityNormal);
}
@ -30,6 +31,18 @@ void CanMainTask(tCanMain *env) {
for (;;) {
volatile uint16_t recv = env->CanIO->receive0(env->CanIO->env, (uint8_t *) &canFrame, 1, 1000);
// volatile uint16_t recv = env->CanIO->receive0(env->CanIO->env, (uint8_t *) &canFrame, 1, 1000);
// env->canData.engineOXTemperature = canFrame.Data[0];
// env->canData.externalTemperature = canFrame.Data[1];
/*
if (env->time3E8_2 < SystemGetMs()) {
env->time3E8_2 = SystemGetMs() + 1000;
LoggerStrFormatInfo(LOGGER, LOG_SIGN, "Уровень топлива = %d", (uint8_t)FuelLevel)
}
*/
/*
if (recv > 0) {
volatile uint16_t r1cc = recv;
@ -44,10 +57,10 @@ void CanMainTask(tCanMain *env) {
volatile uint16_t sent = env->CanIO->transmit(env->CanIO->env, (uint8_t *) canFrame.Data, 8, 300);
// SystemDelayMs(1000);
}
}
void CanMain_Start(tCanMain *env) {

View File

@ -10,13 +10,91 @@
#include "LoggerInterface.h"
#include "LoggerToSerialPort.h"
#define NUM_ACC_COUNT_MAX (5)
typedef struct {
volatile uint32_t engineSpeed; //обороты двигателя
volatile uint8_t engineOXTemperature; // Температура ОХ двигателя
volatile float externalTemperature; // Внешняя температура, С
volatile uint8_t fuelLevel; // Уровень топлива, л
volatile uint8_t engineHours; // Моточасы
volatile uint8_t speed; // Скорость
volatile uint8_t tripSpentFuel; // Ср. расход за поездку
volatile uint16_t numberAccelerations; // Количество ускорений за поездку
volatile uint16_t numberBraking;// Количество торможений за поездку
uint16_t ABS_VehicleSpeed;
} tCanData;
typedef struct {
tSerialPortFrameIO *CanIO;
tLoggerToSerialPort *slog;
tCanData canData;
tStaticThreadBlock(512) T_can_Main;
} tCanMain;
typedef struct {
tSerialPortFrameIO *CanIO;
tLoggerToSerialPort *slog;
tStaticThreadBlock(512) T_can_Main;
} tCanMain;
uint8_t filterIdCount;
uint32_t filterReqId[16];
uint32_t filterRespId[16];
uint8_t filterDirReq[16];
uint32_t EngineSpeed;
uint32_t timeID;
uint32_t time380_1;
uint32_t time380_2;
uint32_t time3E8_1;
uint32_t time3E8_2;
uint32_t timeCan;
uint8_t RND;
bool invalidKey;
uint8_t invalidKeyAttempts;
uint32_t invalidKeyIsDelay;
tCanMain *canMain;
uint32_t timeAbsSpeedOnSecond;
uint32_t timeAbsSpeed;
uint32_t Counter_SENSORS_AN_TripMileage_MM;
uint32_t Counter_SENSORS_AN_TripMileage_MICRO_L;
struct {
float acc_last[NUM_ACC_COUNT_MAX];
uint8_t index;
float old_speed;
bool data_erase;
} calc_scoring;
struct {
uint32_t acc_calc_time;
uint32_t gnss_course_speed;
uint32_t reference_speed;
uint32_t diff_speed_up;
uint32_t diff_speed_down;
} gnss_config;
struct {
uint32_t trip_braking;
uint32_t trip_acceleration;
} state_get;
struct {
uint32_t total_acceleration;
uint32_t acceleration;
uint32_t total_braking;
uint32_t braking;
} bc_get;
uint32_t isTimeSENSORS_DIG_BodyCanBusStatus;
void *envEgtsProcessing;
bool *isEnableTelematicaSendPoints;
tStaticThreadBlock(1024) T_can_MainAdditional;
} tCanMainAdditional;
void CanMain_Init(
tCanMain *env,