概述
由于低配置且資源受限,或者對網絡流量有要求的裝置,不适合直接構造JSON資料與物聯網平台通信,可将原資料透傳到物聯網平台。本文主要針對文檔中未對裝置端payLoad的設定進行介紹,初次使用容易出錯,結合官方示例對payLoad對象的處理進行介紹。
測試步驟
1、參考
官方示例進行設定測試。
2、實體型的定義截圖;
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLyYzYmdDN4IWZ4EGZmFjZ5cjNmRWNjNGZkR2N4QjZwUWYjVjNlFjZ28CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
3、測試驗證
0x00002233441232013fa00000
4、發送端payLoad處理,注意傳入的是byte[]對象,不是String對象。
String hexString = "00002233441232013fa00000";
byte[] payLoad = hexToByteArray(hexString);
request.payloadObj = payLoad;
- hexToByteArray方法實作:
/**
* hex字元串轉byte數組
* @param inHex 待轉換的Hex字元串
* @return 轉換後的byte數組結果
*/
public static byte[] hexToByteArray(String inHex){
int hexlen = inHex.length();
byte[] result;
if (hexlen % 2 == 1){
//奇數
hexlen++;
result = new byte[(hexlen/2)];
inHex="0"+inHex;
}else {
//偶數
result = new byte[(hexlen/2)];
}
int j=0;
for (int i = 0; i < hexlen; i+=2){
result[j]=hexToByte(inHex.substring(i,i+2));
j++;
}
return result;
}
/**
* Hex字元串轉byte
* @param inHex 待轉換的Hex字元串
* @return 轉換後的byte
*/
public static byte hexToByte(String inHex) {
return (byte) Integer.parseInt(inHex, 16);
}
5、裝置運作狀态: