Обновление
This commit is contained in:
parent
30a8036378
commit
fba7e7bedc
|
|
@ -32,14 +32,6 @@ void Mma_Init(
|
||||||
env->thread.id = 0;
|
env->thread.id = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool isActuatorCommandSet_in_Model() {
|
|
||||||
for (uint8_t i = 0; i < LIN0_ISSR_ALL; ++i) {
|
|
||||||
if (rtY.Out1.COM[i] != 0)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static _Noreturn void Mma_Thread(tMma *env) {
|
static _Noreturn void Mma_Thread(tMma *env) {
|
||||||
|
|
||||||
|
|
@ -60,7 +52,7 @@ static _Noreturn void Mma_Thread(tMma *env) {
|
||||||
|
|
||||||
ModelTask_StartThread(&env->ModelTask);
|
ModelTask_StartThread(&env->ModelTask);
|
||||||
|
|
||||||
bool isActuatorBusy = false;
|
bool isActuatorWorkBusy = false;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
|
||||||
|
|
@ -96,7 +88,7 @@ static _Noreturn void Mma_Thread(tMma *env) {
|
||||||
env->rtU_local.in_Act_Reset_Ch0[i] = env->linTaskActuator0.linStateActuator[i].Reset_Slave;
|
env->rtU_local.in_Act_Reset_Ch0[i] = env->linTaskActuator0.linStateActuator[i].Reset_Slave;
|
||||||
}
|
}
|
||||||
|
|
||||||
isActuatorBusy = setBusy(&env->linTaskActuator0);
|
isActuatorWorkBusy = setBusy(&env->linTaskActuator0);
|
||||||
resetStall(&env->linTaskActuator0);
|
resetStall(&env->linTaskActuator0);
|
||||||
|
|
||||||
env->rtU_local.in_Error_Connect_Ch0 = env->linTaskActuator0.error_connect;
|
env->rtU_local.in_Error_Connect_Ch0 = env->linTaskActuator0.error_connect;
|
||||||
|
|
@ -109,15 +101,21 @@ static _Noreturn void Mma_Thread(tMma *env) {
|
||||||
|
|
||||||
if (osMutexAcquire(env->ModelTask.access, 5000) == osOK) {
|
if (osMutexAcquire(env->ModelTask.access, 5000) == osOK) {
|
||||||
|
|
||||||
if (env->ModelTask.isActuatorOverrideBusy == true) {
|
if (env->ModelTask.triggerCommand == true) {
|
||||||
env->rtU_local.in_Busy_Ch0 = 1;
|
env->rtU_local.in_Busy_Ch0 = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(&rtU, &env->rtU_local, sizeof(ExtU));
|
memcpy(&rtU, &env->rtU_local, sizeof(ExtU));
|
||||||
|
|
||||||
|
|
||||||
if ((isActuatorCommandSet_in_Model() == true) && (isActuatorBusy == false)) {
|
if ((env->ModelTask.triggerCommand == true) && (isActuatorWorkBusy == false)) {
|
||||||
isActuatorBusy = true;
|
env->ModelTask.triggerCommand = false;
|
||||||
|
isActuatorWorkBusy = true;
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < 9; ++i) {
|
||||||
|
rtY.Out1.COM[i] = env->ModelTask.numCommand[i];
|
||||||
|
}
|
||||||
|
|
||||||
memcpy(&env->rtY_local.Out1, &rtY.Out1, sizeof(rtY.Out1));
|
memcpy(&env->rtY_local.Out1, &rtY.Out1, sizeof(rtY.Out1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue