📄 request.c
字号:
}
break;
case THIRD_30ms:
temptask = FindTask(LOW, ANALOG_LIGHT_INTENSITY);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_LIGHT_INTENSITY;
}
}
break;
case FOURTH_30ms:
temptask = FindTask(LOW, ANALOG_JAGUAR_TEMPERATURE);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_JAGUAR_TEMPERATURE;
}
}
break;
case FIFTH_30ms:
temptask = FindTask(LOW, ANALOG_PUMA_TEMPERATURE);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_PUMA_TEMPERATURE;
}
}
break;
default :
newtask = NewTask();
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = U405_START;
}
break;
case CAN_MESSAGE:
break;
case LIN_MESSAGE:
break;
}
}
/******************************************************************************
* Module : void RequestFM (Task *pFirst, Byte task)
* Description : Function set a new task to tasklist. tasks are generated via FreeMASTER
* Global Data : none
* Static Global Data: none
* Returns : none
* Arguments : none
* Special Issues : none
******************************************************************************/
void RequestFM (Byte task)
{
Byte newtask;
switch (task) // task with most high priority is in progress
{
case MANUAL_CONTROLL:
break;
case DOOR_LOCK:
if (fm_action1 != last_action1)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
if (fm_action1)
arrayTask[newtask].number = DOOR_LOCK_LOCK;
else
arrayTask[newtask].number = DOOR_LOCK_UNLOCK;
last_action1 = fm_action1; // only when task is inputed to array of task
}
}
break;
case LIGHTS_55W:
if (fm_action2 != last_action2)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
if (fm_action2)
arrayTask[newtask].number = LIGHTS_55W_ON;
else
arrayTask[newtask].number = LIGHTS_55W_OFF;
last_action2 = fm_action2;
}
}
break;
case LIGHTS_5W:
if (fm_action3 != last_action3)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
if (fm_action3)
arrayTask[newtask].number = LIGHTS_5W_ON;
else
arrayTask[newtask].number = LIGHTS_5W_OFF;
last_action3 = fm_action3;
}
}
break;
case CABIN_LIGHTS1: // COSS
if (fm_action4 != last_action4)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
if (fm_action4)
arrayTask[newtask].number = CABIN_LIGHTS1_ON;
else
arrayTask[newtask].number = CABIN_LIGHTS1_OFF;
last_action4 = fm_action4;
}
}
break;
case CABIN_LIGHTS2: // COSS
if (fm_action13 != last_action13)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
if (fm_action13)
arrayTask[newtask].number = CABIN_LIGHTS2_ON;
else
arrayTask[newtask].number = CABIN_LIGHTS2_OFF;
last_action13 = fm_action13;
}
}
break;
case CABIN_DIMM: // COSS dimmable lights
if (fm_action5 != last_action5)
{
if (fm_action5)
{
newtask = FindTask(MIN, CABIN_DIMM_OFF);
if (newtask == NO_TASK)
{
newtask = FindTask(MIN, CABIN_DIMM_ON);
if (newtask == NO_TASK)
newtask = NewTask();
}
}
else
newtask = NewTask();
if (arrayTask[newtask].priority < MIN)
{
arrayTask[newtask].priority = MIN;
if (fm_action5)
arrayTask[newtask].number = CABIN_DIMM_ON;
else
{
arrayTask[newtask].number = CABIN_DIMM_OFF;
arrayTask[newtask].parameter = PWM_MAX;
}
last_action5 = fm_action5;
}
}
break;
case DASH_BOARD_LIGHTS: // switching dash board lights
if (fm_action6 != last_action6)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
if (fm_action6)
arrayTask[newtask].number = DASH_BOARD_LIGHTS_ON;
else
arrayTask[newtask].number = DASH_BOARD_LIGHTS_OFF;
last_action6 = fm_action6;
}
}
break;
case WASHER_PUMP: // running washer pump motor
if (fm_action7 != last_action7)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
if (fm_action7)
arrayTask[newtask].number = WASHER_PUMP_ON;
else
arrayTask[newtask].number = WASHER_PUMP_OFF;
last_action7 = fm_action7;
}
}
break;
case MIRROR:
if (fm_action8 != last_action8)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
switch (fm_action8)
{
case 0:
arrayTask[newtask].number = MIRROR_OFF;
break;
case 1:
arrayTask[newtask].number = MIRROR_FOLD;
break;
case 2:
arrayTask[newtask].number = MIRROR_DOWN;
break;
case 3:
arrayTask[newtask].number = MIRROR_UP;
break;
case 4:
arrayTask[newtask].number = MIRROR_LEFT;
break;
case 5:
arrayTask[newtask].number = MIRROR_RIGHT;
break;
}
last_action8 = fm_action8;
}
}
break;
case WINDOW_LIFT:
if (fm_action9 != last_action9)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
switch (fm_action9)
{
case 0:
arrayTask[newtask].number = WINDOW_LIFT_OFF;
break;
case 1:
arrayTask[newtask].number = WINDOW_LIFT_DOWN;
break;
case 2:
arrayTask[newtask].number = WINDOW_LIFT_UP;
break;
}
last_action9 = fm_action9;
}
}
break;
case MSDI:
if (fm_action10 != last_action10)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
switch (fm_action10)
{
case 0:
arrayTask[newtask].number = MSDI_OFF;
break;
case 1:
arrayTask[newtask].number = MSDI_SINK_CURRENT;
break;
case 2:
arrayTask[newtask].number = MSDI_SOURCE_CURRENT;
break;
}
last_action10 = fm_action10;
}
}
break;
case CAN_MESSAGE:
if (fm_action11 != last_action11)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
if (fm_action11)
arrayTask[newtask].number = CAN_MESSAGE_START;
else
arrayTask[newtask].number = CAN_MESSAGE_STOP;
last_action11 = fm_action11;
}
}
break;
case LIN_MESSAGE:
if (fm_action12 != last_action12)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
if (fm_action12)
arrayTask[newtask].number = LIN_MESSAGE_START;
else
arrayTask[newtask].number = LIN_MESSAGE_STOP;
last_action12 = fm_action12;
}
}
break;
case LOW_POWER:
if (fm_action14 != last_action14)
{
newtask = NewTask();
if (arrayTask[newtask].priority < HIGH)
{
arrayTask[newtask].priority = HIGH;
switch (fm_action14)
{
case 1:
arrayTask[newtask].number = LOWPWR_GO_TO_SLEEP;
break;
case 2:
arrayTask[newtask].number = LOWPWR_GO_TO_FULLSTOP;
break;
case 3:
arrayTask[newtask].number = LOWPWR_GO_TO_PSEUDOSTOP;
break;
case 4:
arrayTask[newtask].number = LOWPWR_WD_TIMEOUT;
break;
case 5:
arrayTask[newtask].number = LOWPWR_WD_WINDOW_OUT;
break;
}
last_action14 = fm_action14; // only when task is inputed to array of task
}
}
break;
default:
break;
} // end of switch (task)
} // end of function Resquest
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -