联调物联网平台enjoy-iot系列之官方 UDP 组件 (Java8)
前言
1、【enjoy-iot: https://gitee.com/open-enjoy/enjoy-iot 】为乐飞智联旗下开源物联网平台,本系列文章旨在记录联调测试的过程。
2、前后端的部署均不在文章谈论范围内。
3、官方参考文档:https://y5yrmmjjns.feishu.cn/wiki/GuWHw4yzkiK0ZsktkKWc3PSnnHg?fromScene=spaceOverview
开启UDP协议组件

新增udp系列产品


新增udp设备


属性上报
1、修改JsonDataDTO类
@Slf4j
@Data
public class JsonDataDTO implements DeviceData {
/**
* 设备id
*/
private String deviceId;
/**
* 时间戳
*/
private String uwbTimestamp;
/**
* 上报类型
*/
private UDPReportTypeEnum reportType;
/**
* 原始报文
*/
private String jsonData;
@Override
public String getDeviceId() {
return deviceId;
}
@Override
public UDPReportTypeEnum reportType() {
return reportType;
}
@Override
public Map<String, Object> toMap() {
// 报文为空时直接返回空map,避免解析异常
if (!StringUtils.hasText(jsonData)) {
log.warn("jsonData is empty, deviceId: {}", deviceId);
return Collections.emptyMap();
}
try {
Map<String, Object> map = JSON.parseObject(jsonData, Map.class);
// 解析结果为null时兜底返回空 map
return map == null ? Collections.emptyMap() : map;
} catch (Exception e) {
log.error("parse jsonData failed, deviceId: {}, jsonData: {}", deviceId, jsonData, e);
return Collections.emptyMap();
}
}
}
2、修改UdpComponent类的128行
public void handleJson(String jsonStr) {
// todo:自己写json格式的解析 调用设备上报信息处理方法
DeviceData entity = JSON.parseObject(jsonStr, JsonDataDTO.class);
// 加密明文,自己组装
String signatureStr = entity.getDeviceId();
processData(entity, signatureStr, udpConfigKey.getDefaultProductKey(), "udp_json");
}
2、Netassistant模拟udp设备。





浙公网安备 33010602011771号