前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设备数据解析脚本案例之 四字节数据转化成单精度浮点数

设备数据解析脚本案例之 四字节数据转化成单精度浮点数

作者头像
twowinter
发布2021-12-07 14:15:21
5710
发布2021-12-07 14:15:21
举报
文章被收录于专栏:twowintertwowintertwowinter

文章目录

- [前言](https://cloud.tencent.com/developer)
- [1 示例介绍](https://cloud.tencent.com/developer)
- [2 解析脚本](https://cloud.tencent.com/developer)
- [3 调试结果](https://cloud.tencent.com/developer)

前言

利用腾讯云物联网开发平台的设备数据引擎,可以非常灵活地调整设备上报上来的数据,将其转化成产品的数据模版JSON协议,方便应用的统一处理。

这篇笔记是一个示例,演示如何将四字节的设备数据转化成单精度浮点数。

腾讯云 IoT Explorer 是腾讯云主推的一站式物联网开发平台,IoT 小能手从设备侧开发、平台功能操作、应用侧开发三个部分来进行学习分享,另外还分享了一些动手实践作品及收录官方发布的产业合作案例,帮助读者更好地理解整个开发链路。详情可点此查看

1 示例介绍

常见的两个字节的数据转化成16位整数,做个简单的移位就可以。

但如果是四字节的数据需要转化成单精度的浮点数,采用 IEEE-754 标准,需要考虑符号位、阶码和尾数,非常复杂。

例如,C1480000 为 16 进制表示一个浮点数, 为 32 位,四字节,单精度, 转换结果为: -12.5。

2 解析脚本

function RawToProtocol(fPort, bytes) {
	var data = {
	"method": "report",
	"clientToken" : new Date(),
	"params" : {}
	}

	let buffer = new ArrayBuffer(4);
	let s = new Uint8Array(buffer);
	s[0] = '0x'+bytes[0].toString(16);
	s[1] = '0x'+bytes[1].toString(16);
	s[2] = '0x'+bytes[2].toString(16);
	s[3] = '0x'+bytes[3].toString(16);
	let view = new DataView(buffer);
	data.params.all_flow_value = view.getFloat32();

	return data;
}

3 调试结果

在平台的模拟调试界面输入上行测试数据:193,72,0,0

点击“运行”后得到输出结果:

{
  "method": "report",
  "clientToken": "2020-06-29T10:47:54.631Z",
  "params": {
    "all_flow_value": -12.5
  }
}

下图是界面操作截图。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 1 示例介绍
  • 2 解析脚本
  • 3 调试结果
相关产品与服务
物联网开发平台
腾讯云物联网开发平台(IoT Explorer)是面向智慧生活与产业物联应用的一站式物联网PaaS平台,为各行业用户提供一站式设备智能化服务。平台提供海量设备连接与消息通信能力,基于腾讯连连小程序应用开发能力、音视频能力及AI增值服务,聚合腾讯生态内容能力。提升传统行业设备智能化的效率,降低用户的开发运维成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档