Обновление
This commit is contained in:
parent
fea15f24e8
commit
8a6df4b581
|
|
@ -13,9 +13,11 @@
|
||||||
|
|
||||||
void CanSpamReceiver_Init(tCanSpamReceiver *env,
|
void CanSpamReceiver_Init(tCanSpamReceiver *env,
|
||||||
tSerialPortFrameIO *ioCanFrame,
|
tSerialPortFrameIO *ioCanFrame,
|
||||||
|
osMutexId_t modelTaskAccess,
|
||||||
tLoggerInterface *logger) {
|
tLoggerInterface *logger) {
|
||||||
|
|
||||||
env->ioCanFrame = ioCanFrame;
|
env->ioCanFrame = ioCanFrame;
|
||||||
|
env->modelTaskAccess = modelTaskAccess;
|
||||||
env->logger = logger;
|
env->logger = logger;
|
||||||
env->access = osMutexNew(NULL);
|
env->access = osMutexNew(NULL);
|
||||||
|
|
||||||
|
|
@ -49,7 +51,7 @@ static void ListenCanSpamReceiver(tCanSpamReceiver *env) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_CanSpamReceiver(tCanSpamReceiver *env) {
|
void get_CanSpamReceiver(tCanSpamReceiver *env) {
|
||||||
if (osMutexAcquire(env->access, 5000) == osOK) {
|
if (osMutexAcquire(env->modelTaskAccess, 5000) == osOK) {
|
||||||
// memcpy(&rtDW.TM_CP_model, &ccu_candb_rx.TM_CP, sizeof(rtDW.TM_CP_model));
|
// memcpy(&rtDW.TM_CP_model, &ccu_candb_rx.TM_CP, sizeof(rtDW.TM_CP_model));
|
||||||
memcpy(&rtDW.FIU_CCU1_MODEL, &ccu_candb_rx.FIU_CCU1, sizeof(rtDW.FIU_CCU1_MODEL));
|
memcpy(&rtDW.FIU_CCU1_MODEL, &ccu_candb_rx.FIU_CCU1, sizeof(rtDW.FIU_CCU1_MODEL));
|
||||||
memcpy(&rtDW.FIU_CCU2_MODEL, &ccu_candb_rx.FIU_CCU2, sizeof(rtDW.FIU_CCU2_MODEL));
|
memcpy(&rtDW.FIU_CCU2_MODEL, &ccu_candb_rx.FIU_CCU2, sizeof(rtDW.FIU_CCU2_MODEL));
|
||||||
|
|
@ -63,7 +65,7 @@ void get_CanSpamReceiver(tCanSpamReceiver *env) {
|
||||||
memcpy(&rtDW.CCUCAN_EMS_HVC_REQ_MSG_MODEL, &ccu_candb_rx.EMS_HVC_Req_Msg, sizeof(rtDW.CCUCAN_EMS_HVC_REQ_MSG_MODEL));
|
memcpy(&rtDW.CCUCAN_EMS_HVC_REQ_MSG_MODEL, &ccu_candb_rx.EMS_HVC_Req_Msg, sizeof(rtDW.CCUCAN_EMS_HVC_REQ_MSG_MODEL));
|
||||||
memcpy(&rtDW.HVC_ERR_STATUS_MSG_MODEL, &ccu_candb_rx.HVC_Err_Status_Msg, sizeof(rtDW.HVC_ERR_STATUS_MSG_MODEL));
|
memcpy(&rtDW.HVC_ERR_STATUS_MSG_MODEL, &ccu_candb_rx.HVC_Err_Status_Msg, sizeof(rtDW.HVC_ERR_STATUS_MSG_MODEL));
|
||||||
|
|
||||||
osMutexRelease(env->access);
|
osMutexRelease(env->modelTaskAccess);
|
||||||
} else {
|
} else {
|
||||||
LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error get_CanSpamReceiver");
|
LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error get_CanSpamReceiver");
|
||||||
}
|
}
|
||||||
|
|
@ -72,6 +74,7 @@ void get_CanSpamReceiver(tCanSpamReceiver *env) {
|
||||||
static _Noreturn void CanSpamReceiver_Thread(tCanSpamReceiver *env) {
|
static _Noreturn void CanSpamReceiver_Thread(tCanSpamReceiver *env) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
ListenCanSpamReceiver(env);
|
ListenCanSpamReceiver(env);
|
||||||
|
get_CanSpamReceiver(env);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ typedef struct {
|
||||||
can_rx_message_type canFrame;
|
can_rx_message_type canFrame;
|
||||||
|
|
||||||
tLoggerInterface *logger;
|
tLoggerInterface *logger;
|
||||||
|
osMutexId_t modelTaskAccess;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
osThreadId_t id;
|
osThreadId_t id;
|
||||||
|
|
@ -28,7 +29,7 @@ typedef struct {
|
||||||
|
|
||||||
} tCanSpamReceiver;
|
} tCanSpamReceiver;
|
||||||
|
|
||||||
void CanSpamReceiver_Init(tCanSpamReceiver *env, tSerialPortFrameIO *ioCanFrame, tLoggerInterface *logger);
|
void CanSpamReceiver_Init(tCanSpamReceiver *env, tSerialPortFrameIO *ioCanFrame, osMutexId_t modelTaskAccess, tLoggerInterface *logger);
|
||||||
|
|
||||||
void CanSpamReceiver_StartThread(tCanSpamReceiver *env);
|
void CanSpamReceiver_StartThread(tCanSpamReceiver *env);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,11 @@
|
||||||
|
|
||||||
void CanSpamTransmitter_Init(tCanSpamTransmitter *env,
|
void CanSpamTransmitter_Init(tCanSpamTransmitter *env,
|
||||||
tSerialPortFrameIO *ioCanFrame,
|
tSerialPortFrameIO *ioCanFrame,
|
||||||
|
osMutexId_t modelTaskAccess,
|
||||||
tLoggerInterface *logger) {
|
tLoggerInterface *logger) {
|
||||||
|
|
||||||
env->ioCanFrame = ioCanFrame;
|
env->ioCanFrame = ioCanFrame;
|
||||||
|
env->modelTaskAccess = modelTaskAccess;
|
||||||
env->logger = logger;
|
env->logger = logger;
|
||||||
env->access = osMutexNew(NULL);
|
env->access = osMutexNew(NULL);
|
||||||
|
|
||||||
|
|
@ -270,13 +272,13 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_CanSpamTransmitter(tCanSpamTransmitter *env) {
|
void set_CanSpamTransmitter(tCanSpamTransmitter *env) {
|
||||||
if (osMutexAcquire(env->access, 5000) == osOK) {
|
if (osMutexAcquire(env->modelTaskAccess, 5000) == osOK) {
|
||||||
memcpy(&ccu_candb_tx.CCU_Errors, &rtY.CCU_Errors_model, sizeof(ccu_candb_tx.CCU_Errors));
|
memcpy(&ccu_candb_tx.CCU_Errors, &rtY.CCU_Errors_model, sizeof(ccu_candb_tx.CCU_Errors));
|
||||||
memcpy(&ccu_candb_tx.CCU_Stat1, &rtY.CCU_Stat1_model, sizeof(ccu_candb_tx.CCU_Stat1));
|
memcpy(&ccu_candb_tx.CCU_Stat1, &rtY.CCU_Stat1_model, sizeof(ccu_candb_tx.CCU_Stat1));
|
||||||
memcpy(&ccu_candb_tx.CCU_Stat2, &rtY.CCU_Stat2_model, sizeof(ccu_candb_tx.CCU_Stat2));
|
memcpy(&ccu_candb_tx.CCU_Stat2, &rtY.CCU_Stat2_model, sizeof(ccu_candb_tx.CCU_Stat2));
|
||||||
memcpy(&ccu_candb_tx.CCU_HVC_Req_Msg, &rtY.CCUCAN_HVC_REQ_MSG_MODEL, sizeof(ccu_candb_tx.CCU_HVC_Req_Msg));
|
memcpy(&ccu_candb_tx.CCU_HVC_Req_Msg, &rtY.CCUCAN_HVC_REQ_MSG_MODEL, sizeof(ccu_candb_tx.CCU_HVC_Req_Msg));
|
||||||
|
|
||||||
osMutexRelease(env->access);
|
osMutexRelease(env->modelTaskAccess);
|
||||||
} else {
|
} else {
|
||||||
LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error set_CanSpamTransmitter");
|
LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error set_CanSpamTransmitter");
|
||||||
}
|
}
|
||||||
|
|
@ -293,6 +295,8 @@ void set_CCU_Mute(tCanSpamTransmitter *env, bool mute) {
|
||||||
|
|
||||||
static _Noreturn void CanSpamTransmitter_Thread(tCanSpamTransmitter *env) {
|
static _Noreturn void CanSpamTransmitter_Thread(tCanSpamTransmitter *env) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
set_CanSpamTransmitter(env);
|
||||||
|
|
||||||
if (osMutexAcquire(env->access, 5000) == osOK) {
|
if (osMutexAcquire(env->access, 5000) == osOK) {
|
||||||
|
|
||||||
if (env->isMute == false) {
|
if (env->isMute == false) {
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,8 @@ typedef struct {
|
||||||
|
|
||||||
bool isMute;
|
bool isMute;
|
||||||
|
|
||||||
|
osMutexId_t modelTaskAccess;
|
||||||
|
|
||||||
tLoggerInterface *logger;
|
tLoggerInterface *logger;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
|
@ -78,7 +80,7 @@ typedef struct {
|
||||||
|
|
||||||
} tCanSpamTransmitter;
|
} tCanSpamTransmitter;
|
||||||
|
|
||||||
void CanSpamTransmitter_Init(tCanSpamTransmitter *env, tSerialPortFrameIO *ioCanFrame, tLoggerInterface *logger);
|
void CanSpamTransmitter_Init(tCanSpamTransmitter *env, tSerialPortFrameIO *ioCanFrame, osMutexId_t modelTaskAccess, tLoggerInterface *logger);
|
||||||
|
|
||||||
void CanSpamTransmitter_StartThread(tCanSpamTransmitter *env);
|
void CanSpamTransmitter_StartThread(tCanSpamTransmitter *env);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue