天天看点

阿里云物联网消息透传设备端payLoad设置问题

测试步骤

1、参考

官方示例

进行设置测试。

2、物理型的定义截图;

阿里云物联网消息透传设备端payLoad设置问题

3、测试验证

0x00002233441232013fa00000           
阿里云物联网消息透传设备端payLoad设置问题

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、设备运行状态:

阿里云物联网消息透传设备端payLoad设置问题

参考链接

数据解析使用示例 Java 十六进制(Hex)与byte数组之间的转换