|
@@ -57,55 +57,73 @@ namespace MV485.helper
|
|
|
|
|
|
public RunConfig GetRunConfig(byte devId)
|
|
public RunConfig GetRunConfig(byte devId)
|
|
{
|
|
{
|
|
- RunConfig runConfig = null;
|
|
|
|
-
|
|
|
|
string readName = "";
|
|
string readName = "";
|
|
try
|
|
try
|
|
{
|
|
{
|
|
|
|
+ RunConfig runConfig = new RunConfig();
|
|
|
|
+
|
|
ushort[] readRegisters;
|
|
ushort[] readRegisters;
|
|
|
|
|
|
readName = "水表类型";
|
|
readName = "水表类型";
|
|
readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
Constant.MB_REGISTER_ADD_METER_TYPE, Constant.MB_REGISTER_NUM_METER_TYPE);
|
|
Constant.MB_REGISTER_ADD_METER_TYPE, Constant.MB_REGISTER_NUM_METER_TYPE);
|
|
byte meterType = (byte)(readRegisters[0] & 0xFF);
|
|
byte meterType = (byte)(readRegisters[0] & 0xFF);
|
|
- GenerateSendAndRecvHexLog(readName);
|
|
|
|
|
|
+ runConfig.MeterTypeWRFlag = true;
|
|
|
|
+ runConfig.MeterType = meterType;
|
|
|
|
+ GenerateSendAndRecvHexLog(true,readName);
|
|
_message = $"{readName}: {meterType}";
|
|
_message = $"{readName}: {meterType}";
|
|
RWLog?.Invoke(_message);
|
|
RWLog?.Invoke(_message);
|
|
|
|
|
|
readName = "每小时最大流量";
|
|
readName = "每小时最大流量";
|
|
readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
- Constant.MB_REGISTER_ADD_DN_VALUE, Constant.MB_REGISTER_NUM_DN_VALUE);
|
|
|
|
|
|
+ Constant.MB_REGISTER_ADD_DN_VALUE, Constant.MB_REGISTER_NUM_DN_VALUE);
|
|
ushort dnValue = readRegisters[0];
|
|
ushort dnValue = readRegisters[0];
|
|
- GenerateSendAndRecvHexLog(readName);
|
|
|
|
|
|
+ runConfig.DnValueWRFlag = true;
|
|
|
|
+ runConfig.DnValue = dnValue;
|
|
|
|
+ GenerateSendAndRecvHexLog(true, readName);
|
|
_message = $"{readName}: {dnValue}";
|
|
_message = $"{readName}: {dnValue}";
|
|
RWLog?.Invoke(_message);
|
|
RWLog?.Invoke(_message);
|
|
|
|
|
|
- readName = "数字个数";
|
|
|
|
- readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
|
|
- Constant.MB_REGISTER_ADD_DIGIT_COUNT, Constant.MB_REGISTER_NUM_DIGIT_COUNT);
|
|
|
|
- byte digitCount = (byte)(readRegisters[0] & 0xFF);
|
|
|
|
- GenerateSendAndRecvHexLog(readName);
|
|
|
|
- GenerateValueLog(readName, digitCount);
|
|
|
|
|
|
+ if (meterType == Constant.METER_TYPE_NUM_IND || meterType == Constant.METER_TYPE_NUM)
|
|
|
|
+ {
|
|
|
|
+ readName = "数字个数";
|
|
|
|
+ readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
|
|
+ Constant.MB_REGISTER_ADD_DIGIT_COUNT, Constant.MB_REGISTER_NUM_DIGIT_COUNT);
|
|
|
|
+ byte digitCount = (byte)(readRegisters[0] & 0xFF);
|
|
|
|
+ runConfig.DigitCountWRFlag = true;
|
|
|
|
+ runConfig.DigitCount = digitCount;
|
|
|
|
+ GenerateSendAndRecvHexLog(true, readName);
|
|
|
|
+ GenerateValueLog(readName, digitCount);
|
|
|
|
+ }
|
|
|
|
|
|
- readName = "指针个数";
|
|
|
|
- readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
|
|
- Constant.MB_REGISTER_ADD_INDICATOR_COUNT, Constant.MB_REGISTER_NUM_INDICATOR_COUNT);
|
|
|
|
- byte indCount = (byte)(readRegisters[0] & 0xFF);
|
|
|
|
- GenerateSendAndRecvHexLog(readName);
|
|
|
|
- GenerateValueLog(readName, indCount);
|
|
|
|
|
|
+ if (meterType == Constant.METER_TYPE_NUM_IND || meterType == Constant.METER_TYPE_IND)
|
|
|
|
+ {
|
|
|
|
+ readName = "指针个数";
|
|
|
|
+ readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
|
|
+ Constant.MB_REGISTER_ADD_INDICATOR_COUNT, Constant.MB_REGISTER_NUM_INDICATOR_COUNT);
|
|
|
|
+ byte indCount = (byte)(readRegisters[0] & 0xFF);
|
|
|
|
+ runConfig.IndCountWRFlag = true;
|
|
|
|
+ runConfig.IndCount = indCount;
|
|
|
|
+ GenerateSendAndRecvHexLog(true, readName);
|
|
|
|
+ GenerateValueLog(readName, indCount);
|
|
|
|
+ }
|
|
|
|
|
|
readName = "照片亮度放大倍率";
|
|
readName = "照片亮度放大倍率";
|
|
readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
Constant.MB_REGISTER_ADD_BRIGHT_VALUE, Constant.MB_REGISTER_NUM_BRIGHT_VALUE);
|
|
Constant.MB_REGISTER_ADD_BRIGHT_VALUE, Constant.MB_REGISTER_NUM_BRIGHT_VALUE);
|
|
byte birghtValue = (byte)(readRegisters[0] & 0xFF); // 10f;
|
|
byte birghtValue = (byte)(readRegisters[0] & 0xFF); // 10f;
|
|
- GenerateSendAndRecvHexLog(readName);
|
|
|
|
|
|
+ runConfig.BrightValueWRFlag = true;
|
|
|
|
+ runConfig.BrightValue = birghtValue / 10f;
|
|
|
|
+ GenerateSendAndRecvHexLog(true, readName);
|
|
GenerateValueLog(readName, birghtValue);
|
|
GenerateValueLog(readName, birghtValue);
|
|
|
|
|
|
readName = "尾数单位等级";
|
|
readName = "尾数单位等级";
|
|
readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
Constant.MB_REGISTER_ADD_LAST_UNIT_LEVEL, Constant.MB_REGISTER_NUM_LAST_UNIT_LEVEL);
|
|
Constant.MB_REGISTER_ADD_LAST_UNIT_LEVEL, Constant.MB_REGISTER_NUM_LAST_UNIT_LEVEL);
|
|
byte lastUnitLevel = (byte)(readRegisters[0] & 0xFF);
|
|
byte lastUnitLevel = (byte)(readRegisters[0] & 0xFF);
|
|
- GenerateSendAndRecvHexLog(readName);
|
|
|
|
|
|
+ runConfig.LastUnitLevelWRFlag = true;
|
|
|
|
+ runConfig.LastUnitLevel = lastUnitLevel;
|
|
|
|
+ GenerateSendAndRecvHexLog(true, readName);
|
|
GenerateValueLog(readName, lastUnitLevel);
|
|
GenerateValueLog(readName, lastUnitLevel);
|
|
|
|
|
|
readName = "表底读数";
|
|
readName = "表底读数";
|
|
@@ -114,7 +132,9 @@ namespace MV485.helper
|
|
//4个寄存器
|
|
//4个寄存器
|
|
ulong latestValue = ((ulong)readRegisters[0] << 48) | ((ulong)readRegisters[1] << 32) |
|
|
ulong latestValue = ((ulong)readRegisters[0] << 48) | ((ulong)readRegisters[1] << 32) |
|
|
((ulong)readRegisters[2] << 16) | readRegisters[3];
|
|
((ulong)readRegisters[2] << 16) | readRegisters[3];
|
|
- GenerateSendAndRecvHexLog(readName);
|
|
|
|
|
|
+ runConfig.LatestValueWRFlag = true;
|
|
|
|
+ runConfig.LatestValue = latestValue;
|
|
|
|
+ GenerateSendAndRecvHexLog(true, readName);
|
|
GenerateValueLog(readName, latestValue);
|
|
GenerateValueLog(readName, latestValue);
|
|
|
|
|
|
readName = "表底读数时间";
|
|
readName = "表底读数时间";
|
|
@@ -131,56 +151,118 @@ namespace MV485.helper
|
|
//string latestTime = dtLatestTime.ToString("yyyy-MM-dd HH:mm:ss");
|
|
//string latestTime = dtLatestTime.ToString("yyyy-MM-dd HH:mm:ss");
|
|
string latestTime = $"{2000 + year}-{month.ToString("D2")}-{day.ToString("D2")} " +
|
|
string latestTime = $"{2000 + year}-{month.ToString("D2")}-{day.ToString("D2")} " +
|
|
$"{hour.ToString("D2")}:{minute.ToString("D2")}:{second.ToString("D2")}";
|
|
$"{hour.ToString("D2")}:{minute.ToString("D2")}:{second.ToString("D2")}";
|
|
- GenerateSendAndRecvHexLog(readName);
|
|
|
|
|
|
+ if(DateTime.TryParse(latestTime,out DateTime dtLatestTime))
|
|
|
|
+ {
|
|
|
|
+ runConfig.LatestTimeWRFlag = true;
|
|
|
|
+ runConfig.LatestTime = dtLatestTime;
|
|
|
|
+ }
|
|
|
|
+ GenerateSendAndRecvHexLog(true, readName);
|
|
GenerateValueLog(readName, latestTime);
|
|
GenerateValueLog(readName, latestTime);
|
|
|
|
+
|
|
|
|
|
|
readName = "表盘区域坐标";
|
|
readName = "表盘区域坐标";
|
|
readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
Constant.MB_REGISTER_ADD_METER_REGION, Constant.MB_REGISTER_NUM_METER_REGION);
|
|
Constant.MB_REGISTER_ADD_METER_REGION, Constant.MB_REGISTER_NUM_METER_REGION);
|
|
//4个寄存器
|
|
//4个寄存器
|
|
string meterRegion = $"{readRegisters[0]},{readRegisters[1]} {readRegisters[2]},{readRegisters[3]}";
|
|
string meterRegion = $"{readRegisters[0]},{readRegisters[1]} {readRegisters[2]},{readRegisters[3]}";
|
|
- GenerateSendAndRecvHexLog(readName);
|
|
|
|
|
|
+ runConfig.MeterRegionWRFlag = true;
|
|
|
|
+ runConfig.MeterRegion = meterRegion;
|
|
|
|
+ GenerateSendAndRecvHexLog(true, readName);
|
|
GenerateValueLog(readName, meterRegion);
|
|
GenerateValueLog(readName, meterRegion);
|
|
|
|
|
|
- readName = "数字区域坐标";
|
|
|
|
- readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
|
|
- Constant.MB_REGISTER_ADD_DIGIT_REGION, Constant.MB_REGISTER_NUM_DIGIT_REGION);
|
|
|
|
- //8个寄存器
|
|
|
|
- string digitRegion = $"{readRegisters[0]},{readRegisters[1]} {readRegisters[2]},{readRegisters[3]} " +
|
|
|
|
- $"{readRegisters[4]},{readRegisters[5]} {readRegisters[6]},{readRegisters[7]}";
|
|
|
|
- GenerateSendAndRecvHexLog(readName);
|
|
|
|
- GenerateValueLog(readName, digitRegion);
|
|
|
|
-
|
|
|
|
- readName = "首尾指针坐标";
|
|
|
|
- readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
|
|
- Constant.MB_REGISTER_ADD_FTIND_REGION, Constant.MB_REGISTER_NUM_FTIND_REGION);
|
|
|
|
- //4个寄存器
|
|
|
|
- string ftIndRegion = $"{readRegisters[0]},{readRegisters[1]} {readRegisters[2]},{readRegisters[3]}";
|
|
|
|
- GenerateSendAndRecvHexLog(readName);
|
|
|
|
- GenerateValueLog(readName, ftIndRegion);
|
|
|
|
|
|
+
|
|
|
|
+ if (meterType == Constant.METER_TYPE_NUM_IND || meterType == Constant.METER_TYPE_NUM)
|
|
|
|
+ {
|
|
|
|
+ readName = "数字区域坐标";
|
|
|
|
+ readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
|
|
+ Constant.MB_REGISTER_ADD_DIGIT_REGION, Constant.MB_REGISTER_NUM_DIGIT_REGION);
|
|
|
|
+ //8个寄存器
|
|
|
|
+ string digitRegion = $"{readRegisters[0]},{readRegisters[1]} {readRegisters[2]},{readRegisters[3]} " +
|
|
|
|
+ $"{readRegisters[4]},{readRegisters[5]} {readRegisters[6]},{readRegisters[7]}";
|
|
|
|
+ runConfig.DigitRegionWRFlag = true;
|
|
|
|
+ runConfig.DigitRegion = digitRegion;
|
|
|
|
+ GenerateSendAndRecvHexLog(true, readName);
|
|
|
|
+ GenerateValueLog(readName, digitRegion);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (meterType == Constant.METER_TYPE_IND)
|
|
|
|
+ {
|
|
|
|
+ readName = "首尾指针坐标";
|
|
|
|
+ readRegisters = _modbusMaster.ReadHoldingRegisters(devId,
|
|
|
|
+ Constant.MB_REGISTER_ADD_FTIND_REGION, Constant.MB_REGISTER_NUM_FTIND_REGION);
|
|
|
|
+ //4个寄存器
|
|
|
|
+ string ftIndRegion = $"{readRegisters[0]},{readRegisters[1]} {readRegisters[2]},{readRegisters[3]}";
|
|
|
|
+ runConfig.FTIndRegionWRFlag = true;
|
|
|
|
+ runConfig.FTIndRegion = ftIndRegion;
|
|
|
|
+ GenerateSendAndRecvHexLog(true, readName);
|
|
|
|
+ GenerateValueLog(readName, ftIndRegion);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return runConfig;
|
|
}
|
|
}
|
|
catch (TimeoutException ex)
|
|
catch (TimeoutException ex)
|
|
{
|
|
{
|
|
GenerateSendHexLog(readName);
|
|
GenerateSendHexLog(readName);
|
|
_message = $"读取{readName}超时,{ex.Message}";
|
|
_message = $"读取{readName}超时,{ex.Message}";
|
|
RWLog?.Invoke(_message);
|
|
RWLog?.Invoke(_message);
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
catch (SlaveException ex)
|
|
catch (SlaveException ex)
|
|
{
|
|
{
|
|
GenerateSendHexLog(readName);
|
|
GenerateSendHexLog(readName);
|
|
_message = $"读取{readName}Modbus错误,{ex.Message}";
|
|
_message = $"读取{readName}Modbus错误,{ex.Message}";
|
|
RWLog?.Invoke(_message);
|
|
RWLog?.Invoke(_message);
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
{
|
|
{
|
|
GenerateSendHexLog(readName);
|
|
GenerateSendHexLog(readName);
|
|
_message = $"读取{readName}错误,{ex.Message}";
|
|
_message = $"读取{readName}错误,{ex.Message}";
|
|
RWLog?.Invoke(_message);
|
|
RWLog?.Invoke(_message);
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
|
|
- return runConfig;
|
|
|
|
|
|
+ //读取照片字节数
|
|
|
|
+ public ushort ReadImageSize(string portName,int baudrate,byte devId)
|
|
|
|
+ {
|
|
|
|
+ ushort imageSize = 0;
|
|
|
|
+ if (OpenSerial(portName, baudrate))
|
|
|
|
+ {
|
|
|
|
+ string readName = ""; // = "照片文件大小";
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ readName = "照片文件大小";
|
|
|
|
+ //读取照片字节数
|
|
|
|
+ ushort[] readRegisters = _modbusMaster.ReadHoldingRegisters(devId, Constant.MB_REGISTER_IMAGE_SIZE, 1);
|
|
|
|
+ imageSize = readRegisters[0];
|
|
|
|
+ GenerateSendAndRecvHexLog(true, readName);
|
|
|
|
+ GenerateValueLog(readName, imageSize);
|
|
|
|
+ }
|
|
|
|
+ catch (TimeoutException ex)
|
|
|
|
+ {
|
|
|
|
+ GenerateSendHexLog(readName);
|
|
|
|
+ _message = $"读取{readName}超时,{ex.Message}";
|
|
|
|
+ RWLog?.Invoke(_message);
|
|
|
|
+ }
|
|
|
|
+ catch(SlaveException ex)
|
|
|
|
+ {
|
|
|
|
+ GenerateSendHexLog(readName);
|
|
|
|
+ _message = $"读取{readName}Modbus错误,{ex.Message}";
|
|
|
|
+ RWLog?.Invoke(_message);
|
|
|
|
+ }
|
|
|
|
+ catch(Exception ex)
|
|
|
|
+ {
|
|
|
|
+ GenerateSendHexLog(readName);
|
|
|
|
+ _message = $"读取{readName}错误,{ex.Message}";
|
|
|
|
+ RWLog?.Invoke(_message);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ CloseSerial();
|
|
|
|
+ return imageSize;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
public bool WriteRunConfig(string portName,int baudrate,byte devId,RunConfig runConfig)
|
|
public bool WriteRunConfig(string portName,int baudrate,byte devId,RunConfig runConfig)
|
|
{
|
|
{
|
|
bool blWrite = false;
|
|
bool blWrite = false;
|
|
@@ -203,95 +285,103 @@ namespace MV485.helper
|
|
string writeName = "";
|
|
string writeName = "";
|
|
try
|
|
try
|
|
{
|
|
{
|
|
- if (runConfig.MeterTypeWriteFlag)
|
|
|
|
|
|
+ if (runConfig.MeterTypeWRFlag)
|
|
{
|
|
{
|
|
writeName = "水表类型";
|
|
writeName = "水表类型";
|
|
_modbusMaster.WriteSingleRegister(devId, Constant.MB_REGISTER_ADD_METER_TYPE, runConfig.MeterType);
|
|
_modbusMaster.WriteSingleRegister(devId, Constant.MB_REGISTER_ADD_METER_TYPE, runConfig.MeterType);
|
|
GenerateValueLog(writeName, runConfig.LatestValue);
|
|
GenerateValueLog(writeName, runConfig.LatestValue);
|
|
- GenerateSendAndRecvHexLog(writeName);
|
|
|
|
|
|
+ GenerateSendAndRecvHexLog(false, writeName);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- if (runConfig.DnValueWriteFlag)
|
|
|
|
|
|
+ if (runConfig.DnValueWRFlag)
|
|
{
|
|
{
|
|
writeName = "每小时最大水流";
|
|
writeName = "每小时最大水流";
|
|
_modbusMaster.WriteSingleRegister(devId, Constant.MB_REGISTER_ADD_DN_VALUE, runConfig.DnValue);
|
|
_modbusMaster.WriteSingleRegister(devId, Constant.MB_REGISTER_ADD_DN_VALUE, runConfig.DnValue);
|
|
GenerateValueLog(writeName, runConfig.DnValue);
|
|
GenerateValueLog(writeName, runConfig.DnValue);
|
|
- GenerateSendAndRecvHexLog(writeName);
|
|
|
|
|
|
+ GenerateSendAndRecvHexLog(false, writeName);
|
|
}
|
|
}
|
|
|
|
|
|
- if (runConfig.DigitCountWriteFlag)
|
|
|
|
|
|
+ if (runConfig.DigitCountWRFlag)
|
|
{
|
|
{
|
|
writeName = "数字个数";
|
|
writeName = "数字个数";
|
|
_modbusMaster.WriteSingleRegister(devId, Constant.MB_REGISTER_ADD_DIGIT_COUNT, runConfig.DigitCount);
|
|
_modbusMaster.WriteSingleRegister(devId, Constant.MB_REGISTER_ADD_DIGIT_COUNT, runConfig.DigitCount);
|
|
GenerateValueLog(writeName, runConfig.DigitCount);
|
|
GenerateValueLog(writeName, runConfig.DigitCount);
|
|
- GenerateSendAndRecvHexLog(writeName);
|
|
|
|
|
|
+ GenerateSendAndRecvHexLog(false, writeName);
|
|
}
|
|
}
|
|
|
|
|
|
- if (runConfig.IndCountWriteFlag)
|
|
|
|
|
|
+ if (runConfig.IndCountWRFlag)
|
|
{
|
|
{
|
|
writeName = "指针个数";
|
|
writeName = "指针个数";
|
|
_modbusMaster.WriteSingleRegister(devId, Constant.MB_REGISTER_ADD_INDICATOR_COUNT, runConfig.IndCount);
|
|
_modbusMaster.WriteSingleRegister(devId, Constant.MB_REGISTER_ADD_INDICATOR_COUNT, runConfig.IndCount);
|
|
GenerateValueLog(writeName, runConfig.IndCount);
|
|
GenerateValueLog(writeName, runConfig.IndCount);
|
|
- GenerateSendAndRecvHexLog(writeName);
|
|
|
|
|
|
+ GenerateSendAndRecvHexLog(false, writeName);
|
|
}
|
|
}
|
|
|
|
|
|
- if (runConfig.BrightValueWriteFlag)
|
|
|
|
|
|
+ if (runConfig.BrightValueWRFlag)
|
|
{
|
|
{
|
|
writeName = "照片亮度系数";
|
|
writeName = "照片亮度系数";
|
|
ushort brightValue = (ushort)(runConfig.BrightValue * 10);
|
|
ushort brightValue = (ushort)(runConfig.BrightValue * 10);
|
|
_modbusMaster.WriteSingleRegister(devId, Constant.MB_REGISTER_ADD_BRIGHT_VALUE, brightValue);
|
|
_modbusMaster.WriteSingleRegister(devId, Constant.MB_REGISTER_ADD_BRIGHT_VALUE, brightValue);
|
|
GenerateValueLog(writeName, runConfig.BrightValue);
|
|
GenerateValueLog(writeName, runConfig.BrightValue);
|
|
- GenerateSendAndRecvHexLog(writeName);
|
|
|
|
|
|
+ GenerateSendAndRecvHexLog(false, writeName);
|
|
}
|
|
}
|
|
|
|
|
|
- if (runConfig.LastUnitLevelWriteFlag)
|
|
|
|
|
|
+ if (runConfig.LastUnitLevelWRFlag)
|
|
{
|
|
{
|
|
writeName = "尾数单位等级";
|
|
writeName = "尾数单位等级";
|
|
_modbusMaster.WriteSingleRegister(devId, Constant.MB_REGISTER_ADD_LAST_UNIT_LEVEL, runConfig.LastUnitLevel);
|
|
_modbusMaster.WriteSingleRegister(devId, Constant.MB_REGISTER_ADD_LAST_UNIT_LEVEL, runConfig.LastUnitLevel);
|
|
GenerateValueLog(writeName, runConfig.LastUnitLevel);
|
|
GenerateValueLog(writeName, runConfig.LastUnitLevel);
|
|
- GenerateSendAndRecvHexLog(writeName);
|
|
|
|
|
|
+ GenerateSendAndRecvHexLog(false, writeName);
|
|
}
|
|
}
|
|
|
|
|
|
- if (runConfig.LatestValueWriteFlag)
|
|
|
|
|
|
+ if (runConfig.LatestValueWRFlag)
|
|
{
|
|
{
|
|
writeName = "表底读数";
|
|
writeName = "表底读数";
|
|
_modbusMaster.WriteMultipleRegisters(devId, Constant.MB_REGISTER_ADD_LATEST_VALUE, runConfig.LatestValues);
|
|
_modbusMaster.WriteMultipleRegisters(devId, Constant.MB_REGISTER_ADD_LATEST_VALUE, runConfig.LatestValues);
|
|
GenerateValueLog(writeName, runConfig.LatestValue);
|
|
GenerateValueLog(writeName, runConfig.LatestValue);
|
|
- GenerateSendAndRecvHexLog(writeName);
|
|
|
|
|
|
+ GenerateSendAndRecvHexLog(false, writeName);
|
|
}
|
|
}
|
|
|
|
|
|
- if (runConfig.LatestTImeWriteFlag && runConfig.LatestTimes != null)
|
|
|
|
|
|
+ if (runConfig.LatestTimeWRFlag && runConfig.LatestTimes != null)
|
|
{
|
|
{
|
|
writeName = "表底读数时间";
|
|
writeName = "表底读数时间";
|
|
_modbusMaster.WriteMultipleRegisters(devId, Constant.MB_REGISTER_ADD_LATEST_TIME, runConfig.LatestTimes);
|
|
_modbusMaster.WriteMultipleRegisters(devId, Constant.MB_REGISTER_ADD_LATEST_TIME, runConfig.LatestTimes);
|
|
GenerateValueLog(writeName, runConfig.LatestTime.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
GenerateValueLog(writeName, runConfig.LatestTime.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
- GenerateSendAndRecvHexLog(writeName);
|
|
|
|
|
|
+ GenerateSendAndRecvHexLog(false, writeName);
|
|
}
|
|
}
|
|
|
|
|
|
- if (runConfig.MeterRegionWriteFlag && runConfig.MeterRegions != null)
|
|
|
|
|
|
+ if (runConfig.MeterRegionWRFlag && runConfig.MeterRegions != null)
|
|
{
|
|
{
|
|
writeName = "表盘区域坐标";
|
|
writeName = "表盘区域坐标";
|
|
_modbusMaster.WriteMultipleRegisters(devId, Constant.MB_REGISTER_ADD_METER_REGION, runConfig.MeterRegions);
|
|
_modbusMaster.WriteMultipleRegisters(devId, Constant.MB_REGISTER_ADD_METER_REGION, runConfig.MeterRegions);
|
|
GenerateValueLog(writeName, runConfig.MeterRegion);
|
|
GenerateValueLog(writeName, runConfig.MeterRegion);
|
|
- GenerateSendAndRecvHexLog(writeName);
|
|
|
|
|
|
+ GenerateSendAndRecvHexLog(false, writeName);
|
|
}
|
|
}
|
|
|
|
|
|
- if (runConfig.DigitRegionWriteFlag && runConfig.DigitRegions != null)
|
|
|
|
|
|
+ if (runConfig.DigitRegionWRFlag && runConfig.DigitRegions != null)
|
|
{
|
|
{
|
|
writeName = "数字区域坐标";
|
|
writeName = "数字区域坐标";
|
|
_modbusMaster.WriteMultipleRegisters(devId, Constant.MB_REGISTER_ADD_DIGIT_REGION, runConfig.DigitRegions);
|
|
_modbusMaster.WriteMultipleRegisters(devId, Constant.MB_REGISTER_ADD_DIGIT_REGION, runConfig.DigitRegions);
|
|
GenerateValueLog(writeName, runConfig.DigitRegion);
|
|
GenerateValueLog(writeName, runConfig.DigitRegion);
|
|
- GenerateSendAndRecvHexLog(writeName);
|
|
|
|
|
|
+ GenerateSendAndRecvHexLog(false, writeName);
|
|
}
|
|
}
|
|
|
|
|
|
- if (runConfig.FTIndRegionWriteFlag && runConfig.FTIndRegions != null)
|
|
|
|
|
|
+ if (runConfig.FTIndRegionWRFlag && runConfig.FTIndRegions != null)
|
|
{
|
|
{
|
|
writeName = "指针水表首尾同刻度坐标";
|
|
writeName = "指针水表首尾同刻度坐标";
|
|
_modbusMaster.WriteMultipleRegisters(devId, Constant.MB_REGISTER_ADD_FTIND_REGION, runConfig.FTIndRegions);
|
|
_modbusMaster.WriteMultipleRegisters(devId, Constant.MB_REGISTER_ADD_FTIND_REGION, runConfig.FTIndRegions);
|
|
GenerateValueLog(writeName, runConfig.FTIndRegion);
|
|
GenerateValueLog(writeName, runConfig.FTIndRegion);
|
|
- GenerateSendAndRecvHexLog(writeName);
|
|
|
|
|
|
+ GenerateSendAndRecvHexLog(false, writeName);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ writeName = "配置确认";
|
|
|
|
+ _modbusMaster.WriteSingleRegister(devId, Constant.MB_REGISTER_ADD_EFFECT_FLAG, 1);
|
|
|
|
+ GenerateValueLog(writeName, runConfig.LatestValue);
|
|
|
|
+ GenerateSendAndRecvHexLog(false, writeName);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ blWrite = true;
|
|
}
|
|
}
|
|
catch (TimeoutException ex)
|
|
catch (TimeoutException ex)
|
|
{
|
|
{
|
|
@@ -393,9 +483,9 @@ namespace MV485.helper
|
|
}
|
|
}
|
|
|
|
|
|
//发送和接收数据的日志
|
|
//发送和接收数据的日志
|
|
- public void GenerateSendAndRecvHexLog(string readName)
|
|
|
|
|
|
+ public void GenerateSendAndRecvHexLog(bool blRead,string wrName)
|
|
{
|
|
{
|
|
- _message = $"读取{readName},发送: {GetSendDataString()}, 接收: {GetRecvDataString()}";
|
|
|
|
|
|
+ _message = $"{(blRead?"读取":"写入")}{wrName},发送: {GetSendDataString()}, 接收: {GetRecvDataString()}";
|
|
RWLog?.Invoke(_message);
|
|
RWLog?.Invoke(_message);
|
|
}
|
|
}
|
|
|
|
|