通信模组完成AT模组驱动框架的适配后,需进行测试。以Linux环境下的L610模组设备为例,本文介绍该类型的设备,通过C Link SDK接入物联网平台的测试步骤。

背景信息

  • 通信模组与AT模组驱动框架适配的详细说明,请参见概述
  • 本文示例设备的操作系统为Linux,通信模组为L610。更多信息,请参见L610
  • 获取设备认证信息的详细说明,请参见获取设备认证信息

操作步骤

  1. 获取C Link SDK。
    具体操作,请参见获取SDK
    说明 定制SDK时,设备OS选择Linux设备硬件形态选择MCU/SOC+通信模组
  2. 适配硬件
    1. 根据环境和业务需要,选择合适的开发工具,打开./portfiles/aiot_port/project/linux/hal_adapter.c,输入设备节点。
      说明 使用USB将模组接入Linux设备后,通过命令ls /dev可查看设备节点。
      示例代码如下:
          /* 串口初始化, 波特率115200, TODO: 请填写实际的串口设备名称 */
          g_uart_fd = aiot_serial_port_open("/dev/ttyUSB1", 115200);
    2. 适配指定的模组,将device的值设置为l610_at_cmd
      /*AT module*/
      extern at_device_t ec200_at_cmd;
      extern at_device_t ec200_at_cmd_ssl;
      extern at_device_t l610_at_cmd;
      extern at_device_t l610_at_cmd_ssl;
      extern at_device_t air724_at_cmd;
      extern at_device_t air724_at_cmd_ssl;
      at_device_t *device = &l610_at_cmd;
  3. 可选:如果模组含SSL功能,例如device = l610_at_cmd_ssl,您需要将C Link SDK原有的TLS功能关掉,避免重复加密导致异常。
    说明 本示例不支持CoAP协议连接和X.509证书的方式进行设备认证。
    1. 打开./core/sysdep/core_adapter.c
    2. #define CORE_ADAPTER_MBEDTLS_ENABLED前添加注释符号(//)。
  4. 打开./demos/mqtt_at_basic_demo.c文件,配置MQTT接入相关参数。
    具体操作,请参见MQTT接入使用示例
  5. 编译工程文件,运行测试程序。
    不同开发工具的编译方法,请参见所使用的开发工具的说明文档。

运行结果

  • Demo运行后,您可以在设备端查看日志。
    • 模组初始化:
      [1632295441050][3] >>>> AT
      [1632295441176][6] <<<< 
      OK
      ……
      ……
      [1632295442753][13] >>>> AT+MIPCALL=1
      [1632295442888][34] <<<< 
      OK
      +MIPCALL: 10.117.***.***
      [1632295442893][20] >>>> AT+GTSET="IPRFMT",2
      [1632295443020][6] <<<< 
      OK
    • 建立连接:
      [1632295443.022][LK-0313] MQTT user calls aiot_mqtt_connect api, connect
      [1632295443.022][LK-0317] LightSwitch&a1wP******
      [1632295443.022][LK-0318] 439AE51F4AC6B8805F8697B575E97FA0CCC9A5F103B6EBE713A9562236AD0AD0
      [1632295443025][71] >>>> AT+MIPOPEN=1,,"a1wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com",443,0
      [1632295443156][6] <<<< 
      OK
      [1632295443456][17] <<<< 
      +MIPOPEN: 1,1
      [1632295443461][17] >>>> AT+MIPSEND=1,244
      [1632295443588][5] <<<< 
      >
      [1632295443592][244] >>>>                                                                                                                                                                                                                                                  �
      [1632295443720][51] <<<< 
      OK
      +MIPPUSH: 1,0
      +MIPSEND: 1,0,2048
      OK
      [1632295443880][22] <<<<     
      +MIPRTCP: 1,4, 
      id 0, len 4, res 14
      [1632295443.888][LK-0313] MQTT connect success in 858 ms
      AIOT_MQTTEVT_CONNECT
    • 数据上报:
      [1632295443.888][LK-0309] pub: /sys/a18wP******/LightSwitch/thing/event/property/post
      [LK-030A] > 7B 22 69 64 22 3A 22 31  22 2C 22 76 65 72 73 69 | {"id":"1","versi
      [LK-030A] > 6F 6E 22 3A 22 31 2E 30  22 2C 22 70 61 72 61 6D | on":"1.0","param
      [LK-030A] > 73 22 3A 7B 22 4C 69 67  68 74 53 77 69 74 63 68 | s":{"LightSwitch
      [LK-030A] > 22 3A 30 7D 7D                                   | ":0}}           
      [1632295443884][17] >>>> AT+MIPSEND=1,118
      [1632295444008][5] <<<< 
      >
      [1632295444009][118] >>>>                                                                                                                     0t
      [1632295444128][51] <<<< 
      OK
      +MIPPUSH: 1,0
      +MIPSEND: 1,0,2048
      OK
      [1632295444128][15] >>>> AT+MIPSEND=1,2
      [1632295444252][5] <<<< 
      >
      [1632295444254][2] >>>>  
      [1632295444440][267] <<<<                                                                                                                                                                                                    
      OK
      +MIPPUSH: 1,0
      +MIPSEND: 1,0,2048
      OK
    • 数据接收:
      +MIPRTCP: 1,176,0
      id 0, len 176, res 16
      [1632295444.444][LK-0309] pub: /sys/a18wP******/LightSwitch/thing/event/property/post_reply
      [LK-030A] < 7B 22 63 6F 64 65 22 3A  32 30 30 2C 22 64 61 74 | {"code":200,"dat
      [LK-030A] < 61 22 3A 7B 7D 2C 22 69  64 22 3A 22 31 22 2C 22 | a":{},"id":"1","
      [LK-030A] < 6D 65 73 73 61 67 65 22  3A 22 73 75 63 63 65 73 | message":"succes
      [LK-030A] < 73 22 2C 22 6D 65 74 68  6F 64 22 3A 22 74 68 69 | s","method":"thi
      [LK-030A] < 6E 67 2E 65 76 65 6E 74  2E 70 72 6F 70 65 72 74 | ng.event.propert
      [LK-030A] < 79 2E 70 6F 73 74 22 2C  22 76 65 72 73 69 6F 6E | y.post","version
      [LK-030A] < 22 3A 22 31 2E 30 22 7D                          | ":"1.0"}        
      pub, qos: 0, topic: /sys/a18wP******/LightSwitch/thing/event/property/post_reply
      pub, payload: {"code":200,"data":{},"id":"1","message":"success","method":"thing.event.property.post","version":"1.0"}
  • 您也可以在物联网平台查看日志,具体操作,请参见云端运行日志