色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用機智云設備接入SDK來進行APP與設備之間的數據透傳

9GxC_IoTMaker ? 來源:未知 ? 作者:李倩 ? 2018-05-17 14:31 ? 次閱讀

本文主要介紹如何使用機智云設備接入SDK來進行APP與設備之間的數據透傳。在APP和MCU之間,有兩種數據透傳方式:

利用“擴展類型”數據點進行透傳

不定義數據點直接進行數據透傳,即純透傳

先來了解什么是透傳什么是透傳?透傳即是透明傳送,即傳送網絡無論傳輸業務如何,只負責將需要傳送的業務傳送到目的節點,同時保證傳輸的質量即可,而不對傳輸的業務進行處理。

這就好比快遞郵件,郵件中間有可能通過自行車、汽車、火車、飛機的多種組合運輸方式到達您的手上,但您不用關心它們中間經歷了哪些。

為什么要透傳呢?透傳一般都是用來讀取遠程的串口數據。例如:網吧內每個上網者都要刷身份證才能上網,但身份證數據庫不可能放在每個網吧內。所以就將讀卡器的串口數據通過透傳回傳到公安局,在公安局的平臺上來比對身份證號碼。

言歸正傳,現在進入今天的主題,來談談,在機智云APP和MCU之間有哪兩種透傳方式。

方式一:擴展類型數據點透傳

1.定義數據點

在機智云產品管理中的數據點中定義一個拓展類型的數據點,如上圖所示:定義數據長度為60個byte(透傳情況下,數據長度暫時支持900字節內數據傳輸)。

2.設備上報數據協議說明

設備MCU按照數據點的定義格式上報透傳數據,在完成新產品的定義后,每個新產品都有相應的串口通信協議文檔,文檔下載路徑如下圖所示:

在串口通信協議文檔文檔的4.9部分則有MCU上報數據的格式,如下圖:

圖中的dev_status(60B)即為需要透傳的數據。

3.SDK回調接口說明

APP端接收到MCU上報數據的回調接口:didReceiveData,判斷result為GizWifiErrorCode.GIZ_SDK_SUCCESS,則接收到的數據可能為普通數據點或者擴展數據點。

4.APP接收數據代碼示例

Andriod接收到MCU上報拓展數據類型代碼示例:

final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
// 將16進制的byte轉為string,
比如byte值為{0x62,0x63},
那么將轉為“6263”public static String bytesToHex(byte[] bytes) { char[] hexChars = new char[bytes.length * 3];
for (int j = 0;
j < bytes.length; j++) { int v = bytes[j] & 0xFF; hexChars[j * 3] = hexArray[v >>> 4];
hexChars[j * 3 + 1] = hexArray[v & 0x0F]; hexChars[j * 3 + 2] = ' ';
} return new String(hexChars);
}
@Overrideprotected void didReceiveData(GizWifiErrorCode result, GizWifiDevice device,
ConcurrentHashMap dataMap, int sn) { if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS)
{
// 普通數據點類型,有布爾型、整形和枚舉型數據,
該種類型一般為可讀寫 if (dataMap.get("data") != null)
{
ConcurrentHashMap map = (ConcurrentHashMap) dataMap.get("data");
// 擴展數據點,
key為"kuozhan" byte[] bytes = (byte[]) map.get("kuozhan");
String string = bytesToHex(bytes);
Toast.makeText(this, string,
Toast.LENGTH_SHORT).show();
}
}}

iOS接收到MCU上報拓展數據類型代碼示例:

- (void)device:(GizWifiDevice *)device didReceiveData:(NSError *)result data:(NSDictionary *)dataMap withSN:(NSNumber *)sn{
if (result.code == GIZ_SDK_SUCCESS)
{
NSLog(@"接收到數據");
NSDictionary *data = dataMap[@"data"];
NSString *kuozhan = data[@"kuozhan"];
NSLog(@"dataMap = %@", dataMap);
NSLog(@"kuozhan = %@", kuozhan);
}}

5.設備上報數據案例

案例:根據數據點上報格式上報數據:

FF FF 00 42 05 00 00 00 04 01 02 03 04 05 06 07 08 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78

注意定義的擴展數據類型為60個字節,因此上報數據的時候也一定要保證上報命令中“設備狀態”字節數為60個字節,否則APP端將不會收到數據。多余的數據可以進行補零操作。

APP端接收到的dataMap字典中有一個”kuozhan”的key,對應的值即為透傳的數據。

dataMap = {
alerts={ };
data ={
kuozhan = <01020304 05060708 09000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000>;
};
faults={
};
}

6.APP下發數據代碼示例

APP在GizWifiDevice類的write接口中,按照數據點定義發送擴展數據。

Andriod下發拓展數據類型命令代碼示例:

byte[] input1 = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 };
// byte[] input2 = { 11, 22, 33, 44, 55, 66, 77, 88, 99};
ConcurrentHashMap dataMap = new ConcurrentHashMap();
dataMap.put("kuozhan", input1);
device.write(dataMap,
0);

iOS下發拓展數據類型命令代碼示例:

char input1[7] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77};// char input2[7] = {11, 22, 33, 44, 55, 66, 77}; NSData* data = [NSData dataWithBytes:input1 length:sizeof(input1)]; NSDictionary *request = @{@"kuozhan": data}; [self.device write:request withSN:44];

上述代碼中,input1與input2的透傳結果是不一樣的,input1中定義的是十六進制的數值,input2中則是十進制的數值。如果使用input1中0x11的值下發給設備,那么設備將收到0x11的十六進制值,如果使用input2中11的值下發給設備,那么設備收到將是0x0b(十進制11對應十六進制b)。使用input1下發設備,MCU收到的數據為:

FF FF 00 43 03 45 00 00 01 01 11 22 33 44 55 66 77 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69

方式二:無數據點透傳

1.設備上報數據協議說明

MCU上報數據的格式如下表所示,包長度(len)是指從命令開始一直到校驗和的字節長度(包括命令和校驗和)。dev_status是需要透傳數據,可以設置任意長度,但是暫時支持900B內傳輸。

如設備上報指令:FF FF 00 0D 05 00 00 00 06 11 22 33 44 55 66 77 F4 ;那么透傳的數據為11 22 33 44 55 66 77

2.SDK回調接口說明

APP端接收到MCU上報數據的回調接口: didReceiveData,判斷result為GizWifiErrorCode.GIZ_SDK_SUCCESS,則表示接收到數據成功,回傳參數的dataMap 中的“binary”字段的值為透傳數據。

3.APP接收數據代碼示例

Andriod接收MCU無數據點上報代碼示例:

@Overrideprotected void didReceiveData(GizWifiErrorCode result, GizWifiDevice device,
ConcurrentHashMap dataMap, int sn) {
if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
// 透傳數據,無數據點定義,
適合開發者自行定義協議自行解析 if (dataMap.get("binary") != null)
{ byte[] binary = (byte[]) dataMap.get("binary"); Log.i("info",
"Binary data:" + bytesToHex(binary));
// 收到后面需要自行解析
}
}}

iOS接收MCU無數據點上報代碼示例:

- (void)device:(GizWifiDevice *)device didReceiveData:(NSError *)result data:(NSDictionary *)dataMap withSN:(NSNumber *)sn{
if (result.code == GIZ_SDK_SUCCESS)
{
NSLog(@"接收到數據");
NSLog(@"dataMap = %@", dataMap);
NSString *binary = dataMap[@"binary"];
// 后面需要自行對binary數據進行解析
}}

如MCU上報:FF FF 00 0D 05 00 00 00 06 11 22 33 44 55 66 77 F4則APP將打印: Binary data:11 22 33 44 55 66 77

4.APP下發數據代碼示例

APP在GizWifiDevice類的write接口中,發送的json格式為:{“binary”: “xxxxxx”};MCU接收的數據格式如下:

Andriod下發無數據點透傳數據代碼示例:

byte[] input1 = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 };ConcurrentHashMap dataMap = new ConcurrentHashMap();dataMap.put("binary", input1);device.write(dataMap, 0);

iOS下發無數據點透傳數據代碼示例:

char input1[7] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77};// char input2[7] = {11, 22, 33, 44, 55, 66, 77};
NSData* data = [NSData dataWithBytes:input1 length:sizeof(input1)]
;NSDictionary *request = @{@"binary": data};
[self.device write:request withSN:0];

MCU接收到的APP下發數據格式(即以上bytes數組下發后,MCU接收到的數據):FF FF 00 0D 03 16 00 00 05 11 22 33 44 55 66 77 07

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • APP
    APP
    +關注

    關注

    33

    文章

    1577

    瀏覽量

    72665
  • 機智云
    +關注

    關注

    2

    文章

    591

    瀏覽量

    26446

原文標題:如何使用機智云設備接入SDK,來進行APP與設備之間的數據透傳

文章出處:【微信號:IoTMaker,微信公眾號:機智云開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    教你輕松將CC3200接入機智

    LaunchPad LED D7 創建一個數據點按照 向導點擊下一步,最后可以按照demo APP,或者下載SDK去定制APP3.獲取Product Key在
    發表于 02-22 14:26

    機智想說愛你不容易 - 如何開發接入機智的物聯網設備

    機智平臺標準接入協議之App設備通訊v4.0.1,機智
    發表于 09-27 13:26

    五分鐘了解機智

    上網后自動與機智連接。同時,手機APP集成機智提供SDK,也會自動連接
    發表于 12-27 14:32

    機智APP開源框架介紹

    硬件相關的App實現方法。BT/BLE設備接入機智Android客戶端示例源碼介紹:BT/BLE設備
    發表于 02-15 17:56

    硬件工程師是這樣子開發APP

    %E5%BD%95%E4%B8%8E%E6%8D%A2%E8%82%A4.html6)通常重頭戲在最后。在進行APP開發之前,你一定要了解什么是“數據
    發表于 05-12 11:11

    史上最詳細的Arduino uno R3接入機智教程

    配網模式,然后手機APP把SSID和密碼廣播給設備,原理如下圖:這里需要說明的是,機智開發的配網方案有2種,取名為AirLink和SoftAP,
    發表于 11-18 14:52

    Android開發SDK接入機智,智能家居實現APP遠程控制多設備

    技術:JAVA 8.32運行環境:AndroidStudio2.2 概述此框架只用了一周星期做了出來,因為對機智的框架比較熟悉了 !期間SDK初始化出了問題,去咨詢了機智
    發表于 04-24 10:43

    機友分享 | 機智小程序啟蒙:WebSocket網頁控制

    )、開源跨平臺APP SDK(iOS、Android、APiCloud)、開源案例和在線教程,以及社區及FAE支持,幫助開發者0成本、快速實現IoT設備遠程控制、數據采集分析、
    發表于 07-17 15:40

    機智小程序啟蒙:WebSocket網頁控制

    機智小程序啟蒙:WebSocket網頁控制 機智Web版的JS遠程控制設備,是調用了機智
    發表于 07-22 09:58

    物聯網中的數據

    推送、統計報表等服務。? 戳上圖立即選購 ?[ APP和MCU之間如何實現 ]關于使用機智
    發表于 08-29 19:27

    物聯網中的數據

    推送、統計報表等服務。? 戳上圖立即選購 ?[ APP和MCU之間如何實現 ]關于使用機智
    發表于 09-03 14:17

    機智(物聯網平臺)上新了

    方式,如GPRS、NB-IoT、4G全網通;支持RS232、RS485等方式接入;甚至是可通過APP、后臺、小程序等方式進行設備管理。機智
    發表于 11-05 19:21

    485轉4G DTU設備(機智)

    App即可很快的實現手機App遠程訪問我們的開發板。缺點就是通用版App的UI頁面看起來不夠專業。本例中我們使用了"RawData"這個數據點作為和
    發表于 10-26 19:02

    機智三種APP開發方式介紹

    APP開發,以下為不同需求建議選用的開發方式。 01機智設備接入SDK
    的頭像 發表于 11-21 15:27 ?2822次閱讀
    <b class='flag-5'>機智</b><b class='flag-5'>云</b>三種<b class='flag-5'>APP</b>開發方式介紹

    ZWS平臺應用(2)-設備基于SDK接入

    物聯網開發過程中遇到的棘手問題是:如何讓設備連接上設備接入主要是開發者要實現設備平臺
    的頭像 發表于 03-05 08:24 ?462次閱讀
    ZWS<b class='flag-5'>云</b>平臺應用(2)-<b class='flag-5'>設備</b>基于<b class='flag-5'>SDK</b><b class='flag-5'>接入</b>
    主站蜘蛛池模板: 欧美性最猛xxxx在线观看视频 | 在线免费观看国产 | 好男人视频免费高清在线观看www | 538在线视频一区二区视视频 | 香蕉久久av一区二区三区 | 久久re视频精品538在线 | 97精品一区二区视频在线观看 | 国产精品99久久久久久AV下载 | 男生扒开美女尿口戳戳 | 欧美最猛黑人AAAAA片 | tube日本护士 | 无人影院在线播放视频 | 校花在公车上被内射好舒服 | 高清无码中文字幕在线观看视频 | 91免费网站在线看入口黄 | 丰满大爆乳波霸奶 | 伊人草久久 | 小草视频免费观看在线 | 日本中文字幕伊人成中文字幕 | 英国video性精品高清最新 | 国内一级一级毛片a免费 | 国产无遮挡色视频免费观看性色 | 真实国产精品视频国产网 | 日韩 亚洲 欧美 中文 高清 | 国产成人精品自线拍 | 亚洲成在人线视频 | 午夜一个人在线观看完整版 | 免费完整版观看 | 国产精品久久久久久亚洲毛片 | 黄片a级毛片 | 国产精品自产拍在线观看网站 | 99热在线视频这里只精品 | 影音先锋亚洲AV少妇熟女 | 熟妇的味道HD中文字幕 | 皮皮色狼网 | 人禽l交视频在线播放 视频 | 主播蜜汁丝袜精品自拍 | 色人阁久久 | 国产在线观看成人 | 国产精品观看视频免费完整版 | 女人高潮久久久叫人喷水 |