本系统是一个基于Netty开发的远程抄表系统,系统的主要功能有:远程抄表和数据持久化到DB(目前仅支持MySQL),目前的主要开发服务对象是智能电表,智能电表在行业内的远程抄表使用的是DLT/645-1997协议或DLT/645-2007协议,本系统面向后者开发。
调用cn.edu.xust.communication.remote.AmmeterRemoteReader
或者cn.edu.xust.communication.AmmeterAutoReader
类中的方法即可,下面是一个使用示例:
package cn.edu.xust.controller;
import cn.edu.xust.bean.AmmeterParameter;
import cn.edu.xust.communication.remote.AmmeterRemoteReader;
import cn.edu.xust.mapper.AmmeterParameterMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.List;
/**
* @author :huangxin
* @modified :
* @since :2020/03/28 17:25
*/
@Controller
public class AmmeterController {
@Autowired
private AmmeterParameterMapper ammeterParameterMapper;
@Autowired
private AmmeterRemoteReader ammeterRemoteReader;
@ResponseBody
@RequestMapping(value = "/test/{ammeterId}")
public List<AmmeterParameter> controller(@PathVariable(value = "ammeterId") String ammeterId){
List<String> list = new ArrayList<>();
list.add(ammeterId);
return ammeterRemoteReader.realTelemetry(list);
}
}
在启动SpringBoot项目的时候,此通信系统也会跟随自动启动并默认监听9000端口,端口可以在配置文件中通过netty.server.port
进行配置,启动成功后会打印Netty Server启动成功的信息
基于示例中的代码,在浏览器地址栏http://127.0.0.1:8080/test/398192000337
(1)可以正常解析DLT/645-2007协议数据(下面是解析了A相电压数据):