Fixed method DewaRework, add more rfid logs.

This commit is contained in:
Jan Augustin 2023-07-11 11:30:38 +02:00
parent 812ac96284
commit 9aad4a60ab
2 changed files with 42 additions and 13 deletions

View File

@ -1,4 +1,5 @@
using Sensus.iPerl.RfidCom.Helper; using log4net;
using Sensus.iPerl.RfidCom.Helper;
using Sensus.iPerl.RfidCom.Services; using Sensus.iPerl.RfidCom.Services;
using Sensus.iPerl.RfidCom.Structures; using Sensus.iPerl.RfidCom.Structures;
using System; using System;
@ -9,6 +10,8 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
{ {
internal class OpticalHeadTest internal class OpticalHeadTest
{ {
protected static readonly ILog rfidDataLogger = LogManager.GetLogger("RfidData");
internal static string OpenSealing(IperlHead iHead) internal static string OpenSealing(IperlHead iHead)
{ {
if (RfidCommands.OpenSealing($"COM{iHead.RfidComPortNr}")) return "OK"; if (RfidCommands.OpenSealing($"COM{iHead.RfidComPortNr}")) return "OK";
@ -25,6 +28,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
{ {
return RfidHelper.HexLiteral2Unsigned(RfidHelper.SwapHexcode(BitConverter.ToString(pcb).Replace("-", string.Empty))).ToString(); return RfidHelper.HexLiteral2Unsigned(RfidHelper.SwapHexcode(BitConverter.ToString(pcb).Replace("-", string.Empty))).ToString();
} }
rfidDataLogger.Error($"COM{iHead.RfidComPortNr}: ReadRequest_PCB ({MessageID.Configuration},16,5...) <- Error: {readRetVal}");
return "Error"; return "Error";
} }
catch (Exception ex) catch (Exception ex)

View File

@ -26,6 +26,7 @@ using System.Text.RegularExpressions;
using Sensus.iPerl.RfidCom.Services; using Sensus.iPerl.RfidCom.Services;
using System.Threading.Tasks; using System.Threading.Tasks;
using Sensus.iPerl.RfidCom.Structures; using Sensus.iPerl.RfidCom.Structures;
using Sensus.iPerl.RfidCom.Model.Enums;
namespace TBF.Rig.TestMethods.iPerlCommunication namespace TBF.Rig.TestMethods.iPerlCommunication
{ {
@ -248,12 +249,19 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
} }
catch (Exception ex) catch (Exception ex)
{ {
rfidDataLogger.Error($"COM{iperlHead.RfidComPortNr}: Error: {ex.Message}"); if (messageID == MessageID.RadioPassthrough || messageID == MessageID.ASICRegisterReadTest)
Thread.Sleep(cfg.WaitTimeAfterFailure);
if (i > 1)
{ {
rfidDataLogger.Error($"COM{iperlHead.RfidComPortNr}: Reopen the com port."); Thread.Sleep(1500);
writer.ClosePort(); }
else
{
rfidDataLogger.Error($"COM{iperlHead.RfidComPortNr}: Error: {ex.Message}");
Thread.Sleep(cfg.WaitTimeAfterFailure);
if (i > 1)
{
rfidDataLogger.Error($"COM{iperlHead.RfidComPortNr}: Reopen the com port.");
writer.ClosePort();
}
} }
} }
} }
@ -2360,20 +2368,37 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
byte arrow = (flowDir == FlowDir.L_R) ? (byte)1 : (byte)2; /// L-R is reverse flow (=1), R-L is forward flow (=2)(default) byte arrow = (flowDir == FlowDir.L_R) ? (byte)1 : (byte)2; /// L-R is reverse flow (=1), R-L is forward flow (=2)(default)
iPerlDataWrite[] dataToBeWritten = new iPerlDataWrite[] List<iPerlDataWrite> dataToBeWritten = new List<iPerlDataWrite>
{ {
new iPerlDataWrite(MessageID.MetrologyMemory, 0x19A1, new byte[] { (byte)0xA5 }, "Open Sealing"), new iPerlDataWrite(MessageID.MetrologyMemory, 0x19A1, new byte[] { (byte)0xA5 }, "Open Sealing"),
new iPerlDataWrite(MessageID.RadioPassthrough, 0x1804, new byte[] { (byte)1 }, "System Status"),
new iPerlDataWrite(MessageID.MetrologyMemory, 0x1985, new byte[] { arrow }, "Arrow"), new iPerlDataWrite(MessageID.MetrologyMemory, 0x1985, new byte[] { arrow }, "Arrow"),
new iPerlDataWrite(MessageID.MetrologyMemory, 0x199C, new byte[5], "Clear S/N"), new iPerlDataWrite(MessageID.MetrologyMemory, 0x199C, new byte[5], "Clear S/N"),
new iPerlDataWrite(MessageID.Command, 0x0000, new byte[] { (byte)Command.SetActiveMode }, "Set active mode"),
new iPerlDataWrite(MessageID.Configuration, 0x0015, new byte[] { (byte)0xA0 }, "Test mode config = A0"), new iPerlDataWrite(MessageID.Configuration, 0x0015, new byte[] { (byte)0xA0 }, "Test mode config = A0"),
new iPerlDataWrite(MessageID.MetrologyMemory, 0x198E, new byte[] { (byte)(2510 & 0xFF), (byte)((2510 >> 8) & 0xFF) }, "Receipt mean current"), new iPerlDataWrite(MessageID.MetrologyMemory, 0x198E, new byte[] { (byte)(2510 & 0xFF), (byte)((2510 >> 8) & 0xFF) }, "Receipt mean current")
new iPerlDataWrite(MessageID.RadioPassthrough, 0x18A2, new byte[] { (byte)0x4A, (byte)0x53, (byte)0x3B, (byte)0x8F, };
// check meter status: 1-Idle, 2-Active, 3-Test, 4-End Of Life
if (0 == ReadRequestPort(ihead, MessageID.Configuration, 1, 1, out byte[] rdData))
{
int eMeterState = (int)((SByte)rdData[0]);
switch (eMeterState)
{
case 1: // Idle -> Test -> Active
dataToBeWritten.Add(new iPerlDataWrite(MessageID.Command, 0x0000, new byte[] { (byte)Command.SetTestMode }, "Set test mode"));
dataToBeWritten.Add(new iPerlDataWrite(MessageID.Command, 0x0000, new byte[] { (byte)Command.SetActiveMode }, "Set active mode"));
break;
case 3: // Test Mode -> Active
dataToBeWritten.Add(new iPerlDataWrite(MessageID.Command, 0x0000, new byte[] { (byte)Command.SetActiveMode }, "Set active mode"));
break;
}
}
dataToBeWritten.Add(new iPerlDataWrite(MessageID.RadioPassthrough, 0x1804, new byte[] { (byte)1 }, "System Status"));
dataToBeWritten.Add(new iPerlDataWrite(MessageID.RadioPassthrough, 0x1898, new byte[] { (byte)3 }, "WakeUpInterval"));
dataToBeWritten.Add(new iPerlDataWrite(MessageID.RadioPassthrough, 0x18A2, new byte[] { (byte)0x4A, (byte)0x53, (byte)0x3B, (byte)0x8F,
(byte)0x70, (byte)0x31, (byte)0xC2, (byte)0x5D, (byte)0x70, (byte)0x31, (byte)0xC2, (byte)0x5D,
(byte)0x6F, (byte)0x2D, (byte)0xE8, (byte)0x07, (byte)0x6F, (byte)0x2D, (byte)0xE8, (byte)0x07,
(byte)0x6E, (byte)0x0F, (byte)0x97, (byte)0xC3, }, "AES Key Crypted"), (byte)0x6E, (byte)0x0F, (byte)0x97, (byte)0xC3, }, "AES Key Crypted"));
};
int successfyllyWrittenFlags = 0; /// Ones in this word represent communication failures, LSB represents the first step int successfyllyWrittenFlags = 0; /// Ones in this word represent communication failures, LSB represents the first step
int mask = 1; int mask = 1;