📄 cardgame.oil
字号:
//
//OIL file: cardgame.oil
//
OIL_VERSION = "2.0";
#include <osekworkscom.oil>
#include <ppcaxiomcme555.oil>
CPU cardgame {
/**************************************************************************/
/* Tasks */
/**************************************************************************/
TASK CloseOS {
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 15;
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 InitOS {
/*@****************************************************************/
/* Must be highest priority in the system. */
/*@****************************************************************/
TYPE = BASIC;
SCHEDULE = FULL;
PRIORITY = 16;
ACTIVATION = 1;
AUTOSTART = TRUE;
STACKSIZE = 128;
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 = 14;
ACTIVATION = 1;
AUTOSTART = TRUE;
STACKSIZE = 128;
SCHEDULE_CALL = FALSE;
EVENT = { BUFFER_CHANGED, DISPLAY_READY };
};
TASK ProcessKeyPress {
TYPE = EXTENDED;
SCHEDULE = FULL;
PRIORITY = 2;
ACTIVATION = 1;
AUTOSTART = TRUE;
STACKSIZE = 192;
SCHEDULE_CALL = FALSE;
EVENT = { KEYPRESS, SHUFFLED };
};
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 DealerTurnAlarm {
COUNTER = SYSTEM_COUNTER;
TASK = DealerTurn;
ACTION = ACTIVATETASK;
};
ALARM DisplayWaitAlarm {
COUNTER = SYSTEM_COUNTER;
TASK = OutputDisplayBuffer;
ACTION = SETEVENT;
EVENT = DISPLAY_READY;
};
ALARM ShuffleAlarm {
COUNTER = SHUFFLE_COUNTER;
TASK = ShuffleCards;
ACTION = ACTIVATETASK;
};
ALARM ShufflingCompleteAlarm {
COUNTER = SYSTEM_COUNTER;
ACTION = ACTIVATETASK;
TASK = ShufflingComplete;
};
/**************************************************************************/
/* Events */
/**************************************************************************/
EVENT ABORT_SHUFFLE {
MASK = AUTO;
};
EVENT BUFFER_CHANGED {
MASK = AUTO;
};
EVENT DISPLAY_READY {
MASK = AUTO;
};
EVENT KEYPRESS {
MASK = AUTO;
};
EVENT SHUFFLED {
MASK = AUTO;
};
/**************************************************************************/
/* Resources */
/**************************************************************************/
RESOURCE CARDDECK {
/* No attributes defined */
};
RESOURCE RES_SCHEDULER {
/* No attributes defined */
};
/**************************************************************************/
/* Counters */
/**************************************************************************/
COUNTER SHUFFLE_COUNTER {
/*@****************************************************************/
/* Shuffling Counter */
/*@****************************************************************/
MAXALLOWEDVALUE = 9;
TICKSPERBASE = 1;
MINCYCLE = 3;
};
COUNTER SYSTEM_COUNTER {
MAXALLOWEDVALUE = 65535;
TICKSPERBASE = 1000000;
MINCYCLE = 1;
};
/**************************************************************************/
/* ISRs */
/**************************************************************************/
ISR IOReadKeypadISR {
CATEGORY = 2;
};
ISR IOShuffleSwitchISR {
CATEGORY = 3;
};
/**************************************************************************/
/* Application Modes */
/**************************************************************************/
APPMODE HEAD_TO_HEAD {
VALUE = AUTO;
};
APPMODE SINGLE_PLAYER {
VALUE = AUTO;
};
APPMODE TEST {
VALUE = AUTO;
};
/**************************************************************************/
/* Messages */
/**************************************************************************/
MESSAGE DisplayMessage {
TYPE = INTERNAL;
LENGTH = 80;
ALIGNMENT = 1;
USAGE = SEND_RECEIVE;
QUEUED = FALSE;
TX_NOTIFICATION = NONE;
RX_NOTIFICATION = ON_SUCCESS;
TRANSMISSION = DIRECT;
ACCESSNAMES = { displayMirrorTemp, displayMirror };
RX_SUCCESS_TASK = OutputDisplayBuffer;
RX_SUCCESS_EVENT = BUFFER_CHANGED;
};
/**************************************************************************/
/* Access Names */
/**************************************************************************/
ACCESSNAME displayMirror {
TYPE = WITHOUTCOPY;
DATATYPE = "DISPLAY_MESSAGE_TYPE";
DATATYPE_SHAPE = SCALAR;
ARRAY_SIZE = 0;
};
ACCESSNAME displayMirrorTemp {
TYPE = WITHCOPY;
DATATYPE = "DISPLAY_MESSAGE_TYPE";
DATATYPE_SHAPE = SCALAR;
ARRAY_SIZE = 0;
};
/**************************************************************************/
/* O/S */
/**************************************************************************/
OS OSEKWorks_os {
CC = AUTO;
STATUS = EXTENDED;
SCHEDULE = AUTO;
SYSTEMSTACKSIZE = 1024;
StartupHook = TRUE;
ErrorHook = TRUE;
ShutdownHook = TRUE;
PreTaskHook = TRUE;
PostTaskHook = TRUE;
};
COM OSEKWorks_com {
CONFORMANCE = CCC1;
MESSAGE_INIT = TRUE;
NETWORK_QUEUE_SIZE = 8;
USER_INCLUDE_FILE = "dispdrv.h";
};
};
/*#***************************************************************************/
/* CloseOS:253; DealCards:42; DealerTurn:65; InitOS:16; OutputDisplay:4; */
/* OutputDisplayBuffer:267; ProcessKeyPress:3; ShuffleCards:7; */
/* ShufflingComplete:185; background:1; DealerTurnAlarm:66; */
/* DisplayWaitAlarm:276; ShuffleAlarm:5; ShufflingCompleteAlarm:10; */
/* ABORT_SHUFFLE:38; BUFFER_CHANGED:268; DISPLAY_READY:269; KEYPRESS:39; */
/* SHUFFLED:37; CARDDECK:158; RES_SCHEDULER:0; DisplayMessage:248; */
/* displayMirror:249; displayMirrorTemp:294; 1; 100 0; 300 0; 100 64; 300 */
/* 64; 100 128; 300 128; 330 48; 100 192; 164 176; 300 192; 32 0; 124 48; */
/* 124 48; 164 176; 32 0; 83 48; 32 0; 83 48; 124 48; 164 176; 83 48; 124 */
/* 48; 164 176; 32 0; 83 48; 124 48; 164 176; 32 0; 32 0; 59 48; 59 48; 83 */
/* 48; 124 48; 164 176; 83 48; 124 48; 164 176; 32 0; 32 0; 32 0; 93 24; 92 */
/* 24; 32 0; 59 48; 59 48; 59 48; 59 48; 59 48; 59 48; 93 24; 92 24; 59 48; */
/* 59 48; 93 24; 92 24; 83 48; 124 48; 164 176; 59 48; 59 48; 93 24; 92 24; */
/* 83 48; 124 48; 164 176; 32 0; 32 0; 60 48; 59 48; 59 48; 93 24; 92 24; */
/* 60 48; 83 48; 124 48; 164 176; 59 48; 59 48; 93 24; 92 24; 60 48; 83 48; */
/* 124 48; 164 176; 59 48; 59 48; 93 24; 92 24; 60 48; 83 48; 124 48; 164 */
/* 176; 32 0; 32 0; 32 0; 32 0; 82 48; 88 48; 59 48; 59 48; 93 24; 92 24; */
/* 60 48; 83 48; 124 48; 164 176; 82 48; 88 48; 59 48; 59 48; 93 24; 92 24; */
/* 60 48; 83 48; 124 48; 164 176; 59 48; 59 48; 93 24; 92 24; 60 48; 83 48; */
/* 124 48; 164 176; 93 24; 92 24; 93 24; 92 24; 93 24; 92 24; 59 48; 59 48; */
/* 93 24; 92 24; 60 48; 83 48; 124 48; 164 176; 59 48; 59 48; 93 24; 92 24; */
/* 60 48; 83 48; 124 48; 164 176; 59 48; 59 48; 59 48; 59 48; 59 48; 59 48; */
/* 93 24; 92 24; 60 48; 83 48; 124 48; 164 176; 32 0; 63 48; 59 48; 59 48; */
/* 59 48; 59 48; 59 48; 59 48; 93 24; 92 24; 63 48; 60 48; 83 48; 124 48; */
/* 164 176; 93 24; 92 24; 59 48; 59 48; 59 48; 93 24; 92 24; 63 48; 60 48; */
/* 83 48; 124 48; 164 176; 300 192; 138 48; 59 48; 59 48; 59 48; 93 24; 92 */
/* 24; 63 48; 60 48; 164 176; 195 48; 59 48; 59 48; 59 48; 93 24; 92 24; 63 */
/* 48; 60 48; 164 176; 195 48; 59 48; 59 48; 59 48; 93 24; 92 24; 63 48; 60 */
/* 48; 164 176; 195 48; 59 48; 59 48; 59 48; 93 24; 92 24; 63 48; 60 48; */
/* 164 176; 195 48; 195 48; 59 48; 59 48; 59 48; 93 24; 92 24; 63 48; 60 */
/* 48; 164 176; 195 48; 59 48; 59 48; 59 48; 93 24; 92 24; 63 48; 59 48; 59 */
/* 48; 59 48; 93 24; 92 24; 63 48; 60 48; 164 176; 195 48; 100 64; 32 0; */
/* 135 112; 135 112; 105 48; 32 0; 59 48; 59 48; 59 48; 93 24; 92 24; 63 */
/* 48; 60 48; 164 176; 195 48; 135 112; 73 48; 135 112; 73 48; 32 0; 32 0; */
/* 32 0; 81 48; 73 48; 81 48; 73 48; 81 48; 73 48; 32 0; 81 48; 81 48; 81 */
/* 48; 59 48; 59 48; 59 48; 81 48; 78 48; 93 24; 92 24; 63 48; 60 48; 81 */
/* 48; 164 176; 195 48; 81 48; 73 48; 32 0; 81 48; 75 48; 73 48; 81 48; 106 */
/* 48; 73 48; 81 48; 106 48; 73 48; 81 48; 106 48; 73 48; 59 48; 59 48; 59 */
/* 48; 81 48; 78 48; 93 24; 92 24; 63 48; 60 48; 81 48; 164 176; 195 48; 81 */
/* 48; 92 48; 73 48; 81 48; 78 48; */
/*#***************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -