diff --git a/SensorHub.Methane/Methane.cs b/SensorHub.Methane/Methane.cs index 8513d89..aee6906 100644 --- a/SensorHub.Methane/Methane.cs +++ b/SensorHub.Methane/Methane.cs @@ -52,7 +52,7 @@ //判断是返回的设置确认数据帧, 回复第三方 if (operType == "SetResponse") { - Common.sendSetResponse(session, devCode, "Methane"); + Common.sendSetResponse(session, devCode, devName); return; } @@ -191,8 +191,8 @@ } } - Common.sendMessage(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); - // Common.kafkaProduce(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); + // Common.sendMessage(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); + Common.kafkaProduce(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); if (softwareVersion != "" || size != 0 || offset != 0)//进入远程升级流程 { diff --git a/SensorHub.Methane/Methane.cs b/SensorHub.Methane/Methane.cs index 8513d89..aee6906 100644 --- a/SensorHub.Methane/Methane.cs +++ b/SensorHub.Methane/Methane.cs @@ -52,7 +52,7 @@ //判断是返回的设置确认数据帧, 回复第三方 if (operType == "SetResponse") { - Common.sendSetResponse(session, devCode, "Methane"); + Common.sendSetResponse(session, devCode, devName); return; } @@ -191,8 +191,8 @@ } } - Common.sendMessage(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); - // Common.kafkaProduce(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); + // Common.sendMessage(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); + Common.kafkaProduce(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); if (softwareVersion != "" || size != 0 || offset != 0)//进入远程升级流程 { diff --git a/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs b/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs index f163076..ae38512 100644 --- a/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs +++ b/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs @@ -8,7 +8,7 @@ public class UploadTag:Tag { /** - * 1,2,3,4,5,分别代表流量、压力、液位、噪声 + * 1,2,3,4,5,分别代表流量、压力、液位、噪声、气体浓度 */ private int bizType; //业务类型 private int collectInter; //采集间隔(单位是分钟) diff --git a/SensorHub.Methane/Methane.cs b/SensorHub.Methane/Methane.cs index 8513d89..aee6906 100644 --- a/SensorHub.Methane/Methane.cs +++ b/SensorHub.Methane/Methane.cs @@ -52,7 +52,7 @@ //判断是返回的设置确认数据帧, 回复第三方 if (operType == "SetResponse") { - Common.sendSetResponse(session, devCode, "Methane"); + Common.sendSetResponse(session, devCode, devName); return; } @@ -191,8 +191,8 @@ } } - Common.sendMessage(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); - // Common.kafkaProduce(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); + // Common.sendMessage(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); + Common.kafkaProduce(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); if (softwareVersion != "" || size != 0 || offset != 0)//进入远程升级流程 { diff --git a/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs b/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs index f163076..ae38512 100644 --- a/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs +++ b/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs @@ -8,7 +8,7 @@ public class UploadTag:Tag { /** - * 1,2,3,4,5,分别代表流量、压力、液位、噪声 + * 1,2,3,4,5,分别代表流量、压力、液位、噪声、气体浓度 */ private int bizType; //业务类型 private int collectInter; //采集间隔(单位是分钟) diff --git a/SensorHub.Servers/Common.cs b/SensorHub.Servers/Common.cs index 93b4e97..3572282 100644 --- a/SensorHub.Servers/Common.cs +++ b/SensorHub.Servers/Common.cs @@ -103,25 +103,27 @@ RedisHelper redis = new RedisHelper(0); String configItem = null; - if (redis.Conn != null) + if (redis.Conn != null && btPdu[0] == 0x03) // 操作类型 = SetRequest的时候才从Redis中取下发配置项 { configItem = redis.StringGet(devCode); } + session.Logger.Info("收到Redis中的待下发配置:" + configItem); + byte[] config = ConfigBuild.buildConfigFrame(devCode, configItem); - config[10] = 0x03; - config[13] = btPdu[0]; - config[14] = btPdu[1]; + config[10] = 0x03; // 通信方式 + config[13] = btPdu[0]; // 操作类型 + config[14] = btPdu[1]; // 传输控制位 + 设备类型 if (mode == "SM4") { - config[10] = 0xC3; + config[10] = 0xC3; // 给硬件提示加密方式 } SystemTimeConfig sysTimeConfig = new SystemTimeConfig(null); byte[] btConfig = sysTimeConfig.getConfig(new byte[0]); btConfig.CopyTo(config, 16); - session.Logger.Info("下发回复配置信息:" + BitConverter.ToString(config).Replace("-", "")); + session.Logger.Info("下发回复配置信息:" + source + "/" + mode + "/" + BitConverter.ToString(config).Replace("-", "")); if (source == "4G") { @@ -129,7 +131,6 @@ return; } - byte[] tag = new byte[config.Length - 16]; byte[] enTag; @@ -175,13 +176,14 @@ { String strBase64Value = Convert.ToBase64String(afcrc); int ret = SendNACommand(session, strBase64Value, source); + if (ret != 201) { session.Logger.Info("电信平台下发配置信息失败,返回的Http状态码:" + ret); } else { - session.Logger.Info("电信平台下发配置信息成功!"); + session.Logger.Info("电信平台下发配置信息成功!" + ret); } } } @@ -230,8 +232,12 @@ byte[] afcrc = CRC(result); //session.Send(afcrc, 0, afcrc.Length); + session.Logger.Info("result: " + result); + session.Logger.Info("afcrc: " + afcrc); + String strBase64Value = Convert.ToBase64String(afcrc); int ret = SendNACommand(session, strBase64Value, source); + session.Logger.Info(ret + ": " + strBase64Value); if (ret != 201) { session.Logger.Info("电信平台下发配置信息失败,返回的Http状态码:" + ret); @@ -781,17 +787,7 @@ } } - String message = JsonConvert.SerializeObject(new Json("SetResponse", devName, devCode, - new JsonBody(devName + "ConfigSuccess"), getTimeStamp())); - - if (Common.SendMessage(message)) - { - session.Logger.Info("往第三方发送数据:" + message); - } - else - { - session.Logger.Info("未连接上第三方服务器"); - } + Common.kafkaSetResponseProduce(session, devCode, devName); } //public static void sendSetResponse(CasicSession session, String devCode, String devName) @@ -855,12 +851,12 @@ { return; } - try { if (routeFlag == "03") //GPRS,3G网络,电信平台 { - senderGPRSConfig(session, devCode, btPdu, source); + // senderGPRSConfig(session, devCode, btPdu, source); + senderSM4Config(session, devCode, btPdu, source); } else if (routeFlag == "01") //433 { diff --git a/SensorHub.Methane/Methane.cs b/SensorHub.Methane/Methane.cs index 8513d89..aee6906 100644 --- a/SensorHub.Methane/Methane.cs +++ b/SensorHub.Methane/Methane.cs @@ -52,7 +52,7 @@ //判断是返回的设置确认数据帧, 回复第三方 if (operType == "SetResponse") { - Common.sendSetResponse(session, devCode, "Methane"); + Common.sendSetResponse(session, devCode, devName); return; } @@ -191,8 +191,8 @@ } } - Common.sendMessage(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); - // Common.kafkaProduce(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); + // Common.sendMessage(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); + Common.kafkaProduce(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); if (softwareVersion != "" || size != 0 || offset != 0)//进入远程升级流程 { diff --git a/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs b/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs index f163076..ae38512 100644 --- a/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs +++ b/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs @@ -8,7 +8,7 @@ public class UploadTag:Tag { /** - * 1,2,3,4,5,分别代表流量、压力、液位、噪声 + * 1,2,3,4,5,分别代表流量、压力、液位、噪声、气体浓度 */ private int bizType; //业务类型 private int collectInter; //采集间隔(单位是分钟) diff --git a/SensorHub.Servers/Common.cs b/SensorHub.Servers/Common.cs index 93b4e97..3572282 100644 --- a/SensorHub.Servers/Common.cs +++ b/SensorHub.Servers/Common.cs @@ -103,25 +103,27 @@ RedisHelper redis = new RedisHelper(0); String configItem = null; - if (redis.Conn != null) + if (redis.Conn != null && btPdu[0] == 0x03) // 操作类型 = SetRequest的时候才从Redis中取下发配置项 { configItem = redis.StringGet(devCode); } + session.Logger.Info("收到Redis中的待下发配置:" + configItem); + byte[] config = ConfigBuild.buildConfigFrame(devCode, configItem); - config[10] = 0x03; - config[13] = btPdu[0]; - config[14] = btPdu[1]; + config[10] = 0x03; // 通信方式 + config[13] = btPdu[0]; // 操作类型 + config[14] = btPdu[1]; // 传输控制位 + 设备类型 if (mode == "SM4") { - config[10] = 0xC3; + config[10] = 0xC3; // 给硬件提示加密方式 } SystemTimeConfig sysTimeConfig = new SystemTimeConfig(null); byte[] btConfig = sysTimeConfig.getConfig(new byte[0]); btConfig.CopyTo(config, 16); - session.Logger.Info("下发回复配置信息:" + BitConverter.ToString(config).Replace("-", "")); + session.Logger.Info("下发回复配置信息:" + source + "/" + mode + "/" + BitConverter.ToString(config).Replace("-", "")); if (source == "4G") { @@ -129,7 +131,6 @@ return; } - byte[] tag = new byte[config.Length - 16]; byte[] enTag; @@ -175,13 +176,14 @@ { String strBase64Value = Convert.ToBase64String(afcrc); int ret = SendNACommand(session, strBase64Value, source); + if (ret != 201) { session.Logger.Info("电信平台下发配置信息失败,返回的Http状态码:" + ret); } else { - session.Logger.Info("电信平台下发配置信息成功!"); + session.Logger.Info("电信平台下发配置信息成功!" + ret); } } } @@ -230,8 +232,12 @@ byte[] afcrc = CRC(result); //session.Send(afcrc, 0, afcrc.Length); + session.Logger.Info("result: " + result); + session.Logger.Info("afcrc: " + afcrc); + String strBase64Value = Convert.ToBase64String(afcrc); int ret = SendNACommand(session, strBase64Value, source); + session.Logger.Info(ret + ": " + strBase64Value); if (ret != 201) { session.Logger.Info("电信平台下发配置信息失败,返回的Http状态码:" + ret); @@ -781,17 +787,7 @@ } } - String message = JsonConvert.SerializeObject(new Json("SetResponse", devName, devCode, - new JsonBody(devName + "ConfigSuccess"), getTimeStamp())); - - if (Common.SendMessage(message)) - { - session.Logger.Info("往第三方发送数据:" + message); - } - else - { - session.Logger.Info("未连接上第三方服务器"); - } + Common.kafkaSetResponseProduce(session, devCode, devName); } //public static void sendSetResponse(CasicSession session, String devCode, String devName) @@ -855,12 +851,12 @@ { return; } - try { if (routeFlag == "03") //GPRS,3G网络,电信平台 { - senderGPRSConfig(session, devCode, btPdu, source); + // senderGPRSConfig(session, devCode, btPdu, source); + senderSM4Config(session, devCode, btPdu, source); } else if (routeFlag == "01") //433 { diff --git a/SensorHub.Servers/TelecomReceiveFilter.cs b/SensorHub.Servers/TelecomReceiveFilter.cs index 616139d..ba17e7e 100644 --- a/SensorHub.Servers/TelecomReceiveFilter.cs +++ b/SensorHub.Servers/TelecomReceiveFilter.cs @@ -81,25 +81,33 @@ } } //////////////////////////////////////////////////////////////////////// - - // if (routeFlag == "03") - // { - // //对tag进行TEA解密 - // Byte[] dat = new Byte[data.Length / 2 - 18]; - // Array.Copy(src, 16, dat, 0, data.Length / 2 - 18); - // - // TEA.decrypt(ref dat, dat.Length); - // settings = BitConverter.ToString(dat, 0, dat.Length).Replace("-", "").Substring(0, Convert.ToInt32(leng, 16) * 2 - 12 * 2); - // } - // else - // { + /* + if (routeFlag == "03") + { + //对tag进行TEA解密 + Byte[] dat = new Byte[data.Length / 2 - 18]; + Array.Copy(src, 16, dat, 0, data.Length / 2 - 18); + + TEA.decrypt(ref dat, dat.Length); + settings = BitConverter.ToString(dat, 0, dat.Length).Replace("-", "").Substring(0, Convert.ToInt32(leng, 16) * 2 - 12 * 2); + } + else + { //对tag进行sm4解密 Byte[] dat = new Byte[data.Length / 2 - 18]; Array.Copy(src, 16, dat, 0, data.Length / 2 - 18); String plainText = SM4Utils.sm4Decrypt(dat, deviceId); settings = plainText.Substring(0, Convert.ToInt32(leng, 16) * 2 - 12 * 2); - // } + } + */ + + //对tag进行sm4解密 + Byte[] dat = new Byte[data.Length / 2 - 18]; + Array.Copy(src, 16, dat, 0, data.Length / 2 - 18); + + String plainText = SM4Utils.sm4Decrypt(dat, deviceId); + settings = plainText.Substring(0, Convert.ToInt32(leng, 16) * 2 - 12 * 2); result = Common.getDeviceTypeByPdu(pduType); diff --git a/SensorHub.Methane/Methane.cs b/SensorHub.Methane/Methane.cs index 8513d89..aee6906 100644 --- a/SensorHub.Methane/Methane.cs +++ b/SensorHub.Methane/Methane.cs @@ -52,7 +52,7 @@ //判断是返回的设置确认数据帧, 回复第三方 if (operType == "SetResponse") { - Common.sendSetResponse(session, devCode, "Methane"); + Common.sendSetResponse(session, devCode, devName); return; } @@ -191,8 +191,8 @@ } } - Common.sendMessage(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); - // Common.kafkaProduce(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); + // Common.sendMessage(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); + Common.kafkaProduce(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); if (softwareVersion != "" || size != 0 || offset != 0)//进入远程升级流程 { diff --git a/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs b/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs index f163076..ae38512 100644 --- a/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs +++ b/SensorHub.Servers/Commands/CASICCommands/UploadTag.cs @@ -8,7 +8,7 @@ public class UploadTag:Tag { /** - * 1,2,3,4,5,分别代表流量、压力、液位、噪声 + * 1,2,3,4,5,分别代表流量、压力、液位、噪声、气体浓度 */ private int bizType; //业务类型 private int collectInter; //采集间隔(单位是分钟) diff --git a/SensorHub.Servers/Common.cs b/SensorHub.Servers/Common.cs index 93b4e97..3572282 100644 --- a/SensorHub.Servers/Common.cs +++ b/SensorHub.Servers/Common.cs @@ -103,25 +103,27 @@ RedisHelper redis = new RedisHelper(0); String configItem = null; - if (redis.Conn != null) + if (redis.Conn != null && btPdu[0] == 0x03) // 操作类型 = SetRequest的时候才从Redis中取下发配置项 { configItem = redis.StringGet(devCode); } + session.Logger.Info("收到Redis中的待下发配置:" + configItem); + byte[] config = ConfigBuild.buildConfigFrame(devCode, configItem); - config[10] = 0x03; - config[13] = btPdu[0]; - config[14] = btPdu[1]; + config[10] = 0x03; // 通信方式 + config[13] = btPdu[0]; // 操作类型 + config[14] = btPdu[1]; // 传输控制位 + 设备类型 if (mode == "SM4") { - config[10] = 0xC3; + config[10] = 0xC3; // 给硬件提示加密方式 } SystemTimeConfig sysTimeConfig = new SystemTimeConfig(null); byte[] btConfig = sysTimeConfig.getConfig(new byte[0]); btConfig.CopyTo(config, 16); - session.Logger.Info("下发回复配置信息:" + BitConverter.ToString(config).Replace("-", "")); + session.Logger.Info("下发回复配置信息:" + source + "/" + mode + "/" + BitConverter.ToString(config).Replace("-", "")); if (source == "4G") { @@ -129,7 +131,6 @@ return; } - byte[] tag = new byte[config.Length - 16]; byte[] enTag; @@ -175,13 +176,14 @@ { String strBase64Value = Convert.ToBase64String(afcrc); int ret = SendNACommand(session, strBase64Value, source); + if (ret != 201) { session.Logger.Info("电信平台下发配置信息失败,返回的Http状态码:" + ret); } else { - session.Logger.Info("电信平台下发配置信息成功!"); + session.Logger.Info("电信平台下发配置信息成功!" + ret); } } } @@ -230,8 +232,12 @@ byte[] afcrc = CRC(result); //session.Send(afcrc, 0, afcrc.Length); + session.Logger.Info("result: " + result); + session.Logger.Info("afcrc: " + afcrc); + String strBase64Value = Convert.ToBase64String(afcrc); int ret = SendNACommand(session, strBase64Value, source); + session.Logger.Info(ret + ": " + strBase64Value); if (ret != 201) { session.Logger.Info("电信平台下发配置信息失败,返回的Http状态码:" + ret); @@ -781,17 +787,7 @@ } } - String message = JsonConvert.SerializeObject(new Json("SetResponse", devName, devCode, - new JsonBody(devName + "ConfigSuccess"), getTimeStamp())); - - if (Common.SendMessage(message)) - { - session.Logger.Info("往第三方发送数据:" + message); - } - else - { - session.Logger.Info("未连接上第三方服务器"); - } + Common.kafkaSetResponseProduce(session, devCode, devName); } //public static void sendSetResponse(CasicSession session, String devCode, String devName) @@ -855,12 +851,12 @@ { return; } - try { if (routeFlag == "03") //GPRS,3G网络,电信平台 { - senderGPRSConfig(session, devCode, btPdu, source); + // senderGPRSConfig(session, devCode, btPdu, source); + senderSM4Config(session, devCode, btPdu, source); } else if (routeFlag == "01") //433 { diff --git a/SensorHub.Servers/TelecomReceiveFilter.cs b/SensorHub.Servers/TelecomReceiveFilter.cs index 616139d..ba17e7e 100644 --- a/SensorHub.Servers/TelecomReceiveFilter.cs +++ b/SensorHub.Servers/TelecomReceiveFilter.cs @@ -81,25 +81,33 @@ } } //////////////////////////////////////////////////////////////////////// - - // if (routeFlag == "03") - // { - // //对tag进行TEA解密 - // Byte[] dat = new Byte[data.Length / 2 - 18]; - // Array.Copy(src, 16, dat, 0, data.Length / 2 - 18); - // - // TEA.decrypt(ref dat, dat.Length); - // settings = BitConverter.ToString(dat, 0, dat.Length).Replace("-", "").Substring(0, Convert.ToInt32(leng, 16) * 2 - 12 * 2); - // } - // else - // { + /* + if (routeFlag == "03") + { + //对tag进行TEA解密 + Byte[] dat = new Byte[data.Length / 2 - 18]; + Array.Copy(src, 16, dat, 0, data.Length / 2 - 18); + + TEA.decrypt(ref dat, dat.Length); + settings = BitConverter.ToString(dat, 0, dat.Length).Replace("-", "").Substring(0, Convert.ToInt32(leng, 16) * 2 - 12 * 2); + } + else + { //对tag进行sm4解密 Byte[] dat = new Byte[data.Length / 2 - 18]; Array.Copy(src, 16, dat, 0, data.Length / 2 - 18); String plainText = SM4Utils.sm4Decrypt(dat, deviceId); settings = plainText.Substring(0, Convert.ToInt32(leng, 16) * 2 - 12 * 2); - // } + } + */ + + //对tag进行sm4解密 + Byte[] dat = new Byte[data.Length / 2 - 18]; + Array.Copy(src, 16, dat, 0, data.Length / 2 - 18); + + String plainText = SM4Utils.sm4Decrypt(dat, deviceId); + settings = plainText.Substring(0, Convert.ToInt32(leng, 16) * 2 - 12 * 2); result = Common.getDeviceTypeByPdu(pduType); diff --git a/SensorHub.Tube/Tube.cs b/SensorHub.Tube/Tube.cs index e8f3f88..e75dc6c 100644 --- a/SensorHub.Tube/Tube.cs +++ b/SensorHub.Tube/Tube.cs @@ -191,8 +191,8 @@ } } - Common.sendMessage(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); - // Common.kafkaProduce(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); + // Common.sendMessage(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); + Common.kafkaProduce(session, devName, devCode, cell, pci, rsrp, snr, eventList, datasList, startupList); if (softwareVersion != "" || size != 0 || offset != 0)//进入远程升级流程 {