【CTWing】天翼物联网对接

news/2024/12/19 18:01:53/

目录

一、场景介绍

二、硬件对接(忽略)

三、准备工作

Stage 1 :注册账号 --  CTwing 官网

Stage 2 :点击控制台 -- 开通服务 

Stage 3 :创建产品

Stage 4 :添加设备

Stage 5 :订阅方URL地址(设置接口)

Stage 6 :查看设备上报数据

四、接口编写(java)

1. contorller 类

2. 实体类 - CTWingResult.java

3. 实体类 - Payload.java

4. 实体类 - JsonResult.java

5. 工具类 - Base64Util.java


一、场景介绍

  • 物联网卡 NB-IOT
  • 通过http接口订阅设备上报数据

说明:该章节主要讲解

  • 订阅方URL地址(接口),如何设置
  • 接口如何编写

二、硬件对接忽略

三、准备工作

Stage 1 :注册账号 --  CTwing 官网

Stage 2 :点击控制台 -- 开通服务 

开通后需要等到5-120分钟,后台开通权限,才能看到左侧菜单栏

Stage 3 :创建产品

  • 设备管理 -- 产品 -- 创建产品

  • 产品详情 (其中设备型号:ss11-1 ) 

 

Stage 4 :添加设备

  • 设备管理 -- 产品 -- 设备管理 -- 添加设备

Stage 5 :订阅方URL地址设置接口

  • 设备管理 -- 产品 -- 点击产品,进入

  • 设备管理 -- 应用订阅

  • 设置订阅方URL地址(接口地址随便命名)

接口地址为:ip:port/cwt/aiot

Stage 6 :查看设备上报数据

  • 设备管理 -- 设备 -- 点击设备名进入 -- 数据查看

四、接口编写(java)

1. contorller 类

import com.alibaba.fastjson.JSON;
import com.whxph.xphservice.dto.JsonResult;
import com.whxph.xphservice.entity.ctwing.CTWingResult;
import com.whxph.xphservice.service.CWTingService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;/*** Coding by 李炯 on 2022/8/3 11:56*/
@Api(tags = "天翼CWTing", value = "")
@RestController
@RequestMapping("/cwt")
@Slf4j
public class CWTingController {//@Autowired//private CWTingService cwTingService;/*** @return Boolean* @explain 测试Swing* @author lijiong* @time 2023年04月4日*/@RequestMapping(method = RequestMethod.POST,value = "/aiot" )@ApiOperation(value = "测试Swing", notes = "作者:lijiong")public JsonResult<String> aiotTest(@RequestBody String DataJson) {JsonResult result = new JsonResult();log.info("电信CTWing-->{}",DataJson);CTWingResult ctWingResult = JSON.parseObject(DataJson,CTWingResult.class);//cwTingService.insertDate(ctWingResult);//入库逻辑return result.success();}}

2. 实体类 - CTWingResult.java

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class CTWingResult {private int upPacketSN;private int upDataSN;private String topic;private long timestamp;private String tenantId;private String serviceId;private String protocol;private String productId;private Payload payload;private String messageType;private String deviceType;private String deviceId;private String assocAssetId;private String IMSI;private String IMEI;
}

3. 实体类 - Payload.java

import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class Payload {@JSONField(name = "APPdata")private String APPdata;
}

4. 实体类 - JsonResult.java

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;import java.io.Serializable;/**   * Copyright: Copyright (c) 2019 * * <p>说明: 用户服务层</P>* @version: V1.0* @author: flying-cattle*/
@Data
public class JsonResult<T> implements Serializable{private static final long serialVersionUID = 1071681926787951549L;private int flag= Constants.MSG_OK;//1-成功 0-失败/***<p> 状态说明</p> //具体提示内容*/private String msg;/*** <p>返回数据</p>*/@JsonInclude(JsonInclude.Include.NON_NULL)private T obj;//附加实体public JsonResult() {}/*** <p>返回成功,有数据</p>* @return JsonResult*/public JsonResult success() {this.setFlag(Constants.MSG_OK);this.setMsg("成功");return this;}/*** <p>返回成功,有数据</p>* @param msg 操作说明* @param obj 对象* @return JsonResult*/public JsonResult<T> success(String msg,T obj) {this.setFlag(Constants.MSG_OK);this.setMsg(msg);this.setObj(obj);return this;}/*** <p>返回成功,有数据</p>* @param obj 对象* @return JsonResult*/public JsonResult<T> success(T obj) {this.setFlag(Constants.MSG_OK);this.setMsg("操作成功");this.setObj(obj);return this;}/*** <p>返回成功,无数据</p>* @param msg 操作说明* @return JsonResult*/public JsonResult<T> success(String msg) {this.setFlag(Constants.MSG_OK);this.setMsg(msg);this.setObj(null);return this;}/*** <p>返回失败,无数据</p>* @param msg 消息* @return JsonResult*/public JsonResult<T> error(String msg) {this.setFlag(Constants.MSG_FAIL);this.setMsg(msg);this.setObj(null);return this;}/*** <p>返回失败,有数据</p>* @param msg 消息* @param obj 对象* @return JsonResult*/public JsonResult<T> error(String msg,T obj) {this.setFlag(Constants.MSG_FAIL);this.setMsg(msg);this.setObj(obj);return this;}}

5. 工具类 - Base64Util.java

作者比较懒,不想记忆具体使用方法,所以写了一个简单的工具类(希望大家不要介意)

import lombok.extern.slf4j.Slf4j;
import java.util.Base64;@Slf4j
public class Base64Util {public static String decode(String str) {return new String(Base64.getDecoder().decode(str.getBytes()));}
}


http://www.ppmy.cn/news/38493.html

相关文章

spring beanname是如何生成的, 他的生成规则是什么?

付出努力但失败&#xff0c;是仅次于付出努力并成功的&#xff0c;世上第二棒的事 debug 走起 org.springframework.context.annotation.ComponentScanAnnotationParser#parse Class<? extends BeanNameGenerator> generatorClass componentScan.getClass("name…

如何让 ChatGPT 充当细致入微的 Java 代码优化工? | 得物技术

注&#xff1a;本文使用 New Bing&#xff08;GPT4.0&#xff09;演示 让他扮演一个 Java 软件开发者 第一步&#xff1a;我们让 ChatGPT 扮演一个 Java 软件开发者的角色 提示词插件&#xff1a;地址&#xff1a;ChatGPT BingChat GPT3 Prompt Generator App (Streamlit) - a…

计算机信息安全有哪些SCI期刊推荐? - 易智编译EaseEditing

以下是计算机信息安全方向的SCI期刊推荐&#xff1a; IEEE Transactions on Information Forensics and Security 该期刊主要发表信息安全和数字取证方面的原创性研究&#xff0c;包括数据安全、网络安全、身份认证、加密、信息隐藏等领域的研究成果。该期刊的影响因子为8.134…

数仓第七章作业

数仓第七章作业 文章目录 数仓第七章作业一、第七章课后作业第三题第四题第五题第六题第七题二、问题一、第七章课后作业 第三题 设有10个二元属性,3个数据对象的数据集。 idA1A2A3A4A5A6A7A8A9A10X110111

海尔智家参与国家工信部产业技术基础服务平台项目顺利通过验收

01 海尔智家参与国家工信部 产业技术基础服务平台项目 顺利通过验收 3月28日&#xff0c;由中国质量认证中心牵头&#xff0c;海尔智家、中国家用电器协会等共同承担的国家工业和信息化部“面向智能家电芯片、传感器与物联网模块等关键部件及家电互联的产业技术基础服务平台…

蓝桥杯·3月份刷题集训Day07

本篇博客旨在记录自已打卡蓝桥杯3月份刷题集训&#xff0c;同时会有自己的思路及代码解答希望可以给小伙伴一些帮助。本人也是算法小白&#xff0c;水平有限&#xff0c;如果文章中有什么错误之处&#xff0c;希望小伙伴们可以在评论区指出来&#xff0c;共勉&#x1f4aa;。 文…

java获取视频时长

1、先导包 <dependency><groupId>ws.schild</groupId><artifactId>jave-all-deps</artifactId><version>2.6.0</version> </dependency>2、获取时长 Testpublic void test01() {long time 0;try {String url "http://…

算法竞赛进阶指南0x37 容斥原理与莫比乌斯函数

算法竞赛进阶指南0x37 容斥原理与莫比乌斯函数