147 lines
2.7 KiB
C
147 lines
2.7 KiB
C
//#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;
|
||
}
|
||
|