Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
不穿格子衫的农民
TencentOS Tiny
提交
59060216
T
TencentOS Tiny
项目概览
不穿格子衫的农民
/
TencentOS Tiny
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TencentOS Tiny
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
59060216
编写于
5月 22, 2020
作者:
S
Supowang
提交者:
GitHub
5月 22, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #161 from Mculover666/master
modify ec20 recv mode
上级
ac2dc8c5
15538ed7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
41 deletion
+25
-41
devices/ec20/ec20.c
devices/ec20/ec20.c
+25
-41
未找到文件。
devices/ec20/ec20.c
浏览文件 @
59060216
/**
* @brief Quectel EC20 LTGE Cat4 Module
* @author Mculover666 <2412828003@qq.com>
* @date 2020/05/07
* @brief Quectel EC20 LTGE Cat4 Module
* @author Mculover666 <2412828003@qq.com>
* @date 2020/05/07
* @changelog
2020/05/21 Mculover666 Change recv mode is Direct Push Mode
*/
#include "ec20.h"
...
...
@@ -18,7 +20,7 @@ static int ec20_echo_close(void)
at_echo_t
echo
;
tos_at_echo_create
(
&
echo
,
NULL
,
0
,
NULL
);
tos_at_cmd_exec
(
&
echo
,
3
00
,
"ATE0
\r\n
"
);
tos_at_cmd_exec
(
&
echo
,
10
00
,
"ATE0
\r\n
"
);
if
(
echo
.
status
==
AT_ECHO_STATUS_OK
)
{
return
0
;
...
...
@@ -30,11 +32,12 @@ static int ec20_sim_card_check(void)
at_echo_t
echo
;
int
try
=
0
;
char
echo_buffer
[
32
];
tos_at_echo_create
(
&
echo
,
echo_buffer
,
sizeof
(
echo_buffer
),
NULL
);
while
(
try
++
<
10
)
{
tos_at_echo_create
(
&
echo
,
echo_buffer
,
sizeof
(
echo_buffer
),
NULL
);
tos_at_cmd_exec
(
&
echo
,
2
000
,
"AT+CPIN?
\r\n
"
);
tos_at_cmd_exec
(
&
echo
,
1
000
,
"AT+CPIN?
\r\n
"
);
if
(
echo
.
status
!=
AT_ECHO_STATUS_OK
)
{
return
-
1
;
}
...
...
@@ -55,10 +58,9 @@ static int ec20_signal_quality_check(void)
char
echo_buffer
[
32
],
*
str
;
int
try
=
0
;
tos_at_echo_create
(
&
echo
,
echo_buffer
,
sizeof
(
echo_buffer
),
NULL
);
while
(
try
++
<
10
)
{
tos_at_echo_create
(
&
echo
,
echo_buffer
,
sizeof
(
echo_buffer
),
NULL
);
tos_at_cmd_exec
(
&
echo
,
1000
,
"AT+CSQ
\r\n
"
);
if
(
echo
.
status
!=
AT_ECHO_STATUS_OK
)
{
...
...
@@ -81,9 +83,9 @@ static int ec20_gsm_network_check(void)
char
echo_buffer
[
32
],
*
str
;
int
try
=
0
;
tos_at_echo_create
(
&
echo
,
echo_buffer
,
sizeof
(
echo_buffer
),
NULL
);
while
(
try
++
<
10
)
{
tos_at_echo_create
(
&
echo
,
echo_buffer
,
sizeof
(
echo_buffer
),
NULL
);
tos_at_cmd_exec
(
&
echo
,
1000
,
"AT+CREG?
\r\n
"
);
if
(
echo
.
status
!=
AT_ECHO_STATUS_OK
)
{
return
-
1
;
...
...
@@ -105,9 +107,10 @@ static int ec20_gprs_network_check(void)
char
echo_buffer
[
32
],
*
str
;
int
try
=
0
;
tos_at_echo_create
(
&
echo
,
echo_buffer
,
sizeof
(
echo_buffer
),
NULL
);
while
(
try
++
<
10
)
{
tos_at_echo_create
(
&
echo
,
echo_buffer
,
sizeof
(
echo_buffer
),
NULL
);
tos_at_cmd_exec
(
&
echo
,
1000
,
"AT+CGREG?
\r\n
"
);
if
(
echo
.
status
!=
AT_ECHO_STATUS_OK
)
{
...
...
@@ -166,7 +169,7 @@ static int ec20_init(void)
if
(
ec20_echo_close
()
!=
0
)
{
printf
(
"echo close failed
\n
"
);
printf
(
"echo close failed
,please check your module
\n
"
);
return
-
1
;
}
...
...
@@ -221,7 +224,7 @@ static int ec20_connect(const char *ip, const char *port, sal_proto_t proto)
}
tos_at_echo_create
(
&
echo
,
NULL
,
0
,
"CONNECT OK"
);
tos_at_cmd_exec
(
&
echo
,
4000
,
"AT+QIOPEN=1,%d,
\"
%s
\"
,
\"
%s
\"
,%d,0,
0
\r\n
"
,
tos_at_cmd_exec
(
&
echo
,
4000
,
"AT+QIOPEN=1,%d,
\"
%s
\"
,
\"
%s
\"
,%d,0,
1
\r\n
"
,
id
,
proto
==
TOS_SAL_PROTO_UDP
?
"UDP"
:
"TCP"
,
ip
,
atoi
(
port
));
if
(
echo
.
status
==
AT_ECHO_STATUS_OK
)
{
...
...
@@ -246,6 +249,10 @@ int ec20_send(int id, const void *buf, size_t len)
{
at_echo_t
echo
;
if
(
!
tos_at_channel_is_working
(
id
))
{
return
-
1
;
}
if
(
tos_at_global_lock_pend
()
!=
0
)
{
return
-
1
;
...
...
@@ -262,7 +269,7 @@ int ec20_send(int id, const void *buf, size_t len)
}
tos_at_echo_create
(
&
echo
,
NULL
,
0
,
"SEND OK"
);
tos_at_raw_data_send
(
&
echo
,
1
000
,
(
uint8_t
*
)
buf
,
len
);
tos_at_raw_data_send
_until
(
&
echo
,
10
000
,
(
uint8_t
*
)
buf
,
len
);
if
(
echo
.
status
!=
AT_ECHO_STATUS_OK
&&
echo
.
status
!=
AT_ECHO_STATUS_EXPECT
)
{
tos_at_global_lock_post
();
...
...
@@ -373,11 +380,10 @@ __STATIC__ void ec20_incoming_data_process(void)
uint8_t
buffer
[
128
];
/*
+QIURC: "recv",0
+QIURC: prefix
0: scoket id
+QIURC: "recv",<sockid>,<datalen>
<data content>
*/
if
(
tos_at_uart_read
(
&
data
,
1
)
!=
1
)
{
return
;
...
...
@@ -390,34 +396,13 @@ __STATIC__ void ec20_incoming_data_process(void)
return
;
}
if
(
data
==
'
\r
'
)
if
(
data
==
'
,
'
)
{
break
;
}
channel_id
=
channel_id
*
10
+
(
data
-
'0'
);
}
printf
(
"channel id = %d
\n
"
,
channel_id
);
tos_at_cmd_exec
(
NULL
,
0
,
"AT+QIRD=%d,%d
\r\n
"
,
channel_id
,
sizeof
(
buffer
));
while
(
1
)
{
if
(
tos_at_uart_read
(
&
data
,
1
)
!=
1
)
{
return
;
}
if
(
data
==
':'
)
{
break
;
}
}
if
(
tos_at_uart_read
(
&
data
,
1
)
!=
1
)
{
return
;
}
while
(
1
)
{
if
(
tos_at_uart_read
(
&
data
,
1
)
!=
1
)
...
...
@@ -431,7 +416,6 @@ __STATIC__ void ec20_incoming_data_process(void)
}
data_len
=
data_len
*
10
+
(
data
-
'0'
);
}
printf
(
"data_len = %d
\n
"
,
data_len
);
if
(
tos_at_uart_read
(
&
data
,
1
)
!=
1
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录