最近由于工作需要,公司新产品血压计需要集成物联网卡,测量血压数据推送到自己的后台,其中踩了很多坑所以吧主要流程记录下来供大家参考:
1,微信公众号搜索"天翼物联产业联盟",关注后底部菜单申请注册,填下个人公司基本资料,第二天就能获得两封邮件,会周到电信测试平台地址,账号和密码。
2,登录 https://180.101.147.208:8093 后台点击左边菜单
Profile开发 》》Profile在线开发》》
右上角点击自定义产品 》》创建新产品
创建产品后点击所创建的产品,添加一些服务,profile文件创建好后可以点击菜单插件开发
3,插件开发》》右上角 点击 添加插件 进入后 》》 新建插件》》选择一个profile
4,然后可以创建插件了,可以新增消息,有一个上行消息一个下行消息
创建编解码插件后可以保存,然后申请上线,申请上线成功后可以点击 》》我的设备
输入一个设备编码(设备的IMEI号码) 添加成功后点击应用订阅》》设备数据变化,提交一个后台接受数据接口
java后台接受订阅数据接口
package com.example.demo;
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.InputStreamReader;
@RestController
public class CallbackController {
public static Logger logger = LoggerFactory.getLogger(CallbackController.class);
@RequestMapping(value = "/receive",method = {RequestMethod.POST,RequestMethod.GET})
private StringBuffer receive(HttpServletRequest request, HttpServletResponse response){
StringBuffer resultStr = new StringBuffer("");
try{
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"utf-8"));
StringBuffer sb = new StringBuffer("");
String temp;
while ((temp = br.readLine()) != null){
sb.append(temp);
}
br.close();
//真正接收到的数据
//String result = sb.toString();
//测试的数据
String result = "{\"deviceId\":\"xxx\",\"deviceInfo\":{\"swVersion\":\"xxx\",\"name\":\"xxx\",\"description\":\"xxx\",\"model\":\"90\",\"fwVersion\":\"xxx\",\"protocolType\":\"xxx\",\"type\":90,\"mac\":\"xxx\",\"manufacturer\":\"xxx\",\"hwVersion\":\"xxx\"},\"notifyType\":\"deviceInfoChanged\",\"gatewayId\":\"xxx\"}\n";
JSONObject json = JSONObject.parseObject(result);
//类型
String notifyType = json.getString("notifyType");
//设备id
String deviceId = json.getString("deviceId");
//网关id
String gatewayId = json.getString("gatewayId");
//deviceInfo信息
String deviceInfo = json.getString("deviceInfo");
JSONObject deviceInfoJson = JSONObject.parseObject(result);
//设备的状态
String status = deviceInfoJson.getString("status");
resultStr.append("订阅类型 notifyType >>" + notifyType+"订阅类型 notifyType >>" + notifyType+" 设备id deviceId >>" + deviceId+" 网关id gatewayId >>" + gatewayId+"设备信息 deviceInfo >>" + deviceInfo+"设备状态 status >>"+status);
logger.info("接收消息==========================================start>>");
logger.info("订阅类型 notifyType >>" + notifyType);
logger.info(" 设备id deviceId >>" + deviceId);
logger.info(" 网关id gatewayId >>" + gatewayId);
logger.info("设备信息 deviceInfo >>" + deviceInfo);
logger.info("设备状态 status >>"+status);
logger.info("接收消息==========================================end>>");
}catch (Exception e){
e.printStackTrace();
}
return resultStr;
}
}
设置成功后可以正常启动设备开始测量了,如果没有问题数据就可以正常到达服务器后台,后面数据就可以自己处理。
官方文档
https://180.101.147.208:8093/assets/docCenter/helpcenter/helpPortal/Portal/helpcenter.html?manualName=UserGuide_CMCC&docSite=CMCC&page=Overview&lang=zh&fake_Url=zh-cn_topic_0118669796.html
也可以后台全部调用接口订阅平台消息,添加设备信息等等
更多优质文章请关注我的微信公众号【java后端技术精选】,回复“1024”和“面试”可以领取优质的视频学习资源