联调物联网平台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协议组件

1开启udp协议组件

新增udp系列产品

2udp协议系列产品一

3udp协议系列产品二

新增udp设备

4新增udp设备一

5新增udp设备二png

属性上报

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设备。

6属性上报一

7属性上报二

8属性上报三

9属性上报四

posted @ 2026-08-14 16:42  南翔技校毕业后  阅读(4)  评论(0)    收藏  举报