当前位置: 首页 > news >正文

广东品牌网站建设公司wordpress标题插件

广东品牌网站建设公司,wordpress标题插件,企梦云网站建设,WordPress站内链接设置设备自身 CPU 温度、电源输入电压、内存使用率等#xff0c;以及接入到设备的传感器如温度传感器、光敏传感器等#xff0c;这些硬件的数据输出即是 属性 。设备将这些硬件的数据上传到阿里云物联网平台#xff0c;实时显示这些设备的状态和实测数据#xff0c;这个过程是 … 设备自身 CPU 温度、电源输入电压、内存使用率等以及接入到设备的传感器如温度传感器、光敏传感器等这些硬件的数据输出即是 属性 。设备将这些硬件的数据上传到阿里云物联网平台实时显示这些设备的状态和实测数据这个过程是 上传设备属性 。1定义物模型在阿里云物联网控制台点击 产品 - 功能定义 - 添加自定义功能填入一下内容再定义一个属性功能类型属性 功能名称: 格力空调温度 标识符: gree_temperature 数据类型: float (单精度浮点型) 取值范围0-35 步长: 0.1单位 摄氏度 / °C 读写类型读写注意的是表示符是区分大小写的相当于 C# 中的变量笔者这里建议统一使用小写具体原因后面说明。注意读写类型一个只读、一个读写。2编写模型前面说过 Alink json 是阿里云定义具有一定格式的 Json 因此这些属性数据是以 Json 形式上传。在 C# 中可以通过 类 快速生成 Json 。参数类型说明idstring消息ID号在这个设备的生涯中ID应当是唯一的。可以使用时间戳或guidversionstring协议版本号目前协议版本号为1.0。固定 1.0 即可paramsObject属性数据里面包含多个属性对象每个属性对象包含上报时间time和上报的值value。timelong属性上报时间。valueobject上报的属性值。methodstring固定取值 thing.event.property.post那么我们要编写一个类存储信息然后转为 Alink json 上传到阿里云物联网服务器。在编写这个模型前预览要生成的 Alink json {id: 123456789,version: 1.0,params: {cpu_temperature: {value: 58.6,time: 1524448722000 },gree_temperature: {value: 26.6,time: 1524448722000 } },method: thing.event.property.post}我们只需关注 params 部分的编写即可。在控制台程序中新建一个类 TestModel。 public class TestModel {public string id { get { return DateTime.Now.Ticks.ToString(); } set { } }public string version { get { return 1.0; } set { } }public Params params { get; set; }public class Params {这样定义后我们使用时只需定义 params 部分即可 id、version等不需要自己动态取值做重复劳动。上面有个 params 这是因为 params 是 C# 的关键字命名字段时为了取消冲突所以加个 。根据我们在阿里云物联网控制台定义的 属性 继续补充内容 public class TestModel {public string id { get { return DateTime.Now.Ticks.ToString(); } set { } }public string version { get { return 1.0; } set { } }public Params params { get; set; }public class Params {public Cpu_temperature cpu_temperature { get; set; }public Gree_temperature gree_temperature { get; set; }public class Cpu_temperature {public float value{ get; set; }public long time { get; set; } }public class Gree_temperature {public float value { get; set; }public long time { get; set; } } }public string method { get { return thing.event.property.post; } set { } } }问题是这样写还不行因为还没有给 TestModel 里的类进行实例化。我们可以利用 构造函数 对里面的引用类型进行实例化当然亦可编写依赖注入容器。。 public class TestModel {public string id { get { return DateTime.Now.Ticks.ToString(); } set { } }public string version { get { return 1.0; } set { } }public Params params { get; set; }public TestModel(){ params new Params(); }public class Params {public Cpu_temperature cpu_temperature { get; set; }public Gree_temperature gree_temperature { get; set; }public Params(){ cpu_temperature new Cpu_temperature(); gree_temperature new Gree_temperature(); }public class Cpu_temperature {public float value{ get; set; }public long time { get; set; } }public class Gree_temperature {public float value { get; set; }public long time { get; set; } } }public string method { get { return thing.event.property.post; } set { } } }3上传设备属性数据编写控制台程序引入 CZGL.AliIoTClient 编写基础代码(请替换 DeviceOptions 的信息) static AliIoTClientJson client;static void Main(string[] args){再 Program 类中编写一个方法用来收集属性数据、上传属性数据 public static void ToServer(){启动控制台应用在阿里云物联网控制台打开设备点击 运行状态 即可看到上传的属性数据。 文章后面会详细说明 CZGL.AliIoTClient 关于属性上传的具体情况。当然这样的数据只是固定赋值的这里只是演示具体数据需要开发者采集。下面给出一些模拟数据的方法。4模拟数据笔者编写了三个数据模拟方法不需要理会里面是怎么写的仅是个模拟数据的工具而已你也可以自己编写相应的模拟数据方法。 里面有四个参数对应原始值、最小值、最大值、波动范围。int 模拟数据range 是指每次生成 [0,range] 范围的增/减量例如 初始值 56  range 2 那么可能 56±0 或 56±1 或 56±2 是增还是减是随机的。但是设置 min 、 max 后最后生成的值会在此范围内波动。float、double 模拟数据对应 float、doublerange 的值越大波动范围越小。默认 range 8大概就是每次 0.1 的波动范围。其中float 小数保留两位 double 小数保留 4 位需要更高或减少小数位数修改一下 ...ToString(#0.0000)模拟属性数据接下来我们模拟一下两个属性的数据。在 Program 中定义两个变量存储 cpu 和 空调 数据。 static float cpu_temperature 50.0F;static float gree_temperature 26.0F;修改 ToServer() 方法 public static void ToServer(){在 Main() 方法里增加代码 // 定时上传数据while (true){   ToServer(); Thread.Sleep(1000);}}至此已经基本完成。完整代码如下 class Program {static AliIoTClientJson client;static void Main(string[] args){运行控制台程序然后打开阿里云物联网控制台查看设备的运行状态打开 自动刷新 查看数据变化。如果你觉得每次波动得范围太大可以把 range 改大一些如果你觉得数据不稳定可以把 min - max 的范围改小一些模拟的数据值将在此范围波动。5设备属性 - CZGL.AliIoTClient首先要说明产品创建前需要设置为 Alinkjson/透传 产品因此 CZGL.AliIoTClient 设置了两个客户端类。类名说明AliIoTClientJson以Alink json形式上传数据AliIoTClientBinary以透传形式上传数据这两个类仅在 属性、事件、服务 三个功能中数据上传形式有差别连接服务器、普通Topic等其它数据的使用是完全一致的。一个产品只能定义一种上传数据的形式。CZGL.AliIoTClient 中上传属性的方法(Alink json)获取 UNIX 时间 由于阿里云要求上传的属性数据等要带上 Unix 时间所以笔者一并写在 CZGL.AliIoTClient 了。public static long GetUnixTime()使用示例参考上面的过程。透传如果你想使用透传则使用 AliIoTClientBinary 类6关于透传透传以二进制报文形式上传例如 0x020000007b00 这里是 16 进制每两位一个字节。如果是 2进制 则是 8位 一个字节。透传需要在阿里云物联网控制台创建 透传 产品后设置脚本将透传数据 转为 Alink json。透传数据是自定义的以字节为单位其中有5个字节为特定字节以字节位进行拆分的。记住是以字节为单位。透传数据格式标准字段字节数帧类型1字节请求ID4字节属性数据N个字节帧类型值(16进制)说明0x00属性上报0x01属性设置0x02上报数据返回结果0x03属性设置设备返回结果0xff未知的命令**举例说明 **很多人是直接把 10进制 或 16进制 直接转换成 2进制 。例如 0x020000007b00转为 2进制 100000000000000000000000000111101100000000。 但是这样是错误的。以上面 cpu 和 空调温度 举例要上传属性数据帧类型为 0x00。属性10进制16进制2进制划一下2进制cpu_temperature56380011100000 11 10 00gree_temperature261a0001101000 01 10 10应当这样拆分和设置值字节类转字节数16进制2进制进制表示无0x无帧类型1字节0000000000ID4字节00 00 00 7b00000000 00000000 00000000 01111011cpu_temperature1 字节3800111000gree_temperature1 字节1a0001101016进制数据0x000000007b381a2进制数据:00000000000000000000000000000000011110110011100000011010将 16进制 或 2进制 的数据存储到 byte[] 变量中,切记要强制转换。 存储时一个 byte 为一个字节M个字节则 byte[M]。存储使用 16进制 存储透传数据2进制弄不来的。 有些同学非要用 2进制 存储反正我是弄不来用 二进制 数值 存储这个触发我的知识盲区了。示例(仅对 AliIoTClientBinary 客户端有效) // 存储透传数据byte[] b new byte[7];b[0] 0x00如果上报属性要求 请输入二进制数据Base64编码后的字符串可以使用 byte[] b new byte[7];b[0] 0x00透传数据的坑很多这里 CZGL.AliIoTClient 只提供如何处理数据和上传数据云端的脚本解析请参考https://help.aliyun.com/document_detail/114621.html?spma2c4g.11186623.2.13.209b65b9Q9z0Nx#concept-1853657后续说明其实每次上传服务器都会作出响应CZGL.AliIoTClient 默认不接收这些响应信息。你可以使用 OpenPropertyPostReply() 接收设备属性上传后服务器的响应应当在连接服务器前使用此方法使用 Close.PropertyPostReply() 取消接收设备属性上传后服务器的响应。示例            client.ClosePropertyPostReply();            // 连接服务器            client.ConnectIoT(topics, null, 60);上传属性数据可以分开上传不需要每次都要上传全部的属性。需要更新哪个属性就上传这个属性。原文地址https://www.cnblogs.com/whuanle/p/10994694.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.sadfv.cn/news/420878/

相关文章:

  • seo网站优化培训怎么样广州学网站开发
  • 如何看网站有没有收录设计师网址导航 优设
  • 可视化响应式网站建设电子商务课程视频
  • 南阳做玉器网站两学一做学习教育网站
  • 哪家网站建设服务好啊北京招标代理公司排名
  • 站长工具seo优化wordpress模板自适应
  • 网站建设费如何入账怎么摊销智能家居网站建设方案
  • 有做模仿易企秀网站吗app软件大全免费
  • 网站建设学习课程南宁seo
  • 乐清网站制作推广九宫格网站模板
  • 济南街道办网站建设网易工作做网站工资奖金高吗
  • 电子商务网站建设需求概述单页网站制作 在线 支付
  • 莱州市住房和规划建设管理局网站北京网站建设公司华网天下优惠
  • 南昌手机网站建设中小企业建设网站
  • 电子商务毕业设计网站建设wordpress登陆页面404
  • 县级以下不允许建设网站实时国际新闻app
  • 中国制造网官方网站首页地方门户cms
  • 查看网站空间公司门户app
  • flash 学习网站天津南开做网站
  • 手机网站建设哪儿好虚拟主机0元免费领取
  • 天津营销网站建设设计的平台有哪些
  • 想学网站搭建与推广重庆市建设执业资格注册管理中心网站
  • 网站建设10年后的目标怎么在企查查网站做企业认证
  • 智能建站价格电脑无法运行wordpress
  • 外贸自建站平台怎么找html 好的网站
  • 编程培训机构招聘河南网站seo
  • wordpress多站点配置教程如何建立电商平台
  • 怎么让搜索引擎收录网站网站营销怎么做
  • 网站制作公司北京网站建设公司wordpress minty菜单
  • 计算机网站建设与管理是什么网站开发 在线报名