Обновление
This commit is contained in:
parent
dbade30fac
commit
1627ce37dc
27
LinTasks.c
27
LinTasks.c
|
|
@ -576,7 +576,7 @@ lin_event_id_t Lin0_Scheduler(tLinTaskActuator *env) {
|
||||||
|
|
||||||
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_MOD) {
|
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);
|
env->linCommandActuator[i].MODE);
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
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) {
|
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_INI) {
|
||||||
|
|
||||||
ret = CFR_INI_x(env->linIo, env->linData,
|
ret = CFR_INI_x(env->linIo, env->linData,
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
env->linCommandActuator[i].BUS_ADR | 0x20,
|
||||||
env->linCommandActuator[i].POS);
|
env->linCommandActuator[i].POS);
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
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) {
|
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_SET) {
|
||||||
|
|
||||||
ret = CFR_SET_x(env->linIo, env->linData,
|
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].POS,
|
||||||
env->linCommandActuator[i].Stall_SET,
|
env->linCommandActuator[i].Stall_SET,
|
||||||
env->linCommandActuator[i].Lnoise_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;
|
env->linStateActuator[BUS_ADR].Reset_Slave = Reset_Slave;
|
||||||
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "BUS_ADR = %d, CPOS_ALL = %d, Stall_Slave = %d", BUS_ADR,
|
// 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].CPOS_ALL,
|
||||||
env->linStateActuator[BUS_ADR].Stall_Slave)
|
// env->linStateActuator[BUS_ADR].Stall_Slave)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
asm("nop");
|
asm("nop");
|
||||||
|
|
@ -736,20 +736,19 @@ lin_event_id_t Lin0_Scheduler(tLinTaskActuator *env) {
|
||||||
return LIN_NO_EVENT;
|
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) {
|
for (uint8_t i = 0; i < LIN0_ISSR_ALL; ++i) {
|
||||||
|
|
||||||
if (env->linCommandActuator[i].COM != LIN_ACT_CFR_NONE) {
|
if (env->linCommandActuator[i].COM != LIN_ACT_CFR_NONE) {
|
||||||
return;
|
env->busy = true;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SystemDelayMs(100);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void resetStall(tLinTaskActuator *env) {
|
void resetStall(tLinTaskActuator *env) {
|
||||||
|
|
||||||
for (uint8_t i = 0; i < LIN0_ISSR_ALL; ++i) {
|
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->error_connect = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
env->busy = false;
|
||||||
|
|
||||||
osMutexRelease(env->access);
|
osMutexRelease(env->access);
|
||||||
}
|
}
|
||||||
|
|
||||||
isEnterCommand(env);
|
SystemDelayMs(500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -454,7 +454,7 @@ typedef struct {
|
||||||
tLinIO *linIo;
|
tLinIO *linIo;
|
||||||
osMutexId_t access;
|
osMutexId_t access;
|
||||||
|
|
||||||
uint8_t busy; // Устройство занято
|
bool busy; // Устройство занято
|
||||||
uint8_t error_connect; // Ошибка соединения (устройство не отвечает)
|
uint8_t error_connect; // Ошибка соединения (устройство не отвечает)
|
||||||
|
|
||||||
tLinStateFullActuator linStateActuator[9];
|
tLinStateFullActuator linStateActuator[9];
|
||||||
|
|
@ -484,4 +484,6 @@ void GetLin0CallbackHandler(tLinData *env, uint8_t u8LinIndex, void *state);
|
||||||
|
|
||||||
void resetStall(tLinTaskActuator *env);
|
void resetStall(tLinTaskActuator *env);
|
||||||
|
|
||||||
|
bool setBusy(tLinTaskActuator *env);
|
||||||
|
|
||||||
#endif //HVAC_LIN_TASKS_H
|
#endif //HVAC_LIN_TASKS_H
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue