河北水利局项目

This commit is contained in:
2025-12-15 16:07:49 +08:00
commit f11a7c2b95
1146 changed files with 452892 additions and 0 deletions

213
shuangjia/gprs.h Normal file
View File

@@ -0,0 +1,213 @@
/*************************************************************
* SOON WRITING *
* Copyright (c) Robulink, 2014-2024 *
*************************************************************/
/* Create Date: 2014/08/20
*
* Modify Record:
* <date> <author> <version> <desc>
* -------------------------------------------------------------------
* 2014/08/20 SOON 1.0 Create the file.
*/
/**
******************************************************************************
* @file gprs.h
* @author SOON
* @version V1.0.0
* @date 2014-08-20
* @brief GPRS 通信处理任务头文件
*
******************************************************************************
* @attention
*
* <h2><center>&copy; COPYRIGHT 2014 Robulink </center></h2>
******************************************************************************
*/
#ifndef __GPRS_H__
#define __GPRS_H__
#include "Basedefine.h"
#include "global.h"
// 宏定义
//#define GPRS_DEBUG_SWITCH 0
#define CPU_INT08U u8
#define CPU_INT16U u16
#define CPU_INT32U u32
#define CPU_INT16S int
#define NULLP NULL
#define CPU_CHAR char
#define OS_SEM int
#define CPU_INT08S char
#define CPU_TS int
#define OS_ERR int
#define OS_MSG_SIZE int
/* 模块返回值类型*/
typedef enum gprs_cmd_ack_e
{
GPRS_CMD_ACK_OK = (0x00000000)
, GPRS_CMD_ACK_ERR
, GPRS_CMD_ACK_PBREADY
, GPRS_CMD_ACK_MYCCID
, GPRS_CMD_ACK_CPIN_READY
, GPRS_CMD_ACK_CSQ
, GPRS_CMD_ACK_CREG
, GPRS_CMD_ACK_MYTYPE
, GPRS_CMD_ACK_MYURCACT
, GPRS_CMD_ACK_MYNETOPEN
, GPRS_CMD_ACK_MYURCREAD
, GPRS_CMD_ACK_MYNETREAD
, GPRS_CMD_ACK_MYNETWRITE
, GPRS_CMD_ACK_MYNETACK
, GPRS_CMD_ACK_MYNETCLOSE
, GPRS_CMD_ACK_MAX
} gprs_cmd_ack_t ;
// 数据结构
#define GPRS_CMD_LEN 256
#define GPRS_MAX_FLAG 255
#define MIN_MYURC_LEN 2
#define GPRS_CCID_LEN 20
#define GPRS_GMR_LEN 44
#define NET_STATE_DISCONNECT 0
#define NET_STATE_CONNECT 1
//#define MAX_GPRSSEND_TABLE 2
#define PORT_STATUS_IDLE 0
#define PORT_STATUS_CONNECTED 1
#define GPRS_AT_STATUS_IDLE 0
#define GPRS_AT_STATUS_SEND 1
#define GPRS_AT_STATUS_ACKERR 2
#define GPRS_AT_STATUS_ACKOK 3
//-----STATE2/STATE1/STATE0
#define MODULE_STATE_NOMODULE 7 //无模块
#define MODULE_STATE_AT 6 //有模块响应AT
#define MODULE_STATE_NOTAT 4 //有模块不响应AT
#define MODULE_STATE_RESERVE 0 //预留
typedef struct{
CPU_INT08U *cmd_snd; //发送命令
CPU_INT08U *good_rcv; //期待正确应答,可以为空
CPU_INT08U status; //00没有发送01已发送02收到错误应答03收到正确应答
}gprs_at_cmd;
typedef struct{
CPU_INT08U send_port;
CPU_INT16U len;
}gprs_msg_head;
#define MAX_NET_LEN 1500
#define MAX_GPRSSEND_BUF 2000
#define TYPE_TCP_CLIENT 0
#define TYPE_TCP_SERVER 1
#define TYPE_UDP 2
/*
typedef struct {
//CPU_INT08U used; // 是否有效
CPU_INT16U len; // 长度信息
CPU_INT08U data[MAX_GPRSSEND_BUF]; // 数据缓存字节数
}gprs_send_entry;
typedef struct{
gprs_send_entry databuff[MAX_GPRSSEND_TABLE]; // 支持表项
CPU_INT08U count; // 几包有效数据
CPU_INT08U head; // 数据缓存队列头指针位置
CPU_INT08U tail; // 数据缓存队列尾指针位置
OS_SEM* buf_sem;
OS_SEM* nstored;
}gprssend_ctrl;
*/
typedef struct{
CPU_INT08U databuff[MAX_GPRSSEND_BUF]; // 支持表项
CPU_INT16U count; // 几包有效数据
CPU_INT16U head;
CPU_INT16U tail;
CPU_INT16U used_len;
// OS_SEM buf_sem;
}gprssend_ctrl;
/****************************函数对外声明******************************/
extern void task_gprs(void *pParam);//
//extern INT16S gprs_handle_urc(void* pst_ctrl, CPU_INT16U used_len);
//extern INT16S gprs_sendbuf_send(CPU_INT08U *pmsg, CPU_INT08U * data, CPU_INT16U len);
/****************************变量对外声明******************************/
extern gprssend_ctrl gprs_send_ctrl;
//extern OS_SEM gprs_count_sem;
extern CPU_INT08U gprs_init_flag;
extern CPU_INT08U gprs_connect_flag;
extern CPU_INT08U gprs_socket_flag;
//extern OS_SEM* gprs_read0_sem;
//extern gprs_byte_count gbc;
extern CPU_INT08U config_server_flag;
extern CPU_INT08U server_ip_main[16];
extern CPU_INT08U server_ip_bak[16];
extern CPU_INT16U server_port_main;
extern CPU_INT16U server_port_bak;
//extern void gprs_online_off();
//extern void gprs_online_on();
//extern void gprs_remote_revled_on();
//extern void gprs_remote_revled_off();
//extern void gprs_remote_sendled_on();
//extern void gprs_remote_sendled_off();
CPU_INT16S gprs_sendbuf_send(CPU_INT08U *pmsg, CPU_INT08U * data, CPU_INT16U len);
void gprs_get_CCID(CPU_INT08U* buf);
bool gprs_connect_status();
void gprs_send_flag();
/* AFN04_F3结构体 */
typedef struct
{
CPU_INT08U ip1;
CPU_INT08U ip2;
CPU_INT08U ip3;
CPU_INT08U ip4;
CPU_INT16U port;
}ip_and_port;
typedef struct
{
ip_and_port primary;
ip_and_port reserve;
CPU_INT08U APN[16];
CPU_INT08U user[30];
CPU_INT08U password[30];
}afn04_F3_st;
void gprs_send_flag();
void gprs_send_proc_direct(u8 * val,u16 len);
void ipport_read();
void ipport_write();
void ipport_init();
#endif