<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.jackslab.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-cn">
		<id>http://wiki.jackslab.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vowstar</id>
		<title>Jack's Lab - 用户贡献 [zh-cn]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.jackslab.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vowstar"/>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/Vowstar"/>
		<updated>2026-10-15T07:23:51Z</updated>
		<subtitle>用户贡献</subtitle>
		<generator>MediaWiki 1.19.2</generator>

	<entry>
		<id>http://wiki.jackslab.org/MJYUN_User_Guide</id>
		<title>MJYUN User Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/MJYUN_User_Guide"/>
				<updated>2016-01-24T16:12:20Z</updated>
		
		<summary type="html">&lt;p&gt;Vowstar：Add describe of device debug in document.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 摩羯云智能硬件编程指南 =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
Author: Huang Rui &amp;lt;vowstar@gmail.com&amp;gt;&lt;br /&gt;
Version: 1.0&lt;br /&gt;
Date: 2016-01-14&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 开始入门 ===&lt;br /&gt;
&lt;br /&gt;
==== 1. 获取Noduino开发环境 ====&lt;br /&gt;
&lt;br /&gt;
安装Git版本控制系统，并获取 https://github.com/icamgo/noduino-sdk[Noduino SDK].&lt;br /&gt;
&lt;br /&gt;
  $ git clone --recursive git://github.com/icamgo/noduino-sdk.git&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2. 初始化Noduino开发环境 ====&lt;br /&gt;
&lt;br /&gt;
进入./noduino-sdk/toolchain目录，运行gen.py初始化Noduino开发环境。&lt;br /&gt;
&lt;br /&gt;
  $ python gen.py&lt;br /&gt;
&lt;br /&gt;
该过程可能需要网络连接，请耐心等待。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. 编写代码 ====&lt;br /&gt;
&lt;br /&gt;
进入 ./noduino-sdk/sketch/mjyun，打开user_main.c&lt;br /&gt;
&lt;br /&gt;
  $ vim user_main.c&lt;br /&gt;
&lt;br /&gt;
编辑mjyun_conf，填入你在云端后台管理系统设定的微信原始ID与产品编码（产品子ID）。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
/* 插座 - Plug */&lt;br /&gt;
const mjyun_config_t mjyun_conf = {&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;gh_51111441aa63&amp;quot;,    /* 产品id [必填]*/&lt;br /&gt;
    &amp;quot;3707&amp;quot;,               /*产品子id(一般用于微信设备) [选填]*/&lt;br /&gt;
    &amp;quot;Hi, I'm coming!!!&amp;quot;,  /*设备上线时，给app发送online消息中的附加数据，[选填]*/&lt;br /&gt;
    &amp;quot;I will come back!!!&amp;quot; /*设备掉线时，给app发送offline消中的附加数据，[选填]*/&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/* 灯 - Bulb */&lt;br /&gt;
const mjyun_config_t mjyun_conf = {&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;gh_51111441aa63&amp;quot;,    /* 产品id [必填]*/&lt;br /&gt;
    &amp;quot;3708&amp;quot;,               /*产品子id(一般用于微信设备) [选填]*/&lt;br /&gt;
    &amp;quot;Hi, I'm coming!!!&amp;quot;,  /*设备上线时，给app发送online消息中的附加数据，[选填]*/&lt;br /&gt;
    &amp;quot;I will come back!!!&amp;quot; /*设备掉线时，给app发送offline消中的附加数据，[选填]*/&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
微信中的产品编码等价于摩羯云管理系统中的产品子ID.微信原始ID与摩羯云后台中的产品ID设置需要一致，且代码中必须正确配置。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. 将硬件通过USB线缆连接至计算机 ====&lt;br /&gt;
&lt;br /&gt;
将摩羯云开发板(Noduino XXX 或 Nemu XXX)通过USB接口连接至计算机。连接硬件之前，请先下载并安装驱动程序。&lt;br /&gt;
&lt;br /&gt;
;;请确认您的计算机安装了FT232/FTX232驱动或者CP2102/CP2104驱动程序。**必须使用高质量的USB线材（最好带屏蔽磁环），否则有可能产生通信错误。**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  FT232驱动下载：&lt;br /&gt;
** http://www.ftdichip.com/Drivers/VCP.htm&lt;br /&gt;
*  CP2102驱动下载：&lt;br /&gt;
** http://www.silabs.com/Support%20Documents/Software/CP210x_Linux.bin&lt;br /&gt;
** http://www.silabs.com/Support%20Documents/Software/CP210x_Mac.zip&lt;br /&gt;
** http://www.silabs.com/Support%20Documents/Software/CP210x_Windows.exe&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 5. 检查您的计算机上是否出现新的串口设备。 ====&lt;br /&gt;
&lt;br /&gt;
* Linux 检查&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ ls /dev/ttyUSB*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* MAC OS 检查&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
#ft232x&lt;br /&gt;
ls /dev/cu.usbserial-*&lt;br /&gt;
#cp210x&lt;br /&gt;
ls /dev/cu.SLAB_USBtoUART&lt;br /&gt;
ls /dev/tty.SLAB_USBtoUART&lt;br /&gt;
ls /dev/cu*&lt;br /&gt;
ls /dev/tty*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Windows 检查&lt;br /&gt;
&lt;br /&gt;
** 查看设备管理器&lt;br /&gt;
** 在PowerShell中执行以下命令&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
[System.IO.Ports.SerialPort]::getportnames()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6. 编译并烧写。 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ make clean &amp;amp;&amp;amp; make flash&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;;如果反复烧写失败，请**按住Flash按键不放，并尝试按一下RESET按键**。&lt;br /&gt;
&lt;br /&gt;
;;烧写过程会缩短Flash的寿命，并破坏Flash上的数据，请先备份Flash上的资料。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 7. 使用微信扫描二维码 ====&lt;br /&gt;
&lt;br /&gt;
使用微信扫描二维码后，进入绑定设备与配置Wi-Fi网络的流程。目前提供插座与球泡灯的二维码。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[文件:Mjyun-plug.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[文件:Mjyun-light.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[IMPORTANT]&lt;br /&gt;
请确认您在程序中设置了正确的微信原始ID产品编码，否则无法正确发现设备。&lt;br /&gt;
&lt;br /&gt;
根据微信提示，配置和绑定设备。此时会出现摩羯云公众号，选择关注。&lt;br /&gt;
&lt;br /&gt;
;;如果您已经关注了摩羯云公众号，则会跳过关注页面。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 8. 开始调试设备 ====&lt;br /&gt;
&lt;br /&gt;
进入摩羯云公众号，点击菜单 -&amp;gt; 探索-&amp;gt;设备调试。此时您就可以通过微信与设备之间进行通讯了！&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 设备调试 ===&lt;br /&gt;
&lt;br /&gt;
==== 准备工作 ====&lt;br /&gt;
你需要一个干净但不算整洁的工作台，一个Noduino-Falcon开发板，Micro USB线。如果你还想自己动手做一些小东西，您还需要购买万用表(推荐用Fluke)，电烙铁(936台式烙铁是一个不错的选择)，无铅焊锡丝，BGA焊油，镊子等。如果条件允许，您还可以购买一些小工具，元器件册等。推荐使用贴片元件，因为它小巧、便宜、可靠。只要你细心一些，没有什么事情能难住你。&lt;br /&gt;
&lt;br /&gt;
==== 开始调试 ====&lt;br /&gt;
Linux, MAC OS, Windows环境都可以。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[NOTE]&lt;br /&gt;
其中Windows比较特别，你可能需要mingw或者cygwin，这样你可以运行一个UNIX兼容的console.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
想要看调试输出吗？你需要先设置波特率：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bach&amp;gt;&lt;br /&gt;
stty -F /dev/ttyS2 speed 115200 cs8 -cstopb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[IMPORTANT]&lt;br /&gt;
请确认这里设置的波特率和您在程序中设置的波特率相同，否则接下来您什么都看不到。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
然后就可以看调试输出了：&lt;br /&gt;
&amp;lt;source lang=bach&amp;gt;&lt;br /&gt;
cat /dev/ttyS2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
或者&lt;br /&gt;
&amp;lt;source lang=bach&amp;gt;&lt;br /&gt;
cat &amp;lt; /dev/ttyS2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[IMPORTANT]&lt;br /&gt;
这里设置的串口名称替代为您本地实际的串口名称，Linux有可能是/dev/ttyUSB*，MAC OS有可能是/dev/cu*或者/dev/tty*.Windows的串口在mingw或cygwin下才能看到，可能是/dev/ttyS*.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[TIP]&lt;br /&gt;
如果您使用串口和传感器通讯，您可能对16进制输出更感兴趣，使用命令：&lt;br /&gt;
&amp;lt;source lang=bach&amp;gt;&lt;br /&gt;
od -x &amp;lt; /dev/ttyS2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 入门例程 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
#define main user_init&lt;br /&gt;
void mjyun_receive(const char *event_name, const char *event_data)&lt;br /&gt;
{&lt;br /&gt;
    os_printf(&amp;quot;RECEIVED: key:value [%s]:[%s]&amp;quot;, event_name, event_data);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 3707 --&amp;gt; 摩羯插座&lt;br /&gt;
 * 3708 --&amp;gt; 摩羯灯&lt;br /&gt;
 */&lt;br /&gt;
const mjyun_config_t mjyun_conf = {&lt;br /&gt;
    &amp;quot;gh_51111441aa63&amp;quot;,      /* 产品id [必填] */&lt;br /&gt;
    &amp;quot;3707&amp;quot;,                 /* 产品子id (一般用于微信设备) [选填]*/&lt;br /&gt;
    &amp;quot;Hi, I'm coming!!!&amp;quot;,    /* 设备上线时，给app发送 online 消息中的附加数据，[选填] */&lt;br /&gt;
    &amp;quot;I will come back!!!&amp;quot;   /* 设备掉线时，给app发送 offline 消息中的附加数据，[选填] */&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void init_yun()&lt;br /&gt;
{&lt;br /&gt;
    mjyun_ondata(mjyun_receive);&lt;br /&gt;
    mjyun_run(&amp;amp;mjyun_conf);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void main(int argc, char * argv[])&lt;br /&gt;
{&lt;br /&gt;
    system_init_done_cb(init_yun);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TIP]&lt;br /&gt;
更多例程参见:./noduino-sdk/examples&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 接口概述 ===&lt;br /&gt;
&lt;br /&gt;
==== 1. 数据类型 ====&lt;br /&gt;
&lt;br /&gt;
===== mjyun_config_t =====&lt;br /&gt;
&lt;br /&gt;
该数据结构用于配置智能硬件连接摩羯云需要的必要参数。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
typedef struct&lt;br /&gt;
{&lt;br /&gt;
    const char* product_id;        // &amp;lt;1&amp;gt;&lt;br /&gt;
    const char* sub_pid;           // &amp;lt;2&amp;gt;&lt;br /&gt;
    const char* online_words;      // &amp;lt;3&amp;gt;&lt;br /&gt;
    const char* offline_words;     // &amp;lt;4&amp;gt;&lt;br /&gt;
} mjyun_config_t;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 产品id, 可从摩羯云官网后台管理系统获得 [必填]&lt;br /&gt;
* 产品子id(一般用于微信设备) [选填]&lt;br /&gt;
* 设置摩羯云服务器发送给app的设备上线(online)的附加数据 [该数据缺省为设备id] [选填]&lt;br /&gt;
* 设置摩羯云服务器发送给app的设备离线消息(offline)的附加数据 [该数据缺省为设备id] [选填]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_ota_config_t =====&lt;br /&gt;
&lt;br /&gt;
该数据结构是ESP8266平台进行OTA所需要的必要参数。&lt;br /&gt;
&lt;br /&gt;
;;如果需要使用OTA功能，则使用mjyun_ota_config配置，否则忽略.OTA功能可能是平台相关的，不同硬件上该接口的实现可能不一致。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
typedef struct&lt;br /&gt;
{&lt;br /&gt;
    const char* hardware_version;  // &amp;lt;1&amp;gt;&lt;br /&gt;
    const char* firmware_version;  // &amp;lt;2&amp;gt;&lt;br /&gt;
    const char* firmware_id_1;     // &amp;lt;3&amp;gt;&lt;br /&gt;
    const char* firmware_id_2;     // &amp;lt;4&amp;gt;&lt;br /&gt;
} mjyun_ota_config_t;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 设置硬件的当前版本，需要在云端新建硬件，然后获得该版本号 [选填]&lt;br /&gt;
* 设置固件的当前版本，需要在云端新建固件，然后获得该版本号 [选填]&lt;br /&gt;
* 设置运行在保护分区1的固件ID，该ID需要从云端后台获得。这两个ID对应的固件版本相同。 [选填]&lt;br /&gt;
* 设置运行在保护分区2的固件ID，该ID需要从云端后台获得。这两个ID对应的固件版本相同。 [选填]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_state_t =====&lt;br /&gt;
&lt;br /&gt;
该枚举类型包含了智能硬件的若干种常用状态。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
typedef enum {&lt;br /&gt;
    WIFI_IDLE,                      /*Wi-Fi空闲，常出现在设备刚刚启动且没有连接过任何SSID时*/&lt;br /&gt;
    WIFI_SMARTLINK_START,           /*设备进入智能连接状态*/&lt;br /&gt;
    WIFI_SMARTLINK_LINKING,         /*设备正在进行智能连接*/&lt;br /&gt;
    WIFI_SMARTLINK_FINDING,         /*设备正在进行智能连接，正在查找手机所在的信道与发出的特征包*/&lt;br /&gt;
    WIFI_SMARTLINK_TIMEOUT,         /*设备智能连接超时*/&lt;br /&gt;
    WIFI_SMARTLINK_GETTING,         /*设备正在进行智能连接，已经锁定手机信道，正在解码数据包*/&lt;br /&gt;
    WIFI_SMARTLINK_OK,              /*设备智能连接成功*/&lt;br /&gt;
    WIFI_AP_OK,                     /*设备在AP模式*/&lt;br /&gt;
    WIFI_AP_ERROR,                  /*设备在AP模式并发生了某些错误*/&lt;br /&gt;
    WIFI_AP_STATION_OK,             /*设备在AP-STATION混合模式*/&lt;br /&gt;
    WIFI_AP_STATION_ERROR,          /*设备在AP-STATION混合模式并发生了某些错误*/&lt;br /&gt;
    WIFI_STATION_OK,                /*设备在STATION模式*/&lt;br /&gt;
    WIFI_STATION_ERROR,             /*设备在STATION模式并发生了某些错误*/&lt;br /&gt;
    MJYUN_CONNECTING,               /*正在连接摩羯云*/&lt;br /&gt;
    MJYUN_CONNECTING_ERROR,         /*连接摩羯云失败*/&lt;br /&gt;
    MJYUN_CONNECTED,                /*已连接摩羯云*/&lt;br /&gt;
    MJYUN_DISCONNECTED,             /*与摩羯云的连接断开*/&lt;br /&gt;
} mjyun_state_t;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2. 回调类型 ====&lt;br /&gt;
&lt;br /&gt;
===== mjyun_callback =====&lt;br /&gt;
&lt;br /&gt;
硬件与摩羯云发生连接，断开，发布后调用此类型的回调函数。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
typedef void (*mjyun_callback)();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_data_callback =====&lt;br /&gt;
&lt;br /&gt;
硬件收到来自摩羯云或者APP的数据后，调用此类型的回调函数。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
typedef void (*mjyun_data_callback)(const char *event_name, const char *event_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TIP]&lt;br /&gt;
event_name和event_data可以看作是** (key,value) **.他们有可能是字符串化的JSON对象。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_state_callback =====&lt;br /&gt;
&lt;br /&gt;
硬件的状态发生改变后，调用此类型的回调函数。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
typedef void (*mjyun_state_callback)(mjyun_state_t state);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. 接口函数 ====&lt;br /&gt;
&lt;br /&gt;
===== mjyun_run =====&lt;br /&gt;
&lt;br /&gt;
启动摩羯云智能硬件服务&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
int mjyun_run(const mjyun_config_t* conf);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_ota_config =====&lt;br /&gt;
&lt;br /&gt;
配置摩羯云OTA升级功能&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
int mjyun_ota_config(const mjyun_ota_config_t* conf);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_onconnected =====&lt;br /&gt;
&lt;br /&gt;
注册摩羯云连接成功回调函数&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
void mjyun_onconnected(mjyun_callback connectedCb);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_ondisconnected =====&lt;br /&gt;
&lt;br /&gt;
注册摩羯云断开回调函数&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
void mjyun_ondisconnected(mjyun_callback disconnectedCb);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_ondata =====&lt;br /&gt;
&lt;br /&gt;
注册摩羯云收到数据回调函数&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
void mjyun_ondata(mjyun_data_callback dataCb);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_onpublished =====&lt;br /&gt;
&lt;br /&gt;
注册向摩羯云发布消息结束时触发的回调函数&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
void mjyun_onpublished(mjyun_callback sendCb);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_publish =====&lt;br /&gt;
&lt;br /&gt;
向摩羯云（APP或微信页面）发布消息&lt;br /&gt;
&lt;br /&gt;
;;该消息不会一直保持在服务器上，如果主题(Topic)没有APP订阅，该消息会被丢弃。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
BOOL mjyun_publish(const char* event_name, const char* event_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_publishstatus =====&lt;br /&gt;
&lt;br /&gt;
向摩羯云（APP或微信页面）发布设备状态消息&lt;br /&gt;
&lt;br /&gt;
;;该状态消息会一直保持在服务器上，即使主题没有被任何APP订阅。一旦APP连接到服务器并订阅该主题，将会收到最新的状态消息。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
BOOL mjyun_publishstatus(const char* status_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_statechanged =====&lt;br /&gt;
&lt;br /&gt;
注册摩羯云智能硬件状态发生改变的回调函数&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
void mjyun_statechanged(mjyun_state_callback stateChangedCb);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_state =====&lt;br /&gt;
&lt;br /&gt;
立即获得摩羯云当前的状态&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
mjyun_state_t mjyun_state();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_getdevicepasswd =====&lt;br /&gt;
&lt;br /&gt;
获得设备密码&lt;br /&gt;
&lt;br /&gt;
;;该API不常用。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
uint8_t* mjyun_getdevicepasswd();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_getdeviceid =====&lt;br /&gt;
&lt;br /&gt;
获得设备ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
uint8_t* mjyun_getdeviceid();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_systemrecovery =====&lt;br /&gt;
&lt;br /&gt;
系统恢复，抹掉所有摩羯云相关数据&lt;br /&gt;
&lt;br /&gt;
该API一般对应物理按键。&lt;br /&gt;
&lt;br /&gt;
;;慎用该API，您有可能永久丢失设备ID和密码。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
void mjyun_systemrecovery();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_forceentersmartlinkmode =====&lt;br /&gt;
&lt;br /&gt;
强制进入配网模式&lt;br /&gt;
&lt;br /&gt;
;;该API一般对应物理按键。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
void mjyun_forceentersmartlinkmode(); &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_setssidprefix =====&lt;br /&gt;
&lt;br /&gt;
设置物理硬件作为AP时的SSID前缀&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
void mjyun_setssidprefix(const char* sPrefix); &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== mjyun_check_update =====&lt;br /&gt;
&lt;br /&gt;
检查固件更新&lt;br /&gt;
&lt;br /&gt;
;;仅检查更新，不会强制更新固件。是否更新固件由摩羯云进行决策。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
void mjyun_check_update(); &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vowstar</name></author>	</entry>

	</feed>