|
@@ -36,7 +36,7 @@ import java.util.*;
|
|
|
public class DataStreamSwHourDatagramProcessor extends DataStreamProcessor {
|
|
public class DataStreamSwHourDatagramProcessor extends DataStreamProcessor {
|
|
|
|
|
|
|
|
private DataStreamCache dataStreamCache;
|
|
private DataStreamCache dataStreamCache;
|
|
|
- private Map<String, List<Map<String,Object>>> keyStore = new HashMap<>();
|
|
|
|
|
|
|
+ private Map<String, List<Map<String, Object>>> keyStore = new HashMap<>();
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void init(DataStreamLineManager context) {
|
|
public void init(DataStreamLineManager context) {
|
|
@@ -70,7 +70,7 @@ public class DataStreamSwHourDatagramProcessor extends DataStreamProcessor {
|
|
|
// dataStreamCache.putValue(DatagramConstant.sendPacketTime, sendPacketTime);
|
|
// dataStreamCache.putValue(DatagramConstant.sendPacketTime, sendPacketTime);
|
|
|
//遥测站地址
|
|
//遥测站地址
|
|
|
DataItemTemplate itemTemplateSt = itemTemplateMap.get(SwElementCodeEnum.CODE_ST.getName());
|
|
DataItemTemplate itemTemplateSt = itemTemplateMap.get(SwElementCodeEnum.CODE_ST.getName());
|
|
|
- // itemTemplateSt.clear();
|
|
|
|
|
|
|
+ // itemTemplateSt.clear();
|
|
|
int readSize = itemTemplateSt.stream(dataArea, count);
|
|
int readSize = itemTemplateSt.stream(dataArea, count);
|
|
|
if (itemTemplateSt.isMacth()) {
|
|
if (itemTemplateSt.isMacth()) {
|
|
|
itemTemplateSt.saveValue(this.keyStore);
|
|
itemTemplateSt.saveValue(this.keyStore);
|
|
@@ -82,7 +82,7 @@ public class DataStreamSwHourDatagramProcessor extends DataStreamProcessor {
|
|
|
dataStreamCache.putValue(DataStreamCacheMetadata.METADATA_SITE_KIND.getName(), BytesHelp.byte2HexStr(siteKind));
|
|
dataStreamCache.putValue(DataStreamCacheMetadata.METADATA_SITE_KIND.getName(), BytesHelp.byte2HexStr(siteKind));
|
|
|
//采集时间
|
|
//采集时间
|
|
|
DataItemTemplate itemTemplateTt = itemTemplateMap.get(SwElementCodeEnum.CODE_TT.getName());
|
|
DataItemTemplate itemTemplateTt = itemTemplateMap.get(SwElementCodeEnum.CODE_TT.getName());
|
|
|
- // itemTemplateSt.clear();
|
|
|
|
|
|
|
+ // itemTemplateSt.clear();
|
|
|
readSize = itemTemplateTt.stream(dataArea, count);
|
|
readSize = itemTemplateTt.stream(dataArea, count);
|
|
|
if (itemTemplateTt.isMacth()) {
|
|
if (itemTemplateTt.isMacth()) {
|
|
|
itemTemplateTt.saveValue(this.keyStore);
|
|
itemTemplateTt.saveValue(this.keyStore);
|
|
@@ -104,7 +104,7 @@ public class DataStreamSwHourDatagramProcessor extends DataStreamProcessor {
|
|
|
}
|
|
}
|
|
|
if (itemTemplateMap.containsKey(func)) {
|
|
if (itemTemplateMap.containsKey(func)) {
|
|
|
DataItemTemplate itemTemplate = itemTemplateMap.get(func);
|
|
DataItemTemplate itemTemplate = itemTemplateMap.get(func);
|
|
|
- // itemTemplateSt.clear();
|
|
|
|
|
|
|
+ // itemTemplateSt.clear();
|
|
|
readSize = itemTemplate.stream(content, index);
|
|
readSize = itemTemplate.stream(content, index);
|
|
|
index += readSize;
|
|
index += readSize;
|
|
|
if (itemTemplate.isMacth()) {
|
|
if (itemTemplate.isMacth()) {
|
|
@@ -136,10 +136,10 @@ public class DataStreamSwHourDatagramProcessor extends DataStreamProcessor {
|
|
|
public void batchComplete(DataStreamAdapter dataStreamAdapter) {
|
|
public void batchComplete(DataStreamAdapter dataStreamAdapter) {
|
|
|
Set<String> keys = this.keyStore.keySet();
|
|
Set<String> keys = this.keyStore.keySet();
|
|
|
for (String key : keys) {
|
|
for (String key : keys) {
|
|
|
- List<Map<String,Object>> list = this.keyStore.get(key);
|
|
|
|
|
- if (null != list){
|
|
|
|
|
- for (Map<String,Object> jsonObject:list){
|
|
|
|
|
- log.info("item {} {}",key,JSONObject.toJSONString(jsonObject));
|
|
|
|
|
|
|
+ List<Map<String, Object>> list = this.keyStore.get(key);
|
|
|
|
|
+ if (null != list) {
|
|
|
|
|
+ for (Map<String, Object> jsonObject : list) {
|
|
|
|
|
+ log.info("item {} {}", key, JSONObject.toJSONString(jsonObject));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -150,10 +150,10 @@ public class DataStreamSwHourDatagramProcessor extends DataStreamProcessor {
|
|
|
respPacket[0] = 0x7e;
|
|
respPacket[0] = 0x7e;
|
|
|
respPacket[1] = 0x7e;
|
|
respPacket[1] = 0x7e;
|
|
|
//遥测站地址
|
|
//遥测站地址
|
|
|
- byte[] rtuCodeByte = this.dataStreamCache.getBytesValue(DataStreamCacheMetadata.METADATA_RTU_CODE.getName());
|
|
|
|
|
|
|
+ byte[] rtuCodeByte = this.dataStreamCache.getBytesValue(DataStreamCacheMetadata.METADATA_RTU_CODE.getName());
|
|
|
respPacket = BytesHelp.arrayApend(respPacket, rtuCodeByte);
|
|
respPacket = BytesHelp.arrayApend(respPacket, rtuCodeByte);
|
|
|
//中心站地址
|
|
//中心站地址
|
|
|
- byte[] centerStationByte = this.dataStreamCache.getBytesValue(DataStreamCacheMetadata.METADATA_CENTER_STATION_CODE.getName());
|
|
|
|
|
|
|
+ byte[] centerStationByte = this.dataStreamCache.getBytesValue(DataStreamCacheMetadata.METADATA_CENTER_STATION_CODE.getName());
|
|
|
respPacket = BytesHelp.arrayApend(respPacket, centerStationByte);
|
|
respPacket = BytesHelp.arrayApend(respPacket, centerStationByte);
|
|
|
//密码
|
|
//密码
|
|
|
byte[] rtuPwByte = this.dataStreamCache.getBytesValue(DataStreamCacheMetadata.METADATA_SW_PW.getName());
|
|
byte[] rtuPwByte = this.dataStreamCache.getBytesValue(DataStreamCacheMetadata.METADATA_SW_PW.getName());
|
|
@@ -164,7 +164,7 @@ public class DataStreamSwHourDatagramProcessor extends DataStreamProcessor {
|
|
|
//报文下行标识及长度
|
|
//报文下行标识及长度
|
|
|
respPacket = BytesHelp.arrayApend(respPacket, BytesHelp.hexStr2Bytes("8008"));
|
|
respPacket = BytesHelp.arrayApend(respPacket, BytesHelp.hexStr2Bytes("8008"));
|
|
|
//报文起始符
|
|
//报文起始符
|
|
|
- byte[] dataAreaStartFlagByte =this.dataStreamCache.getBytesValue(DataStreamCacheMetadata.METADATA_DATA_AREA_START_FLAG.getName());
|
|
|
|
|
|
|
+ byte[] dataAreaStartFlagByte = this.dataStreamCache.getBytesValue(DataStreamCacheMetadata.METADATA_DATA_AREA_START_FLAG.getName());
|
|
|
respPacket = BytesHelp.arrayApend(respPacket, dataAreaStartFlagByte);
|
|
respPacket = BytesHelp.arrayApend(respPacket, dataAreaStartFlagByte);
|
|
|
//流水号
|
|
//流水号
|
|
|
byte[] serialNoByte = this.dataStreamCache.getBytesValue(DataStreamCacheMetadata.METADATA_SERIAL_NO.getName());
|
|
byte[] serialNoByte = this.dataStreamCache.getBytesValue(DataStreamCacheMetadata.METADATA_SERIAL_NO.getName());
|
|
@@ -186,8 +186,8 @@ public class DataStreamSwHourDatagramProcessor extends DataStreamProcessor {
|
|
|
Set<String> keys = this.keyStore.keySet();
|
|
Set<String> keys = this.keyStore.keySet();
|
|
|
for (String key : keys) {
|
|
for (String key : keys) {
|
|
|
Map<String, Object> data = new HashMap<>();
|
|
Map<String, Object> data = new HashMap<>();
|
|
|
- // data.put(JsonPackMetadataEnum.PACK_METADATA_DATAGRAM.getName(), BytesHelp.byte2HexStr(this.dataStreamCache.getDatagramBuff()));
|
|
|
|
|
- // data.put(JsonPackMetadataEnum.PACK_METADATA_FROM_TIME.getName(), this.dataStreamCache.getPickPacketTime());
|
|
|
|
|
|
|
+ // data.put(JsonPackMetadataEnum.PACK_METADATA_DATAGRAM.getName(), BytesHelp.byte2HexStr(this.dataStreamCache.getDatagramBuff()));
|
|
|
|
|
+ // data.put(JsonPackMetadataEnum.PACK_METADATA_FROM_TIME.getName(), this.dataStreamCache.getPickPacketTime());
|
|
|
// data.put(SinkJsonPackMetadataEnum.PACK_METADATA_FROM_TIME.getName(), this.dataStreamCache.getValue(DatagramConstant.pickPacketTime));
|
|
// data.put(SinkJsonPackMetadataEnum.PACK_METADATA_FROM_TIME.getName(), this.dataStreamCache.getValue(DatagramConstant.pickPacketTime));
|
|
|
// data.put(JsonPackMetadataEnum.PACK_METADATA_RTU_CODE.getName(), this.dataStreamCache.getRtuCode());
|
|
// data.put(JsonPackMetadataEnum.PACK_METADATA_RTU_CODE.getName(), this.dataStreamCache.getRtuCode());
|
|
|
//
|
|
//
|
|
@@ -198,7 +198,7 @@ public class DataStreamSwHourDatagramProcessor extends DataStreamProcessor {
|
|
|
// data.put(JsonPackMetadataEnum.PACK_METADATA_COLLECT_TIME.getName(), DatagramHelp.getCollectTime(this.keyStore));
|
|
// data.put(JsonPackMetadataEnum.PACK_METADATA_COLLECT_TIME.getName(), DatagramHelp.getCollectTime(this.keyStore));
|
|
|
// }
|
|
// }
|
|
|
// data.put(SinkJsonPackMetadataEnum.PACK_METADATA_COLLECT_TIME.getName(), this.dataStreamCache.getStringValue(DatagramConstant.collectTime));
|
|
// data.put(SinkJsonPackMetadataEnum.PACK_METADATA_COLLECT_TIME.getName(), this.dataStreamCache.getStringValue(DatagramConstant.collectTime));
|
|
|
- // data.put(JsonPackMetadataEnum.PACK_METADATA_UP_TIME.getName(), this.dataStreamCache.getStringValue(DatagramConstant.sendPacketTime));
|
|
|
|
|
|
|
+ // data.put(JsonPackMetadataEnum.PACK_METADATA_UP_TIME.getName(), this.dataStreamCache.getStringValue(DatagramConstant.sendPacketTime));
|
|
|
data.put(DatagramMetadataEnum.CACHE_METADATA_ELEMENT_CODE.getName(), key);
|
|
data.put(DatagramMetadataEnum.CACHE_METADATA_ELEMENT_CODE.getName(), key);
|
|
|
List<Map<String, Object>> elements = this.keyStore.get(key);
|
|
List<Map<String, Object>> elements = this.keyStore.get(key);
|
|
|
for (Map<String, Object> jsonObject : elements) {
|
|
for (Map<String, Object> jsonObject : elements) {
|