代码提交

This commit is contained in:
chy
2026-03-23 13:48:34 +08:00
commit 4dbe762e2c
1880 changed files with 200143 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
package iot.lidee.rj45;
import com.alibaba.fastjson2.JSONObject;
import iot.lidee.common.annotation.SysProtocol;
import iot.lidee.common.constant.LideeConstant;
import iot.lidee.common.core.mq.DeviceReport;
import iot.lidee.common.core.mq.MQSendMessageBo;
import iot.lidee.common.core.mq.message.DeviceData;
import iot.lidee.common.core.mq.message.FunctionCallBackBo;
import iot.lidee.common.core.thingsModel.ThingsModelSimpleItem;
import iot.lidee.common.exception.ServiceException;
import iot.lidee.common.utils.BeanMapUtilByReflect;
import iot.lidee.protocol.base.protocol.IProtocol;
import iot.lidee.rj45.model.RfId;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.nio.charset.StandardCharsets;
import java.util.List;
/**
* @author gsb
* @date 2022/10/10 16:55
*/
@Slf4j
@Component
@SysProtocol(name = "RJ45解析协议",protocolCode = LideeConstant.PROTOCOL.RJ45,description = "系统内置RJ45解析协议")
public class Rj45ProtocolService implements IProtocol {
/**
* 解析RJ45格式数据
*/
@Override
public DeviceReport decode(DeviceData deviceData, String clientId) {
try {
DeviceReport reportMessage = new DeviceReport();
String data = new String(deviceData.getData(),StandardCharsets.UTF_8);
String[] split = data.split(",");
String s = split[2];
RfId rfId = new RfId();
rfId.setLabelType(s.substring(0,2));
rfId.setModelNo(s.substring(2,4));
rfId.setEpc(s.substring(4));
List<ThingsModelSimpleItem> values = BeanMapUtilByReflect.beanToItem(rfId);
reportMessage.setThingsModelSimpleItem(values);
reportMessage.setSerialNumber(clientId);
reportMessage.setClientId(clientId);
return reportMessage;
}catch (Exception e){
throw new ServiceException("数据解析异常"+e.getMessage());
}
}
@Override
public FunctionCallBackBo encode(MQSendMessageBo message) {
try {
FunctionCallBackBo callBack = new FunctionCallBackBo();
String msg = JSONObject.toJSONString(message.getParams());
callBack.setSources(msg);
callBack.setMessage(msg.getBytes());
return callBack;
}catch (Exception e){
log.error("=>指令编码异常,device={},data={}",message.getSerialNumber(),
message.getParams());
return null;
}
}
}

View File

@@ -0,0 +1,17 @@
package iot.lidee.rj45.model;
import lombok.Data;
/**
* @author bill
*/
@Data
public class RfId {
/*标签类型*/
private String labelType;
/*天线号*/
private String modelNo;
/*EPC*/
private String epc;
}