⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cardgame.oil

📁 《OSEK/VDX汽车电子嵌入式软件编程技术》中光盘的资料
💻 OIL
📖 第 1 页 / 共 3 页
字号:

   /**************************************************************************/
   /*             Counters                                                   */
   /**************************************************************************/

   COUNTER SHUFFLE_COUNTER {
           /*@****************************************************************/
           /* Shuffling Counter                                              */
           /*@****************************************************************/

           MAXALLOWEDVALUE = 9;
           TICKSPERBASE = 1;
           MINCYCLE = 3;
   };

   COUNTER SYSTEM_COUNTER {
           MAXALLOWEDVALUE = 65535;
           TICKSPERBASE = 1000000;
           MINCYCLE = 1;
   };


   /**************************************************************************/
   /*             ISRs                                                       */
   /**************************************************************************/

   ISR IOShuffleSwitchISR {
           CATEGORY = 3;
   };


   /**************************************************************************/
   /*             Application Modes                                          */
   /**************************************************************************/

   APPMODE HEAD_TO_HEAD {
           VALUE = AUTO;
   };

   APPMODE SINGLE_PLAYER {
           VALUE = AUTO;
   };

   APPMODE TEST {
           VALUE = AUTO;
   };


   /**************************************************************************/
   /*             Messages                                                   */
   /**************************************************************************/

   MESSAGE CardMessageIn {
           TYPE = EXTERNAL;
           LENGTH = 3;
           ALIGNMENT = 1;
           USAGE = RECEIVE;
           QUEUED = TRUE;
           TX_NOTIFICATION = NONE;
           RX_NOTIFICATION = ON_SUCCESS;
           TRANSMISSION = DIRECT;
           ACCESSNAMES = { receivedCard };
           CAN_ADDRESSES = { CardMessageNode1 };
           QUEUE_SIZE = 5;
           RX_SUCCESS_TASK = CardReceived;
   };

   MESSAGE CardMessageOut {
           TYPE = EXTERNAL;
           LENGTH = 3;
           ALIGNMENT = 1;
           USAGE = SEND;
           QUEUED = TRUE;
           TX_NOTIFICATION = ON_SUCCESS;
           RX_NOTIFICATION = NONE;
           TRANSMISSION = DIRECT;
           ACCESSNAMES = { dealtCard };
           CAN_ADDRESSES = { CardMessageNode0 };
           QUEUE_SIZE = 12;
           TX_SUCCESS_TASK = ProcessKeyPress;
           TX_SUCCESS_EVENT = TRANSMIT_COMPLETE;
   };

   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;
   };

   MESSAGE KeyPressMessage {
           TYPE = INTERNAL;
           LENGTH = 1;
           ALIGNMENT = 1;
           USAGE = SEND_RECEIVE;
           QUEUED = TRUE;
           QUEUE_SIZE = 10;
           TX_NOTIFICATION = NONE;
           RX_NOTIFICATION = ON_SUCCESS;
           TRANSMISSION = DIRECT;
           ACCESSNAMES = { keyPressed, keyValue };
           RX_SUCCESS_TASK = ProcessKeyPress;
           RX_SUCCESS_EVENT = KEYPRESS;
   };

   MESSAGE NodeStatusMessageIn {
           TYPE = EXTERNAL;
           LENGTH = 2;
           ALIGNMENT = 1;
           USAGE = RECEIVE;
           QUEUED = FALSE;
           TX_NOTIFICATION = NONE;
           RX_NOTIFICATION = ON_SUCCESS;
           TRANSMISSION = DIRECT;
           RX_SUCCESS_TASK = SetNetworkFlag;
           CAN_ADDRESSES = { Node1StatusMessage };
           ACCESSNAMES = { externalNodeStatus };
   };

   MESSAGE NodeStatusMessageOut {
           TYPE = EXTERNAL;
           LENGTH = 2;
           ALIGNMENT = 1;
           USAGE = SEND;
           QUEUED = FALSE;
           TX_NOTIFICATION = ON_DEADLINE;
           RX_NOTIFICATION = NONE;
           TRANSMISSION = PERIODIC;
           CAN_ADDRESSES = { Node0StatusMessage };
           ACCESSNAMES = { nodeStatus };
           TRANSMIT_INTERVAL = 100;
           TX_DEADLINE_ALARM = StatusMessageAlarm;
           TX_DEADLINE_TIME = 25;
   };

   MESSAGE OpponentMessageIn {
           TYPE = EXTERNAL;
           LENGTH = 60;
           ALIGNMENT = 1;
           USAGE = RECEIVE;
           QUEUED = FALSE;
           TX_NOTIFICATION = NONE;
           RX_NOTIFICATION = ON_SUCCESS;
           TRANSMISSION = DIRECT;
           ACCESSNAMES = { opponentMessageInBuffer };
           CAN_ADDRESSES = { OpponentMessageNode1 };
           RX_SUCCESS_TASK = OpponentMessageReceived;
   };

   MESSAGE OpponentMessageOut {
           TYPE = EXTERNAL;
           LENGTH = 60;
           ALIGNMENT = 1;
           USAGE = SEND;
           QUEUED = FALSE;
           TX_NOTIFICATION = NONE;
           RX_NOTIFICATION = NONE;
           TRANSMISSION = DIRECT;
           ACCESSNAMES = { opponentMessageOutBuffer };
           CAN_ADDRESSES = { OpponentMessageNode0 };
   };

   MESSAGE RemainingCardsMessageIn {
           TYPE = EXTERNAL;
           LENGTH = 1;
           ALIGNMENT = 1;
           USAGE = RECEIVE;
           QUEUED = FALSE;
           TX_NOTIFICATION = NONE;
           RX_NOTIFICATION = ON_DEADLINE;
           TRANSMISSION = DIRECT;
           ACCESSNAMES = { remainingCardsIn };
           CAN_ADDRESSES = { RemainingCardsNode1 };
           RX_DEADLINE_ALARM = RemainingCardsMissing;
           RX_DEADLINE_TIME = 700;
   };

   MESSAGE RemainingCardsMessageOut {
           TYPE = EXTERNAL;
           LENGTH = 1;
           ALIGNMENT = 1;
           USAGE = SEND;
           QUEUED = FALSE;
           TX_NOTIFICATION = NONE;
           RX_NOTIFICATION = NONE;
           TRANSMISSION = MIXED;
           TRANSMIT_INTERVAL = 500;
           VALUE_SIZE = ONE_BYTE;
           RELEVANT_CHANGE = NEQ;
           COMPARE_VALUE = 0;
           CAN_ADDRESSES = { RemainingCardsNode0 };
           ACCESSNAMES = { remainingCardsOut };
   };

   MESSAGE RequestModeMessageIn {
           TYPE = EXTERNAL;
           LENGTH = 1;
           ALIGNMENT = 1;
           USAGE = RECEIVE;
           QUEUED = FALSE;
           TX_NOTIFICATION = NONE;
           RX_NOTIFICATION = ON_SUCCESS;
           TRANSMISSION = DIRECT;
           RX_SUCCESS_TASK = ChangeGameMode;
           CAN_ADDRESSES = { RequestModeMessageNode1 };
           ACCESSNAMES = { requestedMode };
   };

   MESSAGE RequestModeMessageOut {
           TYPE = EXTERNAL;
           LENGTH = 1;
           ALIGNMENT = 1;
           USAGE = SEND;
           QUEUED = FALSE;
           TX_NOTIFICATION = NONE;
           RX_NOTIFICATION = NONE;
           TRANSMISSION = DIRECT;
           CAN_ADDRESSES = { RequestModeMessageNode0 };
           ACCESSNAMES = { requestMode };
   };


   /**************************************************************************/
   /*             Access Names                                               */
   /**************************************************************************/

   ACCESSNAME dealtCard {
           TYPE = WITHCOPY;
           DATATYPE = "CardMessageType";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };

   ACCESSNAME displayMirror {
           TYPE = WITHOUTCOPY;
           DATATYPE = "DISPLAY_MESSAGE_TYPE";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };

   ACCESSNAME displayMirrorTemp {
           TYPE = WITHOUTCOPY;
           DATATYPE = "DISPLAY_MESSAGE_TYPE";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };

   ACCESSNAME externalNodeStatus {
           TYPE = WITHOUTCOPY;
           DATATYPE = "NodeStatusType";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };

   ACCESSNAME keyPressed {
           TYPE = WITHCOPY;
           DATATYPE = "UINT8";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };

   ACCESSNAME keyValue {
           TYPE = WITHCOPY;
           DATATYPE = "UINT8";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };

   ACCESSNAME nodeStatus {
           TYPE = WITHOUTCOPY;
           DATATYPE = "NodeStatusType";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };

   ACCESSNAME opponentMessageInBuffer {
           TYPE = WITHOUTCOPY;
           DATATYPE = "char";
           DATATYPE_SHAPE = ARRAY;
           ARRAY_SIZE = 60;
   };

   ACCESSNAME opponentMessageOutBuffer {
           TYPE = WITHOUTCOPY;
           DATATYPE = "char";
           DATATYPE_SHAPE = ARRAY;
           ARRAY_SIZE = 60;
   };

   ACCESSNAME receivedCard {
           TYPE = WITHCOPY;
           DATATYPE = "CardMessageType";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };

   ACCESSNAME remainingCardsIn {
           TYPE = WITHOUTCOPY;
           DATATYPE = "UINT8";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };

   ACCESSNAME remainingCardsOut {
           TYPE = WITHOUTCOPY;
           DATATYPE = "UINT8";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };

   ACCESSNAME requestMode {
           TYPE = WITHCOPY;
           DATATYPE = "UINT8";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };

   ACCESSNAME requestedMode {
           TYPE = WITHCOPY;
           DATATYPE = "UINT8";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };


   /**************************************************************************/
   /*             Networks                                                   */
   /**************************************************************************/

   NETWORK Net1 {
           DEVICE_TYPE = CAN;
           AR_TIMER = 1000;
           AS_TIMER = 1000;
           B1_TIMER = 1000;
           B2_TIMER = 1000;
           C_TIMER = 1000;
           D1_TIMER = 1000;
           D2_TIMER = 1000;
           E_TIMER = 1000;
           BLOCK_SIZE = 3;
           SEPARATION_TIME = 10;
           WAIT_FRAMES = 0;
           CAN_SUBNET = 0;
           CAN_OBJECTS = { OpponentMessageOutObject, OpponentMessageInObject,
           CardMessageInObject, CardMessageOutObject,
           RequestModeMessageInObject, RequestModeMessageOutObject,
           Node0StatusObject, Node1StatusObject, RemainingCardsInObject,
           RemainingCardsOutObject };
   };


   /**************************************************************************/
   /*             CAN Addresses                                              */
   /**************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -