//#include "stdafx.h" #include "load.h" #include "gprs.h" #include "Cmd.h" #include #include "include.h" #include "debug_printf.h" #include "Rtc.h" #include "addr.h" #include "uart.h" #include "storage.h" #include "apl.h" #include "PHY.h" #include "rtc_ext.h" #include "update.h" #include "gprs.h" #include "hearttime.h" /*gprs相关*/ #define HEART_NO_REV_NUM 3 /*未收到n次主站心跳报文后,通知gprs模块重新连接主站*/ #define FIRST_HEART_SPACE 6 //第一次认为是10秒后心跳 extern CPU_INT08U gprs_loading_flag; extern void concent_load(u8 * val,u16 * len); extern void gprs_send_flag(); extern void concent_heart(u8 * val,u16 * len); extern void gprs_close_all(); extern u8 * get_uart_send(); extern u16 * get_uart_send_plen(); extern CPU_INT08U bak_ip_flag; extern u32 time_cur; extern CPU_INT08U port_0_status; extern void sj_frame_load(u8 * val,u16 * len); extern void sj_frame_heart(u8 * val,u16 * len); extern void COM_led_off(u8 led); extern void COM_led_on(u8 led); //extern void net_para_save(); extern void hb_heart_rp_pro(u8 * val,u16 * len); #define HEART_SPACE_TIME (220) typedef struct { CPU_INT08U gprs0_land :1; CPU_INT08U gprs0_heart :1; CPU_INT08U gprs0_recv :1; CPU_INT08U uip_land :1; CPU_INT08U uip_heart :1; CPU_INT08U uip_recv :1; CPU_INT08U reserved :2; }land_heart_state; typedef struct { CPU_INT32U gprs0_rev_time; CPU_INT32U gprs0_heart_time; CPU_INT32U uip_rev_time; CPU_INT32U uip_heart_time; }heart_time_tp; static u32 heart_timespace = 0; static u8 heart_flag = 0; // //time_cur //在task_gprs中被赋值 void gprs_setload() { //循环心跳间隔时间赋值为0 heart_flag = 0; //循环心跳间隔时间赋值为0 heart_flag = 1; heart_timespace = time_cur; } extern u32 m3761_recv_time; void gprs_recv_judge_timeset() { //判断是否超过3个心跳时间? //gprs0_time_socket =time_cur; //心跳时间 heart_timespace = time_cur; m3761_recv_time = time_cur; //点灯 在线状态 //led_online_status |= LED_GPRSONLINE_YES; //led_run_status |= LED_RUN_GPRSONLINE; COM_led_on(3); } u32 time_save = 0; bool is_set_save = false; void set_time_save() { is_set_save = true; time_save = time_cur; } void gprs_load() { if(PORT_STATUS_CONNECTED == port_0_status) { if(1 == gprs_loading_flag) { printf("GPRS 连接成功 !!!\r\n"); gprs_loading_flag = 0; gprs_setload(); } if(1 == heart_flag) { if((time_cur - heart_timespace) >= HEART_SPACE_TIME) { hb_heart_rp_pro(get_uart_send(),get_uart_send_plen()); gprs_send_flag(); heart_timespace = time_cur; printf("\r\n循环心跳\r\n"); } } } } void heart_send() { concent_heart(get_uart_send(),get_uart_send_plen()); gprs_send_flag(); heart_timespace = time_cur; }