MDM9206 SDK操作实例
本帖最后由 冯俊波 于 2018-12-18 13:39 编辑提前准备:植物宝demo数据点移植教程(移植教程由机友QQ:495981654提供),
1,在机智云添加数据点,选择ESP8266_32M的SOC方案,生成工程代码并下载。
2,打开工程目录->app->Gizwits文件夹,其中有4个文件。
3,打开官方提供的Demo目录->Gizwits文件夹,其中有4个对应文件。除去gizwits_product.h文件,剩下3个文件都需要修改。
4,修改gizwits_protocol.h文件,步骤如下:
4.1,替换 PRODUCT_KEY 和 PRODUCT_SECRET 。
4.2,替换 @name Data point related definition 注释下的宏定义
4.3,替换 EVENT_TYPE_T 结构体
4.4,替换 dataPoint_t 结构体
4.5,替换 attrFlags_t 结构体
4.6,替换 attrVals_t 结构体
4.7,替换 devStatus_t 结构体
4.8,如果某个结构体不存在,直接定义即可
5,修改gizwits_protocol.c文件,步骤如下:
5.1,找到 gizDataPoint2Event 函数,替换函数体,注意修改log函数
5.2,找到 gizCheckReport 函数,替换函数体,注意修改log函数
5.3,找到 gizDataPoints2Report Data函数,替换函数体,注意修改log函数
6,修改gizwits_product.c文件,步骤如下:
6.1,修改 userInit 的函数体,添加用户初始化代码
6.2,修改 userHandle 的函数体,添加传感器采样代码
6.3,替换 gizwitsEventProcess 函数中,switch体内的代码,注意log函数,并添加用户相应代码
下面进入SDK操作教程
首先讲一下,以下所有教程如果用到哪个驱动,就要把对应的驱动文件放在已经移植好数据点的植物宝demo里面的Gizwits文件夹下面。并在gizwits_product.c里面包含驱动头文件。
实例1.GPIO 基本输入输出
输入测试的是GPIO04端口,也就是电机端口,gpio6是netlight指示灯。远程控制4个开关源码
最爱红豆糕 发表于 2018-11-25 19:41
感谢大佬,我找到问题了,之前用CMD命令,用错了,不过现在可以执行到,把文件下载进去,平台没连上,不知 ...
平台没连上,
第一步确认下你的sim卡是否插好并有信号。
第二步需确认下你的 gizwits_protocol.h 文件中的这两个Key是否修改为自己帐号对应的key
#define PRODUCT_KEY "XXXXXXXXXXXXXXXXXXXXXXXXXXX"
#define PRODUCT_SECRET "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
本帖最后由 Bingou 于 2018-11-24 12:11 编辑
最爱红豆糕 发表于 2018-11-23 21:30
你好,我确认是执行了这一步的了,
(执行 python setup.py build和python setup.py install)
固件 下载要按这个步骤执行
7、固件下载
7.1 将上一步编译后生成的目标文件gagent_app.bin和oem_app_path.ini文件拷贝到D:\QFLOG\src\QFLOGPackage\目录下
7.2 打开命令行中断,运行env_qflog.bat配置环境参数(注意很重要)
7.3 运行下面命令,PUSH上传目标文件到设备
python QFLOG.py -p PUSH -f
其中 为设备设备管理器中AT Port(千万别找错端口哈,注意此时USB连接的是BG96转接板)后,如”COM43”
开始划重点
7.1 不需要解释,就是个复制粘贴的活。
7.2 打开命令行中断,运行env_qflog.bat(注意很重要),就是说这步很重要,但你忽略了,就是CMD进到这个目录后执行env_qflog.bat。
7.3 运行下面命令,PUSH上传目标文件到设备 (和env_qflog.bat在同一个CMD窗口(这就是中断的意思)里运行下面的命令)
python QFLOG.py -p PUSH -f
如图:http://club.gizwits.com/data/attachment/forum/201811/23/162844ku6rgzvn2fulyvv1.jpg
知道中断啥意思了吧
最爱红豆糕 发表于 2018-11-17 22:32
您好,我是用你的程序,发现用llvm_build.bat批处理,会出现图示错误,提示的是objs中的txm_module_preambl ...
你编译路径里有中文路径,这样是不支持的 老哥,给力 本帖最后由 Bingou 于 2018-11-22 10:06 编辑
..........
#include "qapi_tlmm.h"
#include "qapi_timer.h"
#include "qapi_diag.h"
#include "quectel_utils.h"
#include "quectel_gpio.h"
相关头文件引了5个,为啥文件只有两个
quectel_gpio.h
quectel_utils.h
楼主,你好,请问下,理论上说,把您的GPIO例程的KEY 和SCRECT改为自己的,是不是就可以连上自己的平台设备呢? 您好,我是用你的程序,发现用llvm_build.bat批处理,会出现图示错误,提示的是objs中的txm_module_preamble_llvm.o,找不到,导致无法生成gizwits_app.bin,连接不上平台,请问您知道遇到这个情况是什么原因吗?
Bingou 发表于 2018-11-17 23:13
你编译路径里有中文路径,这样是不支持的
感谢,我改为英文路径后,可以编译了,然后把oem_app_path.ini和gizwits_app.bin,放到D:\QFLOG\src\QFLOGPackage路径下运行env_qflog.bat和 python QFLOG.py -p COM15 PUSH -f gizwits_app.bin(此处我的AT口为COM15),
显示如图。意思是QFLOG.py文件中, “from serial.serialutil import SerialException”这一步执行不了,缺少“serial.serialutil”这个文件,
请问是不是我的环境搭建的问题呢?我觉得应该不会是程序的问题,如果您用这个demo是可以连接平台的话
Bingou 发表于 2018-11-17 23:13
你编译路径里有中文路径,这样是不支持的
我后来看了下,在python36的文件夹里,运行 python -V查看版本号,发现是
Python 2.7.11,会不会是这个原因,因为下载是要用到Python36 最爱红豆糕 发表于 2018-11-18 14:26
我后来看了下,在python36的文件夹里,运行 python -V查看版本号,发现是
Python 2.7.11,会不会是这个原 ...
对,下载需要Python3 本帖最后由 Bingou 于 2018-11-18 21:29 编辑
控制的代码是不正确的,更正如下:
<<<< 以下代码由:muzixiaosanshi 提供 ,本人仅负责编辑整理发布>>>>
电机接口虽然是GPIO4,但映射到module是pin15,所以想让电机能够转动,需要进行如下改动
/* 电机接口GPIO4 */
MODULE_PIN_ENUMg_test_pin_num4 = PIN_E_GPIO_04;需要修改为
/* 电机接口GPIO4 */
MODULE_PIN_ENUMg_test_pin_num4 = PIN_E_GPIO_09;还有个问题,gpio用了后没有释放。
需要新增函数:
/*
@func
gpio_release
m_pin
IO pin number want to release.
*/
void gpio_release(MODULE_PIN_ENUM m_pin)
{
qapi_Status_t status;
status = qapi_TLMM_Release_Gpio_ID( &(tlmm_config), (gpio_id_tbl));
if (status != QAPI_OK)
{
iofPrintf("qapi_TLMM_Release_Gpio_ID ERROR: %d\n", status );
}
return;
}
然后在控制代码中调用该逻辑释放GPIO gpio_release(g_test_pin_num4);
case EVENT_switch1 :
currentDataPoint.valueswitch1 = dataPointPtr->valueswitch1;
gizLog(LOG_INFO,"Evt: EVENT_switch1 %d \n", currentDataPoint.valueswitch1);
if(0x01 == currentDataPoint.valueswitch1)
{
gpio_config(g_test_pin_num4, QAPI_GPIO_OUTPUT_E, QAPI_GPIO_NO_PULL_E, QAPI_GPIO_2MA_E);
status = qapi_TLMM_Drive_Gpio(gpio_id_tbl, gpio_map_tbl.gpio_id, QAPI_GPIO_LOW_VALUE_E);
gpio_release(g_test_pin_num4);
//GPIO4=0,表示电机打开
}
else
{
gpio_config(g_test_pin_num4, QAPI_GPIO_OUTPUT_E, QAPI_GPIO_NO_PULL_E, QAPI_GPIO_2MA_E);
status = qapi_TLMM_Drive_Gpio(gpio_id_tbl, gpio_map_tbl.gpio_id, QAPI_GPIO_HIGH_VALUE_E);
gpio_release(g_test_pin_num4);
//GPIO4=1,表示电机关闭
}
break;
修改内容详见附件:
Bingou 发表于 2018-11-18 17:32
@冯, 控制的代码是不正确的,更正如下:
电机接口虽然是GPIO4,但映射到module是pin15,所以想让电机能够 ...
@Bingou你上面的code 哪来的????我写完只发给过一个微信朋友。怎么会跟我写的一模一样 muzixiaosanshi 发表于 2018-11-18 20:19
@Bingou你上面的code 哪来的????我写完只发给过一个微信朋友。怎么会跟我写的一模一样 ...
哈哈,就是我 Bingou 发表于 2018-11-18 21:20
哈哈,就是我
好的,我一看头像是个姑娘,还以为邮件内容泄露了。:D Bingou 发表于 2018-11-18 17:23
对,下载需要Python3
好的,我把环境变量配置成python3.6后,再运行下载,显示是
“File "QFLOG.py", line 14, in <module>
from dirpaths import LOGS_DIR
ModuleNotFoundError: No module named 'dirpaths'”
按步骤来执行了,找不到到底是配置环境的问题还是其他问题,程序只改了自己的key和secret:dizzy:
最爱红豆糕 发表于 2018-11-19 22:20
好的,我把环境变量配置成python3.6后,再运行下载,显示是
“File "QFLOG.py", line 14, in
from di ...
确认下这一步你是否执行了
3、解压pyserial-3.4.tar,在命令行窗口下,跳转到解压后的目录下,运行命令:
python setup.py build
模块开始编译,编译后执行命令:
python setup.py install
安装后就可以了。
很尴尬居然没有权限下载demo Bingou 发表于 2018-11-18 17:32
控制的代码是不正确的,更正如下:
>
hi! 不知道能不能麻烦您发一份demo的代码给我或者上传到github之类的平台,我刚注册的账号就是为了下载这个demo,但是没有权限...很尴尬..
邮箱: yuenwork@163.com 楼主请问下,编译通过,下载也下载好了,但是设备不上线是什么问题呢?代码是按照你上面说的改的
页:
[1]
2