| | |
| | | // HexToAsciiSendUDP(LBS_data,u32Len); |
| | | // UDPClient_UploadGPS((char*)LBS_data); |
| | | } |
| | | extern UART_HandleTypeDef huart2; |
| | | uint8_t chongdian_only_one_flag; |
| | | void Stop_chongdian_Mode_Poll() |
| | | { |
| | | if(chongdian_only_one_flag==0) |
| | | { |
| | | chongdian_only_one_flag=1; |
| | | GPS_PowerOff(); |
| | | HAL_UART_DeInit(&huart2); |
| | | GPIO_InitTypeDef GPIO_InitStruct = {0};// |
| | | GPIO_InitStruct.Pin = GPIO_PIN_4; |
| | | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; |
| | | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| | | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| | | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
| | | |
| | | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_RESET); |
| | | // Radio.Sleep(); |
| | | dwt_configuresleep(DWT_PRESRV_SLEEP | DWT_CONFIG, DWT_WAKE_CS | DWT_WAKE_WK| DWT_SLP_EN); |
| | | dwt_entersleep(); |
| | | } |
| | | } |
| | | uint8_t only_one_flag; |
| | | void Stop_Mode_Poll() |
| | | { |
| | | if(only_one_flag==0) |
| | | { |
| | | only_one_flag=1; |
| | | GPS_PowerOff(); |
| | | HAL_UART_DeInit(&huart2); |
| | | GPIO_InitTypeDef GPIO_InitStruct = {0};// |
| | | GPIO_InitStruct.Pin = GPIO_PIN_4; |
| | | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; |
| | | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| | | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| | | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
| | | |
| | | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_RESET); |
| | | // Radio.Sleep(); |
| | | dwt_configuresleep(DWT_PRESRV_SLEEP | DWT_CONFIG, DWT_WAKE_CS | DWT_WAKE_WK| DWT_SLP_EN); |
| | | dwt_entersleep(); |
| | | } |
| | | } |
| | | extern uint16_t nomove_count; |
| | | extern uint8_t bat_percent; |
| | | extern uint8_t chargedbg_flag; |
| | | u8 power_state = 0,chargeon = 0; |
| | | uint8_t chongman_flag; |
| | | extern uint16_t chongdian_yundong_time; |
| | | extern uint8_t bat_percent; |
| | | extern uint16_t heart_time; |
| | | extern uint8_t nomove_flag; |
| | |
| | | //#define STOP_TIME 600-DENGDAI_TIME-QIDONG_TIME//600s 10分钟 |
| | | #define YUNDONG_UWB_TIME 1 |
| | | #define YUNDONG_GPS4G_TIME 100 |
| | | extern UART_HandleTypeDef huart2; |
| | | uint8_t GPS_data[200]; |
| | | uint8_t GPS_successful_flag; |
| | | uint8_t fangchai_flag; |
| | | uint8_t fangchai_state; |
| | | uint8_t only_one_flag; |
| | | uint8_t only_one_flag1; |
| | | extern uint16_t fangchai_time; |
| | | extern uint8_t taglist_num; |
| | | uint16_t tagseq; |
| | | extern uint16_t tagid_list[ANC_MAX_NUM],tagdist_list[ANC_MAX_NUM]; |
| | | extern uint8_t yundong_state; |
| | | extern uint16_t yundong_time; |
| | | extern uint8_t tagbat_list[ANC_MAX_NUM]; |
| | | extern TIM_HandleTypeDef htim3; |
| | | extern uint8_t beep_state; |
| | | extern uint8_t air780_state; |
| | | //extern uint8_t air780_state; |
| | | extern uint16_t sleep_time; |
| | | uint8_t zuihoufasong_falg; |
| | | uint8_t UDPClient_UploadGPS_flag; |
| | | extern uint16_t chongdianmeiyouuwb_time; |
| | | void PowerLedTask(void) |
| | | { |
| | | static u8 powerled_state=0; |
| | | if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) |
| | | { |
| | | if(!power_state&&!chargedbg_flag) |
| | | { |
| | | DBG_SetMode(DBG_MODE_CHARGE); |
| | | power_state = 1; |
| | | } |
| | | while(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)&&DBG_GetMode() == DBG_MODE_CHARGE) |
| | | { |
| | | HAL_IWDG_Refresh(&hiwdg); |
| | | DBG_Poll(); |
| | | IdleTask(); |
| | | uwbled=LEDOFF; |
| | | Internet_Poll(); |
| | | HIDO_TimerPoll(); |
| | | HIDO_ATLitePoll(); |
| | | UDPClient_Poll(); |
| | | GPS_Poll(); |
| | | if(bat_percent>90) |
| | | { |
| | | powerled = RED; |
| | | chongman_flag=1; |
| | | } |
| | | else |
| | | { |
| | | powerled = RED; |
| | | } |
| | | if(chongdianmeiyouuwb_time>30) |
| | | { |
| | | HAL_NVIC_SystemReset(); |
| | | } |
| | | if(taglist_num>0) |
| | | { |
| | | if(air780_state>=2) |
| | | { |
| | | HAL_NVIC_SystemReset(); |
| | | } |
| | | if(chongdian_yundong_time>=YUNDONG_UWB_TIME) |
| | | { |
| | | air780_state=0; |
| | | chongdian_yundong_time=0; |
| | | Uwb_Zubao_Poll(); |
| | | UDPClient_UploadGPS((char*)GPS_data); |
| | | // UDPClient_UploadGPS_flag=1; |
| | | HexToAsciiSendUDP(uwb_send,19+5*taglist_num); |
| | | taglist_num=0; |
| | | chongdianmeiyouuwb_time=0; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if(chongdian_yundong_time>=g_com_map[GPS_HZ]) |
| | | { |
| | | chongdian_yundong_time=0; |
| | | if(GPS_successful_flag) |
| | | { |
| | | UDPClient_UploadGPS((char*)GPS_data); |
| | | // UDPClient_UploadGPS_flag=1; |
| | | } |
| | | else |
| | | { |
| | | Module_GetLBSLocationAsync(LBSLocationCallback, HIDO_NULL); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | chongman_flag=0; |
| | | chargeon = 0; |
| | | if(power_state) |
| | | { |
| | | DBG_SetMode(DBG_MODE_SHELL); |
| | | power_state = 0; |
| | | } |
| | | if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) |
| | | { |
| | | chargedbg_flag = 0; |
| | | |
| | | } |
| | | } |
| | | extern uint8_t receive1_gotosleep_flag; |
| | | extern uint8_t receive2_gotosleep_flag; |
| | | extern uint8_t receive3_gotosleep_flag; |
| | | extern uint8_t chongdian_time; |
| | | extern uint8_t input5vtime; |
| | | extern uint16_t work_time; |
| | | uint8_t imu_enable; |
| | | extern uint32_t dev_id; |
| | | void Program_Init(void) |
| | |
| | | //deca_sleep(1000); |
| | | |
| | | g_com_map[GROUP_ID]=3; |
| | | g_com_map[VERSION] = (2<<8)|8; |
| | | g_com_map[VERSION] = (3<<8)|6; |
| | | |
| | | if (g_com_map[COM_INTERVAL] <50) |
| | | { |
| | |
| | | { |
| | | {g_com_map[CHAICHUGPS_HZ]=600;} |
| | | } |
| | | g_com_map[CHAICHUGPS_HZ]=1800; |
| | | if(g_com_map[NOMOVESLEEP_TIME]>120) |
| | | { |
| | | g_com_map[NOMOVESLEEP_TIME]=120; |
| | |
| | | dev_id = g_com_map[DEV_ID]; |
| | | |
| | | printf("设备ID: %x .\r\n",dev_id); |
| | | printf("固件版本: 铁鞋定位 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); |
| | | printf("固件版本: L071无UWB工卡V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); |
| | | printf("服务器地址: %d.%d.%d.%d:%d.\r\n",g_com_map[IP_0],g_com_map[IP_1],g_com_map[IP_2],g_com_map[IP_3],g_com_map[PORT]); |
| | | printf("当前运动时GPS工作间隔: %d .\r\n",g_com_map[GPS_HZ]); |
| | | printf("当前被拆时GPS工作间隔: %d .\r\n",g_com_map[CHAICHUGPS_HZ]); |
| | | // printf("当前被拆时GPS工作间隔: %d .\r\n",g_com_map[CHAICHUGPS_HZ]); |
| | | // if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) |
| | | // { printf("TCP_RTCM模式,服务器地址: %d.%d.%d.%d:%d.\r\n",g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]); |
| | | // }else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP) |
| | |
| | | // printf("单点定位模式模式. \r\n"); |
| | | // } |
| | | } |
| | | |
| | | void PowerDownDetect(void) |
| | | { |
| | | static HIDO_UINT32 l_u32QXpowerTick = 0; |
| | | static uint32_t powercount=0; |
| | | |
| | | if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_12)) |
| | | { |
| | | if((HIDO_TimerGetTick() - l_u32QXpowerTick) >=1000) |
| | | { |
| | | while(1) |
| | | { |
| | | gpsled=WHITE; |
| | | uwbled=WHITE; |
| | | loraled=WHITE; |
| | | powerled=WHITE; |
| | | Set4LEDColor(uwbled,gpsled,loraled,powerled); |
| | | if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_12)==0) |
| | | { |
| | | powercount = 0; |
| | | l_u32QXpowerTick = HIDO_TimerGetTick(); |
| | | while(1) |
| | | { |
| | | |
| | | // if((HIDO_TimerGetTick() - l_u32QXpowerTick) >=100) |
| | | { |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET); |
| | | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_RESET); |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }else{ |
| | | l_u32QXpowerTick = HIDO_TimerGetTick(); |
| | | } |
| | | } |
| | | void IdleTask(void) |
| | | { |
| | | // APLPollTask(); |
| | |
| | | } |
| | | |
| | | } |
| | | void Stop_Mode_Poll() |
| | | { |
| | | if(only_one_flag==0) |
| | | { |
| | | only_one_flag=1; |
| | | GPS_PowerOff(); |
| | | HAL_UART_DeInit(&huart2); |
| | | GPIO_InitTypeDef GPIO_InitStruct = {0};// |
| | | GPIO_InitStruct.Pin = GPIO_PIN_4; |
| | | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; |
| | | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| | | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| | | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
| | | |
| | | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_RESET); |
| | | Radio.Sleep(); |
| | | dwt_configuresleep(DWT_PRESRV_SLEEP | DWT_CONFIG, DWT_WAKE_CS | DWT_WAKE_WK| DWT_SLP_EN); |
| | | dwt_entersleep(); |
| | | } |
| | | } |
| | | void Stop_Mode_chulelora_Poll()//关掉除了uwb外的 |
| | | { |
| | | if(only_one_flag1==0) |
| | | { |
| | | only_one_flag1=1; |
| | | GPS_PowerOff(); |
| | | HAL_UART_DeInit(&huart2); |
| | | GPIO_InitTypeDef GPIO_InitStruct = {0};// |
| | | GPIO_InitStruct.Pin = GPIO_PIN_4; |
| | | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; |
| | | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| | | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| | | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
| | | |
| | | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_RESET); |
| | | dwt_configuresleep(DWT_PRESRV_SLEEP | DWT_CONFIG, DWT_WAKE_CS | DWT_WAKE_WK| DWT_SLP_EN); |
| | | dwt_entersleep(); |
| | | } |
| | | } |
| | | extern uint16_t testlorarecve; |
| | | void Uwb_Zubao_Poll() |
| | | { |
| | |
| | | uwbchecksum = Checksum_u16(&uwb_send[2],15+5*taglist_num); |
| | | memcpy(&uwb_send[17+5*taglist_num],&uwbchecksum,2); |
| | | } |
| | | extern uint16_t testlorarecve; |
| | | void Main_Poll() |
| | | u8 only_one_flag; |
| | | u16 chongman_time; |
| | | u8 bat_percent_old=100; |
| | | extern IWDG_HandleTypeDef hiwdg; |
| | | u32 adctick = 0; |
| | | u8 rtk_state = 1; |
| | | void CloseRTK4G(void) |
| | | { |
| | | u16 uwbchecksum; |
| | | IdleTask(); |
| | | HAL_IWDG_Refresh(&hiwdg); |
| | | if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))//5V输入检测 |
| | | { yundong_state=0; |
| | | rtk_state = 0; |
| | | |
| | | loraled = LEDOFF; |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET); |
| | | } |
| | | void OpenRTK4G(void) |
| | | { |
| | | loraled = 1; |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET); |
| | | } |
| | | extern uint8_t ledonflag; |
| | | extern uint32_t ledontime; |
| | | void PowerLedTask(void) |
| | | { |
| | | static u8 powerled_state=0; |
| | | |
| | | if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) |
| | | { |
| | | chongman_time=0; |
| | | only_one_flag=0; |
| | | uwbled=0; |
| | | gpsled=0; |
| | | loraled=0; |
| | | powerled=0; |
| | | if(!power_state&&!chargedbg_flag) |
| | | { |
| | | CloseRTK4G(); |
| | | DBG_SetMode(DBG_MODE_CHARGE); |
| | | power_state = 1; |
| | | // Uart_ChongxinInit(UART_ID_DBG); |
| | | // DBG_Init(); |
| | | // Shell_Init(); |
| | | } |
| | | while(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)&&DBG_GetMode() == DBG_MODE_CHARGE) |
| | | { |
| | | nomove_count = 0; |
| | | if(HIDO_TimerGetTick()-adctick>6000) //10分钟采样一次 电量 |
| | | {HAL_IWDG_Refresh(&hiwdg); |
| | | chongman_time=chongman_time+6; |
| | | adctick = HIDO_TimerGetTick(); |
| | | if( HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_10)) |
| | | { |
| | | bat_percent=Get_Battary(); |
| | | }else{ |
| | | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_SET); |
| | | bat_percent=Get_Battary(); |
| | | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_RESET); |
| | | } |
| | | } |
| | | if(bat_percent>=99&&!only_one_flag) |
| | | { |
| | | only_one_flag=1; |
| | | chongman_time=0; |
| | | } |
| | | if(bat_percent>=99&&chongman_time>=1800) |
| | | { |
| | | powerled = GREEN; |
| | | }else{ |
| | | powerled = RED; |
| | | } |
| | | delay_ms(100); |
| | | DBG_Poll(); |
| | | Internet_Poll(); |
| | | Set4LEDColor(0,0,0,powerled); |
| | | } |
| | | } |
| | | |
| | | chargeon = 0; |
| | | if(power_state) |
| | | { |
| | | DBG_SetMode(DBG_MODE_SHELL); |
| | | power_state = 0; |
| | | bat_percent_old=100; |
| | | OpenRTK4G(); |
| | | } |
| | | if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) |
| | | { |
| | | chargedbg_flag = 0; |
| | | |
| | | } |
| | | if(HIDO_TimerGetTick()-ledontime>100&&ledonflag==1) |
| | | { |
| | | ledonflag=0; |
| | | Set4LEDColor_Off(); |
| | | } |
| | | // else |
| | | // { |
| | | //// if(powerled_state) |
| | | // { |
| | | // powerled_state = 0; |
| | | //// powerled = LEDOFF; |
| | | //// uwbled = LEDOFF; |
| | | //// gpsled = LEDOFF; |
| | | //// loraled = LEDOFF; |
| | | //// Set4LEDColor(uwbled,gpsled,loraled,powerled); |
| | | // Set4LEDColor_Off(); |
| | | // } |
| | | // |
| | | // } |
| | | |
| | | |
| | | if(HIDO_TimerGetTick()-adctick>6000) //10分钟采样一次 电量 |
| | | { |
| | | adctick = HIDO_TimerGetTick(); |
| | | if( HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_10)) |
| | | { |
| | | bat_percent=Get_Battary(); |
| | | if(bat_percent>bat_percent_old) |
| | | { |
| | | bat_percent=bat_percent_old; |
| | | } |
| | | else |
| | | { |
| | | bat_percent_old=bat_percent; |
| | | } |
| | | }else{ |
| | | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_SET); |
| | | bat_percent=Get_Battary(); |
| | | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_RESET); |
| | | if(bat_percent>bat_percent_old) |
| | | { |
| | | bat_percent=bat_percent_old; |
| | | } |
| | | else |
| | | { |
| | | bat_percent_old=bat_percent; |
| | | } |
| | | } |
| | | } |
| | | if(bat_percent<=1) |
| | | { |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET); |
| | | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_RESET); |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET); |
| | | } |
| | | } |
| | | |
| | | extern uint32_t main_time; |
| | | extern uint16_t testlorarecve; |
| | | uint8_t delaysleep_count; |
| | | char str[17]= {"AT+IPR=9600;&W\r\n"}; |
| | | extern UART_HandleTypeDef huart5; |
| | | extern uint8_t stop_flag; |
| | | extern uint16_t beepontime; |
| | | u32 keystarttime,keystarttime2; |
| | | extern uint8_t userkey_state4g; |
| | | void UserKeyTask(void) |
| | | { |
| | | if(!HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)) |
| | | { |
| | | if(HIDO_TimerGetTick() - keystarttime>1000) |
| | | { |
| | | beepontime = 2; |
| | | userkey_state4g = 1; |
| | | // userkey_state = 1; |
| | | // heartbeasend_flag = 1; |
| | | keystarttime = HIDO_TimerGetTick(); |
| | | } |
| | | }else |
| | | { |
| | | keystarttime = HIDO_TimerGetTick(); |
| | | keystarttime2 = HIDO_TimerGetTick(); |
| | | } |
| | | if(beepontime>0) |
| | | {Beep_On();} |
| | | else |
| | | {Beep_Off();} |
| | | Sleep_Panduan_Poll(); |
| | | |
| | | } |
| | | void Main_Poll() |
| | | { |
| | | // if(main_time>10&&only_one_flag==0) |
| | | // { |
| | | // only_one_flag=1; |
| | | // Uart_ReConfigBaudRate(UART_ID_4G,115200); |
| | | // HAL_UART_Transmit(&huart5, str,17,1000); |
| | | // Uart_ReConfigBaudRate(UART_ID_4G,9600); |
| | | // } |
| | | if(stop_flag) |
| | | { |
| | | HAL_IWDG_Refresh(&hiwdg); |
| | | HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI); |
| | | } |
| | | else |
| | | { |
| | | PowerLedTask(); |
| | | DBG_Poll(); |
| | | IdleTask(); |
| | | GPS_Poll(); |
| | | Internet_Poll(); |
| | | HIDO_TimerPoll(); |
| | | HIDO_ATLitePoll(); |
| | | UDPClient_Poll(); |
| | | HAL_IWDG_Refresh(&hiwdg); |
| | | PowerDownDetect(); |
| | | UserKeyTask(); |
| | | Sleep_Panduan_Poll(); |
| | | |
| | | } |
| | | else |
| | | { |
| | | if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1)) // 设备被拆卸拆卸后每秒发1次XTB,连续发五次。 然后10分钟发送一次定位信息,和XTB,其他时候休眠。 |
| | | { |
| | | if(air780_state>=2) |
| | | { |
| | | HAL_NVIC_SystemReset(); |
| | | } |
| | | fangchai_flag=1; |
| | | yundong_state=0; |
| | | if(fangchai_state==0||fangchai_state==1) |
| | | { |
| | | GPS_Poll(); |
| | | Internet_Poll(); |
| | | HIDO_TimerPoll(); |
| | | HIDO_ATLitePoll(); |
| | | UDPClient_Poll(); |
| | | } |
| | | if(fangchai_time>QIDONG_TIME&&fangchai_state==0) |
| | | { |
| | | fangchai_state=1; |
| | | fangchai_time=0; |
| | | if(GPS_successful_flag) |
| | | { |
| | | UDPClient_UploadGPS((char*)GPS_data); |
| | | // UDPClient_UploadGPS_flag=1; |
| | | } |
| | | else |
| | | { |
| | | Module_GetLBSLocationAsync(LBSLocationCallback, HIDO_NULL); |
| | | } |
| | | } |
| | | if(fangchai_time>DENGDAI_TIME&&fangchai_state==1) |
| | | { |
| | | fangchai_time=0; |
| | | fangchai_state=2; |
| | | Stop_Mode_Poll(); |
| | | } |
| | | if(fangchai_state==2) |
| | | { |
| | | HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); |
| | | } |
| | | if(fangchai_time>g_com_map[CHAICHUGPS_HZ]-QIDONG_TIME-DENGDAI_TIME&&fangchai_state==2) |
| | | { |
| | | HAL_NVIC_SystemReset(); |
| | | } |
| | | } |
| | | else//设备没被拆卸 |
| | | { |
| | | fangchai_flag=0; |
| | | if(fangchai_state>=2) |
| | | { |
| | | HAL_NVIC_SystemReset(); |
| | | } |
| | | if(nomove_flag/*&&zuihoufasong_falg*/)//静止状态 |
| | | { |
| | | yundong_state=0; |
| | | if(sleep_time>12) |
| | | { |
| | | Stop_Mode_Poll(); |
| | | HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); |
| | | if(sleep_time>600) |
| | | {HAL_NVIC_SystemReset();} |
| | | } |
| | | else |
| | | { |
| | | Internet_Poll(); |
| | | HIDO_TimerPoll(); |
| | | HIDO_ATLitePoll(); |
| | | UDPClient_Poll(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | yundong_state=1; |
| | | GPS_Poll(); |
| | | Internet_Poll(); |
| | | HIDO_TimerPoll(); |
| | | HIDO_ATLitePoll(); |
| | | UDPClient_Poll(); |
| | | // taglist_num=5; |
| | | if(taglist_num>0) |
| | | { |
| | | if(air780_state>=2) |
| | | { |
| | | HAL_NVIC_SystemReset(); |
| | | } |
| | | if(yundong_time>=YUNDONG_UWB_TIME) |
| | | { |
| | | air780_state=0; |
| | | yundong_time=0; |
| | | Uwb_Zubao_Poll(); |
| | | UDPClient_UploadGPS((char*)GPS_data); |
| | | // UDPClient_UploadGPS_flag=1; |
| | | HexToAsciiSendUDP(uwb_send,19+5*taglist_num); |
| | | taglist_num=0; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | // if(g_com_map[GPS_HZ]==1) |
| | | // { |
| | | if(yundong_time>=g_com_map[GPS_HZ]) |
| | | { |
| | | yundong_time=0; |
| | | if(GPS_successful_flag) |
| | | { |
| | | UDPClient_UploadGPS((char*)GPS_data); |
| | | // UDPClient_UploadGPS_flag=1; |
| | | } |
| | | else |
| | | { |
| | | Module_GetLBSLocationAsync(LBSLocationCallback, HIDO_NULL); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | // if(AIR780E_IsIPIdle() && Socket_IsSendQueueEmpty(0)) |
| | | // { |
| | | // HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); |
| | | // } |
| | | // if(delaysleep_count==0/*&&!gps_need_data_flag*/) |
| | | // if(((IfTCPConnected()&&AIR780E_IsIPIdle()&&Socket_IsSendQueueEmpty(0))/*||((!flag_TCP_reconnectting)&&!IfTCPConnected())*/)) |
| | | // { |
| | | // HAL_IWDG_Refresh(&hiwdg); |
| | | // printf("要进入休眠了,当前时间戳%d\r\n",HIDO_TimerGetTick()); |
| | | // HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); |
| | | // } |
| | | } |
| | | |
| | | //*/ |