📄 cardgame.oil
字号:
//
//OIL file: cardgame.oil
//
OIL_VERSION = "2.0";
#include <osekworkscom.oil>
#include <ppcaxiomcme555.oil>
CPU cardgame {
/**************************************************************************/
/* Tasks */
/**************************************************************************/
TASK AbortMessage {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 23;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 64;
SCHEDULE_CALL = FALSE;
};
TASK CardReceived {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 8;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 64;
SCHEDULE_CALL = FALSE;
RESOURCE = { CARDDECK };
};
TASK ChangeGameMode {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 7;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 64;
SCHEDULE_CALL = FALSE;
};
TASK CloseOS {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 25;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 64;
SCHEDULE_CALL = FALSE;
};
TASK DealCards {
TYPE = EXTENDED;
SCHEDULE = FULL;
PRIORITY = 10;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 128;
SCHEDULE_CALL = FALSE;
EVENT = { ABORT_SHUFFLE, SHUFFLED };
RESOURCE = { CARDDECK };
};
TASK DealerTurn {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 6;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 128;
SCHEDULE_CALL = FALSE;
};
TASK IOSampleKeypad {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 20;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 128;
SCHEDULE_CALL = FALSE;
};
TASK IncomingMessage {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 22;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 64;
SCHEDULE_CALL = FALSE;
};
TASK InitOS {
/*@****************************************************************/
/* Must be highest priority in the system. */
/*@****************************************************************/
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 26;
ACTIVATION = 1;
AUTOSTART = TRUE;
STACKSIZE = 128;
SCHEDULE_CALL = FALSE;
};
TASK LostOpponent {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 16;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 64;
SCHEDULE_CALL = FALSE;
};
TASK MonitorNetworkActivity {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 17;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 64;
SCHEDULE_CALL = FALSE;
};
TASK OpponentMessageReceived {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 21;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 64;
SCHEDULE_CALL = FALSE;
};
TASK OutputDisplay {
TYPE = BASIC;
SCHEDULE = NON;
PRIORITY = 12;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 128;
SCHEDULE_CALL = TRUE;
};
TASK OutputDisplayBuffer {
TYPE = EXTENDED;
SCHEDULE = NON;
PRIORITY = 24;
ACTIVATION = 1;
AUTOSTART = TRUE;
STACKSIZE = 128;
SCHEDULE_CALL = FALSE;
EVENT = { BUFFER_CHANGED, DISPLAY_READY };
RESOURCE = { RES_SCHEDULER };
};
TASK ProcessKeyPress {
TYPE = EXTENDED;
SCHEDULE = FULL;
PRIORITY = 2;
ACTIVATION = 1;
AUTOSTART = TRUE;
STACKSIZE = 192;
SCHEDULE_CALL = FALSE;
EVENT = { CARDS_DEALT, KEYPRESS, SHUFFLED, SIM_KEY,
TRANSMIT_COMPLETE, TRANSMIT_FAILED };
RESOURCE = { CARDDECK };
};
TASK SetDeviceLonely {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 19;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 64;
SCHEDULE_CALL = FALSE;
};
TASK SetNetworkFlag {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 18;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 64;
SCHEDULE_CALL = FALSE;
};
TASK ShuffleCards {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 4;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 128;
SCHEDULE_CALL = FALSE;
RESOURCE = { CARDDECK };
};
TASK ShufflingComplete {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 13;
ACTIVATION = 1;
AUTOSTART = FALSE;
STACKSIZE = 128;
SCHEDULE_CALL = FALSE;
};
TASK background {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 1;
ACTIVATION = 1;
AUTOSTART = TRUE;
STACKSIZE = 64;
SCHEDULE_CALL = FALSE;
};
/**************************************************************************/
/* Alarms */
/**************************************************************************/
ALARM CardDumpDelay {
COUNTER = SYSTEM_COUNTER;
TASK = ProcessKeyPress;
ACTION = SETEVENT;
EVENT = CARDS_DEALT;
};
ALARM CardMessageAlarm {
COUNTER = SYSTEM_COUNTER;
TASK = ProcessKeyPress;
ACTION = SETEVENT;
EVENT = TRANSMIT_FAILED;
};
ALARM DealerTurnAlarm {
COUNTER = SYSTEM_COUNTER;
TASK = DealerTurn;
ACTION = ACTIVATETASK;
};
ALARM DisplayWaitAlarm {
COUNTER = SYSTEM_COUNTER;
TASK = OutputDisplayBuffer;
ACTION = SETEVENT;
EVENT = DISPLAY_READY;
};
ALARM IncomingMessageAlarm {
COUNTER = SYSTEM_COUNTER;
TASK = AbortMessage;
ACTION = ACTIVATETASK;
};
ALARM MonitorNetworkAlarm {
COUNTER = SYSTEM_COUNTER;
TASK = MonitorNetworkActivity;
ACTION = ACTIVATETASK;
};
ALARM RemainingCardsMissing {
COUNTER = SYSTEM_COUNTER;
TASK = LostOpponent;
ACTION = ACTIVATETASK;
};
ALARM RequestModeAlarm {
COUNTER = SYSTEM_COUNTER;
TASK = ChangeGameMode;
ACTION = ACTIVATETASK;
};
ALARM SampleKeypadAlarm {
COUNTER = SYSTEM_COUNTER;
TASK = IOSampleKeypad;
ACTION = ACTIVATETASK;
};
ALARM ShuffleAlarm {
COUNTER = SHUFFLE_COUNTER;
TASK = ShuffleCards;
ACTION = ACTIVATETASK;
};
ALARM ShufflingCompleteAlarm {
COUNTER = SYSTEM_COUNTER;
ACTION = ACTIVATETASK;
TASK = ShufflingComplete;
};
ALARM StatusMessageAlarm {
COUNTER = SYSTEM_COUNTER;
TASK = SetDeviceLonely;
ACTION = ACTIVATETASK;
};
/**************************************************************************/
/* Events */
/**************************************************************************/
EVENT ABORT_SHUFFLE {
MASK = AUTO;
};
EVENT BUFFER_CHANGED {
MASK = AUTO;
};
EVENT CARDS_DEALT {
MASK = AUTO;
};
EVENT DISPLAY_READY {
MASK = AUTO;
};
EVENT KEYPRESS {
MASK = AUTO;
};
EVENT SHUFFLED {
MASK = AUTO;
};
EVENT SIM_KEY {
MASK = AUTO;
};
EVENT TRANSMIT_COMPLETE {
MASK = AUTO;
};
EVENT TRANSMIT_FAILED {
MASK = AUTO;
};
/**************************************************************************/
/* Resources */
/**************************************************************************/
RESOURCE CARDDECK {
/* No attributes defined */
};
RESOURCE RES_SCHEDULER {
/* No attributes defined */
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -