Обновление
This commit is contained in:
parent
cdc6ef6bb1
commit
9999ea30a1
|
|
@ -6,11 +6,15 @@
|
||||||
#include "CmsisRtosThreadUtils.h"
|
#include "CmsisRtosThreadUtils.h"
|
||||||
#include "CanPorts.h"
|
#include "CanPorts.h"
|
||||||
|
|
||||||
|
#define LOG_SIGN "CAN_RECEIVED"
|
||||||
|
#define LOGGER env->logger
|
||||||
|
|
||||||
void CanSpamReceiver_Init(tCanSpamReceiver *env,
|
void CanSpamReceiver_Init(tCanSpamReceiver *env,
|
||||||
tSerialPortFrameIO *ioCanFrame) {
|
tSerialPortFrameIO *ioCanFrame,
|
||||||
|
tLoggerInterface *logger) {
|
||||||
|
|
||||||
env->ioCanFrame = ioCanFrame;
|
env->ioCanFrame = ioCanFrame;
|
||||||
|
env->logger = logger;
|
||||||
env->access = osMutexNew(NULL);
|
env->access = osMutexNew(NULL);
|
||||||
|
|
||||||
InitThreadAtrStatic(&env->thread.attr, "CanSpamRec", env->thread.controlBlock, env->thread.stack,
|
InitThreadAtrStatic(&env->thread.attr, "CanSpamRec", env->thread.controlBlock, env->thread.stack,
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
#include <cmsis_os.h>
|
#include <cmsis_os.h>
|
||||||
#include "CanSerialPortFrame.h"
|
#include "CanSerialPortFrame.h"
|
||||||
#include "ccu_candb-binutil.h"
|
#include "ccu_candb-binutil.h"
|
||||||
|
#include "LoggerInterface.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
||||||
|
|
@ -15,6 +16,8 @@ typedef struct {
|
||||||
osMutexId_t access;
|
osMutexId_t access;
|
||||||
can_rx_message_type canFrame;
|
can_rx_message_type canFrame;
|
||||||
|
|
||||||
|
tLoggerInterface *logger;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
osThreadId_t id;
|
osThreadId_t id;
|
||||||
uint32_t stack[512];
|
uint32_t stack[512];
|
||||||
|
|
@ -24,7 +27,7 @@ typedef struct {
|
||||||
|
|
||||||
} tCanSpamReceiver;
|
} tCanSpamReceiver;
|
||||||
|
|
||||||
void CanSpamReceiver_Init(tCanSpamReceiver *env, tSerialPortFrameIO *ioCanFrame);
|
void CanSpamReceiver_Init(tCanSpamReceiver *env, tSerialPortFrameIO *ioCanFrame, tLoggerInterface *logger);
|
||||||
|
|
||||||
void CanSpamReceiver_StartThread(tCanSpamReceiver *env);
|
void CanSpamReceiver_StartThread(tCanSpamReceiver *env);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,15 @@
|
||||||
#include "CanPorts.h"
|
#include "CanPorts.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
|
|
||||||
|
#define LOG_SIGN "CAN_TRANSMITTER"
|
||||||
|
#define LOGGER env->logger
|
||||||
|
|
||||||
void CanSpamTransmitter_Init(tCanSpamTransmitter *env,
|
void CanSpamTransmitter_Init(tCanSpamTransmitter *env,
|
||||||
tSerialPortFrameIO *ioCanFrame) {
|
tSerialPortFrameIO *ioCanFrame,
|
||||||
|
tLoggerInterface *logger) {
|
||||||
|
|
||||||
env->ioCanFrame = ioCanFrame;
|
env->ioCanFrame = ioCanFrame;
|
||||||
|
env->logger = logger;
|
||||||
env->access = osMutexNew(NULL);
|
env->access = osMutexNew(NULL);
|
||||||
|
|
||||||
InitThreadAtrStatic(&env->thread.attr, "CanSpamTrans", env->thread.controlBlock, env->thread.stack,
|
InitThreadAtrStatic(&env->thread.attr, "CanSpamTrans", env->thread.controlBlock, env->thread.stack,
|
||||||
|
|
@ -491,6 +495,17 @@ void set_CCU_Errors(tCanSpamTransmitter *env, CCU_Errors_t *CCU_Errors) {
|
||||||
if (osMutexAcquire(env->access, 1000) == osOK) {
|
if (osMutexAcquire(env->access, 1000) == osOK) {
|
||||||
memcpy(&env->CCU_Errors, CCU_Errors, sizeof(CCU_Errors_t));
|
memcpy(&env->CCU_Errors, CCU_Errors, sizeof(CCU_Errors_t));
|
||||||
osMutexRelease(env->access);
|
osMutexRelease(env->access);
|
||||||
|
} else {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Access error set_CCU_Errors");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_CCU_Mute(tCanSpamTransmitter *env, bool mute) {
|
||||||
|
if (osMutexAcquire(env->access, 1000) == osOK) {
|
||||||
|
env->isMute = mute;
|
||||||
|
osMutexRelease(env->access);
|
||||||
|
} else {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Access error set_CCU_Mute");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -498,10 +513,14 @@ static _Noreturn void CanSpamTransmitter_Thread(tCanSpamTransmitter *env) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (osMutexAcquire(env->access, 1000) == osOK) {
|
if (osMutexAcquire(env->access, 1000) == osOK) {
|
||||||
|
|
||||||
env->timeMs = GetSystemTick();
|
if (env->isMute == false) {
|
||||||
|
|
||||||
|
env->timeMs = GetSystemTick();
|
||||||
|
|
||||||
|
while (isEventTransmitter(env) != event_CCU_none) {
|
||||||
|
sendEventToCan(env);
|
||||||
|
}
|
||||||
|
|
||||||
while (isEventTransmitter(env) != event_CCU_none) {
|
|
||||||
sendEventToCan(env);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
osMutexRelease(env->access);
|
osMutexRelease(env->access);
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
#include <cmsis_os.h>
|
#include <cmsis_os.h>
|
||||||
#include "CanSerialPortFrame.h"
|
#include "CanSerialPortFrame.h"
|
||||||
#include "ccu_candb-binutil.h"
|
#include "ccu_candb-binutil.h"
|
||||||
|
#include "LoggerInterface.h"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
event_CCU_none = 0x00,
|
event_CCU_none = 0x00,
|
||||||
|
|
@ -48,6 +49,10 @@ typedef struct {
|
||||||
|
|
||||||
CCU_Errors_t CCU_Errors;
|
CCU_Errors_t CCU_Errors;
|
||||||
|
|
||||||
|
bool isMute;
|
||||||
|
|
||||||
|
tLoggerInterface *logger;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
osThreadId_t id;
|
osThreadId_t id;
|
||||||
uint32_t stack[512];
|
uint32_t stack[512];
|
||||||
|
|
@ -57,10 +62,12 @@ typedef struct {
|
||||||
|
|
||||||
} tCanSpamTransmitter;
|
} tCanSpamTransmitter;
|
||||||
|
|
||||||
void CanSpamTransmitter_Init(tCanSpamTransmitter *env, tSerialPortFrameIO *ioCanFrame);
|
void CanSpamTransmitter_Init(tCanSpamTransmitter *env, tSerialPortFrameIO *ioCanFrame, tLoggerInterface *logger);
|
||||||
|
|
||||||
void CanSpamTransmitter_StartThread(tCanSpamTransmitter *env);
|
void CanSpamTransmitter_StartThread(tCanSpamTransmitter *env);
|
||||||
|
|
||||||
void set_CCU_Errors(tCanSpamTransmitter *env, CCU_Errors_t *CCU_Errors);
|
void set_CCU_Errors(tCanSpamTransmitter *env, CCU_Errors_t *CCU_Errors);
|
||||||
|
|
||||||
|
void set_CCU_Mute(tCanSpamTransmitter *env, bool mute);
|
||||||
|
|
||||||
#endif //HVAC_M7_CANSPAMTRANSMITTER_H
|
#endif //HVAC_M7_CANSPAMTRANSMITTER_H
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue