缘起
…@#%#^@ %# …还是直接上步骤吧…
大概操作步骤
- 首先你需要有电信平台的账号密码(一般由公司申请)
- 登录平台后创建应用
- profile的文件格式制定与上传
- 编解码插件的开发与上传
- 设备连接测试
- 平台设备联调
接下来细说一波
入口地址
Iot平台:https://180.101.147.135:8843
中国电信 开发者平台:https://180.101.147.208:8093
这两个平台都可以使用,在功能部分这两个平台有很多的功能重复 笔者后者用得较多
还有是企业应用接入地址和终端设备接入地址貌似称为北向和南向
这两个地址在公司申请后由电信平台提供,应用接入(如:注册接口,修改设备信息接口等),终端设备接入(硬件设备接入上报数据的地址)
Profile文件定义
官方说明文档来源 1.官网下载 2.找对接人员获取
貌似叫<<设备能力描述文件profile开发指南>>
笔者是以后者方式取得(所以也不知道在哪里下载?)
具体的字段定义和制定方式文档里有详细说明还有示例这里不再做说明(人家的文档有版权还是不乱复制了…)
简单说一下对这个东西的理解
不一定正确 只是自己的理解
这个文件是定义了一个数据的模板
作用
类比一下就是相当与数据库的创建表的操作,在表里定义了每个字段的名称、数据类型、数据长度等,当有数据要插入数据库的时候需要符合表里的定义否则就会插入失败。
profile文件就类似于这种数据库的表,当设备上报数据到电信平台时需要保证上报的数据格式、名称、数据类型、长度符合profile文件里的限制,同样的自己的服务器要下发命令或者数据给设备时也会通过profile文件。
也就是说profile文件起到定义数据和校验数据的作用。
定义
profile文件的定义也是服务的思想
栗子…
显示器具有一些功能(能力):电源开关、亮度、宽度、分辨率等
其实这些每种功能对使用者来说都是提供一种服务
开关服务、亮度服务、显示宽度调节服务、分辨率调节服务
profile文件大体分为2个部分:
1.功能(设备能力)
2.服务
相当于在1中定义在2中具体描述(服务内容包括的具体字段、字段类型、字段长度等)
编解码插件开发
首先需要创建一个maven工程
这个工程打包要符合OSGI规范(官方文档中有详细描述 目录结果及maven配置)
如果有些文档没有请找对接人员
工程中还需引入一个jar包:com.huawei.m2m.cig.tup-1.3.1.jar
然后具体实现一个IProtocolAdapter这个接口
在这个类中需要 定义厂商名称、设备型号(MODEL)、版本号(VERSION)
需与平台上创建应用时的一样,类型用String就行。
版本号写"1"好像会有异常,改个2或者其他
最主要的是重写其中的encode(编码)和decode(解码)方法
设备上传的数据经过编码(encode)变成符合profile规则的json存储到电信平台再推送给公司服务器
公司服务器端下发命令通过调用电信平台提供的接口发送到电信平台经过解码(decode)变成设备能识别的数据再发给设备
ps:中间的一些数据转换会用到com.fasterxml.jackson.databind
简单描述一些流程
这个编解码插件是要上传到电信平台的,所以可以理解成就是平台
开发完成后
官方有提供一个测试的jar包可以在本地直接进行测试
没什么问题了可以上传到平台上进行实体设备测试
也没什么问题就可以给包进行签名了(官方有提供签名工具)
最后提交测试申请、通过测试后就会有正式的平台了