diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs
index 02cdb9bb1..ebcef350d 100644
--- a/TBF/Properties/AssemblyInfo.cs
+++ b/TBF/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
-[assembly: AssemblyVersion("3.9.3059.1")]
-[assembly: AssemblyFileVersion("3.9.3059.1")]
+[assembly: AssemblyVersion("3.9.3062.1")]
+[assembly: AssemblyFileVersion("3.9.3062.1")]
diff --git a/TBF/Rig/BridgeComponents/GciBridge/GciBridge.cs b/TBF/Rig/BridgeComponents/GciBridge/GciBridge.cs
index ff73cc42d..bab81b8fa 100644
--- a/TBF/Rig/BridgeComponents/GciBridge/GciBridge.cs
+++ b/TBF/Rig/BridgeComponents/GciBridge/GciBridge.cs
@@ -43,7 +43,7 @@ namespace TBF.Rig.BridgeComponents.GciBridge
public bool HasWriter { get { return writer != null; } }
public bool IsGuiInitialized { get { return gciGUI != null; } }
public bool IsExternalInitialized { get { return gciExternalInterface != null; } }
- public ExternalInterfaceType GciExternalInterface { get { return gciExternalInterface; } }
+ public GciType GciExternalInterface { get { return gciExternalInterface; } }
public GciBridgeCfg GciBridgeCfg { get { return gciBridgeCfg; } }
public UdsReaderType GetReader()
diff --git a/TBF/Rig/Input/DataStorage/UniDataStorageReader/Reader.cs b/TBF/Rig/Input/DataStorage/UniDataStorageReader/Reader.cs
index 657780198..d4a5fcd83 100644
--- a/TBF/Rig/Input/DataStorage/UniDataStorageReader/Reader.cs
+++ b/TBF/Rig/Input/DataStorage/UniDataStorageReader/Reader.cs
@@ -77,17 +77,17 @@ namespace TBF.Rig.Input.DataStorage.UniDataStorageReader
public void Initialize()
{
- throw new NotImplementedException();
+ //throw new NotImplementedException();
}
public void StartChangeHandler()
{
- throw new NotImplementedException();
+ //throw new NotImplementedException();
}
public void StopChangeHandler()
{
- throw new NotImplementedException();
+ //throw new NotImplementedException();
}
}
}
diff --git a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writer.cs b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writer.cs
index 2d97dac8b..759bcf15d 100644
--- a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writer.cs
+++ b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writer.cs
@@ -150,17 +150,17 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter
public void Initialize()
{
- throw new NotImplementedException();
+ // throw new NotImplementedException();
}
public void StartChangeHandler()
{
- throw new NotImplementedException();
+ //throw new NotImplementedException();
}
public void StopChangeHandler()
{
- throw new NotImplementedException();
+ // throw new NotImplementedException();
}
private WriterDiagnosticResult ValidateCapabilities(IDataStorageWriter writer, DataWriteRequest request)
diff --git a/TBF/Rig/RegisterReaders/GenesisRegReader/communication/OptoHeadTest.cs b/TBF/Rig/RegisterReaders/GenesisRegReader/communication/OptoHeadTest.cs
index db5df7650..8b107afc2 100644
--- a/TBF/Rig/RegisterReaders/GenesisRegReader/communication/OptoHeadTest.cs
+++ b/TBF/Rig/RegisterReaders/GenesisRegReader/communication/OptoHeadTest.cs
@@ -1,5 +1,7 @@
using System;
+using System.Threading.Tasks;
using Common;
+using GenesisCordonelInterface.API;
using log4net;
using TBF.Rig.BridgeComponents.GciBridge;
using TBF.Rig.RegisterReaders.GenesisRegReader.implementations;
@@ -18,18 +20,16 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
public void BuildConnection(GenesisSmartReader genesidHead)
{
- InitSlot(1, genesidHead.RfidComPortNr, genesidHead.RfidComPortNr);
- genesidHead?.CommInterfaceBridgeComponent.ConnectExternal();
-
- // return new SerialDriverBuilder()
- // .WithPort($"COM{genesidHead.RfidComPortNr}")
- // .WithBaudRate(9600)
- // .WithDataBits(8)
- // .WithParity(Parity.None)
- // .WithStopBits(StopBits.One)
- // .WithTimeouts(4000, 2000)
- // .BuildAndConnect();
-
+ GciPublicModels.GciInitSlotRequest request = new GciPublicModels.GciInitSlotRequest
+ {
+ SlotId = genesidHead.GetSlotNr,
+ ConfigSource = GciPublicModels.GciConfigSource.InterfaceInputConfig,
+ PasswordSource = GciPublicModels.GciPasswordSource.InterfaceInputPassword,
+ RequestPort = new GciPublicModels.GciPortConfig{ PortName = $"COM{genesidHead.RfidComPortNr}"/*, Type = "COM"*/},
+ StreamingPort = new GciPublicModels.GciPortConfig{ PortName = $"COM{genesidHead.OptoComPortNr}"/*, Type = "COM"*/}
+ };
+ genesidHead?.CommInterfaceBridge.InitSlotAsync(request);
+ slotDefined = true;
}
public OptoHeadTest(GenesisSmartReader genesisHead)
@@ -39,8 +39,9 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
public void CloseConnection()
{
- genesisHead?.CommInterfaceBridgeComponent?.DisconnectExternal();
-
+ genesisHead?.CommInterfaceBridge?.DisconnectAsync(genesisHead.GetSlotNr);
+ DisposeSlot();
+
// if (serialDriver != null)
// serialDriver.CloseConnection();
// serialDriver = null;
@@ -48,117 +49,91 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
private bool slotDefined = false;
- public bool SlotDefined { get => slotDefined; }
-
- ///
- ///
- ///
- /// must be unique to one connection
- ///
- ///
- public void InitSlot(int slotNr, int ComportNr, int OptoComPortNr )
- {
- // init slot
-
- //create slot object - set pots, etc.
- //bridge - call init slot
-
- //switch
- slotDefined = true;
- }
+ public bool IsSlotDefined { get => slotDefined; }
+
public void DisposeSlot()
{
slotDefined = false;
}
- public bool ReadSerialNr()
+ public async Task ReadSerialNrAsync()
{
- if (slotDefined)
- {
- InitSlot(1,1,1);
- }
-
try
{
- if (genesisHead != null)
- {
- if (string.IsNullOrEmpty(genesisHead.CommInterface))
- {
- return false;
- }
+ if (genesisHead == null)
+ return false;
- if (genesisHead.CommInterfaceBridge != null)
- {
- //we have bridge interface
-
- GciBridge gciBridge = genesisHead.CommInterfaceBridgeComponent;
- gciBridge.GciBridgeCfg.EnableExternalAccess = true;
- gciBridge.GciBridgeCfg.EnableGuiAccess = false;
- gciBridge.Initialize();
- if (!gciBridge.GciExternalInterface.IsConnected)
- {
- gciBridge.ConnectExternal();
- //gciBridge.GciExternalInterface.InitOneMeterFromExtern(1, GenesisMeter.ConfigSource.ExternStorage, GenesisMeter.PasswordSource.ExternUniStorage, GenesisMeter.PasswordSource.ExternUniStorage);
-
-
- if (gciBridge.GciExternalInterface?.IsConnected == null)
- BuildConnection(genesisHead);
-
- gciBridge.DisconnectExternal();
- }
-
- }
-
-
-
-
- // log.Debug("ReadSerialNr called for iHead: " + genesisHead.ToString() + " serialDriver: " + serialDriver);
- // RadioService headService = new RadioService(serialDriver);
- // string serialNo = headService.ReadRequest_PCB(ref genesisHead);
- // if (!string.IsNullOrEmpty(serialNo))
- // {
- // log.Info($"Success Serial No: {serialNo} on COM{genesisHead.RfidComPortNr} serialDriver: {serialDriver}");
- // return true;
- // }
- }
+ if (string.IsNullOrEmpty(genesisHead.CommInterface))
+ return false;
+
+ if (genesisHead.CommInterfaceBridge == null)
+ return false;
+
+ if (!IsSlotDefined)
+ BuildConnection(genesisHead);
+
+ GciBridge gciBridge = genesisHead.CommInterfaceBridge;
+
+ gciBridge.GciBridgeCfg.EnableExternalAccess = true;
+ gciBridge.GciBridgeCfg.EnableGuiAccess = false;
+ gciBridge.Initialize();
+
+ RadioService headService = new RadioService(gciBridge);
+
+ string pcbId = await headService.ReadRequest_PCBAsync(genesisHead);
+
+ return !string.IsNullOrEmpty(pcbId);
}
catch (Exception ex)
{
- log.Error($"ReadSerialNr(COM{genesisHead.RfidComPortNr}) - Exception:" + ex.Message);
+ log.Error($"ReadSerialNr(COM{genesisHead?.RfidComPortNr}) - Exception: {ex}");
+ return false;
}
-
- return false;
}
public string ReadRequest_PCB()
{
- if (genesisHead.DebugLevel == DebugMode.Simulate)
- {
- return "-OK Simulated response-";
- }
+ // if (genesisHead.DebugLevel == DebugMode.Simulate)
+ // {
+ // log.Debug("ReadRequest_PCB() - Simulated response");
+ // return "-OK Simulated response-";
+ // }
try
{
- if (genesisHead != null)
- {
- if(genesisHead.RfidComPortNr != 0 && !genesisHead?.CommInterfaceBridgeComponent?.GciExternalInterface?.IsConnected == false)
- BuildConnection(genesisHead);
-
-
- RadioService headService = new RadioService(genesisHead?.CommInterfaceBridgeComponent);
- string serialNo = headService.ReadRequest_PCB(ref genesisHead);
- log.Info($"PCB Number: {serialNo} on COM{genesisHead.RfidComPortNr} SlotNr: {genesisHead.GetSlotNr} serialDriver: {genesisHead?.CommInterfaceBridgeComponent}");
- return serialNo;
- }
+ log.Debug("ReadRequest_PCB called for iHead: " + genesisHead.ToString());
+ if (genesisHead == null)
+ return string.Empty;
+
+ if (string.IsNullOrEmpty(genesisHead.CommInterface))
+ return string.Empty;
+
+ if (genesisHead.CommInterfaceBridge == null)
+ return string.Empty;
+
+ if (!IsSlotDefined) { BuildConnection(genesisHead); }
+
+ GciBridge gciBridge = genesisHead.CommInterfaceBridge;
+ log.Debug("ReadRequest_PCB() - GciBridge created");
+
+ gciBridge.GciBridgeCfg.EnableExternalAccess = true;
+ gciBridge.GciBridgeCfg.EnableGuiAccess = false;
+ gciBridge.Initialize();
+ log.Debug("ReadRequest_PCB() - GciBridge initialized");
+
+
+ RadioService headService = new RadioService(gciBridge);
+ string serialNo = headService.ReadRequest_PCB(ref genesisHead);
+ log.Info(
+ $"PCB Number: {serialNo} on COM{genesisHead.RfidComPortNr} SlotNr: {genesisHead.GetSlotNr} serialDriver: {genesisHead?.CommInterfaceBridge}");
+ return serialNo;
}
catch (Exception ex)
{
log.Error("ReadRequest_PCB() - Exception:" + ex.StackTrace);
return (ex.Message.ToString());
}
-
- return "";
}
///
@@ -168,6 +143,7 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
///
public bool SetTestMode()
{
+ if (!IsSlotDefined) { BuildConnection(genesisHead); }
log.Debug("SetTestMode called for iHead: " + genesisHead.ToString());
bool activityModeActive = SetActivityMode_Active();
bool optActiveMode = SetOptTestMode();
@@ -183,6 +159,7 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
///
public bool SetActiveMode()
{
+ if (!IsSlotDefined) { BuildConnection(genesisHead); }
log.Debug("SetActiveMode called for iHead: " + genesisHead.ToString());
bool optActiveMode = SetOptActiveMode(genesisHead);
//bool activityModeIdle = SetActivityMode_Idle();
@@ -245,25 +222,25 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
return true;
}
- try
- {
- if (genesisHead != null)
- {
- if(genesisHead.RfidComPortNr != 0 && !genesisHead?.CommInterfaceBridgeComponent?.GciExternalInterface?.IsConnected == false)
- BuildConnection(genesisHead);
-
-
- RadioService headService = new RadioService(genesisHead?.CommInterfaceBridgeComponent);
- bool optTestMode = headService.SetOptTestMode(genesisHead);
- if (genesisHead.ConfigStruct != null)
- genesisHead.ConfigStruct.OpthoStatusMode = optTestMode ? DiagnosticLedState.State4 : DiagnosticLedState.StatusUnknown;
- return optTestMode;
- }
- }
- catch (Exception ex)
- {
- log.Error("SetOptTestMode() - Exception:" + ex.StackTrace);
- }
+ // try
+ // {
+ // if (genesisHead != null)
+ // {
+ // if(genesisHead.RfidComPortNr != 0 && !genesisHead?.CommInterfaceBridgeComponent?.GciExternalInterface?.IsConnected == false)
+ // BuildConnection(genesisHead);
+ //
+ //
+ // RadioService headService = new RadioService(genesisHead?.CommInterfaceBridgeComponent);
+ // bool optTestMode = headService.SetOptTestMode(genesisHead);
+ // if (genesisHead.ConfigStruct != null)
+ // genesisHead.ConfigStruct.OpthoStatusMode = optTestMode ? DiagnosticLedState.State4 : DiagnosticLedState.StatusUnknown;
+ // return optTestMode;
+ // }
+ // }
+ // catch (Exception ex)
+ // {
+ // log.Error("SetOptTestMode() - Exception:" + ex.StackTrace);
+ // }
return false;
@@ -284,17 +261,19 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
return "-OK Simulated response-";
}
- try
- {
- bool activeMode = SetActiveMode();
- isTestModeSuccessful = activeMode;
- return activeMode ? "Set Active Mode - OK" : "Set Active Mode - FAILED";
- }
- catch (Exception ex)
- {
- log.Error("SetActiveMode() - Exception:" + ex.StackTrace);
- return "Set Active Mode - Exception";
- }
+ // try
+ // {
+ // bool activeMode = SetActiveMode();
+ // isTestModeSuccessful = activeMode;
+ // return activeMode ? "Set Active Mode - OK" : "Set Active Mode - FAILED";
+ // }
+ // catch (Exception ex)
+ // {
+ // log.Error("SetActiveMode() - Exception:" + ex.StackTrace);
+ // return "Set Active Mode - Exception";
+ // }
+
+ return "Set Active Mode - No Implemented Exception";
}
///
/// Set Optical -> Active mode
@@ -304,21 +283,21 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
///
private bool SetOptActiveMode(GenesisSmartReader iHead)
{
- try
- {
- if (iHead != null)
- {
- if(genesisHead.RfidComPortNr != 0 && !genesisHead?.CommInterfaceBridgeComponent?.GciExternalInterface?.IsConnected == false)
- BuildConnection(genesisHead);
-
- RadioService headService = new RadioService(genesisHead?.CommInterfaceBridgeComponent);
- return headService.SetOptActiveMode(iHead);
- }
- }
- catch (Exception ex)
- {
- log.Error("SetOptActiveMode() - Exception:" + ex.StackTrace);
- }
+ // try
+ // {
+ // if (iHead != null)
+ // {
+ // if(genesisHead.RfidComPortNr != 0 && !genesisHead?.CommInterfaceBridgeComponent?.GciExternalInterface?.IsConnected == false)
+ // BuildConnection(genesisHead);
+ //
+ // RadioService headService = new RadioService(genesisHead?.CommInterfaceBridgeComponent);
+ // return headService.SetOptActiveMode(iHead);
+ // }
+ // }
+ // catch (Exception ex)
+ // {
+ // log.Error("SetOptActiveMode() - Exception:" + ex.StackTrace);
+ // }
return false;
}
@@ -331,23 +310,24 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
///
private bool SetActivityMode_Active()
{
- try
- {
- if (genesisHead != null)
- {
- if (genesisHead.RfidComPortNr != 0 &&
- !genesisHead?.CommInterfaceBridgeComponent?.GciExternalInterface?.IsConnected == false)
- BuildConnection(genesisHead);
-
- log.Debug("SetActivityMode_Active called for iHead: " + genesisHead.ToString());
- RadioService headService = new RadioService(genesisHead?.CommInterfaceBridgeComponent);
- return headService.SetActivityMode_Active(genesisHead);
- }
- }
- catch (Exception ex)
- {
- log.Error("SetActivityMode_Active() - Exception:" + ex.StackTrace);
- }
+
+ // try
+ // {
+ // if (genesisHead != null)
+ // {
+ // if (genesisHead.RfidComPortNr != 0 &&
+ // !genesisHead?.CommInterfaceBridgeComponent?.GciExternalInterface?.IsConnected == false)
+ // BuildConnection(genesisHead);
+ //
+ // log.Debug("SetActivityMode_Active called for iHead: " + genesisHead.ToString());
+ // RadioService headService = new RadioService(genesisHead?.CommInterfaceBridgeComponent);
+ // return headService.SetActivityMode_Active(genesisHead);
+ // }
+ // }
+ // catch (Exception ex)
+ // {
+ // log.Error("SetActivityMode_Active() - Exception:" + ex.StackTrace);
+ // }
return false;
}
@@ -360,24 +340,24 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
///
private bool SetActivityMode_Idle()
{
- try
- {
- if (genesisHead != null)
- {
- if (genesisHead.RfidComPortNr != 0 &&
- !genesisHead?.CommInterfaceBridgeComponent?.GciExternalInterface?.IsConnected == false)
- BuildConnection(genesisHead);
-
- log.Debug("SetActivityMode_Idle called for iHead: " + genesisHead.ToString());
-
- RadioService headService = new RadioService(genesisHead?.CommInterfaceBridgeComponent);
- return headService.SetActivityMode_Idle(genesisHead);
- }
- }
- catch (Exception ex)
- {
- log.Error("SetActivityMode_Idle() - Exception:" + ex.StackTrace);
- }
+ // try
+ // {
+ // if (genesisHead != null)
+ // {
+ // if (genesisHead.RfidComPortNr != 0 &&
+ // !genesisHead?.CommInterfaceBridgeComponent?.GciExternalInterface?.IsConnected == false)
+ // BuildConnection(genesisHead);
+ //
+ // log.Debug("SetActivityMode_Idle called for iHead: " + genesisHead.ToString());
+ //
+ // RadioService headService = new RadioService(genesisHead?.CommInterfaceBridgeComponent);
+ // return headService.SetActivityMode_Idle(genesisHead);
+ // }
+ // }
+ // catch (Exception ex)
+ // {
+ // log.Error("SetActivityMode_Idle() - Exception:" + ex.StackTrace);
+ // }
return false;
}
@@ -405,34 +385,34 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
try
{
- if (genesisHead != null)
- {
- genesisHead.ConfigStruct = new ConfigStruct();
-
- if (genesisHead.RfidComPortNr != 0 &&
- !genesisHead?.CommInterfaceBridgeComponent?.GciExternalInterface?.IsConnected == false)
- BuildConnection(genesisHead);
-
- RadioService headService = new RadioService(genesisHead?.CommInterfaceBridgeComponent);
- genesisHead.ConfigStruct.PCBNumberString = headService.ReadRequest_PCB(ref genesisHead);
- genesisHead.ConfigStruct.StatusMode = headService.GetActivityStatusMode(genesisHead);
- genesisHead.ConfigStruct.Unit = headService.GetUnit(genesisHead);
-
- if (ledState != DiagnosticLedState.StatusUnknown) // do set
- {
- genesisHead.ConfigStruct.OpthoStatusMode = headService.SetOptoStatusMode(genesisHead, ledState);
- }
- else
- {
- genesisHead.ConfigStruct.OpthoStatusMode = DiagnosticLedState.StatusUnknown;
- }
-
- genesisHead.ConfigStruct.Version = headService.GetVersion(genesisHead);
-
- return true;
- }
-
- else
+ // if (genesisHead != null)
+ // {
+ // genesisHead.ConfigStruct = new ConfigStruct();
+ //
+ // if (genesisHead.RfidComPortNr != 0 &&
+ // !genesisHead?.CommInterfaceBridgeComponent?.GciExternalInterface?.IsConnected == false)
+ // BuildConnection(genesisHead);
+ //
+ // RadioService headService = new RadioService(genesisHead?.CommInterfaceBridgeComponent);
+ // genesisHead.ConfigStruct.PCBNumberString = headService.ReadRequest_PCB(ref genesisHead);
+ // genesisHead.ConfigStruct.StatusMode = headService.GetActivityStatusMode(genesisHead);
+ // genesisHead.ConfigStruct.Unit = headService.GetUnit(genesisHead);
+ //
+ // if (ledState != DiagnosticLedState.StatusUnknown) // do set
+ // {
+ // genesisHead.ConfigStruct.OpthoStatusMode = headService.SetOptoStatusMode(genesisHead, ledState);
+ // }
+ // else
+ // {
+ // genesisHead.ConfigStruct.OpthoStatusMode = DiagnosticLedState.StatusUnknown;
+ // }
+ //
+ // genesisHead.ConfigStruct.Version = headService.GetVersion(genesisHead);
+ //
+ // return true;
+ // }
+ //
+ // else
{
return false;
}
diff --git a/TBF/Rig/RegisterReaders/GenesisRegReader/communication/RadioService.cs b/TBF/Rig/RegisterReaders/GenesisRegReader/communication/RadioService.cs
index bdc8f894f..a48093247 100644
--- a/TBF/Rig/RegisterReaders/GenesisRegReader/communication/RadioService.cs
+++ b/TBF/Rig/RegisterReaders/GenesisRegReader/communication/RadioService.cs
@@ -1,10 +1,11 @@
+using System;
+using System.Threading.Tasks;
+using GenesisCordonelInterface.API;
using log4net;
using TBF.Rig.BridgeComponents.GciBridge;
using TBF.Rig.RegisterReaders.GenesisRegReader.implementations;
using TBF.Rig.TestMethods.iPerlCommunication.communication.C4.diagnosticLed;
-using TBF.Rig.TestMethods.iPerlCommunication.communication.C4.IperlHatProtocol;
using TBF.Rig.TestMethods.iPerlCommunication.communication.C4.protocolCommons;
-using TBF.Rig.TestMethods.iPerlCommunication.communication.Utils;
namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
@@ -24,68 +25,144 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
log.Debug("RadioService created with GciBridge= " + genesisHeadCommInterfaceBridgeComponent + "");
}
- public string ReadRequest_PCB(ref GenesisSmartReader iHead)
+ public async Task ReadRequest_PCBAsync(GenesisSmartReader iHead)
{
- if (_bridge?.GciExternalInterface?.IsConnected == false)
+ if (iHead?.CommInterfaceBridge == null)
+ return null;
+
+ var connectTask = iHead.CommInterfaceBridge.ConnectAsync(iHead.GetSlotNr);
+
+ // Wait either for ConnectAsync or timeout
+ if (await Task.WhenAny(connectTask, Task.Delay(TimeSpan.FromMinutes(1))) != connectTask)
{
- _bridge?.GciExternalInterface?.ConnectOneMeter(iHead.GetSlotNr);
+ // Timed out
+ return null;
}
-
- //Request PCB Number
- string pcbId = _bridge?.GciExternalInterface?.GetPcbId(iHead.GetSlotNr);
+ var result = await connectTask;
+
+ if (result == null || !result.Success || !result.IsLoggedOn)
+ return null;
+
+ string pcbId = result.PcbId;
+
if (!string.IsNullOrEmpty(pcbId))
{
- if (iHead.ConfigStruct != null) // store mechanism
- {
+ if (iHead.ConfigStruct != null)
iHead.ConfigStruct.PCBNumberString = pcbId;
- }
+
return pcbId;
}
+
+ return null;
+ }
+
+
+ public string ReadRequest_PCB(ref GenesisSmartReader iHead)
+ {
+ log.Debug("ReadRequest_PCB called for iHead: " + iHead.ToString());
+ if (iHead?.CommInterfaceBridge == null)
+ return null;
+
+ var connectTask = iHead.CommInterfaceBridge.ConnectAsync(iHead.GetSlotNr);
+ log.Debug("ReadRequest_PCB() - ConnectAsync created, Now waiting for result");
+
+ var completedTask = Task.WhenAny(
+ connectTask,
+ Task.Delay(TimeSpan.FromMinutes(1))
+ ).GetAwaiter().GetResult();
+ log.Debug("ReadRequest_PCB() - CompletedTask: " + completedTask);
+
+ // Timeout happened
+ if (completedTask != connectTask)
+ {
+ log.Debug("ReadRequest_PCB() - Timeout happened");
+ return null;
+ }
+
+ var result = connectTask.GetAwaiter().GetResult();
+ log.Debug("ReadRequest_PCB() - ConnectAsync completed");
+
+ if (result == null || !result.Success || !result.IsLoggedOn)
+ return null;
+ log.Debug("ReadRequest_PCB() - result: " + result);
+
+ string pcbId = result.PcbId;
+ log.Debug("ReadRequest_PCB() - pcbId: " + pcbId);
+
+ if (!string.IsNullOrEmpty(pcbId))
+ {
+ if (iHead.ConfigStruct != null)
+ {
+ iHead.ConfigStruct.PCBNumberString = pcbId;
+ log.Debug("ReadRequest_PCB() - iHead.ConfigStruct.PCBNumberString: " + iHead.ConfigStruct.PCBNumberString);
+ }
+
+ return pcbId;
+ }
+
+ log.Debug("ReadRequest_PCB() - pcbId is empty");
return null;
}
public ProtocolStatuses GetActivityStatusMode(GenesisSmartReader iHead)
{
- if (_bridge?.GciExternalInterface?.IsConnected == false)
+ if (iHead?.CommInterfaceBridge == null)
+ return ProtocolStatuses.Unknown;
+
+ var connectResult = iHead.CommInterfaceBridge
+ .ConnectAsync(iHead.GetSlotNr)
+ .GetAwaiter()
+ .GetResult();
+
+ if (connectResult == null || !connectResult.Success || !connectResult.IsLoggedOn)
+ return ProtocolStatuses.Unknown;
+
+ var pcbResult = iHead.CommInterfaceBridge
+ .GetPcbIdAsync(iHead.GetSlotNr)
+ .GetAwaiter()
+ .GetResult();
+
+ if (pcbResult == null || !pcbResult.Success || string.IsNullOrWhiteSpace(pcbResult.PcbId))
+ return ProtocolStatuses.Unknown;
+
+ if (iHead.ConfigStruct != null)
{
- _bridge?.GciExternalInterface?.ConnectOneMeter(iHead.GetSlotNr);
+ iHead.ConfigStruct.PCBNumberString = pcbResult.PcbId;
}
-
- //Request Activity Status Mode
- string pcbId = _bridge?.GciExternalInterface?.GetPcbId(iHead.GetSlotNr);
- if (!string.IsNullOrEmpty(pcbId))
- {
- if (iHead.ConfigStruct != null) // store mechanism
- {
- iHead.ConfigStruct.PCBNumberString = pcbId;
- }
- return ProtocolStatuses.Active;
- }
-
- return ProtocolStatuses.Unknown;
+ return ProtocolStatuses.Active;
}
public DiagnosticLedState SetOptoStatusMode(GenesisSmartReader iHead, DiagnosticLedState opthoStatusMode)
{
- if (_bridge?.GciExternalInterface?.IsConnected == false)
- {
- _bridge?.GciExternalInterface?.ConnectOneMeter(iHead.GetSlotNr);
- }
+ if (iHead?.CommInterfaceBridge == null)
+ return DiagnosticLedState.StatusUnknown;
+
+ var connectResult = iHead.CommInterfaceBridge
+ .ConnectAsync(iHead.GetSlotNr)
+ .GetAwaiter()
+ .GetResult();
+
+ if (connectResult == null || !connectResult.Success || !connectResult.IsLoggedOn)
+ return DiagnosticLedState.StatusUnknown;
//SetDiagnosticLEDState
- string pcbId = _bridge?.GciExternalInterface?.GetPcbId(iHead.GetSlotNr);
- if (!string.IsNullOrEmpty(pcbId))
+ var pcbResult = iHead.CommInterfaceBridge
+ .GetPcbIdAsync(iHead.GetSlotNr)
+ .GetAwaiter()
+ .GetResult();
+
+ if (pcbResult == null || !pcbResult.Success || string.IsNullOrWhiteSpace(pcbResult.PcbId))
+ return DiagnosticLedState.StatusUnknown;
+
+ if (iHead.ConfigStruct != null)
{
- if (iHead.ConfigStruct != null) // store mechanism
- {
- iHead.ConfigStruct.PCBNumberString = pcbId;
- }
- return DiagnosticLedState.State1;
+ iHead.ConfigStruct.PCBNumberString = pcbResult.PcbId;
}
+
return DiagnosticLedState.StatusUnknown;
@@ -103,20 +180,25 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
public string GetVersion(GenesisSmartReader iHead)
{
- if (_bridge?.GciExternalInterface?.IsConnected == false)
- {
- _bridge?.GciExternalInterface?.ConnectOneMeter(iHead.GetSlotNr);
- }
+ if (iHead?.CommInterfaceBridge == null)
+ return string.Empty;
- string version = _bridge?.GciExternalInterface?.GetPcbId(iHead.GetSlotNr);
- if (!string.IsNullOrEmpty(version))
- {
- if (iHead.ConfigStruct != null) // store mechanism
- {
- iHead.ConfigStruct.Version = version;
- }
- return version;
- }
+ var connectResult = iHead.CommInterfaceBridge
+ .ConnectAsync(iHead.GetSlotNr)
+ .GetAwaiter()
+ .GetResult();
+
+ if (connectResult == null || !connectResult.Success || !connectResult.IsLoggedOn)
+ return string.Empty;
+
+ // if (!string.IsNullOrEmpty(version))
+ // {
+ // if (iHead.ConfigStruct != null) // store mechanism
+ // {
+ // iHead.ConfigStruct.Version = version;
+ // }
+ // return version;
+ // }
return string.Empty;
}
@@ -124,63 +206,81 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
public bool SetActivityMode_Active(GenesisSmartReader iHead)
{
- if (_bridge?.GciExternalInterface?.IsConnected == false)
- {
- _bridge?.GciExternalInterface?.ConnectOneMeter(iHead.GetSlotNr);
- }
+ if (iHead?.CommInterfaceBridge == null)
+ return false;
+
+ var connectResult = iHead.CommInterfaceBridge
+ .ConnectAsync(iHead.GetSlotNr)
+ .GetAwaiter()
+ .GetResult();
+
+ if (connectResult == null || !connectResult.Success || !connectResult.IsLoggedOn)
+ return false;
//Set LED to state 4
- string version = _bridge?.GciExternalInterface?.GetPcbId(iHead.GetSlotNr);
- if (!string.IsNullOrEmpty(version))
- {
- if (iHead.ConfigStruct != null) // store mechanism
- {
- iHead.ConfigStruct.Version = version;
- }
- return true;
- }
+ // string version = _bridge?.GciExternalInterface?.GetPcbId(iHead.GetSlotNr);
+ // if (!string.IsNullOrEmpty(version))
+ // {
+ // if (iHead.ConfigStruct != null) // store mechanism
+ // {
+ // iHead.ConfigStruct.Version = version;
+ // }
+ // return true;
+ // }
return false;
}
public bool SetActivityMode_Idle(GenesisSmartReader iHead)
{
- if (_bridge?.GciExternalInterface?.IsConnected == false)
- {
- _bridge?.GciExternalInterface?.ConnectOneMeter(iHead.GetSlotNr);
- }
+ if (iHead?.CommInterfaceBridge == null)
+ return false;
+
+ var connectResult = iHead.CommInterfaceBridge
+ .ConnectAsync(iHead.GetSlotNr)
+ .GetAwaiter()
+ .GetResult();
+
+ if (connectResult == null || !connectResult.Success || !connectResult.IsLoggedOn)
+ return false;
//Set Activity State Idle
- string version = _bridge?.GciExternalInterface?.GetPcbId(iHead.GetSlotNr);
- if (!string.IsNullOrEmpty(version))
- {
- if (iHead.ConfigStruct != null) // store mechanism
- {
- iHead.ConfigStruct.Version = version;
- }
- return true;
- }
+ // string version = _bridge?.GciExternalInterface?.GetPcbId(iHead.GetSlotNr);
+ // if (!string.IsNullOrEmpty(version))
+ // {
+ // if (iHead.ConfigStruct != null) // store mechanism
+ // {
+ // iHead.ConfigStruct.Version = version;
+ // }
+ // return true;
+ // }
return false;
}
public bool SetOptTestMode(GenesisSmartReader iHead)
{
- if (_bridge?.GciExternalInterface?.IsConnected == false)
- {
- _bridge?.GciExternalInterface?.ConnectOneMeter(iHead.GetSlotNr);
- }
+ if (iHead?.CommInterfaceBridge == null)
+ return false;
+
+ var connectResult = iHead.CommInterfaceBridge
+ .ConnectAsync(iHead.GetSlotNr)
+ .GetAwaiter()
+ .GetResult();
+
+ if (connectResult == null || !connectResult.Success || !connectResult.IsLoggedOn)
+ return false;
//Set LED to state 4
- string version = _bridge?.GciExternalInterface?.GetPcbId(iHead.GetSlotNr);
- if (!string.IsNullOrEmpty(version))
- {
- if (iHead.ConfigStruct != null) // store mechanism
- {
- iHead.ConfigStruct.Version = version;
- }
- return true;
- }
+ // string version = _bridge?.GciExternalInterface?.GetPcbId(iHead.GetSlotNr);
+ // if (!string.IsNullOrEmpty(version))
+ // {
+ // if (iHead.ConfigStruct != null) // store mechanism
+ // {
+ // iHead.ConfigStruct.Version = version;
+ // }
+ // return true;
+ // }
return false;
@@ -193,41 +293,53 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
///
public bool SetOptActiveMode(GenesisSmartReader iHead)
{
- if (_bridge?.GciExternalInterface?.IsConnected == false)
- {
- _bridge?.GciExternalInterface?.ConnectOneMeter(iHead.GetSlotNr);
- }
+ if (iHead?.CommInterfaceBridge == null)
+ return false;
+
+ var connectResult = iHead.CommInterfaceBridge
+ .ConnectAsync(iHead.GetSlotNr)
+ .GetAwaiter()
+ .GetResult();
+
+ if (connectResult == null || !connectResult.Success || !connectResult.IsLoggedOn)
+ return false;
//Set LED to state 1
- string version = _bridge?.GciExternalInterface?.GetPcbId(iHead.GetSlotNr);
- if (!string.IsNullOrEmpty(version))
- {
- if (iHead.ConfigStruct != null) // store mechanism
- {
- iHead.ConfigStruct.Version = version;
- }
- return true;
- }
+ // string version = _bridge?.GciExternalInterface?.GetPcbId(iHead.GetSlotNr);
+ // if (!string.IsNullOrEmpty(version))
+ // {
+ // if (iHead.ConfigStruct != null) // store mechanism
+ // {
+ // iHead.ConfigStruct.Version = version;
+ // }
+ // return true;
+ // }
return false;
}
public string GetUnit(GenesisSmartReader iperlHead)
{
- if (_bridge?.GciExternalInterface?.IsConnected == false)
- {
- _bridge?.GciExternalInterface?.ConnectOneMeter(iperlHead.GetSlotNr);
- }
+ if (iperlHead?.CommInterfaceBridge == null)
+ return string.Empty;
- string version = _bridge?.GciExternalInterface?.GetPcbId(iperlHead.GetSlotNr);
- if (!string.IsNullOrEmpty(version))
- {
- if (iperlHead.ConfigStruct != null) // store mechanism
- {
- iperlHead.ConfigStruct.Version = version;
- }
- return version;
- }
+ var connectResult = iperlHead.CommInterfaceBridge
+ .ConnectAsync(iperlHead.GetSlotNr)
+ .GetAwaiter()
+ .GetResult();
+
+ if (connectResult == null || !connectResult.Success || !connectResult.IsLoggedOn)
+ return string.Empty;
+
+ // string version = _bridge?.GciExternalInterface?.GetPcbId(iperlHead.GetSlotNr);
+ // if (!string.IsNullOrEmpty(version))
+ // {
+ // if (iperlHead.ConfigStruct != null) // store mechanism
+ // {
+ // iperlHead.ConfigStruct.Version = version;
+ // }
+ // return version;
+ // }
return string.Empty;
}
diff --git a/TBF/Rig/RegisterReaders/GenesisRegReader/implementations/GenesisImplHeadTestCtrl.cs b/TBF/Rig/RegisterReaders/GenesisRegReader/implementations/GenesisImplHeadTestCtrl.cs
index ef40809f4..a586c95a2 100644
--- a/TBF/Rig/RegisterReaders/GenesisRegReader/implementations/GenesisImplHeadTestCtrl.cs
+++ b/TBF/Rig/RegisterReaders/GenesisRegReader/implementations/GenesisImplHeadTestCtrl.cs
@@ -5,6 +5,7 @@ using System.Threading;
using System.Web.UI.WebControls;
using System.Windows.Forms;
using Common;
+using log4net;
using TBF.Rig.Generic;
using TBF.Rig.RegisterReaders.iPerlReaderUNI.common;
using TBF.Rig.Uni.SharedDialogs.SmartMetersCommunication.common;
@@ -13,6 +14,9 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.implementations
{
public class GenesisImplHeadTestCtrl : IUniHeadTestCtrl
{
+ private static readonly ILog log = LogManager.GetLogger(typeof(GenesisSmartReader));
+ private static readonly ILog logStream = LogManager.GetLogger("StreamData");
+
Thread optoThread;
//GenesisSmartReader _genesiHead;
@@ -89,6 +93,8 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.implementations
{
a.RfidOutputListBox.Items.Clear();
+ log.Debug($"CommandTestButtonClick called: {a?.RfidCommandComboBox?.SelectedValue}");
+
using (Tools.LogChecker logChecker = new Tools.LogChecker("RfidData", log4net.Core.Level.Debug))
{
ListItem rfidListItem = new ListItem();
diff --git a/TBF/Rig/RegisterReaders/GenesisRegReader/implementations/GenesisSmartReader.cs b/TBF/Rig/RegisterReaders/GenesisRegReader/implementations/GenesisSmartReader.cs
index 2c64e5abb..c93461bb1 100644
--- a/TBF/Rig/RegisterReaders/GenesisRegReader/implementations/GenesisSmartReader.cs
+++ b/TBF/Rig/RegisterReaders/GenesisRegReader/implementations/GenesisSmartReader.cs
@@ -116,28 +116,21 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.implementations
public string CommInterface => genesisHeadCfg?.CommunicationInterfaceBridge ?? default;
- public TBF.Rig.BridgeComponents.GciBridge.Factory CommInterfaceBridge
+ public TBF.Rig.BridgeComponents.GciBridge.GciBridge CommInterfaceBridge
{
get
{
if (!string.IsNullOrEmpty((genesisHeadCfg?.CommunicationInterfaceBridge)))
{
IComponent findComponent = TbfComponents.FindComponent(genesisHeadCfg?.CommunicationInterfaceBridge);
- BridgeComponents.GciBridge.Factory component = findComponent as TBF.Rig.BridgeComponents.GciBridge.Factory;
+ TBF.Rig.BridgeComponents.GciBridge.GciBridge component = findComponent as TBF.Rig.BridgeComponents.GciBridge.GciBridge;
return component;
}
return null;
}
}
-
- public TBF.Rig.BridgeComponents.GciBridge.GciBridge CommInterfaceBridgeComponent
- {
- get
- {
- return CommInterfaceBridge.DummyComponent() as TBF.Rig.BridgeComponents.GciBridge.GciBridge;
- }
- }
+
public bool EnableShowChanels => genesisHeadCfg?.EnableShowChanels ?? false;
@@ -3109,9 +3102,9 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.implementations
{
log.Debug($"Try get ReadSerialNr! COM: {this.RfidComPortNr}");
- if (OptoHeadTest.ReadSerialNr())
+ SerialNr = OptoHeadTest.ReadRequest_PCB();
+ if (string.IsNullOrEmpty(SerialNr))
{
- SerialNr = this.ConfigStruct.PCBNumberString;
log.Debug("ReadSerialNr successful");
}
diff --git a/TBF/Rig/StateMachine.cs b/TBF/Rig/StateMachine.cs
index dab3768ec..685b42a8c 100644
--- a/TBF/Rig/StateMachine.cs
+++ b/TBF/Rig/StateMachine.cs
@@ -309,6 +309,7 @@ namespace TBF.Rig
BuiltIn.Valve.Valve plainValve = (cmpnt as BuiltIn.Valve.Valve);
if ((plainValve != null) && plainValve.Inverted) valvesToInvert |= plainValve.Mask;
+ log.Debug( string.Format( "InitializeBoardEtc() ... {0} {1}", cmpnt.Name, cmpnt.ClassName ) );
cmpnt.StartChangeHandler(); /// Start handling parameter change events
}
diff --git a/TBF/TBF.csproj b/TBF/TBF.csproj
index 652d0f750..4c721f8f7 100644
--- a/TBF/TBF.csproj
+++ b/TBF/TBF.csproj
@@ -1795,20 +1795,6 @@
TestMethodCfgCtrl.cs
-
-
-
-
-
-
-
- UserControl
-
-
-
-
-
-
@@ -3767,7 +3753,6 @@
TestMethodCfgCtrl.cs
-
TestMethodCfgCtrl.cs