冯俊波 发表于 2018-11-15 17:17:52

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个开关源码










Bingou 发表于 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"

Bingou 发表于 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)


固件 下载要按这个步骤执行
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
知道中断啥意思了吧

Bingou 发表于 2018-11-17 23:13:43

最爱红豆糕 发表于 2018-11-17 22:32
您好,我是用你的程序,发现用llvm_build.bat批处理,会出现图示错误,提示的是objs中的txm_module_preambl ...

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

Bingou 发表于 2018-11-15 17:28:56

lhshenshi 发表于 2018-11-15 17:33:00

老哥,给力

Bingou 发表于 2018-11-15 17:40:01

本帖最后由 Bingou 于 2018-11-22 10:06 编辑

..........

Bingou 发表于 2018-11-15 18:24:48


#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

最爱红豆糕 发表于 2018-11-17 21:09:34

楼主,你好,请问下,理论上说,把您的GPIO例程的KEY 和SCRECT改为自己的,是不是就可以连上自己的平台设备呢?

最爱红豆糕 发表于 2018-11-17 22:32:25

您好,我是用你的程序,发现用llvm_build.bat批处理,会出现图示错误,提示的是objs中的txm_module_preamble_llvm.o,找不到,导致无法生成gizwits_app.bin,连接不上平台,请问您知道遇到这个情况是什么原因吗?

最爱红豆糕 发表于 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是可以连接平台的话



最爱红豆糕 发表于 2018-11-18 14:26:25

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

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

Bingou 发表于 2018-11-18 17:23:07

最爱红豆糕 发表于 2018-11-18 14:26
我后来看了下,在python36的文件夹里,运行 python -V查看版本号,发现是
Python 2.7.11,会不会是这个原 ...

对,下载需要Python3

Bingou 发表于 2018-11-18 17:32:47

本帖最后由 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;

修改内容详见附件:







muzixiaosanshi 发表于 2018-11-18 20:19:25

Bingou 发表于 2018-11-18 17:32
@冯, 控制的代码是不正确的,更正如下:

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

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

Bingou 发表于 2018-11-18 21:20:20

muzixiaosanshi 发表于 2018-11-18 20:19
@Bingou你上面的code 哪来的????我写完只发给过一个微信朋友。怎么会跟我写的一模一样 ...

哈哈,就是我

muzixiaosanshi 发表于 2018-11-19 11:58:17

Bingou 发表于 2018-11-18 21:20
哈哈,就是我

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

最爱红豆糕 发表于 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:dizzy:


Bingou 发表于 2018-11-20 08:55:38

最爱红豆糕 发表于 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

安装后就可以了。

Nererd 发表于 2018-11-20 13:31:16

很尴尬居然没有权限下载demo

Nererd 发表于 2018-11-20 13:34:04

Bingou 发表于 2018-11-18 17:32
控制的代码是不正确的,更正如下:
>



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

angelbel 发表于 2018-11-22 21:43:50

楼主请问下,编译通过,下载也下载好了,但是设备不上线是什么问题呢?代码是按照你上面说的改的
页: [1] 2
查看完整版本: MDM9206 SDK操作实例