This commit is contained in:
cfif 2026-05-29 15:09:13 +03:00
parent 7de6ea1a1d
commit 47757ea4ee
2 changed files with 187 additions and 89 deletions

View File

@ -9,32 +9,7 @@
#include "AsciiStringParsingUtils.h" #include "AsciiStringParsingUtils.h"
#include "memory.h" #include "memory.h"
#include <stdlib.h> #include <stdlib.h>
#include "dig_pot.h"
/*
void sendOk(tAtCmd *AtCmd) {
AtCmdPrepare(AtCmd);
AtCmdTxClear(AtCmd);
AtCmdTxAddStatic(AtCmd, "OK");
AtCmdTxSendLn(AtCmd);
AtCmdRxClear(AtCmd);
}
void sendError(tAtCmd *AtCmd) {
AtCmdPrepare(AtCmd);
AtCmdTxClear(AtCmd);
AtCmdTxAddStatic(AtCmd, "ERROR");
AtCmdTxSendLn(AtCmd);
AtCmdRxClear(AtCmd);
}
void sendVers(tAtCmd *AtCmd) {
AtCmdPrepare(AtCmd);
AtCmdTxClear(AtCmd);
AtCmdTxAddStatic(AtCmd, "v001");
AtCmdTxSendLn(AtCmd);
AtCmdRxClear(AtCmd);
}
*/
//начало ------------------------------Отправка без подтверждения------------------------------------------------------- //начало ------------------------------Отправка без подтверждения-------------------------------------------------------
@ -45,7 +20,6 @@ void TaskSerialToCanCyclic0_Init(tTaskSerialToCanCyclic *env,
tSerialPortFrameIO *ioCAN tSerialPortFrameIO *ioCAN
) { ) {
// env->access = osMutexNew(NULL);
env->ioCAN = ioCAN; env->ioCAN = ioCAN;
env->txDataQueue = osMessageQueueNew(20, sizeof(can_rx_message_type), NULL); env->txDataQueue = osMessageQueueNew(20, sizeof(can_rx_message_type), NULL);
@ -57,8 +31,6 @@ void TaskSerialToCanCyclic0_Init(tTaskSerialToCanCyclic *env,
static _Noreturn void Serial_ToCanCyclic0_Thread(tTaskSerialToCanCyclic *env) { static _Noreturn void Serial_ToCanCyclic0_Thread(tTaskSerialToCanCyclic *env) {
for (;;) { for (;;) {
// if (osMutexAcquire(env->access, 1000) == osOK) {
can_rx_message_type data; can_rx_message_type data;
if (osMessageQueueGet(env->txDataQueue, &data, NULL, 1000) == osOK) { if (osMessageQueueGet(env->txDataQueue, &data, NULL, 1000) == osOK) {
@ -71,18 +43,13 @@ static _Noreturn void Serial_ToCanCyclic0_Thread(tTaskSerialToCanCyclic *env) {
} }
} }
// osMutexRelease(env->access);
// }
} }
} }
uint32_t GetCountQueueCanCyclic0(tTaskSerialToCanCyclic *env) { uint32_t GetCountQueueCanCyclic0(tTaskSerialToCanCyclic *env) {
uint32_t count = 0; uint32_t count = 0;
// if (osMutexAcquire(env->access, 1000) == osOK) {
count = osMessageQueueGetCount(env->txDataQueue); count = osMessageQueueGetCount(env->txDataQueue);
// osMutexRelease(env->access);
// }
return count; return count;
} }
@ -90,10 +57,7 @@ uint32_t GetCountQueueCanCyclic0(tTaskSerialToCanCyclic *env) {
osStatus_t PutQueueCanCyclic0(tTaskSerialToCanCyclic *env, can_rx_message_type *dataCan) { osStatus_t PutQueueCanCyclic0(tTaskSerialToCanCyclic *env, can_rx_message_type *dataCan) {
osStatus_t status = osErrorTimeout; osStatus_t status = osErrorTimeout;
// if (osMutexAcquire(env->access, 1000) == osOK) {
status = osMessageQueuePut(env->txDataQueue, dataCan, 0x0, 0U); status = osMessageQueuePut(env->txDataQueue, dataCan, 0x0, 0U);
// osMutexRelease(env->access);
// }
return status; return status;
} }
@ -118,7 +82,6 @@ void TaskSerialToCanCyclic1_Init(tTaskSerialToCanCyclic *env,
) { ) {
// env->access = osMutexNew(NULL);
env->ioCAN = ioCAN; env->ioCAN = ioCAN;
env->txDataQueue = osMessageQueueNew(20, sizeof(can_rx_message_type), NULL); env->txDataQueue = osMessageQueueNew(20, sizeof(can_rx_message_type), NULL);
@ -130,8 +93,6 @@ void TaskSerialToCanCyclic1_Init(tTaskSerialToCanCyclic *env,
static _Noreturn void Serial_ToCanCyclic1_Thread(tTaskSerialToCanCyclic *env) { static _Noreturn void Serial_ToCanCyclic1_Thread(tTaskSerialToCanCyclic *env) {
for (;;) { for (;;) {
// if (osMutexAcquire(env->access, 1000) == osOK) {
can_rx_message_type data; can_rx_message_type data;
if (osMessageQueueGet(env->txDataQueue, &data, NULL, 1000) == osOK) { if (osMessageQueueGet(env->txDataQueue, &data, NULL, 1000) == osOK) {
@ -144,18 +105,13 @@ static _Noreturn void Serial_ToCanCyclic1_Thread(tTaskSerialToCanCyclic *env) {
} }
} }
// osMutexRelease(env->access);
// }
} }
} }
uint32_t GetCountQueueCanCyclic1(tTaskSerialToCanCyclic *env) { uint32_t GetCountQueueCanCyclic1(tTaskSerialToCanCyclic *env) {
uint32_t count = 0; uint32_t count = 0;
// if (osMutexAcquire(env->access, 1000) == osOK) {
count = osMessageQueueGetCount(env->txDataQueue); count = osMessageQueueGetCount(env->txDataQueue);
// osMutexRelease(env->access);
// }
return count; return count;
} }
@ -163,10 +119,7 @@ uint32_t GetCountQueueCanCyclic1(tTaskSerialToCanCyclic *env) {
osStatus_t PutQueueCanCyclic1(tTaskSerialToCanCyclic *env, can_rx_message_type *dataCan) { osStatus_t PutQueueCanCyclic1(tTaskSerialToCanCyclic *env, can_rx_message_type *dataCan) {
osStatus_t status = osErrorTimeout; osStatus_t status = osErrorTimeout;
// if (osMutexAcquire(env->access, 1000) == osOK) {
status = osMessageQueuePut(env->txDataQueue, dataCan, 0x0, 0U); status = osMessageQueuePut(env->txDataQueue, dataCan, 0x0, 0U);
// osMutexRelease(env->access);
// }
return status; return status;
} }
@ -193,7 +146,6 @@ void TaskSerialToCanSpontany_Init(tTaskSerialToCanSpontany *env,
) { ) {
// env->access = osMutexNew(NULL);
env->ioCAN = ioCAN; env->ioCAN = ioCAN;
env->ioUSB1 = ioUSB1; env->ioUSB1 = ioUSB1;
@ -209,8 +161,6 @@ void TaskSerialToCanSpontany_Init(tTaskSerialToCanSpontany *env,
static _Noreturn void Serial_ToCanSpontany_Thread(tTaskSerialToCanSpontany *env) { static _Noreturn void Serial_ToCanSpontany_Thread(tTaskSerialToCanSpontany *env) {
for (;;) { for (;;) {
// if (osMutexAcquire(env->access, 1000) == osOK) {
can_rx_message_Spontany data; can_rx_message_Spontany data;
if (osMessageQueueGet(env->txDataQueue, &data, NULL, 1000) == osOK) { if (osMessageQueueGet(env->txDataQueue, &data, NULL, 1000) == osOK) {
@ -254,18 +204,13 @@ static _Noreturn void Serial_ToCanSpontany_Thread(tTaskSerialToCanSpontany *env)
} }
} }
// osMutexRelease(env->access);
// }
} }
} }
osStatus_t PutQueueCanSpontany(tTaskSerialToCanSpontany *env, can_rx_message_Spontany *dataCan) { osStatus_t PutQueueCanSpontany(tTaskSerialToCanSpontany *env, can_rx_message_Spontany *dataCan) {
osStatus_t status = osErrorTimeout; osStatus_t status = osErrorTimeout;
// if (osMutexAcquire(env->access, 1000) == osOK) {
status = osMessageQueuePut(env->txDataQueue, dataCan, 0x0, 0U); status = osMessageQueuePut(env->txDataQueue, dataCan, 0x0, 0U);
// osMutexRelease(env->access);
// }
return status; return status;
} }
@ -286,6 +231,50 @@ void TaskSerialToCanSpontany_StartThread(tTaskSerialToCanSpontany *env) {
//начало ------------------------------Парсер команд-------------------------------------------------------------------- //начало ------------------------------Парсер команд--------------------------------------------------------------------
//начало ------------------------------Парсер команд-------------------------------------------------------------------- //начало ------------------------------Парсер команд--------------------------------------------------------------------
//начало ------------------------------Парсер команд-------------------------------------------------------------------- //начало ------------------------------Парсер команд--------------------------------------------------------------------
static bool
setResistance(tTaskSerial *env, char *name, const TablePoint *table, int table_size, tSensorType sensorType,
tSensorAdr sensorAdr1, tSensorAdr sensorAdr2) {
char *start = env->At.rxBuffer.data + strlen(name);
int16_t temperature = atoi(start);
uint32_t resistance = get_resistance_by_temperature_linear(table, table_size, temperature);
uint8_t step100;
uint8_t step10;
find_steps_for_resistance(resistance, &step100, &step10);
step100 = 255 - step100;
step10 = 255 - step10;
bool result1 = setSpiSensor(env->sensorSPI, sensorType, sensorAdr1, step100);
bool result2 = setSpiSensor(env->sensorSPI, sensorType, sensorAdr2, step10);
if ((result1) && (result2)) {
env->ioUSB->transmit(env->ioUSB->env, (uint8_t *) "OK\r\n", sizeof("OK\r\n") - 1, 1000);
} else {
env->ioUSB->transmit(env->ioUSB->env, (uint8_t *) "ERROR\r\n", sizeof("ERROR\r\n") - 1, 1000);
}
return (result1 && result2);
}
static bool
setResistanceInit(tTaskSerial *env, char *name, int16_t temperature, const TablePoint *table, int table_size,
tSensorType sensorType,
tSensorAdr sensorAdr1, tSensorAdr sensorAdr2) {
uint32_t resistance = get_resistance_by_temperature_linear(table, table_size, temperature);
uint8_t step100;
uint8_t step10;
find_steps_for_resistance(resistance, &step100, &step10);
step100 = 255 - step100;
step10 = 255 - step10;
bool result1 = setSpiSensor(env->sensorSPI, sensorType, sensorAdr1, step100);
bool result2 = setSpiSensor(env->sensorSPI, sensorType, sensorAdr2, step10);
return (result1 && result2);
}
void SerialCommand_Scheduler(tTaskSerial *env) { void SerialCommand_Scheduler(tTaskSerial *env) {
@ -296,6 +285,7 @@ void SerialCommand_Scheduler(tTaskSerial *env) {
if (AtCmdRxBeginWithStatic(&env->At, "T")) { if (AtCmdRxBeginWithStatic(&env->At, "T")) {
uint8_t data[8]; uint8_t data[8];
memset(data, 0, sizeof(data));
uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[1], 2); uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[1], 2);
uint8_t opt = data[0]; uint8_t opt = data[0];
@ -345,16 +335,15 @@ void SerialCommand_Scheduler(tTaskSerial *env) {
if (AtCmdRxBeginWithStatic(&env->At, "t")) { if (AtCmdRxBeginWithStatic(&env->At, "t")) {
uint8_t data[8]; uint8_t data[8];
//uint32_t adr = iAsciiStringParseUnsignedLongDecimalNumber(&env->At.rxBuffer.data[1], memset(data, 0, sizeof(data));
// &env->At.rxBuffer.data[9]);
uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[0], 1); uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[1], 2);
uint8_t opt = data[0]; uint8_t opt = data[0];
size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[1], 1); size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[3], 2);
uint8_t remote = data[0]; uint8_t remote = data[0];
size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[3], 8); size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[5], 8);
uint32_t adr = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3] << 0); uint32_t adr = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3] << 0);
uint8_t len = &env->At.rxBuffer.data[env->At.rxBuffer.len] - &env->At.rxBuffer.data[9] - 2; uint8_t len = &env->At.rxBuffer.data[env->At.rxBuffer.len] - &env->At.rxBuffer.data[9] - 2;
@ -393,12 +382,76 @@ void SerialCommand_Scheduler(tTaskSerial *env) {
} }
if (AtCmdRxBeginWithStatic(&env->At, "V")) { if (AtCmdRxBeginWithStatic(&env->At, "V")) {
env->ioUSB->transmit(env->ioUSB->env, (uint8_t *) "v001\r\n", sizeof("v001\r\n") - 1, 1000); env->ioUSB->transmit(env->ioUSB->env, (uint8_t *) "v001\r\nOK\r\n", sizeof("v001\r\nOK\r\n") - 1, 1000);
SystemDelayMs(1);
env->ioUSB->transmit(env->ioUSB->env, (uint8_t *) "OK\r\n", sizeof("OK\r\n") - 1, 1000);
} }
if (AtCmdRxBeginWithStatic(&env->At, "Duct_FL_Upper")) {
setResistance(env, "Duct_FL_Upper", duct_lookup_table_3000, size_duct_lookup_table_3000, SENSOR_TYPE_A,
SENSOR_ADR_1, SENSOR_ADR_2);
} }
if (AtCmdRxBeginWithStatic(&env->At, "Duct_FR_Upper")) {
setResistance(env, "Duct_FR_Upper", duct_lookup_table_3000, size_duct_lookup_table_3000, SENSOR_TYPE_A,
SENSOR_ADR_3, SENSOR_ADR_4);
}
if (AtCmdRxBeginWithStatic(&env->At, "Duct_FL_Lower")) {
setResistance(env, "Duct_FL_Lower", duct_lookup_table_3000, size_duct_lookup_table_3000, SENSOR_TYPE_A,
SENSOR_ADR_5, SENSOR_ADR_6);
}
if (AtCmdRxBeginWithStatic(&env->At, "Duct_FR_Lower")) {
setResistance(env, "Duct_FR_Lower", duct_lookup_table_3000, size_duct_lookup_table_3000, SENSOR_TYPE_A,
SENSOR_ADR_7, SENSOR_ADR_8);
}
if (AtCmdRxBeginWithStatic(&env->At, "Duct_FL_Side")) {
setResistance(env, "Duct_FL_Side", duct_lookup_table_3000, size_duct_lookup_table_3000, SENSOR_TYPE_A,
SENSOR_ADR_9, SENSOR_ADR_10);
}
if (AtCmdRxBeginWithStatic(&env->At, "Duct_FR_Side")) {
setResistance(env, "Duct_FR_Side", duct_lookup_table_3000, size_duct_lookup_table_3000, SENSOR_TYPE_A,
SENSOR_ADR_11, SENSOR_ADR_12);
}
if (AtCmdRxBeginWithStatic(&env->At, "Sen_Eva_F")) {
setResistance(env, "Sen_Eva_F", duct_lookup_table_20000, size_duct_lookup_table_20000, SENSOR_TYPE_A,
SENSOR_ADR_13, SENSOR_ADR_14);
}
if (AtCmdRxBeginWithStatic(&env->At, "Duct_RL_Side")) {
setResistance(env, "Duct_RL_Side", duct_lookup_table_3000, size_duct_lookup_table_3000, SENSOR_TYPE_B,
SENSOR_ADR_5, SENSOR_ADR_6);
continue;
}
if (AtCmdRxBeginWithStatic(&env->At, "Duct_RR_Side")) {
setResistance(env, "Duct_RR_Side", duct_lookup_table_3000, size_duct_lookup_table_3000, SENSOR_TYPE_B,
SENSOR_ADR_7, SENSOR_ADR_8);
continue;
}
if (AtCmdRxBeginWithStatic(&env->At, "Duct_RL")) {
setResistance(env, "Duct_RL", duct_lookup_table_3000, size_duct_lookup_table_3000, SENSOR_TYPE_B,
SENSOR_ADR_1, SENSOR_ADR_2);
}
if (AtCmdRxBeginWithStatic(&env->At, "Duct_RR")) {
setResistance(env, "Duct_RR", duct_lookup_table_3000, size_duct_lookup_table_3000, SENSOR_TYPE_B,
SENSOR_ADR_3, SENSOR_ADR_4);
}
if (AtCmdRxBeginWithStatic(&env->At, "Sen_Eva_R")) {
setResistance(env, "Sen_Eva_R", duct_lookup_table_20000, size_duct_lookup_table_20000, SENSOR_TYPE_B,
SENSOR_ADR_9, SENSOR_ADR_10);
}
}
} }
//конец ------------------------------Парсер команд-------------------------------------------------------------------- //конец ------------------------------Парсер команд--------------------------------------------------------------------
@ -416,15 +469,15 @@ void TaskSerialUSB1_Init(tTaskSerial *env,
tSerialPortIO *ioUSB1, tSerialPortIO *ioUSB1,
tTaskSerialToCanCyclic *TaskSerialToCanCyclic0, tTaskSerialToCanCyclic *TaskSerialToCanCyclic0,
tTaskSerialToCanCyclic *TaskSerialToCanCyclic1, tTaskSerialToCanCyclic *TaskSerialToCanCyclic1,
tTaskSerialToCanSpontany *TaskSerialToCanSpontany tTaskSerialToCanSpontany *TaskSerialToCanSpontany,
tSensorSPI *sensorSPI
) { ) {
// env->access = osMutexNew(NULL);
env->from_usb = from_usb; env->from_usb = from_usb;
env->ioUSB = ioUSB1; env->ioUSB = ioUSB1;
env->sensorSPI = sensorSPI;
env->TaskSerialToCanCyclic0 = TaskSerialToCanCyclic0; env->TaskSerialToCanCyclic0 = TaskSerialToCanCyclic0;
env->TaskSerialToCanCyclic1 = TaskSerialToCanCyclic1; env->TaskSerialToCanCyclic1 = TaskSerialToCanCyclic1;
env->TaskSerialToCanSpontany = TaskSerialToCanSpontany; env->TaskSerialToCanSpontany = TaskSerialToCanSpontany;
@ -443,15 +496,60 @@ void TaskSerialUSB1_Init(tTaskSerial *env,
static _Noreturn void Serial_USB1_Thread(tTaskSerial *env) { static _Noreturn void Serial_USB1_Thread(tTaskSerial *env) {
int16_t temperature = 250;
setResistanceInit(env, "Duct_FL_Upper", temperature, duct_lookup_table_3000, size_duct_lookup_table_3000,
SENSOR_TYPE_A,
SENSOR_ADR_1,
SENSOR_ADR_2);
setResistanceInit(env, "Duct_FR_Upper", temperature, duct_lookup_table_3000, size_duct_lookup_table_3000,
SENSOR_TYPE_A,
SENSOR_ADR_3,
SENSOR_ADR_4);
setResistanceInit(env, "Duct_FL_Lower", temperature, duct_lookup_table_3000, size_duct_lookup_table_3000,
SENSOR_TYPE_A,
SENSOR_ADR_5,
SENSOR_ADR_6);
setResistanceInit(env, "Duct_FR_Lower", temperature, duct_lookup_table_3000, size_duct_lookup_table_3000,
SENSOR_TYPE_A,
SENSOR_ADR_7,
SENSOR_ADR_8);
setResistanceInit(env, "Duct_FL_Side", temperature, duct_lookup_table_3000, size_duct_lookup_table_3000,
SENSOR_TYPE_A,
SENSOR_ADR_9,
SENSOR_ADR_10);
setResistanceInit(env, "Duct_FR_Side", temperature, duct_lookup_table_3000, size_duct_lookup_table_3000,
SENSOR_TYPE_A,
SENSOR_ADR_11,
SENSOR_ADR_12);
setResistanceInit(env, "Sen_Eva_F", temperature, duct_lookup_table_20000, size_duct_lookup_table_20000,
SENSOR_TYPE_A,
SENSOR_ADR_13,
SENSOR_ADR_14);
setResistanceInit(env, "Duct_RL_Side", temperature, duct_lookup_table_3000, size_duct_lookup_table_3000,
SENSOR_TYPE_B,
SENSOR_ADR_5,
SENSOR_ADR_6);
setResistanceInit(env, "Duct_RR_Side", temperature, duct_lookup_table_3000, size_duct_lookup_table_3000,
SENSOR_TYPE_B,
SENSOR_ADR_7,
SENSOR_ADR_8);
setResistanceInit(env, "Duct_RL", temperature, duct_lookup_table_3000, size_duct_lookup_table_3000, SENSOR_TYPE_B,
SENSOR_ADR_1,
SENSOR_ADR_2);
setResistanceInit(env, "Duct_RR", temperature, duct_lookup_table_3000, size_duct_lookup_table_3000, SENSOR_TYPE_B,
SENSOR_ADR_3,
SENSOR_ADR_4);
setResistanceInit(env, "Sen_Eva_R", temperature, duct_lookup_table_20000, size_duct_lookup_table_20000,
SENSOR_TYPE_B,
SENSOR_ADR_9,
SENSOR_ADR_10);
for (;;) { for (;;) {
// if (osMutexAcquire(env->access, 1000) == osOK) {
SerialCommand_Scheduler(env); SerialCommand_Scheduler(env);
// osMutexRelease(env->access);
// }
SystemDelayMs(1); SystemDelayMs(1);
} }
} }
@ -476,12 +574,13 @@ void TaskSerialUSB2_Init(tTaskSerial *env,
tSerialPortIO *ioUSB2, tSerialPortIO *ioUSB2,
tTaskSerialToCanCyclic *TaskSerialToCanCyclic0, tTaskSerialToCanCyclic *TaskSerialToCanCyclic0,
tTaskSerialToCanCyclic *TaskSerialToCanCyclic1, tTaskSerialToCanCyclic *TaskSerialToCanCyclic1,
tTaskSerialToCanSpontany *TaskSerialToCanSpontany tTaskSerialToCanSpontany *TaskSerialToCanSpontany,
tSensorSPI *sensorSPI
) { ) {
// env->access = osMutexNew(NULL);
env->from_usb = from_usb; env->from_usb = from_usb;
env->sensorSPI = sensorSPI;
env->ioUSB = ioUSB2; env->ioUSB = ioUSB2;
env->TaskSerialToCanCyclic0 = TaskSerialToCanCyclic0; env->TaskSerialToCanCyclic0 = TaskSerialToCanCyclic0;
@ -504,13 +603,8 @@ void TaskSerialUSB2_Init(tTaskSerial *env,
static _Noreturn void Serial_USB2_Thread(tTaskSerial *env) { static _Noreturn void Serial_USB2_Thread(tTaskSerial *env) {
for (;;) { for (;;) {
// if (osMutexAcquire(env->access, 1000) == osOK) {
SerialCommand_Scheduler(env); SerialCommand_Scheduler(env);
// osMutexRelease(env->access);
// }
SystemDelayMs(1); SystemDelayMs(1);
} }
} }
@ -657,7 +751,7 @@ void Task_RECEIVED_SerialUSB2_Init(tTaskReceivedSerial *env,
// env->access = osMutexNew(NULL); // env->access = osMutexNew(NULL);
env->from_usb = from_usb2; env->from_usb = from_usb2;
env->ioUSB= ioUSB2; env->ioUSB = ioUSB2;
env->ioCAN = ioCAN; env->ioCAN = ioCAN;
SerialPortClearRxBuffer(env->ioUSB); SerialPortClearRxBuffer(env->ioUSB);

View File

@ -9,7 +9,7 @@
#include "SerialPortIO.h" #include "SerialPortIO.h"
#include "AtCmdCommon.h" #include "AtCmdCommon.h"
#include "CanSerialPortFrame.h" #include "CanSerialPortFrame.h"
#include "SensorSPI.h"
typedef enum { typedef enum {
FROM_USB1, FROM_USB1,
@ -70,6 +70,8 @@ typedef struct {
tTaskSerialToCanCyclic *TaskSerialToCanCyclic1; tTaskSerialToCanCyclic *TaskSerialToCanCyclic1;
tTaskSerialToCanSpontany *TaskSerialToCanSpontany; tTaskSerialToCanSpontany *TaskSerialToCanSpontany;
tSensorSPI *sensorSPI;
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[1024]; uint32_t stack[1024];
@ -109,7 +111,8 @@ void TaskSerialUSB1_Init(tTaskSerial *env,
tSerialPortIO *ioUSB1, tSerialPortIO *ioUSB1,
tTaskSerialToCanCyclic *TaskSerialToCanCyclic0, tTaskSerialToCanCyclic *TaskSerialToCanCyclic0,
tTaskSerialToCanCyclic *TaskSerialToCanCyclic1, tTaskSerialToCanCyclic *TaskSerialToCanCyclic1,
tTaskSerialToCanSpontany *TaskSerialToCanSpontany tTaskSerialToCanSpontany *TaskSerialToCanSpontany,
tSensorSPI *sensorSPI
); );
void TaskSerialUSB1_StartThread(tTaskSerial *env); void TaskSerialUSB1_StartThread(tTaskSerial *env);
@ -119,7 +122,8 @@ void TaskSerialUSB2_Init(tTaskSerial *env,
tSerialPortIO *ioUSB2, tSerialPortIO *ioUSB2,
tTaskSerialToCanCyclic *TaskSerialToCanCyclic0, tTaskSerialToCanCyclic *TaskSerialToCanCyclic0,
tTaskSerialToCanCyclic *TaskSerialToCanCyclic1, tTaskSerialToCanCyclic *TaskSerialToCanCyclic1,
tTaskSerialToCanSpontany *TaskSerialToCanSpontany tTaskSerialToCanSpontany *TaskSerialToCanSpontany,
tSensorSPI *sensorSPI
); );