阿里云iot studio python数据解析

搞了半天才搞定,python2.7遇到点坑。

1. python 2.7 没有 bytes()函数,要用 a.decode(‘hex’)
2. rawData 是 list,
3. 返回dict中 method 字段要有,解析的 串口数据 放 字段 params。

def raw_data_to_protocol(rawData):
    dataArray = []
    for byteValue in rawData:
        dataArray.append(byteValue & 0xff) # 16 进制列表
    dict = {}
    params = {}
    if dataArray[0]==0xeb and dataArray[1] == 0x90:
        a = bytes2hex(dataArray[2:105]) # 转成16进制
        b = struct.unpack('<BBH24fB1s1s', a.decode('hex'))  # 这个要注意,python2.7 要用decode
        params['temperature'] = b[4]
        params['ch1'] = time2force(b[3],b[4])
        params['ch2'] = time2force(b[5],b[4])
        params['ch3'] = time2force(b[7],b[4])
        params['ch4'] = time2force(b[9],b[4])
        params['ch5'] = time2force(b[11],b[4])
        params['ch6'] = time2force(b[13],b[4])
        params['ch7'] = time2force(b[15],b[4])
        params['ch8'] = time2force(b[17],b[4])
        dict['method'] =  'thing.event.property.post'
        dict['version'] = '1.1'
        dict['id'] = '12345'
        dict['params'] = params
    return dict

def bytes2hex(bytes):
    data = ['%02X' % i for i in bytes]  # c语言用法,组合list中的ox数
    d = ''.join(data)
    return d

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值