本文整理汇总了C++中QS_OBJ_DICTIONARY函数的典型用法代码示例。如果您正苦于以下问题:C++ QS_OBJ_DICTIONARY函数的具体用法?C++ QS_OBJ_DICTIONARY怎么用?C++ QS_OBJ_DICTIONARY使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了QS_OBJ_DICTIONARY函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: QS_OBJ_DICTIONARY
//............................................................................
QState Mine1::initial(Mine1 *me, QEvent const *) {
static uint8_t dict_sent;
if (!dict_sent) {
QS_OBJ_DICTIONARY(&l_mine1[0]); // obj. dictionaries for Mine1 pool
QS_OBJ_DICTIONARY(&l_mine1[1]);
QS_OBJ_DICTIONARY(&l_mine1[2]);
QS_OBJ_DICTIONARY(&l_mine1[3]);
QS_OBJ_DICTIONARY(&l_mine1[4]);
QS_FUN_DICTIONARY(&Mine1::initial); // fun. dictionaries for Mine1 HSM
QS_FUN_DICTIONARY(&Mine1::unused);
QS_FUN_DICTIONARY(&Mine1::used);
QS_FUN_DICTIONARY(&Mine1::planted);
QS_FUN_DICTIONARY(&Mine1::exploding);
dict_sent = 1;
}
QS_SIG_DICTIONARY(MINE_PLANT_SIG, me); // local signals
QS_SIG_DICTIONARY(MINE_DISABLED_SIG, me);
QS_SIG_DICTIONARY(MINE_RECYCLE_SIG, me);
QS_SIG_DICTIONARY(SHIP_IMG_SIG, me);
QS_SIG_DICTIONARY(MISSILE_IMG_SIG, me);
return Q_TRAN(&Mine1::unused);
}
开发者ID:dizel3d,项目名称:qpcpp,代码行数:27,代码来源:mine1.cpp
示例2: Philo_initial
/* @(/2/0/2/0) */
QState Philo_initial(Philo *me, QEvent const *e) {
static uint8_t registered; /* starts off with 0, per C-standard */
(void)e; /* suppress the compiler warning about unused parameter */
if (!registered) {
QS_OBJ_DICTIONARY(&l_philo[0]);
QS_OBJ_DICTIONARY(&l_philo[0].timeEvt);
QS_OBJ_DICTIONARY(&l_philo[1]);
QS_OBJ_DICTIONARY(&l_philo[1].timeEvt);
QS_OBJ_DICTIONARY(&l_philo[2]);
QS_OBJ_DICTIONARY(&l_philo[2].timeEvt);
QS_OBJ_DICTIONARY(&l_philo[3]);
QS_OBJ_DICTIONARY(&l_philo[3].timeEvt);
QS_OBJ_DICTIONARY(&l_philo[4]);
QS_OBJ_DICTIONARY(&l_philo[4].timeEvt);
QS_FUN_DICTIONARY(&Philo_initial);
QS_FUN_DICTIONARY(&Philo_thinking);
QS_FUN_DICTIONARY(&Philo_hungry);
QS_FUN_DICTIONARY(&Philo_eating);
registered = (uint8_t)1;
}
QS_SIG_DICTIONARY(HUNGRY_SIG, me); /* signal for each Philos */
QS_SIG_DICTIONARY(TIMEOUT_SIG, me); /* signal for each Philos */
QActive_subscribe(&me->super, EAT_SIG);
return Q_TRAN(&Philo_thinking);
}
开发者ID:SmartCocktailFactory,项目名称:QP_LWIP_STM32F2xx_eth_DPP_Example,代码行数:29,代码来源:philo.c
示例3: Mine2_initial
/*..........................................................................*/
QState Mine2_initial(Mine2 *me, QEvt const *e) {
static uint8_t dict_sent;
(void)e; /* avoid the "unreferenced parameter" warning */
if (!dict_sent) {
QS_OBJ_DICTIONARY(&l_mine2[0]); /* obj. dictionaries for Mine2 pool */
QS_OBJ_DICTIONARY(&l_mine2[1]);
QS_OBJ_DICTIONARY(&l_mine2[2]);
QS_OBJ_DICTIONARY(&l_mine2[3]);
QS_OBJ_DICTIONARY(&l_mine2[4]);
QS_FUN_DICTIONARY(&Mine2_initial);/*fun. dictionaries for Mine2 HSM */
QS_FUN_DICTIONARY(&Mine2_unused);
QS_FUN_DICTIONARY(&Mine2_used);
QS_FUN_DICTIONARY(&Mine2_planted);
QS_FUN_DICTIONARY(&Mine2_exploding);
dict_sent = 1;
}
QS_SIG_DICTIONARY(MINE_PLANT_SIG, me); /* local signals */
QS_SIG_DICTIONARY(MINE_DISABLED_SIG, me);
QS_SIG_DICTIONARY(MINE_RECYCLE_SIG, me);
QS_SIG_DICTIONARY(SHIP_IMG_SIG, me);
QS_SIG_DICTIONARY(MISSILE_IMG_SIG, me);
return Q_TRAN(&Mine2_unused);
}
开发者ID:christation,项目名称:STM32491_CPLR,代码行数:29,代码来源:mine2.c
示例4: Q_STATE_DEF
//${AOs::Philo::SM} ..........................................................
Q_STATE_DEF(Philo, initial) {
//${AOs::Philo::SM::initial}
static bool registered = false; // starts off with 0, per C-standard
(void)e; // suppress the compiler warning about unused parameter
subscribe(EAT_SIG);
subscribe(TEST_SIG);
if (!registered) {
registered = true;
QS_OBJ_DICTIONARY(&l_philo[0].m_timeEvt);
QS_OBJ_DICTIONARY(&l_philo[1].m_timeEvt);
QS_OBJ_DICTIONARY(&l_philo[2].m_timeEvt);
QS_OBJ_DICTIONARY(&l_philo[3].m_timeEvt);
QS_OBJ_DICTIONARY(&l_philo[4].m_timeEvt);
QS_FUN_DICTIONARY(&initial);
QS_FUN_DICTIONARY(&thinking);
QS_FUN_DICTIONARY(&hungry);
QS_FUN_DICTIONARY(&eating);
}
QS_SIG_DICTIONARY(HUNGRY_SIG, this); // signal for each Philos
QS_SIG_DICTIONARY(TIMEOUT_SIG, this); // signal for each Philos
return tran(&thinking);
}
开发者ID:QuantumLeaps,项目名称:qpcpp,代码行数:28,代码来源:philo.cpp
示例5: QS_OBJ_DICTIONARY
//............................................................................
QState Philo::initial(Philo *me, QEvt const *) {
static uint8_t registered; // starts off with 0, per C-standard
if (!registered) {
QS_OBJ_DICTIONARY(&l_philo[0]);
QS_OBJ_DICTIONARY(&l_philo[0].m_timeEvt);
QS_OBJ_DICTIONARY(&l_philo[1]);
QS_OBJ_DICTIONARY(&l_philo[1].m_timeEvt);
QS_OBJ_DICTIONARY(&l_philo[2]);
QS_OBJ_DICTIONARY(&l_philo[2].m_timeEvt);
QS_OBJ_DICTIONARY(&l_philo[3]);
QS_OBJ_DICTIONARY(&l_philo[3].m_timeEvt);
QS_OBJ_DICTIONARY(&l_philo[4]);
QS_OBJ_DICTIONARY(&l_philo[4].m_timeEvt);
QS_FUN_DICTIONARY(&Philo::initial);
QS_FUN_DICTIONARY(&Philo::thinking);
QS_FUN_DICTIONARY(&Philo::hungry);
QS_FUN_DICTIONARY(&Philo::eating);
registered = (uint8_t)1;
}
QS_SIG_DICTIONARY(HUNGRY_SIG, me); // signal for each Philos
QS_SIG_DICTIONARY(TIMEOUT_SIG, me); // signal for each Philos
me->subscribe(EAT_SIG);
return Q_TRAN(&Philo::thinking);
}
开发者ID:QuantumLeaps,项目名称:qpcpp,代码行数:29,代码来源:philo.cpp
示例6: BSP_init
/* BSP functions ===========================================================*/
void BSP_init(void) {
/* NOTE: SystemInit() has been already called from the startup code
* but SystemCoreClock needs to be updated
*/
SystemCoreClockUpdate();
/* enable GPIOA clock for the LED */
RCC->AHBENR |= (1U << 0);
/* configure LED (PA.5) pin as push-pull outputs, No pull-up, pull-down */
GPIOA->MODER &= ~((3U << 2*5));
GPIOA->MODER |= ((1U << 2*5));
GPIOA->OTYPER &= ~((1U << 5));
GPIOA->OSPEEDR &= ~((3U << 2*5));
GPIOA->OSPEEDR |= ((1U << 2*5));
GPIOA->PUPDR &= ~((3U << 2*5));
/* enable GPIOC clock for the Button */
RCC->AHBENR |= (1ul << 2);
/* configure BTN (PC.13) pin as push-pull outputs, No pull-up, pull-down */
GPIOC->MODER &= ~(3ul << 2*13);
GPIOC->OSPEEDR &= ~(3ul << 2*13);
GPIOC->OSPEEDR |= (1ul << 2*13);
GPIOC->PUPDR &= ~(3ul << 2*13);
BSP_randomSeed(1234U);
if (QS_INIT((void *)0) == 0U) { /* initialize the QS software tracing */
Q_ERROR();
}
QS_OBJ_DICTIONARY(&l_tickHook);
QS_OBJ_DICTIONARY(&l_EXTI0_IRQHandler);
}
开发者ID:alisonjoe,项目名称:qpc,代码行数:36,代码来源:bsp.c
示例7: main
/*..........................................................................*/
int main(int argc, char *argv[]) {
UI_ctor(); /* instantiate the UI Active Object */
BSP_init(argc, argv); /* initialize the Board Support Package */
QF_init(); /* initialize the framework and the underlying RT kernel */
/* initialize the event pools... */
QF_poolInit(l_smlPoolSto, sizeof(l_smlPoolSto), sizeof(l_smlPoolSto[0]));
// QF_poolInit(l_medPoolSto, sizeof(l_medPoolSto), sizeof(l_medPoolSto[0]));
QF_psInit(l_subscrSto, Q_DIM(l_subscrSto)); /* init publish-subscribe */
/* setup the QS filters... */
/* send object dictionaries for event queues... */
QS_OBJ_DICTIONARY(l_uiQueueSto);
/* send object dictionaries for event pools... */
QS_OBJ_DICTIONARY(l_smlPoolSto);
// QS_OBJ_DICTIONARY(l_medPoolSto);
/* send signal dictionaries for globally published events... */
QS_SIG_DICTIONARY(QUIT_SIG, 0);
/* start the active objects... */
QActive_start(AO_UI,
1, /* priority */
l_uiQueueSto, Q_DIM(l_uiQueueSto), /* evt queue */
(void *)0, 0, /* no per-thread stack */
(QEvt *)0); /* no initialization event */
return QF_run(); /* run the QF application */
}
开发者ID:christation,项目名称:STM32491_CPLR,代码行数:34,代码来源:main.c
示例8: BSP_init
/*..........................................................................*/
void BSP_init(void) {
/* Set up system clocks, see manual 8.2.1
* 12MHz clock
* I Clk = 96 MHz
* B Clk = 24 MHz
* P Clock = 48 MHz
*/
SYSTEM.SCKCR.LONG = ((0UL << 24) | (2UL << 16) | (1UL << 8));
/* init LEDs (GPIOs and LED states to OFF) */
PORTD.DDR.BYTE = 0xFF;
PORTE.DDR.BYTE |= 0x0F;
PORTD.DR.BYTE = 0xFF; /* initialize all LEDs to OFF state */
PORTE.DR.BYTE |= 0x0F; /* initialize all LEDs to OFF state */
/* Init buttons as GPIO inputs
* Config GPIO Port 4 as input for reading buttons
* Not needed after POR because this is the default value...
*/
PORT4.DDR.BYTE = 0;
if (QS_INIT((void *)0) == 0) { /* initialize the QS software tracing */
Q_ERROR();
}
QS_OBJ_DICTIONARY(&QS_Excep_CMTU0_CMT0);
QS_OBJ_DICTIONARY(&QS_Excep_IRQ8);
QS_OBJ_DICTIONARY(&QS_Excep_IRQ9);
QS_OBJ_DICTIONARY(&QS_Excep_IRQ10);
}
开发者ID:SmartCocktailFactory,项目名称:QP_LWIP_STM32F2xx_eth_DPP_Example,代码行数:32,代码来源:bsp.c
示例9: BSP_init
/* BSP functions ===========================================================*/
void BSP_init(void) {
/* NOTE: SystemInit() has been already called from the startup code
* but SystemCoreClock needs to be updated
*/
SystemCoreClockUpdate();
/* turn the GPIO clock on */
LPC_SC->PCONP |= (1U << 15);
/* setup the GPIO pin functions for the LEDs... */
LPC_PINCON->PINSEL3 &= ~(3U << 4); /* LED_1: function P1.18 to GPIO */
LPC_PINCON->PINSEL3 &= ~(3U << 8); /* LED_2: function P1.20 to GPIO */
LPC_PINCON->PINSEL3 &= ~(3U << 10); /* LED_3: function P1.21 to GPIO */
LPC_PINCON->PINSEL3 &= ~(3U << 14); /* LED_4: function P1.23 to GPIO */
/* Set GPIO-P1 LED pins to output */
LPC_GPIO1->FIODIR |= (LED_1 | LED_2 | LED_3 | LED_4);
/* setup the GPIO pin function for the Button... */
LPC_PINCON->PINSEL0 &= ~(3U << 12); /* function P0.6 to GPIO, pull-up */
/* Set GPIO-P0 Button pin as input */
LPC_GPIO0->FIODIR &= ~BTN_EXT;
BSP_randomSeed(1234U);
if (QS_INIT((void *)0) == 0U) { /* initialize the QS software tracing */
Q_ERROR();
}
QS_OBJ_DICTIONARY(&l_SysTick_Handler);
QS_OBJ_DICTIONARY(&l_EINT0_IRQHandler);
QS_USR_DICTIONARY(PHILO_STAT);
}
开发者ID:alisonjoe,项目名称:qpc,代码行数:35,代码来源:bsp.c
示例10: BSP_init
/*--------------------------------------------------------------------------*/
void BSP_init(void) {
RCONbits.SWDTEN = 0; /* disable Watchdog */
LATA = 0xFF00; /* set LEDs (D3-D10/RA0-RA7) drive state low */
TRISA = 0xFF00; /* set LED pins (D3-D10/RA0-RA7) as outputs */
if (QS_INIT((void *)0) == 0) { /* initialize the QS software tracing */
Q_ERROR();
}
QS_OBJ_DICTIONARY(&l_T2Interrupt);
QS_OBJ_DICTIONARY(&l_INT0Interrupt);
}
开发者ID:SmartCocktailFactory,项目名称:QP_LWIP_STM32F2xx_eth_DPP_Example,代码行数:13,代码来源:bsp.c
示例11: LwIPMgr_initial
/*..........................................................................*/
QState LwIPMgr_initial(LwIPMgr *me, QEvent const *e) {
uint8_t macaddr[NETIF_MAX_HWADDR_LEN];
(void)e; /* suppress the compiler warning about unused parameter */
/* Configure the hardware MAC address for the Ethernet Controller */
/*
* Set up the MAC address and make sure it's not all FF values
* TODO: This will evetually be read somewhere
*/
/* the MAC address must have been programmed! */
Q_ASSERT((STATIC_IPADDR0 != 0xFF) &&
(STATIC_IPADDR1 != 0xFF) &&
(STATIC_IPADDR2 != 0xFF) &&
(STATIC_IPADDR3 != 0xFF));
macaddr[0] = DEF_MAC_ADDR0;
macaddr[1] = DEF_MAC_ADDR1;
macaddr[2] = DEF_MAC_ADDR2;
macaddr[3] = DEF_MAC_ADDR3;
macaddr[4] = DEF_MAC_ADDR4;
macaddr[5] = DEF_MAC_ADDR5;
/* initialize the Ethernet Driver */
me->netif = eth_driver_init((QActive *)me, macaddr);
me->ip_addr = 0xFFFFFFFF; /* initialize to impossible value */
/* initialize the lwIP applications... */
httpd_init(); /* initialize the simple HTTP-Deamon (web server) */
http_set_ssi_handler(&ssi_handler, ssi_tags, Q_DIM(ssi_tags));
http_set_cgi_handlers(cgi_handlers, Q_DIM(cgi_handlers));
me->upcb = udp_new();
udp_bind(me->upcb, IP_ADDR_ANY, 777); /* use port 777 for UDP */
udp_recv(me->upcb, &udp_rx_handler, me);
QS_OBJ_DICTIONARY(&l_lwIPMgr);
QS_OBJ_DICTIONARY(&l_lwIPMgr.te_LWIP_SLOW_TICK);
QS_FUN_DICTIONARY(&QHsm_top);
QS_FUN_DICTIONARY(&LwIPMgr_initial);
QS_FUN_DICTIONARY(&LwIPMgr_running);
QS_SIG_DICTIONARY(SEND_UDP_SIG, (QActive *)me);
QS_SIG_DICTIONARY(LWIP_SLOW_TICK_SIG, (QActive *)me);
QS_SIG_DICTIONARY(LWIP_RX_READY_SIG, (QActive *)me);
QS_SIG_DICTIONARY(LWIP_TX_READY_SIG, (QActive *)me);
QS_SIG_DICTIONARY(LWIP_RX_OVERRUN_SIG,(QActive *)me);
return Q_TRAN(&LwIPMgr_running);
}
开发者ID:SmartCocktailFactory,项目名称:QP_LWIP_STM32F2xx_eth_DPP_Example,代码行数:54,代码来源:lwipmgr.c
示例12: BSP_init
/*..........................................................................*/
void BSP_init(void) {
SystemInit(); /* initialize the clocking system */
GPIOInit(); /* initialize GPIO (sets up clock) */
GPIOSetDir(LED_PORT, LED_BIT, 1); /* set port for LED to output */
if (QS_INIT((void *)0) == 0) { /* initialize the QS software tracing */
Q_ERROR();
}
QS_RESET();
QS_OBJ_DICTIONARY(&l_SysTick_Handler);
QS_OBJ_DICTIONARY(&l_PIOINT0_IRQHandler);
}
开发者ID:SmartCocktailFactory,项目名称:QP_LWIP_STM32F2xx_eth_DPP_Example,代码行数:15,代码来源:bsp.c
示例13: main
/*..........................................................................*/
void main(int argc, char *argv[]) {
/* explicitly invoke the active objects' ctors... */
Missile_ctor();
Ship_ctor();
Tunnel_ctor();
BSP_init(argc, argv); /* initialize the Board Support Package */
QF_init(); /* initialize the framework and the underlying RT kernel */
/* initialize the event pools... */
QF_poolInit(l_smlPoolSto, sizeof(l_smlPoolSto), sizeof(l_smlPoolSto[0]));
QF_poolInit(l_medPoolSto, sizeof(l_medPoolSto), sizeof(l_medPoolSto[0]));
QF_psInit(l_subscrSto, Q_DIM(l_subscrSto)); /* init publish-subscribe */
/* send object dictionaries for event queues... */
QS_OBJ_DICTIONARY(l_missileQueueSto);
QS_OBJ_DICTIONARY(l_shipQueueSto);
QS_OBJ_DICTIONARY(l_tunnelQueueSto);
/* send object dictionaries for event pools... */
QS_OBJ_DICTIONARY(l_smlPoolSto);
QS_OBJ_DICTIONARY(l_medPoolSto);
/* send signal dictionaries for globally published events... */
QS_SIG_DICTIONARY(TIME_TICK_SIG, 0);
QS_SIG_DICTIONARY(PLAYER_TRIGGER_SIG, 0);
QS_SIG_DICTIONARY(PLAYER_QUIT_SIG, 0);
QS_SIG_DICTIONARY(GAME_OVER_SIG, 0);
/* start the active objects... */
QActive_start(AO_Missile,
1, /* priority */
l_missileQueueSto, Q_DIM(l_missileQueueSto), /* evt queue */
(void *)0, 0, /* no per-thread stack */
(QEvent *)0); /* no initialization event */
QActive_start(AO_Ship,
2, /* priority */
l_shipQueueSto, Q_DIM(l_shipQueueSto), /* evt queue */
(void *)0, 0, /* no per-thread stack */
(QEvent *)0); /* no initialization event */
QActive_start(AO_Tunnel,
3, /* priority */
l_tunnelQueueSto, Q_DIM(l_tunnelQueueSto), /* evt queue */
(void *)0, 0, /* no per-thread stack */
(QEvent *)0); /* no initialization event */
QF_run(); /* run the QF application */
}
开发者ID:JigsawRenaissance,项目名称:GGHC,代码行数:51,代码来源:main.c
示例14: main
//............................................................................
int main() {
static QP::QEvt const * missileQueueSto[2];
static QP::QEvt const * shipQueueSto[3];
static QP::QEvt const * tunnelQueueSto[GAME_MINES_MAX + 5];
static QF_MPOOL_EL(QP::QEvt) smlPoolSto[10];
static QF_MPOOL_EL(GAME::ObjectImageEvt) medPoolSto[2*GAME_MINES_MAX +10];
static QP::QSubscrList subscrSto[GAME::MAX_PUB_SIG];
QP::QF::init(); // initialize the framework and the underlying RT kernel
GAME::BSP_init(); // initialize the Board Support Package
// initialize the event pools...
QP::QF::poolInit(smlPoolSto, sizeof(smlPoolSto), sizeof(smlPoolSto[0]));
QP::QF::poolInit(medPoolSto, sizeof(medPoolSto), sizeof(medPoolSto[0]));
// init publish-subscribe
QP::QF::psInit(subscrSto, Q_DIM(subscrSto));
// send object dictionaries for event queues...
QS_OBJ_DICTIONARY(missileQueueSto);
QS_OBJ_DICTIONARY(shipQueueSto);
QS_OBJ_DICTIONARY(tunnelQueueSto);
// send object dictionaries for event pools...
QS_OBJ_DICTIONARY(smlPoolSto);
QS_OBJ_DICTIONARY(medPoolSto);
// send signal dictionaries for globally published events...
QS_SIG_DICTIONARY(GAME::TIME_TICK_SIG, static_cast<void *>(0));
QS_SIG_DICTIONARY(GAME::PLAYER_TRIGGER_SIG, static_cast<void *>(0));
QS_SIG_DICTIONARY(GAME::PLAYER_QUIT_SIG, static_cast<void *>(0));
QS_SIG_DICTIONARY(GAME::GAME_OVER_SIG, static_cast<void *>(0));
// start the active objects...
GAME::AO_Tunnel ->start(1U, // priority
tunnelQueueSto, Q_DIM(tunnelQueueSto), // evt queue
static_cast<void *>(0), 0U); // no per-thread stack
GAME::AO_Ship ->start(2U, // priority
shipQueueSto, Q_DIM(shipQueueSto), // evt queue
static_cast<void *>(0), 0U); // no per-thread stack
GAME::AO_Missile->start(3U, // priority
missileQueueSto, Q_DIM(missileQueueSto), // evt queue
static_cast<void *>(0), 0U); // no per-thread stack
return QP::QF::run(); // run the QF application
}
开发者ID:alisonjoe,项目名称:qpcpp,代码行数:49,代码来源:main.cpp
示例15: BSP_init
/*..........................................................................*/
void BSP_init(void) {
SystemInit(); /* initialize STM32 system (clock, PLL and Flash) */
/* initialize LEDs on Olimex P207 eval board */
omxEval_led_init();
/* initialize LCD on Olimex P207 eval board */
InitLcd();
/* initialize RS-232 serial port on Olimex P207 eval board */
omxEval_rs232_init();
/* initialize LEDs, Key Button, and LCD on STM322XX-EVAL board */
// alu: TODO BSP_ButtonAndLED_Init();
/* initialize the Serial for printfs to the serial port */
// alu: TODO BSP_USART_Init();
/* initialize the EXTI Line0 interrupt used for testing */
// alu: TODO BSP_EXTI_Init();
/* initialize the ETH GPIO */
ETH_GPIO_Config();
/* initialize the ETH MACDMA */
ETH_MACDMA_Config();
QS_OBJ_DICTIONARY(&l_SysTick_Handler);
}
开发者ID:SmartCocktailFactory,项目名称:QP_LWIP_STM32F2xx_eth_DPP_Example,代码行数:30,代码来源:bsp.c
示例16: Ship_initial
/*${AOs::Ship::SM} .........................................................*/
static QState Ship_initial(Ship * const me, QEvt const * const e) {
static struct {
QMState const *target;
QActionHandler act[2];
} const tatbl_ = { /* transition-action table */
&Ship_active_s, /* target state */
{
Q_ACTION_CAST(&Ship_active_i), /* init.tran. */
Q_ACTION_CAST(0) /* zero terminator */
}
};
/* ${AOs::Ship::SM::initial} */
(void)e; /* avoid the compiler warning 'usused parameter' */
QActive_subscribe((QActive *)me, TIME_TICK_SIG);
QActive_subscribe((QActive *)me, PLAYER_TRIGGER_SIG);
/* object dictionaries... */
QS_OBJ_DICTIONARY(&l_ship);
/* function dictionaries for Ship HSM... */
QS_FUN_DICTIONARY(&Ship_initial);
QS_FUN_DICTIONARY(&Ship_active);
QS_FUN_DICTIONARY(&Ship_parked);
QS_FUN_DICTIONARY(&Ship_flying);
QS_FUN_DICTIONARY(&Ship_exploding);
/* local signals... */
QS_SIG_DICTIONARY(PLAYER_SHIP_MOVE_SIG, &l_ship);
QS_SIG_DICTIONARY(TAKE_OFF_SIG, &l_ship);
QS_SIG_DICTIONARY(HIT_WALL_SIG, &l_ship);
QS_SIG_DICTIONARY(HIT_MINE_SIG, &l_ship);
QS_SIG_DICTIONARY(DESTROYED_MINE_SIG, &l_ship);
return QM_TRAN_INIT(&tatbl_);
}
开发者ID:christation,项目名称:STM32491_CPLR,代码行数:32,代码来源:ship.c
示例17: Q_STATE_DEF
//${AOs::Table::SM} ..........................................................
Q_STATE_DEF(Table, initial) {
//${AOs::Table::SM::initial}
(void)e; // suppress the compiler warning about unused parameter
QS_OBJ_DICTIONARY(&l_table);
QS_FUN_DICTIONARY(&QP::QHsm::top);
QS_FUN_DICTIONARY(&Table::initial);
QS_FUN_DICTIONARY(&Table::active);
QS_FUN_DICTIONARY(&Table::serving);
QS_FUN_DICTIONARY(&Table::paused);
QS_SIG_DICTIONARY(DONE_SIG, (void *)0); // global signals
QS_SIG_DICTIONARY(EAT_SIG, (void *)0);
QS_SIG_DICTIONARY(PAUSE_SIG, (void *)0);
QS_SIG_DICTIONARY(TERMINATE_SIG, (void *)0);
QS_SIG_DICTIONARY(HUNGRY_SIG, this); // signal just for Table
subscribe(DONE_SIG);
subscribe(PAUSE_SIG);
subscribe(TERMINATE_SIG);
for (uint8_t n = 0U; n < N_PHILO; ++n) {
m_fork[n] = FREE;
m_isHungry[n] = false;
BSP_displayPhilStat(n, THINKING);
}
QS_FUN_DICTIONARY(&active);
QS_FUN_DICTIONARY(&serving);
QS_FUN_DICTIONARY(&paused);
return tran(&serving);
}
开发者ID:QuantumLeaps,项目名称:qpcpp,代码行数:35,代码来源:table.cpp
示例18: BSP_init
//............................................................................
void BSP_init(void) {
// set the system clock as specified in lm3s_config.h (20MHz from PLL)
SystemInit();
// enable clock to the peripherals used by the application
SYSCTL->RCGC2 |= (1 << 0) | (1 << 2); // enable clock to GPIOA & C
__NOP(); // wait after enabling clocks
__NOP();
__NOP();
// configure the LED and push button
GPIOC->DIR |= USER_LED; // set direction: output
GPIOC->DEN |= USER_LED; // digital enable
GPIOC->DATA_Bits[USER_LED] = 0; // turn the User LED off
GPIOC->DIR &= ~PUSH_BUTTON; // set direction: input
GPIOC->DEN |= PUSH_BUTTON; // digital enable
Display96x16x1Init(1); // initialize the OLED display
Display96x16x1StringDraw("Dining Philos", 0, 0);
Display96x16x1StringDraw("0 ,1 ,2 ,3 ,4", 0, 1);
if (QS_INIT((void *)0) == 0) { // initialize the QS software tracing
Q_ERROR();
}
QS_OBJ_DICTIONARY(&l_SysTick_Handler);
}
开发者ID:dongkc,项目名称:rtu_drv,代码行数:29,代码来源:bsp.cpp
示例19: QF_run
/*..........................................................................*/
void QF_run(void) {
struct sched_param sparam;
struct timeval timeout = { 0 }; /* timeout for select() */
QF_onStartup(); /* invoke startup callback */
/* try to maximize the priority of the ticker thread, see NOTE01 */
sparam.sched_priority = sched_get_priority_max(SCHED_FIFO);
if (pthread_setschedparam(pthread_self(), SCHED_FIFO, &sparam) == 0) {
/* success, this application has sufficient privileges */
}
else {
/* setting priority failed, probably due to insufficient privieges */
}
QS_OBJ_DICTIONARY(&l_ticker); /* the QS dictionary for the ticker */
l_running = (uint8_t)1;
while (l_running) {
QF_TICK(&l_ticker); /* process a time tick */
timeout.tv_usec = 8000;
select(0, 0, 0, 0, &timeout); /* sleep for the full tick , NOTE05 */
}
QF_onCleanup(); /* invoke cleanup callback */
pthread_mutex_destroy(&QF_pThreadMutex_);
}
开发者ID:JPLOpenSource,项目名称:SCA,代码行数:28,代码来源:qf_port.c
示例20: BSP_init
/*..........................................................................*/
void BSP_init(void) {
uint32_t i;
for (i = 0; i < Q_DIM(l_led); ++i) { /* initialize the LEDs... */
AT91C_BASE_PIOA->PIO_PER = l_led[i]; /* enable pin */
AT91C_BASE_PIOA->PIO_OER = l_led[i]; /* configure as output pin */
LED_OFF(i); /* extinguish the LED */
}
/* configure Advanced Interrupt Controller (AIC) of AT91... */
AT91C_BASE_AIC->AIC_IDCR = ~0; /* disable all interrupts */
AT91C_BASE_AIC->AIC_ICCR = ~0; /* clear all interrupts */
for (i = 0; i < 8; ++i) {
AT91C_BASE_AIC->AIC_EOICR = 0; /* write AIC_EOICR 8 times */
}
/* set the desired ticking rate for the PIT... */
i = (MCK / 16 / BSP_TICKS_PER_SEC) - 1;
AT91C_BASE_PITC->PITC_PIMR = (AT91C_PITC_PITEN | AT91C_PITC_PITIEN | i);
if (QS_INIT((void *)0) == 0) { /* initialize the QS software tracing */
Q_ERROR();
}
QS_OBJ_DICTIONARY(&QS_tickIRQ);
}
开发者ID:SmartCocktailFactory,项目名称:QP_LWIP_STM32F2xx_eth_DPP_Example,代码行数:26,代码来源:bsp.c
注:本文中的QS_OBJ_DICTIONARY函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论