Esempio n. 1
0
/*..........................................................................*/
static QState ModIo2Mgr_initial(ModIo2Mgr *me, QEvent const *e) {
    (void)e;        /* suppress the compiler warning about unused parameter */

    QActive_subscribe((QActive *)me, ENABLE_RELAY_SIG);
    QActive_subscribe((QActive *)me, DISABLE_RELAY_SIG);
    QActive_subscribe((QActive *)me, TERMINATE_SIG);

    QS_OBJ_DICTIONARY(&l_modIo2Mgr);
    QS_FUN_DICTIONARY(&QHsm_top);
    QS_FUN_DICTIONARY(&ModIo2Mgr_initial);
    QS_FUN_DICTIONARY(&ModIo2Mgr_running);

    QS_SIG_DICTIONARY(ENABLE_RELAY_SIG,  0);
    QS_SIG_DICTIONARY(DISABLE_RELAY_SIG, 0);
    QS_SIG_DICTIONARY(TERMINATE_SIG,     0);

    if (ModIO2_init() == Error)
    {
      LCDPutStr("Err MODIO2 init", 110, 5, LARGE, RED, WHITE);
      return Q_UNHANDLED();
    }
    else
    {
      return Q_TRAN(&ModIo2Mgr_running);
    }
}
Esempio n. 2
0
/*${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_);
}
Esempio n. 3
0
/*${AOs::USBTask::SM} ......................................................*/
static QState USBTask_initial(USBTask * const me, QEvt const * const e) {
    /* ${AOs::USBTask::SM::initial} */
    /**/
    QActive_subscribe((QActive *)me, USB_DEV_ATTACH_SIG);
    QActive_subscribe((QActive *)me, USB_DEV_DETACH_SIG);

    VBUS_ON();
    return Q_TRAN(&USBTask_idle);
}
Esempio n. 4
0
/* @(/1/7/6/0) */
static QState QCAN_initial(QCAN * const me, QEvt const * const e) {
    QActive_subscribe(&me->super, ACC_ON_SIG);
    QActive_subscribe(&me->super, ACC_OFF_SIG);
    QActive_subscribe(&me->super, WAKEUP_REQ_SIG);
    QActive_subscribe(&me->super, SLEEP_REQ_SIG);

    CAN_MemInit(); //初始化


    return Q_TRAN(&QCAN_Normal_Mode);
}
Esempio n. 5
0
/**
 * initial transition
 **/
static QState MenuAO_initial(MenuAO *me, QEvent const *e)
{
    // TODO subscribe to published events
    QActive_subscribe(MenuAOBase, BUTTON_SHORTPRESS_SIG);
    QActive_subscribe(MenuAOBase, BUTTON_LONGPRESS_SIG);
    QActive_subscribe(MenuAOBase, AD_VALUE_SIG);
    QActive_subscribe(MenuAOBase, ALARM_SIG);

    // Initialize RTC
    RTC_Init();
    RTC_Start();

    return Q_TRAN(&MenuAO_Idle);
}
/* HSM definition ----------------------------------------------------------*/
QState UI_top_initial(UI_top *me, QEvt const *e) {
    (void)e;           /* avoid the compiler warning about unused parameter */

                                                  /* subscribe to events... */
    QActive_subscribe((QActive *)me, QUIT_SIG);

    me->history = (QStateHandler)&UI_num_sd_handler;  /* initialize history */

                                 /* send object dictionaries for UI objects */
    QS_OBJ_DICTIONARY(&l_ui);

                             /* send function dictionaries for UI states... */
    QS_FUN_DICTIONARY(&UI_top_handler);
    QS_FUN_DICTIONARY(&UI_top_final);
    QS_FUN_DICTIONARY(&UI_num_handler);
    QS_FUN_DICTIONARY(&UI_num_sd_handler);
    QS_FUN_DICTIONARY(&UI_num_lr_handler);
    QS_FUN_DICTIONARY(&UI_help_handler);

                  /* send signal dictionaries for signals specific to UI... */
    QS_SIG_DICTIONARY(C_SIG,         me);
    QS_SIG_DICTIONARY(CE_SIG,        me);
    QS_SIG_DICTIONARY(DIGIT_0_SIG,   me);
    QS_SIG_DICTIONARY(DIGIT_1_9_SIG, me);
    QS_SIG_DICTIONARY(POINT_SIG,     me);
    QS_SIG_DICTIONARY(NEG_SIG,       me);
    QS_SIG_DICTIONARY(ENTER_SIG,     me);
    QS_SIG_DICTIONARY(UP_SIG,        me);
    QS_SIG_DICTIONARY(DOWN_SIG,      me);
    QS_SIG_DICTIONARY(HELP_SIG,      me);


    return Q_TRAN(&UI_num_handler);
}
Esempio n. 7
0
/**
 * Brewing state handler
 */
static QState CoffeeMachineAO_Brewing(CoffeeMachineAO *me, QEvent const *e)
{
	 switch ( e->sig )
	 {
		 case Q_INIT_SIG:
		 {
			 DBG("CoffeeMachine Brewing: INIT");
			 return Q_HANDLED();
		 }
		 
		 case Q_ENTRY_SIG:
		 {
			 DBG("CoffeeMachine Brewing: ENTRY");
			 QActive_subscribe((QActive *)me, BUTTON_SHORTPRESS_SIG);
		 }
		 
		 case BUTTON_SHORTPRESS_SIG:
		 {
			 DBG("CoffeeMachine Brewing: BUTTON SHORT PRESS");
			 return Q_TRAN(&CoffeeMachineAO_Idle);
		 }
		 
		 case Q_EXIT_SIG:
		 {
			 DBG("CoffeeMachine Brewing: EXIT");
			 QActive_unsubscribe((QActive *)me, BUTTON_SHORTPRESS_SIG);
		 }
	 }
	 
	 return Q_SUPER(&QHsm_top);
}
/* @(/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);
}
Esempio n. 9
0
/*${AOs::SerialMgr::SM} ....................................................*/
static QState SerialMgr_initial(SerialMgr * const me, QEvt const * const e) {
    /* ${AOs::SerialMgr::SM::initial} */
    (void)e;        /* suppress the compiler warning about unused parameter */

    QS_OBJ_DICTIONARY(&l_SerialMgr);
    QS_FUN_DICTIONARY(&QHsm_top);
    QS_FUN_DICTIONARY(&SerialMgr_initial);
    QS_FUN_DICTIONARY(&SerialMgr_Active);
    QS_FUN_DICTIONARY(&SerialMgr_Idle);
    QS_FUN_DICTIONARY(&SerialMgr_Busy);

    QActive_subscribe((QActive *)me, UART_DMA_START_SIG);
    QActive_subscribe((QActive *)me, DBG_LOG_SIG);
    QActive_subscribe((QActive *)me, DBG_MENU_SIG);
    QActive_subscribe((QActive *)me, UART_DMA_DONE_SIG);
    QActive_subscribe((QActive *)me, UART_DMA_TIMEOUT_SIG);
    return Q_TRAN(&SerialMgr_Idle);
}
/* @(/2/1/4/0) */
static QState Ship_initial(Ship * const me, QEvt const * const e) {
    (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 Q_TRAN(&Ship_active);
}
Esempio n. 11
0
/*..........................................................................*/
QState Tunnel_initial(Tunnel *me, QEvt const *e) {
    uint8_t n;

    (void)e;                  /* avoid the "unreferenced parameter" warning */

    for (n = 0; n < GAME_MINES_MAX; ++n) {
        QHsm_init(me->mine1_pool[n], (QEvt *)0);/*initial tran. for Mine1 */
        QHsm_init(me->mine2_pool[n], (QEvt *)0);/*initial tran. for Mine2 */
    }

    randomSeed(1234);                   /* seed the pseudo-random generator */

    QActive_subscribe((QActive *)me, TIME_TICK_SIG);
    QActive_subscribe((QActive *)me, PLAYER_TRIGGER_SIG);
    QActive_subscribe((QActive *)me, PLAYER_QUIT_SIG);

    QS_OBJ_DICTIONARY(&l_tunnel);    /* object dictionary for Tunnel object */
    QS_OBJ_DICTIONARY(&l_tunnel.blinkTimeEvt);
    QS_OBJ_DICTIONARY(&l_tunnel.screenTimeEvt);

    QS_FUN_DICTIONARY(&Tunnel_initial); /* fun. dictionaries for Tunnel HSM */
    QS_FUN_DICTIONARY(&Tunnel_final);
    QS_FUN_DICTIONARY(&Tunnel_active);
    QS_FUN_DICTIONARY(&Tunnel_playing);
    QS_FUN_DICTIONARY(&Tunnel_demo);
    QS_FUN_DICTIONARY(&Tunnel_game_over);
    QS_FUN_DICTIONARY(&Tunnel_screen_saver);
    QS_FUN_DICTIONARY(&Tunnel_screen_saver_hide);
    QS_FUN_DICTIONARY(&Tunnel_screen_saver_show);

    QS_SIG_DICTIONARY(BLINK_TIMEOUT_SIG,  &l_tunnel);      /* local signals */
    QS_SIG_DICTIONARY(SCREEN_TIMEOUT_SIG, &l_tunnel);
    QS_SIG_DICTIONARY(SHIP_IMG_SIG,       &l_tunnel);
    QS_SIG_DICTIONARY(MISSILE_IMG_SIG,    &l_tunnel);
    QS_SIG_DICTIONARY(MINE_IMG_SIG,       &l_tunnel);
    QS_SIG_DICTIONARY(MINE_DISABLED_SIG,  &l_tunnel);
    QS_SIG_DICTIONARY(EXPLOSION_SIG,      &l_tunnel);
    QS_SIG_DICTIONARY(SCORE_SIG,          &l_tunnel);

    return Q_TRAN(&Tunnel_demo);
}
Esempio n. 12
0
/*${AOs::FlashMgr::SM} .....................................................*/
static QState FlashMgr_initial(FlashMgr * const me, QEvt const * const e) {
    /* ${AOs::FlashMgr::SM::initial} */
    (void)e;        /* suppress the compiler warning about unused parameter */

    QS_OBJ_DICTIONARY(&l_CommMgr);
    QS_FUN_DICTIONARY(&QHsm_top);
    QS_FUN_DICTIONARY(&CommMgr_initial);
    QS_FUN_DICTIONARY(&CommMgr_Active);

    QS_FUN_DICTIONARY(&CommMgr_Idle);
    QS_FUN_DICTIONARY(&CommMgr_Busy);
    QS_FUN_DICTIONARY(&CommMgr_PrepFlash);
    QS_FUN_DICTIONARY(&CommMgr_WaitingForFWData);
    QS_FUN_DICTIONARY(&CommMgr_WritingFlash);
    QS_FUN_DICTIONARY(&CommMgr_FinalizingFlash);

    QActive_subscribe((QActive *)me, FLASH_OP_START_SIG);
    QActive_subscribe((QActive *)me, FLASH_DATA_SIG);
    QActive_subscribe((QActive *)me, FLASH_DONE_SIG);
    QActive_subscribe((QActive *)me, FLASH_ERROR_SIG);
    QActive_subscribe((QActive *)me, FLASH_TIMEOUT_SIG);
    return Q_TRAN(&FlashMgr_Idle);
}
Esempio n. 13
0
/*..........................................................................*/
static QState Segment_initial(Segment *me, QEvent const *e)
{
	QActive_subscribe((QActive *)me, TERMINATE_SIG);

	QS_OBJ_DICTIONARY(&l_segment);

	QS_FUN_DICTIONARY(&Segment_initial);
	QS_FUN_DICTIONARY(&Segment_final);
	QS_FUN_DICTIONARY(&Segment_idle);

	QS_SIG_DICTIONARY(SEG_READ_REQUEST_SIG,  &l_segment);
	QS_SIG_DICTIONARY(SEG_WRITE_REQUEST_SIG, &l_segment);
	
	return Q_TRAN(&Segment_idle);
}
Esempio n. 14
0
/*..........................................................................*/
static QState Cache_initial(Cache *me, QEvent const *e)
{
	QActive_subscribe((QActive *)me, TERMINATE_SIG);

	QS_OBJ_DICTIONARY(&l_cache);
	
	QS_FUN_DICTIONARY(&Cache_initial);
	QS_FUN_DICTIONARY(&Cache_final);
	QS_FUN_DICTIONARY(&Cache_idle);
	QS_FUN_DICTIONARY(&Cache_read);
	QS_FUN_DICTIONARY(&Cache_write);
	
	QS_SIG_DICTIONARY(CACHE_WRITE_REQUEST_SIG, &l_cache);
	QS_SIG_DICTIONARY(CACHE_READ_REQUEST_SIG, &l_cache);
	
	return Q_TRAN(&Cache_idle);
}
/*..........................................................................*/
QState Missile_initial(Missile *me, QEvt const *e) {
    (void)e;                  /* avoid the "unreferenced parameter" warning */

    QActive_subscribe((QActive *)me, TIME_TICK_SIG);

    QS_OBJ_DICTIONARY(&l_missile);  /* object dictionary for Missile object */

    QS_FUN_DICTIONARY(&Missile_initial);    /* dictionaries for Missile HSM */
    QS_FUN_DICTIONARY(&Missile_armed);
    QS_FUN_DICTIONARY(&Missile_flying);
    QS_FUN_DICTIONARY(&Missile_exploding);

    QS_SIG_DICTIONARY(MISSILE_FIRE_SIG,   &l_missile);     /* local signals */
    QS_SIG_DICTIONARY(HIT_WALL_SIG,       &l_missile);
    QS_SIG_DICTIONARY(DESTROYED_MINE_SIG, &l_missile);

    return Q_TRAN(&Missile_armed);
}
Esempio n. 16
0
File: cli.c Progetto: ageamiu/cdb
/*${AOs::CLI::SM} ..........................................................*/
static QState CLI_initial(CLI * const me, QEvt const * const e) {
    /* ${AOs::CLI::SM::initial} */
    /* Print banner on the serial console */

        Console_printStr("\r\nStart\r\n");
        Console_printStr("Compiled on ");
        Console_printStr(__DATE__);
        Console_printStr(" at ");
        Console_printStr(__TIME__);
        Console_printStr(" using Microchip XC16 ver.");
        Console_printNum(__XC16_VERSION__, 10);

        LED_ON();

        QTimeEvt_postIn( &me->blinkEvt, (QActive *)me, BLINK_ON_TIME );

    QActive_subscribe((QActive *)me, PRINT_STRING_SIG);
    return Q_TRAN(&CLI_idle);
}
Esempio n. 17
0
/*${AOs::Philo::SM} ........................................................*/
static QState Philo_initial(Philo * const me, QEvt const * const e) {
    static struct {
        QMState const *target;
        QActionHandler act[2];
    } const tatbl_ = { /* transition-action table */
        &Philo_thinking_s, /* target state */
        {
            Q_ACTION_CAST(&Philo_thinking_e), /* entry */
            Q_ACTION_CAST(0) /* zero terminator */
        }
    };
    /* ${AOs::Philo::SM::initial} */
    static uint8_t registered = (uint8_t)0; /* starts off with 0, per C-standard */
    (void)e; /* suppress the compiler warning about unused parameter */
    if (registered == (uint8_t)0) {
        registered = (uint8_t)1;

        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);
    }
    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 QM_TRAN_INIT(&tatbl_);
}
Esempio n. 18
0
/*${AOs::Missile::SM} ......................................................*/
static QState Missile_initial(Missile * const me, QEvt const * const e) {
    static QMTranActTable const tatbl_ = { /* transition-action table */
        &Missile_armed_s,
        {
            Q_ACTION_CAST(0) /* zero terminator */
        }
    };
    /* ${AOs::Missile::SM::initial} */
    (void)e;
    QActive_subscribe((QActive *)me, TIME_TICK_SIG);

    QS_OBJ_DICTIONARY(&l_missile);  /* object dictionary for Missile object */

    QS_FUN_DICTIONARY(&Missile_initial);    /* dictionaries for Missile HSM */
    QS_FUN_DICTIONARY(&Missile_armed);
    QS_FUN_DICTIONARY(&Missile_flying);
    QS_FUN_DICTIONARY(&Missile_exploding);

    QS_SIG_DICTIONARY(MISSILE_FIRE_SIG,   &l_missile);     /* local signals */
    QS_SIG_DICTIONARY(HIT_WALL_SIG,       &l_missile);
    QS_SIG_DICTIONARY(DESTROYED_MINE_SIG, &l_missile);
    return QM_TRAN_INIT(&tatbl_);
}
Esempio n. 19
0
/* @(/1/8/23/0) */
static QState QGprs_initial(QGprs * const me, QEvt const * const e) {
    /* 状态消息 */
    QS_FUN_DICTIONARY(&QGprs_initialing);
    QS_FUN_DICTIONARY(&QGprs_initialing_stepinto);
    QS_FUN_DICTIONARY(&QGprs_polling);
    QS_FUN_DICTIONARY(&QGprs_startup);
    QS_FUN_DICTIONARY(&QGprs_power_on);
    QS_FUN_DICTIONARY(&QGprs_start_delay);
    QS_FUN_DICTIONARY(&QGprs_start_finished);
    QS_FUN_DICTIONARY(&QGprs_reseting);
    QS_FUN_DICTIONARY(&QGprs_initialing);
    QS_FUN_DICTIONARY(&QGprs_registering);
    QS_FUN_DICTIONARY(&QGprs_powerNormalMode);
    QS_FUN_DICTIONARY(&QGprs_connected);
    QS_FUN_DICTIONARY(&QGprs_TcpSending);
    QS_FUN_DICTIONARY(&QGprs_WaitFillData);
    QS_FUN_DICTIONARY(&QGprs_WaitRet);
    QS_FUN_DICTIONARY(&QGprs_Idle);
    QS_FUN_DICTIONARY(&QGprs_PhoneCalling);
    QS_FUN_DICTIONARY(&QGprs_SMSHandling);
    QS_FUN_DICTIONARY(&QGprs_connecting);
    QS_FUN_DICTIONARY(&QGprs_powerSaveMode);
    QS_FUN_DICTIONARY(&QGprs_sleepRequest);
    QS_FUN_DICTIONARY(&QGprs_sleep);
    QS_FUN_DICTIONARY(&QGprs_registering);


    QS_SIG_DICTIONARY(AT_OK_SIG, me);
    QS_SIG_DICTIONARY(AT_REGGED_SIG, me);
    QS_SIG_DICTIONARY(AT_PINREADY_SIG, me);
    QS_SIG_DICTIONARY(AT_NETREGGED_SIG, me);
    QS_SIG_DICTIONARY(AT_NETDISREG_SIG, me);
    QS_SIG_DICTIONARY(AT_CSQ_SIG, me);
    QS_SIG_DICTIONARY(AT_CONNECTED_SIG, me);
    QS_SIG_DICTIONARY(AT_DISCONNECTED_SIG, me);
    //QS_SIG_DICTIONARY(AT_DATAREADY_SIG, me);
    QS_SIG_DICTIONARY(AT_SENDREADY_SIG, me);
    QS_SIG_DICTIONARY(AT_SENDFILLDATA_SIG, me);
    QS_SIG_DICTIONARY(AT_ERROR_SIG, me);
    QS_SIG_DICTIONARY(AT_CMSERROR_SIG, me);
    QS_SIG_DICTIONARY(AT_CMEERROR_SIG, me);
    QS_SIG_DICTIONARY(AT_SENDERROR_SIG, me);
    QS_SIG_DICTIONARY(AT_FILLDATATIP_SIG, me);
    QS_SIG_DICTIONARY(AT_SENDOK_SIG, me);
    QS_SIG_DICTIONARY(GPRS_COMMINGMSG_SIG, me);

    /* AO内部消息 */
    QS_SIG_DICTIONARY(Q_TIMEOUT_SIG, me);
    QS_SIG_DICTIONARY(GPRS_SENDREQ_SIG, me);
    //QS_SIG_DICTIONARY(GPRS_LED_TIMEOUT_SIG, me);
    //QS_SIG_DICTIONARY(GPRS_RETRIEVE_TIMEOUT_SIG, me);
    QS_SIG_DICTIONARY(NEW_TASKSENDREQ_SIG, me);
    QS_SIG_DICTIONARY(GPRS_SLEEPREQ_TIMEOUT_SIG, me);
    QS_SIG_DICTIONARY(GPRS_PHONECALL_HANDLED_SIG, me);
    QS_SIG_DICTIONARY(GPRS_SMS_HANDLED_SIG, me);
    QS_SIG_DICTIONARY(GPRS_COMMINGCALL_SIG, me);
    QS_SIG_DICTIONARY(GPRS_COMMINGSMS_SIG, me);

    QActive_subscribe((QActive *)me, ACC_ON_SIG);
    QActive_subscribe((QActive *)me, ACC_OFF_SIG);
    QActive_subscribe(&me->super, WAKEUP_REQ_SIG);
    QActive_subscribe(&me->super, SLEEP_REQ_SIG);

    //模块内部初始化
    GPRS_Init();

    me->m_ACCState = POWEROFF;
    me->m_NetState = NET_STATE_UNKOWN;
    GPRS_SetNetState(NET_STATE_UNKOWN);

    //网络指示灯关闭
    GPRS_LED_OFF();

    return Q_TRAN(&QGprs_serving);
}
Esempio n. 20
0
/**
* initial transition
**/
static QState CoffeeMachineAO_initial(CoffeeMachineAO *me, QEvent const *e)
{
	QActive_subscribe((QActive *)me, ALARM_SIG);
	
	return Q_TRAN(&CoffeeMachineAO_Idle);
}