cn.foxtech.device.protocol.v1.snmp.template.JDefaultTemplate Maven / Gradle / Ivy
package cn.foxtech.device.protocol.v1.snmp.template;
import cn.foxtech.device.protocol.v1.core.context.ApplicationContext;
import cn.foxtech.device.protocol.v1.core.exception.ProtocolException;
import cn.foxtech.device.protocol.v1.core.template.ITemplate;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 默认格式的模板
* 列名称格式:value_name oid value_type remark
*/
@Data
public class JDefaultTemplate implements ITemplate {
public static final String FORMAT_NAME = "default";
private JDecoderParam decoderParam = new JDecoderParam();
public String getSysTemplateName() {
return FORMAT_NAME;
}
public void loadJsnModel(String modelName) {
// 从进程的上下文中,获得设备模型信息
Map deviceTemplateEntity = ApplicationContext.getDeviceModels(modelName);
// 检测:上下文侧的时间戳和当前模型的时间戳是否一致
Object updateTime = deviceTemplateEntity.getOrDefault("updateTime", 0L);
if (this.decoderParam.updateTime.equals(updateTime)) {
return;
}
// 取出JSON模型的数据列表
Map modelParam = (Map) deviceTemplateEntity.getOrDefault("modelParam", new HashMap<>());
List