河北水利局项目
This commit is contained in:
213
shuangjia/gprs.h
Normal file
213
shuangjia/gprs.h
Normal 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>© 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
|
||||
Reference in New Issue
Block a user