Обновление

This commit is contained in:
cfif 2025-12-19 16:07:24 +03:00
parent dbade30fac
commit 1627ce37dc
2 changed files with 19 additions and 16 deletions

View File

@ -576,7 +576,7 @@ lin_event_id_t Lin0_Scheduler(tLinTaskActuator *env) {
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_MOD) {
ret = CFR_MOD_x(env->linIo, env->linData, env->linCommandActuator[i].BUS_ADR,
ret = CFR_MOD_x(env->linIo, env->linData, env->linCommandActuator[i].BUS_ADR | 0x20,
env->linCommandActuator[i].MODE);
if (ret == LIN_TX_COMPLETED) {
@ -598,7 +598,7 @@ lin_event_id_t Lin0_Scheduler(tLinTaskActuator *env) {
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_INI) {
ret = CFR_INI_x(env->linIo, env->linData,
env->linCommandActuator[i].BUS_ADR,
env->linCommandActuator[i].BUS_ADR | 0x20,
env->linCommandActuator[i].POS);
if (ret == LIN_TX_COMPLETED) {
@ -618,7 +618,7 @@ lin_event_id_t Lin0_Scheduler(tLinTaskActuator *env) {
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_SET) {
ret = CFR_SET_x(env->linIo, env->linData,
env->linCommandActuator[i].BUS_ADR,
env->linCommandActuator[i].BUS_ADR | 0x20,
env->linCommandActuator[i].POS,
env->linCommandActuator[i].Stall_SET,
env->linCommandActuator[i].Lnoise_SET,
@ -706,9 +706,9 @@ lin_event_id_t Lin0_Scheduler(tLinTaskActuator *env) {
env->linStateActuator[BUS_ADR].Reset_Slave = Reset_Slave;
LoggerFormatInfo(LOGGER, LOG_SIGN, "BUS_ADR = %d, CPOS_ALL = %d, Stall_Slave = %d", BUS_ADR,
env->linStateActuator[BUS_ADR].CPOS_ALL,
env->linStateActuator[BUS_ADR].Stall_Slave)
// LoggerFormatInfo(LOGGER, LOG_SIGN, "BUS_ADR = %d, CPOS_ALL = %d, Stall_Slave = %d", BUS_ADR,
// env->linStateActuator[BUS_ADR].CPOS_ALL,
// env->linStateActuator[BUS_ADR].Stall_Slave)
} else {
asm("nop");
@ -736,20 +736,19 @@ lin_event_id_t Lin0_Scheduler(tLinTaskActuator *env) {
return LIN_NO_EVENT;
}
static void isEnterCommand(tLinTaskActuator *env) {
bool setBusy(tLinTaskActuator *env) {
for (uint8_t j = 0; j < 5; ++j) {
for (uint8_t i = 0; i < LIN0_ISSR_ALL; ++i) {
if (env->linCommandActuator[i].COM != LIN_ACT_CFR_NONE) {
return;
}
for (uint8_t i = 0; i < LIN0_ISSR_ALL; ++i) {
if (env->linCommandActuator[i].COM != LIN_ACT_CFR_NONE) {
env->busy = true;
return true;
}
SystemDelayMs(100);
}
return false;
}
void resetStall(tLinTaskActuator *env) {
for (uint8_t i = 0; i < LIN0_ISSR_ALL; ++i) {
@ -790,10 +789,12 @@ static _Noreturn void Lin0_Thread(tLinTaskActuator *env) {
env->error_connect = 0;
}
env->busy = false;
osMutexRelease(env->access);
}
isEnterCommand(env);
SystemDelayMs(500);
}
}

View File

@ -454,7 +454,7 @@ typedef struct {
tLinIO *linIo;
osMutexId_t access;
uint8_t busy; // Устройство занято
bool busy; // Устройство занято
uint8_t error_connect; // Ошибка соединения (устройство не отвечает)
tLinStateFullActuator linStateActuator[9];
@ -484,4 +484,6 @@ void GetLin0CallbackHandler(tLinData *env, uint8_t u8LinIndex, void *state);
void resetStall(tLinTaskActuator *env);
bool setBusy(tLinTaskActuator *env);
#endif //HVAC_LIN_TASKS_H