收藏官网首页
查看: 65698|回复: 42

MDM9206 SDK操作实例

跳转到指定楼层
楼主
发表于 2018-11-15 17:17:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
教您5分钟接入机智云,实现傻瓜式开发
本帖最后由 冯俊波 于 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个开关源码










GPIO.zip

869.89 KB, 下载次数: 70, 下载积分: 威望 1

发烧友

1

主题

34

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
推荐
发表于 2018-11-25 20:23:30 | 只看该作者
最爱红豆糕 发表于 2018-11-25 19:41
感谢大佬,我找到问题了,之前用CMD命令,用错了,不过现在可以执行到,把文件下载进去,平台没连上,不知 ...

平台没连上,
第一步确认下你的sim卡是否插好并有信号。

第二步需确认下你的 gizwits_protocol.h 文件中的这两个Key是否修改为自己帐号对应的key
#define PRODUCT_KEY "XXXXXXXXXXXXXXXXXXXXXXXXXXX"
#define PRODUCT_SECRET "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"


点评

感谢,ohyes,连上了,刚刚是看错在线的设备了,尴尬。 还有问问大神,是不是方便发下您发布的《gizwits_product.zip》这个文档给我邮箱呢? 我的权限太低了  详情 回复 发表于 2018-11-25 22:20

1

主题

34

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
推荐
发表于 2018-11-24 11:35:13 | 只看该作者
本帖最后由 Bingou 于 2018-11-24 12:11 编辑
最爱红豆糕 发表于 2018-11-23 21:30
你好,我确认是执行了这一步的了,
(执行 python setup.py build和python setup.py install)

固件 下载要按这个步骤执行
  1. 7、固件下载
  2. 7.1 将上一步编译后生成的目标文件gagent_app.bin和oem_app_path.ini文件拷贝到D:\QFLOG\src\QFLOGPackage\目录下

  3. 7.2 打开命令行中断,运行env_qflog.bat配置环境参数(注意很重要)

  4. 7.3 运行下面命令,PUSH上传目标文件到设备

  5. python QFLOG.py -p [COMPORT] PUSH -f [absolute bin path]

  6. 其中 [COMPORT]为设备设备管理器中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 [COMPORT] PUSH -f [absolute bin path]


如图:
知道中断啥意思了吧

点评

感谢大佬,我找到问题了,之前用CMD命令,用错了,不过现在可以执行到,把文件下载进去虽然没连上,不知道是不是问题。 我想下载 您这个《gizwits_product.zip》,看看能不能连上,可是没有权限。这个是我邮箱,不知  详情 回复 发表于 2018-11-25 19:41

1

主题

34

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
推荐
发表于 2018-11-17 23:13:43 | 只看该作者
最爱红豆糕 发表于 2018-11-17 22:32
您好,我是用你的程序,发现用llvm_build.bat批处理,会出现图示错误,提示的是objs中的txm_module_preambl ...

你编译路径里有中文路径,这样是不支持的

点评

我后来看了下,在python36的文件夹里,运行 python -V查看版本号,发现是 Python 2.7.11,会不会是这个原因,因为下载是要用到Python36  详情 回复 发表于 2018-11-18 14:26
感谢,我改为英文路径后,可以编译了,然后把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口为COM1  详情 回复 发表于 2018-11-18 13:58

1

主题

34

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
5#
发表于 2018-11-15 17:28:56 | 只看该作者
本帖为密码帖 ,请输入密码 

1

主题

34

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
8#
发表于 2018-11-15 18:24:48 | 只看该作者

  1. #include "qapi_tlmm.h"
  2. #include "qapi_timer.h"
  3. #include "qapi_diag.h"
  4. #include "quectel_utils.h"
  5. #include "quectel_gpio.h"
复制代码

相关头文件引了5个,为啥文件只有两个
quectel_gpio.h
quectel_utils.h

2

主题

21

帖子

194

积分

注册会员

Rank: 2

积分
194
9#
发表于 2018-11-17 21:09:34 | 只看该作者
楼主,你好,请问下,理论上说,把您的GPIO例程的KEY 和SCRECT改为自己的,是不是就可以连上自己的平台设备呢?

点评

我已经验证过了,换了Key和Screct后可以连上,不过控制还是不行的。不知道冯叔的GPIO配置是不是有些不对的地方  发表于 2018-11-17 23:17

2

主题

21

帖子

194

积分

注册会员

Rank: 2

积分
194
10#
发表于 2018-11-17 22:32:25 | 只看该作者
注册成为机智云开发者,手机加虚拟设备快速开发
您好,我是用你的程序,发现用llvm_build.bat批处理,会出现图示错误,提示的是objs中的txm_module_preamble_llvm.o,找不到,导致无法生成gizwits_app.bin,连接不上平台,请问您知道遇到这个情况是什么原因吗?

点评

你编译路径里有中文路径,这样是不支持的  详情 回复 发表于 2018-11-17 23:13

2

主题

21

帖子

194

积分

注册会员

Rank: 2

积分
194
11#
发表于 2018-11-18 13:58:12 | 只看该作者
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是可以连接平台的话



点评

3、解压pyserial-3.4.tar,在命令行窗口下,跳转到解压后的目录下,运行命令: python setup.py build 模块开始编译,编译后执行命令: python setup.py install ...   发表于 2018-11-20 08:56

2

主题

21

帖子

194

积分

注册会员

Rank: 2

积分
194
12#
发表于 2018-11-18 14:26:25 | 只看该作者
Bingou 发表于 2018-11-17 23:13
你编译路径里有中文路径,这样是不支持的

我后来看了下,在python36的文件夹里,运行 python -V查看版本号,发现是
Python 2.7.11,会不会是这个原因,因为下载是要用到Python36

点评

对,下载需要Python3  详情 回复 发表于 2018-11-18 17:23

1

主题

34

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
13#
发表于 2018-11-18 17:23:07 | 只看该作者
最爱红豆糕 发表于 2018-11-18 14:26
我后来看了下,在python36的文件夹里,运行 python -V查看版本号,发现是
Python 2.7.11,会不会是这个原 ...

对,下载需要Python3

点评

好的,我把环境变量配置成python3.6后,再运行下载,显示是“File "QFLOG.py", line 14, in from dirpaths import LOGS_DIR ModuleNotFoundError: No module named 'dirpaths'” 按步骤来执行了,找不到到底是  详情 回复 发表于 2018-11-19 22:20

1

主题

34

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
14#
发表于 2018-11-18 17:32:47 | 只看该作者
本帖最后由 Bingou 于 2018-11-18 21:29 编辑

控制的代码是不正确的,更正如下:
<<<< 以下代码由:muzixiaosanshi 提供 ,本人仅负责编辑整理发布>>>>



电机接口虽然是GPIO4,但映射到module是pin15,所以想让电机能够转动,需要进行如下改动
  1. /* 电机接口GPIO4 */
  2. MODULE_PIN_ENUM  g_test_pin_num4 = PIN_E_GPIO_04;
复制代码
需要修改为
  1. /* 电机接口GPIO4 */
  2. MODULE_PIN_ENUM  g_test_pin_num4 = PIN_E_GPIO_09;
复制代码
还有个问题,gpio用了后没有释放。

需要新增函数:


  1. /*
  2. @func
  3.   gpio_release
  4.   [parameter]  m_pin
  5.                            IO pin number want to release.
  6. */
  7. void gpio_release(MODULE_PIN_ENUM m_pin)
  8. {
  9.     qapi_Status_t      status;

  10.     status = qapi_TLMM_Release_Gpio_ID( &(tlmm_config[m_pin]), (gpio_id_tbl[m_pin]));
  11.     if (status != QAPI_OK)
  12.     {
  13.         iofPrintf("qapi_TLMM_Release_Gpio_ID ERROR: %d\n", status );
  14.     }
  15.         
  16.     return;
  17. }
复制代码
然后在控制代码中调用该逻辑释放GPIO gpio_release(g_test_pin_num4);


  1.         case EVENT_switch1 :
  2.             currentDataPoint.valueswitch1 = dataPointPtr->valueswitch1;
  3.             gizLog(LOG_INFO,"Evt: EVENT_switch1 %d \n", currentDataPoint.valueswitch1);
  4.             if(0x01 == currentDataPoint.valueswitch1)
  5.             {
  6.                gpio_config(g_test_pin_num4, QAPI_GPIO_OUTPUT_E, QAPI_GPIO_NO_PULL_E, QAPI_GPIO_2MA_E);        
  7.                            status = qapi_TLMM_Drive_Gpio(gpio_id_tbl[g_test_pin_num4], gpio_map_tbl[g_test_pin_num4].gpio_id, QAPI_GPIO_LOW_VALUE_E);
  8.                            gpio_release(g_test_pin_num4);
  9.                           //GPIO4=0,表示电机打开
  10.             }
  11.             else
  12.             {                                
  13.                                 gpio_config(g_test_pin_num4, QAPI_GPIO_OUTPUT_E, QAPI_GPIO_NO_PULL_E, QAPI_GPIO_2MA_E);
  14.                                 status = qapi_TLMM_Drive_Gpio(gpio_id_tbl[g_test_pin_num4], gpio_map_tbl[g_test_pin_num4].gpio_id, QAPI_GPIO_HIGH_VALUE_E);
  15.                                 gpio_release(g_test_pin_num4);
  16.                 //GPIO4=1,表示电机关闭
  17.             }
  18.             break;
复制代码


修改内容详见附件:
gizwits_product.zip (2.98 KB, 下载次数: 0)






点评

对了,大哥,请问下,为什么您的和波叔的程序里,都少了gpio.c文件呢  详情 回复 发表于 2018-11-26 20:38

0

主题

3

帖子

110

积分

注册会员

Rank: 2

积分
110
15#
发表于 2018-11-18 20:19:25 | 只看该作者
校园创客福利
Bingou 发表于 2018-11-18 17:32
@冯, 控制的代码是不正确的,更正如下:

电机接口虽然是GPIO4,但映射到module是pin15,所以想让电机能够 ...

@Bingou  你上面的code 哪来的????我写完只发给过一个微信朋友。怎么会跟我写的一模一样

点评

加上来源了,<<<< 以下代码由:muzixiaosanshi 提供 ,本人仅负责编辑整理发布>>>>  发表于 2018-11-18 21:30
哈哈,就是我  详情 回复 发表于 2018-11-18 21:20

1

主题

34

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
16#
发表于 2018-11-18 21:20:20 | 只看该作者
muzixiaosanshi 发表于 2018-11-18 20:19
@Bingou  你上面的code 哪来的????我写完只发给过一个微信朋友。怎么会跟我写的一模一样 ...

哈哈,就是我

0

主题

3

帖子

110

积分

注册会员

Rank: 2

积分
110
17#
发表于 2018-11-19 11:58:17 | 只看该作者

好的,我一看头像是个姑娘,还以为邮件内容泄露了。

2

主题

21

帖子

194

积分

注册会员

Rank: 2

积分
194
18#
发表于 2018-11-19 22:20:04 | 只看该作者
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


点评

确认下这一步你是否执行了  详情 回复 发表于 2018-11-20 08:55

1

主题

34

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
19#
发表于 2018-11-20 08:55:38 | 只看该作者
最爱红豆糕 发表于 2018-11-19 22:20
好的,我把环境变量配置成python3.6后,再运行下载,显示是
“File "QFLOG.py", line 14, in   
from di ...

确认下这一步你是否执行了
  1. 3、解压pyserial-3.4.tar,在命令行窗口下,跳转到解压后的目录下,运行命令:

  2. python setup.py build

  3. 模块开始编译,编译后执行命令:

  4. python setup.py install

  5. 安装后就可以了。
复制代码


点评

你好,我确认是执行了这一步的了, [attachimg]15353[/attachimg][attachimg]15354[/attachimg] 可是还是显示 “ File "QFLOG.py", line 14, in from dirpaths import LOGS_DIR ModuleNotFoundError: No module  详情 回复 发表于 2018-11-23 21:30

0

主题

2

帖子

30

积分

新手上路

Rank: 1

积分
30
20#
发表于 2018-11-20 13:31:16 | 只看该作者
校园创客福利
很尴尬居然没有权限下载demo

0

主题

2

帖子

30

积分

新手上路

Rank: 1

积分
30
21#
发表于 2018-11-20 13:34:04 | 只看该作者
Bingou 发表于 2018-11-18 17:32
控制的代码是不正确的,更正如下:
>

hi! 不知道能不能麻烦您发一份demo的代码给我或者上传到github之类的平台,我刚注册的账号就是为了下载这个demo,但是没有权限...很尴尬..
邮箱: yuenwork@163.com

点评

已发送到邮箱,请查收  发表于 2018-11-20 14:46

4

主题

11

帖子

515

积分

高级会员

Rank: 4

积分
515
22#
发表于 2018-11-22 21:43:50 | 只看该作者
楼主请问下,编译通过,下载也下载好了,但是设备不上线是什么问题呢?代码是按照你上面说的改的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表