| | |
| | | #include "HIDO_ATLite.h" |
| | | #include "UDPClient.h" |
| | | #include "bluetooth.h" |
| | | |
| | | #include "TCPClient.h" |
| | | static osSemaphoreId_t g_semaphoreHandle = NULL; |
| | | extern uint8_t restart_num; |
| | | void IdleTask(void) |
| | | { |
| | | if(g_com_map[CNT_RESTART]==1) |
| | | { |
| | | g_com_map[CNT_RESTART]=0; |
| | | // printf("%s URTRestart",__debug_info__); |
| | | HAL_NVIC_SystemReset(); |
| | | } |
| | | if(g_com_map[MAP_SIGN_INDEX]!=0x55AA) |
| | | { |
| | | // printf("%s URTRestart",__debug_info__); |
| | | HAL_NVIC_SystemReset(); |
| | | // SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //����λ�ص�bootloader |
| | | } |
| | | |
| | | } |
| | | void app_task(void *pvParameters) |
| | | { |
| | | Shell_Init(); |
| | | GPS_Init(); |
| | | Internet_Init(); |
| | | UDPClient_Init(); |
| | | |
| | | TCPClient_Init(); |
| | | while (1) |
| | | { |
| | | HIDO_UINT32 timeout = HIDO_TimerGetNearestTimeout(1000); |
| | | //HIDO_UINT32 timeout = HIDO_TimerGetNearestTimeout(1000); |
| | | HIDO_UINT32 timeout = 100; |
| | | if (xSemaphoreTake(g_semaphoreHandle, timeout / portTICK_PERIOD_MS) == pdTRUE) |
| | | { |
| | | DBG_Poll(); |
| | | BT_Poll(); |
| | | HIDO_ATLitePoll(); |
| | | Internet_Poll(); |
| | | GPS_Poll(); |
| | | UDPClient_Poll(); |
| | | } |
| | | |
| | | } |
| | | DBG_Poll(); |
| | | BT_Poll(); |
| | | HIDO_ATLitePoll(); |
| | | Internet_Poll(); |
| | | GPS_Poll(); |
| | | UDPClient_Poll(); |
| | | TCPClient_Poll(); |
| | | IdleTask(); |
| | | HIDO_TimerPoll(); |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | void app_trigger(void) |
| | | { |
| | | if (g_semaphoreHandle != NULL) |
| | | { |
| | | xSemaphoreGive(g_semaphoreHandle); |
| | | } |
| | | } |
| | | |
| | | void app_main(void) |
| | | { |
| | | MCUFlash_Init(); |
| | | parameter_init(); |
| | | printf("demo run!\r\n"); |
| | | |
| | | /* 开机信息输出:版本号、设备ID、IP、端口(UDP/TCP) */ |
| | | { |
| | | uint16_t dev_id = g_com_map[DEV_ID]; |
| | | uint16_t udp_port = g_com_map[UDP_PORT]; |
| | | uint16_t tcp_port = g_com_map[TCP_PORT]; |
| | | uint16_t ip0 = g_com_map[IP_0]; |
| | | uint16_t ip1 = g_com_map[IP_1]; |
| | | uint16_t ip2 = g_com_map[IP_2]; |
| | | uint16_t ip3 = g_com_map[IP_3]; |
| | | uint16_t tip0 = g_com_map[TCP_IP_0]; |
| | | uint16_t tip1 = g_com_map[TCP_IP_1]; |
| | | uint16_t tip2 = g_com_map[TCP_IP_2]; |
| | | uint16_t tip3 = g_com_map[TCP_IP_3]; |
| | | |
| | | /* VERSION 索引在 global_param.h 中为 0x1,如果需要打印版本号字符串,可映射到其它存储;目前仅打印整数 */ |
| | | uint16_t version = g_com_map[VERSION]; |
| | | |
| | | printf("[BOOT] Version: %u\r\n", version); |
| | | printf("[BOOT] DeviceID: %u\r\n", dev_id); |
| | | printf("[BOOT] UDP Server: %u.%u.%u.%u:%u\r\n", ip0, ip1, ip2, ip3, udp_port); |
| | | printf("[BOOT] TCP Server: %u.%u.%u.%u:%u\r\n", tip0, tip1, tip2, tip3, tcp_port); |
| | | } |
| | | TaskHandle_t xTaskHandle = NULL; |
| | | |
| | | osSemaphoreAttr_t semaphore_attr = { |
| | |
| | | .cb_mem = NULL, |
| | | .cb_size = 0}; |
| | | |
| | | // 创建二进制信号量(初始计数为0,最大计数为1) |
| | | // �����������ź�������ʼ����Ϊ0��������Ϊ1�� |
| | | g_semaphoreHandle = osSemaphoreNew(1, 0, &semaphore_attr); |
| | | |
| | | xTaskCreate( |