本文整理汇总了C++中QS_OBJ_DICTIONARY函数的典型用法代码示例。如果您正苦于以下问题:C++ QS_OBJ_DICTIONARY函数的具体用法?C++ QS_OBJ_DICTIONARY怎么用?C++ QS_OBJ_DICTIONARY使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了QS_OBJ_DICTIONARY函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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 */
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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 */
}
示例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
}
示例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);
}