随笔 - 2649  文章 - 2452  评论 - 0  阅读 - 74060

Python脚本示例-自定义Topic消息解析

Python脚本示例

本文介绍Python语言的自定义Topic消息解析脚本模板和示例。

脚本模板

SELF_DEFINE_TOPIC_UPDATE_FLAG = '/user/update'  #自定义Topic:/user/update。
SELF_DEFINE_TOPIC_ERROR_FLAG = '/user/update/error' #自定义Topic:/user/update/error。

# 将设备自定义Topic消息数据转换为JSON格式数据,设备上报数据到物联网平台时调用。
# 入参: topic,字符串,设备上报消息的Topic。   
# 入参: rawData,列表,列表元素取值为int类型,不能为空。
# 出参: jsonObj,字典。    
def transform_payload(topic, rawData):
   jsonObj = {}
   return jsonObj

脚本示例

说明

以下示例脚本仅用于解析自定义Topic消息。如果产品的数据格式透传/自定义,还需编写物模型消息解析脚本。物模型消息解析脚本编写指导,请参见提交物模型消息解析脚本

有关透传/自定义说明,请参见创建产品

# coding=UTF-8
SELF_DEFINE_TOPIC_UPDATE_FLAG = '/user/update'  #自定义Topic:/user/update。
SELF_DEFINE_TOPIC_ERROR_FLAG = '/user/update/error' #自定义Topic:/user/update/error。

#  示例数据:
#  自定义Topic:/user/update,上报数据。
#  输入参数:
#     topic: /${productKey}/${deviceName}/user/update
#     bytes: 0x000000000100320100000000
#  输出参数:
#  {
#     "prop_float": 0,
#     "prop_int16": 50,
#     "prop_bool": 1,
#     "topic": "/${productKey}/${deviceName}/user/update"
#   }
def transform_payload(topic, bytes):
    uint8Array = []
    for byteValue in bytes:
        uint8Array.append(byteValue & 0xff)

    jsonMap = {}
    if SELF_DEFINE_TOPIC_ERROR_FLAG in topic:
        jsonMap['topic'] = topic
        jsonMap['errorCode'] = bytes_to_int(uint8Array[0:1])

    elif SELF_DEFINE_TOPIC_UPDATE_FLAG in topic:
        jsonMap['topic'] = topic
        jsonMap['prop_int16'] = bytes_to_int(uint8Array[5:7])
        jsonMap['prop_bool'] = bytes_to_int(uint8Array[7: 8])
        jsonMap['prop_float'] = bytes_to_int(uint8Array[8:])

    return jsonMap

# byte数组转换为整型。
def bytes_to_int(bytes):
    data = ['%02X' % i for i in bytes]
    return int(''.join(data), 16)
posted on   AtlasLapetos  阅读(9)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示