#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <time.h>
#include <stdlib.h>
#include <stdarg.h>
#include "syserror.h"
#include "sysmsg.h"
#include "common_func.h"
#include "common.h"
#include <led.h>
#include "lte.h"
#include "cmmif.h"
#include "lte_serial.h"
#include "../scf/lteclient/lteclient.h"
/******************************* 全局变量 ***************************************/
ST_LTE_5761 g_stLTE5761;
extern u_long g_lte_WorkMode;
ST_LTE_MatchInfo g_st_L3APP_LTE_MatchInfo[] =
{
{"CEREG", L3APP_LTE_ProcessLTESerialCEREGMsg}, /* 4G */
//{"CREG", L3APP_LTE_ProcessLTESerialCREGMsg}, /* 2/3G */
{"CGEV: ME PDN ACT", L3APP_LTE_ProcessLTESerialPDNACTMsg}, /* 网络激活 */
{"CSQ:", L3APP_LTE_ProcessLTESerialCSQMsg}, /* 信号强度 */
{"DUSIMU:", L3APP_LTE_ProcessLTESerialSImMsg}, /* SIM卡状态 */
{"CGEV: NW PDN DEACT", L3APP_LTE_ProcessLTESerialNetDeactMsg}, /* 上行网络主动断网 */
{"CGEV: ME PDN DEACT", L3APP_LTE_ProcessLTESerialAppDeactMsg}, /* APP主动断网 */
{"DPPPI", L3APP_LTE_ProcessLTESerialDpppiMsg}, /* IP地址 DNS */
{"CONNECT", L3APP_LTE_ProcessLTESerialConnectMsg}, /* 拨号成功 */
{"CMTI:", L3APP_LTE_ProcessLTESMSMsg},
{"CMGR:", L3APP_LTE_ProcessLTEReadSMSMsg},
{"OK", L3APP_LTE_ProcessLTESerialOkMsg},
{"ERROR", L3APP_LTE_ProcessLTESerialErrorMsg},
};
#define LTE_MATCHINFO_LIST_SIZE (sizeof(g_st_L3APP_LTE_MatchInfo)/sizeof(g_st_L3APP_LTE_MatchInfo[0]))
int speed_arr[] = {B115200, B38400, B19200, B9600, B4800, B2400, B1200, B300};
int name_arr[] = {115200, 38400, 19200, 9600, 4800, 2400, 1200, 300};
/*################################ function Declare ###################################*/
void set_speed(int, int);
int set_Parity(int,int,int,int);
int gsmSendMessage();
int gsmReadMessage(char *pstMsg);
/*########################### function ################################*/
/* LTE 主状态机定义 */
#define LTE_5761_INPUT_MAX 13
#define LTE_5761_STATE_MAX 5
/* STATE: */
#define LTE_5761_STATE_IDLE 0 /* 非活跃状态 */
#define LTE_5761_STATE_INIT 1 /* 初始化 处于初始化子状态机运行中 */
#define LTE_5761_STATE_CFG 2 /* 配置状态 处于配置子状态机运行中*/
#define LTE_5761_STATE_NET_ACTIVE 3 /* 获取IP地址 网关 DNS 等网络地址中*/
#define LTE_5761_STATE_RUN 4 /* 配置完成 可以开始上网*/
#define LTE_5761_STATE_INVALID 0xff
/* INPUT: */
#define LTE_5761_INPUT_INIT 0 /* 初始化 */
#define LTE_5761_INPUT_SIM_EXIST 1 /* SIM卡存在 */
#define LTE_5761_INPUT_INIT_FIN 2 /* 初始化完成 */
#define LTE_5761_INPUT_PDN_ACT 3 /* 协议栈激活成功 */
#define LTE_5761_INPUT_LOCATION_SUC 4 /* 位置正确 */
#define LTE_5761_INPUT_LOCATION_ERR 5 /* 位置错误 */
#define LTE_5761_INPUT_CFG_FIN 6 /* 配置完成 */
#define LTE_5761_INPUT_ACTIVE 7 /* 获取IP地址 网关 DNS 等网络地址,可以开始上网 */
#define LTE_5761_INPUT_SIGNAL_TIMEOUT 8 /* 查询信号强度 */
#define LTE_5761_INPUT_CFG_MODIFY 9 /* 配置修改 */
#define LTE_5761_INPUT_OFF 10 /* 断线 */
#define LTE_5761_INPUT_OK 11 /* 返回成功 */
#define LTE_5761_INPUT_FAILED 12 /* 返回失败 */
#define LTE_5761_INPUT_SMS 13 /* 发送短信 */
#define LTE_5761_INPUT_INVALID 0xff
/*
ACT_A:开启初始化 子流程
ACT_B:开启配置 子流程
ACT_C:驱动子状态机:配置子状态机,输入 LTE_5761_CFG_INPUT_CFUNC_SUCCSS
ACT_D:获取IP地址 网关 DNS 等:AT+CGDATA=\"M-0000\",1
ACT_E:创建查询信号强度的定时器
ACT_F:发送获取信号强度:AT+CSQ
ACT_G:驱动子状态机:配置子状态机,输入 LTE_5761_CFG_INPUT_RESET,关闭 信号强度定时器
ACT_H:发送断线请求:AT+CFUN=0, 关闭 信号强度定时器,将两个子状态机状态重置为0
ACT_I:驱动子状态机:配置子状态机,输入 LTE_5761_CFG_INPUT_RESET, 将 init的状态机重置为0
ACT_J:驱动子状态机:初始化子状态机,输入 LTE_5761_INIT_INPUT_OK
ACT_K:驱动子状态机:初始化子状态机,输入 LTE_5761_INIT_INPUT_FAIL
ACT_L:驱动子状态机:配置子状态机,输入 LTE_5761_CFG_INPUT_OK
ACT_M:驱动子状态机:配置子状态机,输入 LTE_5761_CFG_INPUT_FAIL
ACT_O:驱动子状态机:初始化子状态机,输入 LTE_5761_INIT_INPUT_SIM
ACT_P:发送短信查询流量费用等
ACT_Q:驱动子状态机:配置子状态机,输入 LTE_5761_CFG_INPUT_LOCATION_SUC
ACT_R:创建定时器,随后再重新配置联网
*/
/*
input\state | 0 | 1 | 2 | 3 | 4 |
IDLE INIT CFG NET RUN
-------------------------------------------------------
LTE_5761_INPUT_INIT | 1A | -- | -N | -N | -N |
LTE_5761_INPUT_SIM_EXIST | -- | -O | -- | -- | -- |
LTE_5761_INPUT_INIT_FIN | -- | 2B | -- | -- | -- |
LTE_5761_INPUT_PDN_ACT | -- | -- | -C | -- | -- |
LTE_5761_INPUT_LOCATION_SUC | -- | -- | -Q | -N | -N |
LTE_5761_INPUT_LOCATION_ERR | -- | -- | -R | -N | -N |
LTE_5761_INPUT_CFG_FIN | -- | -- | 3D | -- | -- |
LTE_5761_INPUT_ACTIVE | -- | -- | -- | 4E | -- |
LTE_5761_INPUT_SIGNAL_TIMEOUT| -- | -- | -- | -- | 4F |
LTE_5761_INPUT_CFG_MODIFY | -- | -N | -G | -- | 2G |
LTE_5761_INPUT_OFF | -- | 0H | 0I | 0H | 0H |
LTE_5761_INPUT_OK | -- | -J | -L | -- | -N |
LTE_5761_INPUT_FAILED | -- | -K | -M | -- | -- |
LTE_5761_INPUT_SMS | -- | -- | -- | -- | -P |
*/
/* LTE 主状态机表 */
FSM_ENTRY g_LTE_5761_FsmTable[LTE_5761_INPUT_MAX][LTE_5761_STATE_MAX] =
{
/* LTE_5761_INPUT_INIT */
{{LTE_5761_STATE_INIT, ACT_A},
{LTE_5761_STATE_INIT, ACT_INVALID},
{LTE_5761_STATE_CFG, ACT_NONE},
{LTE_5761_STATE_NET_ACTIVE, ACT_NONE},
{LTE_5761_STATE_RUN, ACT_NONE}},
/* LTE_5761_INPUT_SIM_EXIST */
{{LTE_5761_STATE_IDLE, ACT_INVALID},
{LTE_5761_STATE_INIT, ACT_O},
{LTE_5761_STATE_CFG, ACT_INVALID},
{LTE_5761_STATE_NET_ACTIVE, ACT_INVALID},
{LTE_5761_STATE_RUN, ACT_INVALID}},
/* LTE_5761_INPUT_INIT_FIN */
{{LTE_5761_STATE_IDLE, ACT_INVALID},
{LTE_5761_STATE_CFG, ACT_B},
{LTE_5761_STATE_CFG, ACT_INVALID},
{LTE_5761_STATE_NET_ACTIVE, ACT_INVALID},
{LTE_5761_STATE_RUN, ACT_INVALID}},
/* LTE_5761_INPUT_PDN_ACT */
{{LTE_5761_STATE_IDLE, ACT_INVALID},
{LTE_5761_STATE_INIT, ACT_INVALID},
{LTE_5761_STATE_CFG, ACT_C},
{LTE_5761_STATE_NET_ACTIVE, ACT_INVALID},
{LTE_5761_STATE_RUN, ACT_INVALID}},
/* LTE_5761_INPUT_LOCATION_SUC */
{{LTE_5761_STATE_IDLE, ACT_INVALID},
{LTE_5761_STATE_INIT, ACT_INVALID},
{LTE_5761_STATE_CFG, ACT_Q},
{LTE_5761_STATE_NET_ACTIVE, ACT_NONE},
{LTE_5761_STATE_RUN, ACT_NONE}},
/* LTE_5761_INPUT_LOCATION_ERR */
{{LTE_5761_STATE_IDLE, ACT_INVALID},
{LTE_5761_STATE_INIT, ACT_INVALID},
{LTE_5761_STATE_CFG, ACT_R},
{LTE_5761_STATE_NET_ACTIVE, ACT_NONE},
{LTE_5761_STATE_RUN, ACT_NONE}},
/* LTE_5761_INPUT_CFG_FIN */
{{LTE_5761_STATE_IDLE, ACT_INVALID},
{LTE_5761_STATE_INIT, ACT_INVALID},
{LTE_5761_STATE_NET_ACTIVE, ACT_D},
{LTE_5761_STATE_NET_ACTIVE, ACT_INVALID},
{LTE_5761_STATE_RUN, ACT_INVALID}},
/* LTE_5761_INPUT_ACTIVE */
{{LTE_5761_STATE_IDLE, ACT_INVALID},
{LTE_5761_STATE_INIT, ACT_INVALID},
{LTE_5761_STATE_CFG, ACT_INVALID},
{LTE_5761_STATE_RUN, ACT_E},
{LTE_5761_STATE_RUN, ACT_INVALID}},
没有合适的资源?快使用搜索试试~ 我知道了~
lte.rar_LTE嵌入式_Linux lte_linux
共37个文件
svn-base:22个
c:5个
h:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 102 浏览量
2022-09-23
02:49:03
上传
评论
收藏 98KB RAR 举报
温馨提示
嵌入式linux平台下,使用LTE拨号的程序,异步流程,处理了各种错误情况
资源推荐
资源详情
资源评论
收起资源包目录
lte.rar (37个子文件)
lte
serialsend
serialcom_send.c 3KB
Makefile 686B
.svn
all-wcprops 406B
prop-base
serialcom_send.c.svn-base 30B
Makefile.svn-base 30B
props
tmp
prop-base
props
text-base
text-base
serialcom_send.c.svn-base 3KB
Makefile.svn-base 686B
entries 540B
lte_serial.h 5KB
Config.in 322B
sms.c 34KB
lte.h 5KB
lte_serial.c 68KB
Makefile 714B
cmmif.h 6KB
.svn
all-wcprops 1KB
prop-base
lte.c.svn-base 30B
cmmif.c.svn-base 30B
sms.c.svn-base 30B
Config.in.svn-base 30B
Makefile.svn-base 30B
lte_serial.c.svn-base 30B
lte.h.svn-base 30B
lte_serial.h.svn-base 30B
cmmif.h.svn-base 30B
props
tmp
prop-base
props
text-base
text-base
lte.c.svn-base 27KB
cmmif.c.svn-base 64KB
sms.c.svn-base 34KB
Config.in.svn-base 322B
Makefile.svn-base 714B
lte_serial.c.svn-base 68KB
lte.h.svn-base 5KB
lte_serial.h.svn-base 5KB
cmmif.h.svn-base 6KB
entries 2KB
cmmif.c 64KB
lte.c 27KB
共 37 条
- 1
资源评论
刘良运
- 粉丝: 66
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功