Обновление
This commit is contained in:
parent
05830fb4fa
commit
f4fb6443d7
87
LinTasks.c
87
LinTasks.c
|
|
@ -127,6 +127,8 @@ lin_event_id_t DFR_PRG_x(tLinIO *linIo, tLinData *linData,
|
|||
|
||||
res = SEND_ACTUATOR_COM_x(linIo, DFR_PRG);
|
||||
|
||||
SystemDelayMs(50);
|
||||
|
||||
if (res == LIN_TX_COMPLETED) {
|
||||
break;
|
||||
}
|
||||
|
|
@ -607,14 +609,36 @@ lin_event_id_t Lin0_Scheduler(tLinTaskActuator *env) {
|
|||
|
||||
|
||||
uint8_t BUS_ADR;
|
||||
uint8_t BUS_NEW_ADR;
|
||||
uint8_t NOTL_DREH_Master;
|
||||
uint8_t NOTL_ENAB_Master;
|
||||
uint8_t DREH_Slave;
|
||||
uint8_t ParitySlave;
|
||||
uint8_t Version_CFR;
|
||||
|
||||
ret = RFR_PRG_x(env->linIo, env->linData,
|
||||
&BUS_ADR,
|
||||
&env->linStateActuator[i].BUS_NEW_ADR,
|
||||
&env->linStateActuator[i].NOTL_DREH_Master,
|
||||
&env->linStateActuator[i].NOTL_ENAB_Master,
|
||||
&env->linStateActuator[i].DREH_Slave,
|
||||
&env->linStateActuator[i].ParitySlave,
|
||||
&env->linStateActuator[i].Version_CFR);
|
||||
&BUS_NEW_ADR,
|
||||
&NOTL_DREH_Master,
|
||||
&NOTL_ENAB_Master,
|
||||
&DREH_Slave,
|
||||
&ParitySlave,
|
||||
&Version_CFR);
|
||||
|
||||
if (BUS_ADR != i) {
|
||||
asm("nop");
|
||||
}
|
||||
|
||||
if (BUS_ADR < LIN0_ISSR_ALL) {
|
||||
env->linStateActuator[BUS_ADR].BUS_NEW_ADR = BUS_NEW_ADR;
|
||||
env->linStateActuator[BUS_ADR].NOTL_DREH_Master = NOTL_DREH_Master;
|
||||
env->linStateActuator[BUS_ADR].NOTL_ENAB_Master = NOTL_ENAB_Master;
|
||||
env->linStateActuator[BUS_ADR].DREH_Slave = DREH_Slave;
|
||||
env->linStateActuator[BUS_ADR].ParitySlave = ParitySlave;
|
||||
env->linStateActuator[BUS_ADR].Version_CFR = Version_CFR;
|
||||
} else {
|
||||
asm("nop");
|
||||
}
|
||||
|
||||
if (ret == LIN_TX_COMPLETED) {
|
||||
|
||||
|
|
@ -636,6 +660,7 @@ lin_event_id_t Lin0_Scheduler(tLinTaskActuator *env) {
|
|||
lin_event_id_t res;
|
||||
|
||||
for (uint8_t i = 0; i < LIN0_ISSR_ALL; ++i) {
|
||||
|
||||
res = ISSR_x(env->linIo, env->linData,
|
||||
i,
|
||||
&env->linStateActuator[i].BLOCK_MT,
|
||||
|
|
@ -647,17 +672,45 @@ lin_event_id_t Lin0_Scheduler(tLinTaskActuator *env) {
|
|||
if (ret == LIN_TX_COMPLETED) {
|
||||
|
||||
uint8_t BUS_ADR;
|
||||
uint16_t CPOS_ALL;
|
||||
eEmrf_Slave_STA Emrf_Slave;
|
||||
eMode_Mod Mode_Slave;
|
||||
uint8_t Error1_Supply_Slave;
|
||||
uint8_t Error2_Communication_Slave;
|
||||
uint8_t Error3_Temperature_Slave;
|
||||
uint8_t Error4_Permanent_Electrical_Slave;
|
||||
eStall_STA Stall_Slave;
|
||||
eReset_STA Reset_Slave;
|
||||
|
||||
ret = RFR_STA_x(env->linIo, env->linData,
|
||||
&BUS_ADR,
|
||||
&env->linStateActuator[i].CPOS_ALL,
|
||||
&env->linStateActuator[i].Emrf_Slave,
|
||||
&env->linStateActuator[i].Mode_Slave,
|
||||
&env->linStateActuator[i].Error1_Supply_Slave,
|
||||
&env->linStateActuator[i].Error2_Communication_Slave,
|
||||
&env->linStateActuator[i].Error3_Temperature_Slave,
|
||||
&env->linStateActuator[i].Error4_Permanent_Electrical_Slave,
|
||||
&env->linStateActuator[i].Stall_Slave,
|
||||
&env->linStateActuator[i].Reset_Slave);
|
||||
&CPOS_ALL,
|
||||
&Emrf_Slave,
|
||||
&Mode_Slave,
|
||||
&Error1_Supply_Slave,
|
||||
&Error2_Communication_Slave,
|
||||
&Error3_Temperature_Slave,
|
||||
&Error4_Permanent_Electrical_Slave,
|
||||
&Stall_Slave,
|
||||
&Reset_Slave);
|
||||
|
||||
if (BUS_ADR != i) {
|
||||
asm("nop");
|
||||
}
|
||||
|
||||
if (BUS_ADR < LIN0_ISSR_ALL) {
|
||||
env->linStateActuator[BUS_ADR].CPOS_ALL = CPOS_ALL;
|
||||
env->linStateActuator[BUS_ADR].Emrf_Slave = Emrf_Slave;
|
||||
env->linStateActuator[BUS_ADR].Mode_Slave = Mode_Slave;
|
||||
env->linStateActuator[BUS_ADR].Error1_Supply_Slave = Error1_Supply_Slave;
|
||||
env->linStateActuator[BUS_ADR].Error2_Communication_Slave = Error2_Communication_Slave;
|
||||
env->linStateActuator[BUS_ADR].Error3_Temperature_Slave = Error3_Temperature_Slave;
|
||||
env->linStateActuator[BUS_ADR].Error4_Permanent_Electrical_Slave = Error4_Permanent_Electrical_Slave;
|
||||
env->linStateActuator[BUS_ADR].Stall_Slave = Stall_Slave;
|
||||
env->linStateActuator[BUS_ADR].Reset_Slave = Reset_Slave;
|
||||
} else {
|
||||
asm("nop");
|
||||
}
|
||||
|
||||
if (ret == LIN_RX_COMPLETED) {
|
||||
|
||||
|
|
@ -677,12 +730,14 @@ lin_event_id_t Lin0_Scheduler(tLinTaskActuator *env) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
return LIN_NO_EVENT;
|
||||
}
|
||||
|
||||
static _Noreturn void Lin0_Thread(tLinTaskActuator *env) {
|
||||
for (;;) {
|
||||
if (osMutexAcquire(env->access, 100) == osOK) {
|
||||
Lin0_Scheduler(env);
|
||||
lin_event_id_t res = Lin0_Scheduler(env);
|
||||
env->errorConnect = res;
|
||||
osMutexRelease(env->access);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue