本文通过java代码实现设备的注册功能(使用的是SDK进行开发)包含了请求的封装,签名加密,响应解释,性能优化等
API文档在下载的SDK压缩包中

准备工作

  • 需要导入平台提供的两个jar包
  1. 在选择服务和相应的开发语言后点击“SDK下载”按钮来下载SDK工具包。将下载的Java的SDK工具包进行解压


2. 将jar包导入maven仓库

新建一个springboot项目

1.1 新建springboot项目,导入需要的依赖

<!--平台的两个jar包-->
<dependency><groupId>com.ctg.ag</groupId><artifactId>ctg-ag-sdk-core</artifactId><version>2.5.0-SNAPSHOT</version>
</dependency>
<dependency><groupId>com.ctg.ag</groupId><artifactId>ag-sdk-biz-59497.tar.gz</artifactId><version>20210510.151332-SNAPSHOT</version>
</dependency><!--解析JSon格式数据-->
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.70</version>
</dependency><!--lombok -->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version>
</dependency>

1.2 配置配置文件

在应用页面查看创建应用的app_key和app_secret

  • 将app_key和app_secret放入配置文件中,以后若发送改动不需要修改代码,对配置文件进行修改即可
ctWing.APP_KEY= xxxxxxxxx
ctWing.APP_SECRET= xxxxxxxxx

1.3 根据API文档创建对应的dto类

API名称:CreateDevice

  • 请求路径:/device

  • 请求方法:POST

请求参数

名称 位置 类型 必填 描述
MasterKey HEAD String true MasterKey在该设备所属产品的概况中可以查看

请求BODY

  • 数据类型:json

内容描述:

{"deviceName": "string",  "deviceSn": "string",   "imei": "string",       "operator": "string",   "other": {"autoObserver":0,    "imsi":"12545154878451",  "pskValue":"ADvNWlkcNq9AfKnk"}, "productId": 0
}

创建other类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Device {/*"other": {"autoObserver":0,"imsi":"12545154878451","pskValue":"ADvNWlkcNq9AfKnk"},*/private Integer autoObserver; //0.自动订阅 1.取消自动订阅,必填private String imsi; //选填private String pskValue; //选填
}

创建设备的dto

@Data
@AllArgsConstructor
@NoArgsConstructor
public class CreateDeviceDto {/*创建设备的dto*/private String deviceName; //设备名称,必填private String deviceSn; //设备编号,MQTT,T_Link,TCP,HTTP,JT/T808,南向云协议必填private String imei; //imei号,LWM2M,NB网关协议必填private String operator; //操作者,必填private Device device; //LWM2M协议必填参数private Integer productId; //产品ID,必填}

1.4 创建设备的工具类

步骤

  1. 根据appkey和appsecret创建一个客户端连接对象
  2. new一个创建设备请求对象
  3. 将请求参数放入到对应的请求方法中
  4. 将请求体转换为一个字节数组
  5. 将字节数组传递给请求
  6. 客户端调用创建设备方法并获得响应消息
  7. 关闭客户端连接
@Component
public class CtWingUtil {//绑定配置文件中的参数,以后进行修改不用修改代码private static String APP_KEY;private static String APP_SECRET;@Value("${ctWing.APP_KEY}")public  void setAppKey(String appkey) {APP_KEY = appkey;}@Value("${ctWing.APP_SECRET}")public  void setAppSecret(String appSecret) {APP_SECRET = appSecret;}//增加设备 后面的参数是API文档中的请求参数public String createDevice(CreateDeviceDto dto,String masterKey){//创建一个客户端连接AepDeviceManagementClient client = AepDeviceManagementClient.newClient().appKey(APP_KEY).appSecret(APP_SECRET).build();CreateDeviceRequest request = new CreateDeviceRequest();request.setParamMasterKey(masterKey);//将对象转换为一个byte数组作为body传递byte[] body = JSON.toJSONBytes(dto);request.setBody(body);CreateDeviceResponse response=null; //为了方便在try外使用该参数//客户端调用方法try {response = client.CreateDevice(request);} catch (Exception e) {e.printStackTrace();}String string = new String(response.getBody());client.shutdown();  //关闭连接返回响应结果return string;}
}

1.5 创建controller层

步骤

  1. 创建other对象
  2. 根据other对象构造创建设备dto对象
  3. 调用工具类,传递创建设备对象和masterKey参数
@RestController
public class MyController {@Autowiredprivate CtWingUtil ctWingUtil;@RequestMapping("/test")public String createDevice(){//other参数定义Device device = new Device(0, "", "");//公共参数定义CreateDeviceDto deviceDto = new CreateDeviceDto("测试4", "862177041088074", "862177041088074", "zhangsan", device, 15047914);String response = ctWingUtil.createDevice(deviceDto, "279142920da340c38449b5ad79ba2817");System.out.println(response);return response;}}

1.6 浏览器输入对应的请求进行测试

1.7 查看平台是否添加设备成功

线下增加设备接口开发(SDK)相关推荐

  1. Linux下LED设备驱动开发(LED灯实现闪烁)

    文章目录 一.配置连接说明 二.更新设备树 (1)将led灯引脚添加到pinctrl子系统 (2)设备树中添加LDE灯的设备树节点 (3)编译更新设备树 三.驱动开发与测试 (1)编写设备驱动代码 ( ...

  2. Linux下PCI设备驱动程序开发 --- PCI驱动程序实现(三)

    <script type="text/javascript"> </script><script type="text/javascript ...

  3. Linux下PCI设备驱动程序开发[转]

    PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准.Linux的内核能较好地支持PCI总线,本文以Inte ...

  4. Linux下按键设备驱动开发以及对中断的上半部分和下半部分详细介绍

    文章目录 一.编写并且加载设备树插件 (1)检测管脚是否占用 (2)添加设备树插件 (3)加载设备树插件 二.中断相关函数 (1)request_irq中断注册函数 (2)free_irq中断注销函数 ...

  5. VxWorks设备驱动程序开发指南---驱动程序的分类

    8D Spaces Reliability & Stability & Efficiency 目录视图 摘要视图 订阅 VxWorks设备驱动程序开发指南(三)---驱动程序的分类 2 ...

  6. 【音视频SDK测评】线上K歌软件开发技术选型

    摘要 在线K歌软件的开发有许多技术难点,需考虑到音频录制和处理.实时音频传输和同步.音频压缩和解压缩.设备兼容性问题等技术难点外,此外,开发者还应关注音乐版权问题,确保开发的应用合规合法. 前言 前面 ...

  7. 《Linux设备驱动开发详解 A》一一2.3 接口与总线

    本节书摘来华章计算机出版社<Linux设备驱动开发详解 A>一书中的第2章,第2.3节,作者:宋宝华 更多章节内容可以访问云栖社区"华章计算机"公众号查看.1 2.3 ...

  8. python培训班-Python培训机构_高品质Python线下开发培训班推荐-黑马程序员

    Python编程基础基础班1 课时:15天技术点:97项测验:2次学习方式:线下面授 学习目标 1.掌握Python开发环境基本配置|2.掌握运算符.表达式.流程控制语句.数组等的使用|3.掌握字符串 ...

  9. 在绘制USB2.O设备接口差分线时,应注意以下几点要求:

    在绘制USB2.O设备接口差分线时,应注意以下几点要求: ①在元件布局(PCB Layout)时,应将USB2.O芯片放置在离地层最近的信号层,并尽量靠近USB插座,缩短差分线走线距离. ②差分线上不 ...

最新文章

  1. 使用Nexus配置Maven私有仓库
  2. 洛谷 CF1043F Make It One 解题报告
  3. python字典顺序遍历_在Python中,如何按已排序的键顺序遍历字典?
  4. dotnet 将C#编译为wasm让前端html使用
  5. 基于知识图谱的问答系统实践
  6. 【英语学习】【Level 07】U08 Old Stories L2 A good read
  7. mysql表分区数量限制_MySQL分区表的局限和限制详解
  8. tcp 四次挥手_TCP三次握手,四次挥手,你真的懂吗?
  9. 生物信息学biojava|从本地读取并解析遍历genbank文件|从genbank中提取CDS等注释信息
  10. 计算机应用专科学年鉴定表,计算机应用技术专业学生大一学年自我鉴定.docx
  11. LoadLibraryA加载dll失败
  12. 企业邮箱管理员如何管理邮箱
  13. 【元宇宙经济学】元宇宙经济的四要素
  14. input、textarea等输入框输入中文时,拼音在输入框内会触发input事件的问题
  15. Dedecms信息泄露漏洞(CVE-2018-6910)
  16. 软件测试类型按开发阶段的划分
  17. hrbust 2242 沼跃鱼
  18. 开题报告中拟解决的主要问题怎么写?
  19. 面渣逆袭:Redis连环五十二问,图文详解,这下面试稳了
  20. Java学习之网络编程实例

热门文章

  1. 计算机应用基础时间,《计算机应用基础》考试时间安排
  2. php汉字转区位码,PHP中实现汉字转区位码应用源码实例解析
  3. 基于线段的激光雷达单目曲面重建(ICRA2021)
  4. AMM终极笔记——五大类无常损失解决方案
  5. 浅谈与时俱进的OS发展史
  6. 何必言精通——十年杂感 兼谈其它
  7. 电大计算机毕业论文任务书范文,广播电视大学毕业设计任务书表格.doc
  8. Mongodb本机部署副本集
  9. linux自定义刷新率,Linux下设置其分辨率及刷新率
  10. php 文字弹幕效果代码,视频弹幕特效代码