风扬蛮子 发表于 2014-11-11 18:02:24

机智云3版SDK主要流程

本帖最后由 风扬蛮子 于 2015-1-9 17:53 编辑

设备配置

    AirLink
      硬件触发->3.4.1
      ->AirLink (庆科 Easy Link 或者汉枫 Smart Link SDK)
            ->onEasyLinkResp(XpgEndpoint *)
            ->xpgcConnectAsync()
                ->onConnectEvent()
                ->SendPasscodeReq()
                  ->onPasscodeResp()
            ->或者(60秒后)超时

    SoftAP
      (切换到热点XPG-GAGENT-????)
      ->xpgcConnectAsync()
            ->onConnectEvent()
            ->SendWifiListReq()
                ->OnWifiListResp()
                ->SendOnboardingSetReq() - 备注:这个指令为广播发送,可能出现丢包,建议重发5次以上
                  ->onOnboardingSetResp()
                  (切换到目标的wifi里)
                  ->onEasyLinkResp()

风扬蛮子 发表于 2014-11-11 18:03:00

本帖最后由 风扬蛮子 于 2015-1-6 23:52 编辑

用户注册

    xpgcRegister(uid, pwd)
      ->onUserRegisterResp(ERROR_NONE/...)

用户登录

    xpgcConnectAsync(XpgEndpoint *)
      ->onConnectEvent(connId)
      ->xpgcLogin(connId, uid, pwd)
            ->onLoginCloudResp(LOGINED/...)
            ->SendBindingGetV2Req(connId)
                [->onDeviceFound(XpgEndpoint *)]

* endpoint 包含 ip+port+...等信息,参见SDK 附带 demo 里的onLan()/onWan()/onDeviceFound()
* onLoginCloudResp(参数值),参见 XPG_LOGIN_RESULT 枚举

风扬蛮子 发表于 2014-11-11 18:04:08

本帖最后由 风扬蛮子 于 2015-1-6 17:09 编辑

完整控制(新流程,推荐)
    xpgcStartDiscovery()->onDeviceFound(XpgEndpoint *)
      (小循环找到需要控制的设备,或者超时)
      ->xpgcStopDiscovery()
      (找到,尝试小循环控制)
      ->xpgcLogin2Lan(addr, passcode)
                ->OnLanLoginResp(ERROR_NONE/...)
      (超时,尝试大循环控制)
      ->xpgcLogin2Wan(uid, password, did, passcode)
                ->onWanLoginResp(XPG_LOGIN_RESULT)

风扬蛮子 发表于 2014-11-11 18:04:29

本帖最后由 风扬蛮子 于 2015-1-4 16:02 编辑

手机端主动断开
    xpgcDisconnect()->onConnectEvent()

连接异常处理
    onConnectEvent()->->re-connect()

判断一个连接是大循环还是小循环
    XpgEndpoint * pEndpoint = GetEndpoint(nConnid);
    pEndpoint->mode = (LAN ? MQTT)

风扬蛮子 发表于 2014-11-11 18:04:47

本帖最后由 风扬蛮子 于 2015-1-7 19:15 编辑

小循环控制(旧流程1,不推荐)
    xpgcFindDevice()->onDeviceFound(XpgEndpoint *)
      ->xpgcConnectAsync(XpgEndpoint *)->onConnectEvent()
            [->SendPasscodeReq()->onPasscodeResp()]
                ->xpgcLogin()->onLanLoginResp(ERROR_NONE/...)

xpgcFindDevice()是单次发送,需要App定时重发以避免广播包丢失和提高可靠性

大循环控制(旧流程1,不推荐)
    xpgcConnectAsync(XpgEndpoint *)->onConnectEvent()
      ->xpgcLogin()->onLoginCloudResp()
            ->xpgcEnableCtrl(did, passcode)->onLoginCloudResp(0/1)

风扬蛮子 发表于 2014-12-4 11:11:12

Doxygen生成的API参考

Sailor_Moon 发表于 2015-1-6 18:15:27

本帖最后由 Sailor_Moon 于 2015-1-16 15:33 编辑

3版SDK增加机智云open-api对应用户、设备接口及流程

    用户注册
      xpgc4GetMobileAuthCode((AppId, phone)
            ->onV4GetMobileAuthCode(errorCode)
            ->xpgc4CreateUserByPhone(AppId, phone, psw, code)
                ->onV4CreateUserByPhone(errorCode/...)

    用户登录
      xpgc4Login(AppId, uId, psw)
            ->onV4Login(errorCode,uid,token/...)
            ->xpgcLogin2Wan(userName,password,did,passcode)
                ->onWanLoginResp(result,connId)
      
      *userName = 2$+AppId+$+uid ,password = token

    获取绑定设备列表
      xpgc4GetMyBindings(AppId, token, limit, skip)
            ->onV4GetMyBindings(errorCode/...)

    绑定设备
      xpgc4BindDevice(AppId, token, did, passcode, remark)
            ->onV4BindDevce(errorCode/...)

    解除绑定
      xpgc4UnbindDevice(AppId, token, did)
            ->onV4UnbindDevice(errorCode/...)


旧3版SDK接口升级新3版SDK,要更改的地方
1、改用新注册接口;
2、用户登录改为;
    xpgc4Login(AppId, uId, psw)->onV4Login(errorCode,uid,token/...)
      ->xpgcConnectAsync(XpgEndpoint *)
            ->onConnectEvent(connId)
            ->xpgcLogin(connId, uid, pwd)
                ->onLoginCloudResp(LOGINED/...)
                ->SendBindingGetV2Req(connId)
                  [->onDeviceFound(XpgEndpoint *)

*uid= 2$+AppId+$+uid ,pwd= token
3、绑定设备、解绑设备、获取绑定设备列表改用新版接口。

评心而论 发表于 2015-4-27 22:54:17

不懂c语言用什么底板好

johnvuong1999 发表于 2015-6-15 08:24:26

三版现在上线了吗?

风扬蛮子 发表于 2015-6-29 18:05:01

johnvuong1999 发表于 2015-6-15 08:24
三版现在上线了吗?

3版已经被不推荐,只保持对已应用项目的继续支持。
新项目请使用4版。

波洛 发表于 2015-12-6 01:35:59

评心而论 发表于 2015-4-27 22:54
不懂c语言用什么底板好

不会c语言,底板不重要
页: [1]
查看完整版本: 机智云3版SDK主要流程