Files
2025-12-15 16:07:49 +08:00

147 lines
2.7 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//#include "stdafx.h"
#include "load.h"
#include "gprs.h"
#include "Cmd.h"
#include <math.h>
#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;
}