void gprs_close_handler(void) { #if GPRS_DEBUG serial_write(HAL_UART_2, GPRS_CLOSEING, sizeof(GPRS_CLOSEING)-1); #endif gprs_switch(); gprs_flush_receive_buf(); while (GPRS_QUEUE_HAVE_DATA) //清空发送缓冲区 { queue_receive(&gprs_queue, &n_item); } gprs_restart_cnt = 0; gprs_cmd_send_cnt = 0; gprs_send_data_cnt = 0; gprs_cmd_send_cpin = 0; gprs_cmd_send_cipstart = 0; gprs_cmd_send_cgatt = 0; gprs_mode = GPRS_CLOSE; gprs_cmd_type = GPRS_CMD_NULL; osel_post(GPRS_POLL_EVENT, NULL, OSEL_EVENT_PRIO_LOW); }
void gprs_open_handler(void) { #if GPRS_DEBUG serial_write(HAL_UART_2, GPRS_OPENING, sizeof(GPRS_OPENING)-1); #endif gprs_switch(); if(gprs_open_timer == NULL) { HAL_TIMER_SET_REL(MS_TO_TICK(GPRS_RESPONSE_TIME_1S), gprs_open_timer_cb, NULL, gprs_open_timer); DBG_ASSERT(gprs_open_timer != NULL __DBG_LINE); } gprs_mode = GPRS_RUN; gprs_restart_cnt = 0; gprs_cmd_send_cnt = 0; gprs_send_data_cnt = 0; gprs_cmd_send_cpin = 0; gprs_cmd_send_cipstart = 0; gprs_cmd_send_cgatt = 0; gprs_flush_receive_buf(); hal_uart_recv_enable(HAL_UART_4); }
static void gprs_task(void *p) { esn_msg_t esn_msg; osel_memset(&esn_msg, 0, sizeof(esn_msg_t)); while (1) { xQueueReceive(gprs_queue, //*< the handle of received queue &esn_msg, //*< pointer to data received portMAX_DELAY); //*< time out switch (esn_msg.event) { case GPRS_EVENT: { gprs_switch(); } break; default: break; } } }
static void gprs_restart(void) { gprs_switch(); delay_ms(800); gprs_switch(); }