Increment assembly version to 3.9.3097.1, add SlotGroupedLogin support in iPerlCommunicationForm, implement GroupedLoginSlot method in OptoHeadTest, and update slot operation logic with enhanced error messaging.
This commit is contained in:
parent
d346dcfa03
commit
2526e997e3
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("3.9.3095.1")]
|
||||
[assembly: AssemblyFileVersion("3.9.3095.1")]
|
||||
[assembly: AssemblyVersion("3.9.3097.1")]
|
||||
[assembly: AssemblyFileVersion("3.9.3097.1")]
|
||||
|
||||
@ -1260,6 +1260,80 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
|
||||
return ex.Message;
|
||||
}
|
||||
}
|
||||
|
||||
public BridgeComponents.GciBridge.Interfaces.PublicModels.GciFullLoginResult GroupedLoginSlot()
|
||||
{
|
||||
if (genesisHead != null && genesisHead.DebugLevel == DebugMode.Simulate)
|
||||
{
|
||||
log.Debug("Connect() - Simulated response");
|
||||
return new BridgeComponents.GciBridge.Interfaces.PublicModels.GciFullLoginResult
|
||||
{
|
||||
SlotId = genesisHead.GetSlotNr,
|
||||
Success = true,
|
||||
Message = "Simulated Connect",
|
||||
ConnectResult = null,
|
||||
PcbResult = null,
|
||||
PasswordResult = null,
|
||||
SetPasswordResult = null,
|
||||
LoginResult = null,
|
||||
};
|
||||
}
|
||||
|
||||
var gciFullLoginResult = Task.Run(() => GroupedLoginSlot_Async(genesisHead))
|
||||
.GetAwaiter()
|
||||
.GetResult();
|
||||
|
||||
return gciFullLoginResult;
|
||||
}
|
||||
|
||||
public string GroupedLoginSlotStr()
|
||||
{
|
||||
if (genesisHead != null && genesisHead.DebugLevel == DebugMode.Simulate)
|
||||
{
|
||||
log.Debug("Connect() - Simulated response");
|
||||
return "Simulated Connect";
|
||||
}
|
||||
|
||||
var gciFullLoginResult = Task.Run(() => GroupedLoginSlot_Async(genesisHead))
|
||||
.GetAwaiter()
|
||||
.GetResult();
|
||||
|
||||
return gciFullLoginResult.Success ? ResultOk : ResultNok;
|
||||
}
|
||||
|
||||
private async Task<BridgeComponents.GciBridge.Interfaces.PublicModels.GciFullLoginResult> GroupedLoginSlot_Async(GenesisSmartReader genesisSmartReader)
|
||||
{
|
||||
try
|
||||
{
|
||||
log.Debug("GroupedLoginSlot_Async called for iHead: " + genesisHead);
|
||||
|
||||
var gciFullLoginResult = new BridgeComponents.GciBridge.Interfaces.PublicModels.GciFullLoginResult()
|
||||
{
|
||||
Success = false,
|
||||
};
|
||||
|
||||
if (genesisHead == null) return gciFullLoginResult;
|
||||
if (string.IsNullOrEmpty(genesisHead.CommInterface)) return gciFullLoginResult;
|
||||
if (genesisHead.CommInterfaceBridge == null) return gciFullLoginResult;
|
||||
|
||||
CancellationToken token = default;
|
||||
|
||||
log.Debug($"GroupedLoginSlot_Async( Slot: {genesisSmartReader.GetSlotNr}) - Start");
|
||||
BridgeComponents.GciBridge.Interfaces.PublicModels.GciFullLoginResult connectFullPassLoginWithRetryAsync = await genesisSmartReader.CommInterfaceBridge.ConnectFullPassLoginWithRetryAsync(genesisSmartReader.GetSlotNr, token);
|
||||
log.Debug($"GroupedLoginSlot_Async( Slot: {genesisSmartReader.GetSlotNr}) - Result: " + connectFullPassLoginWithRetryAsync);
|
||||
|
||||
return connectFullPassLoginWithRetryAsync;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.Error($"GroupedLoginSlot_Async({genesisHead.GetSlotNr}) - Exception:", ex);
|
||||
return new BridgeComponents.GciBridge.Interfaces.PublicModels.GciFullLoginResult()
|
||||
{
|
||||
Success = false,
|
||||
Message = ex.Message
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public string SetTestModeSlot()
|
||||
{
|
||||
@ -1291,7 +1365,7 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
|
||||
byte valueLed = (ledMode == LedState.active) ? (byte)6 : (byte)0;
|
||||
|
||||
log.Debug($"SetTestModeSlot_Async( Slot: {genesisSmartReader.GetSlotNr}) - Start - Set Led Mode: {valueLed}");
|
||||
var registerWriteResult = await gciBridge.WriteRegisterAsync(genesisSmartReader.GetSlotNr, RadioService.LedMode, valueLed, false, false, token);
|
||||
var registerWriteResult = await gciBridge.WriteRegisterWithRetryAsync(genesisSmartReader.GetSlotNr, RadioService.LedMode, valueLed, false, false, token);
|
||||
|
||||
if (registerWriteResult == null || !registerWriteResult.Success)
|
||||
{
|
||||
@ -1342,7 +1416,7 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
|
||||
|
||||
log.Debug(
|
||||
$"SetActiveModeSlot_Async( Slot: {genesisSmartReader.GetSlotNr}) - Start - Set Led Mode: {valueLed}");
|
||||
var registerWriteResult = await gciBridge.WriteRegisterAsync(genesisSmartReader.GetSlotNr,
|
||||
var registerWriteResult = await gciBridge.WriteRegisterWithRetryAsync(genesisSmartReader.GetSlotNr,
|
||||
RadioService.LedMode, valueLed, false, false, token);
|
||||
|
||||
if (registerWriteResult == null || !registerWriteResult.Success)
|
||||
|
||||
@ -57,6 +57,7 @@ namespace TBF.Rig.TestMethods.GenesisCommunication
|
||||
retVal.Add(iPerlCommunicationForm.SlotPCBSlotStr);
|
||||
retVal.Add(iPerlCommunicationForm.SlotSetPasswordStr);
|
||||
retVal.Add(iPerlCommunicationForm.SlotLoginStr);
|
||||
retVal.Add(iPerlCommunicationForm.SlotGroupedLoginStr);
|
||||
retVal.Add(iPerlCommunicationForm.SlotSetTestModeStr);
|
||||
retVal.Add(iPerlCommunicationForm.SlotSetActiveModeStr);
|
||||
retVal.Add(iPerlCommunicationForm.SlotDisconnectStr);
|
||||
|
||||
@ -83,6 +83,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
|
||||
public const string SlotPCBSlotStr = "PCB Slot";
|
||||
public const string SlotSetPasswordStr = "Set Password";
|
||||
public const string SlotLoginStr = "Login";
|
||||
public const string SlotGroupedLoginStr = "Login (Combined workflow)";
|
||||
public const string SlotSetTestModeStr = "Switch to Test Mode";
|
||||
public const string SlotSetActiveModeStr ="Switch to Active Mode";
|
||||
public const string SlotDisconnectStr = "Disconnect Slot";
|
||||
@ -752,6 +753,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
|
||||
else if (currentActivity.ToLower().Equals(SlotPCBSlotStr.ToLower())) error = SlotPCBSlot(threadID, ihead, ref resultStr);
|
||||
else if (currentActivity.ToLower().Equals(SlotSetPasswordStr.ToLower())) error = SlotSetPassword(threadID, ihead, ref resultStr);
|
||||
else if (currentActivity.ToLower().Equals(SlotLoginStr.ToLower())) error = SlotLogin(threadID, ihead, ref resultStr);
|
||||
else if (currentActivity.ToLower().Equals(SlotGroupedLoginStr.ToLower())) error = SlotGroupedLogin(threadID, ihead, ref resultStr);
|
||||
else if (currentActivity.ToLower().Equals(SlotSetTestModeStr.ToLower())) error = SlotSetTestMode(threadID, ihead, ref resultStr);
|
||||
else if (currentActivity.ToLower().Equals(SlotSetActiveModeStr.ToLower())) error = SlotSetActiveMode(threadID, ihead, ref resultStr);
|
||||
else if (currentActivity.ToLower().Equals(SlotDisconnectStr.ToLower())) error = SlotDisconnect(threadID, ihead, ref resultStr);
|
||||
@ -853,6 +855,28 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
|
||||
}
|
||||
}
|
||||
|
||||
private CommErr SlotGroupedLogin(int threadId, GenesisSmartReader iHead, ref string resultStr)
|
||||
{
|
||||
CommErr error = CommErr.FailedLogin;
|
||||
var gciFullLoginResult = iHead.OptoHeadTest.GroupedLoginSlot();
|
||||
if (gciFullLoginResult.Success)
|
||||
{
|
||||
log.Debug("SlotLogin successful");
|
||||
resultStr = string.Format($"Login OK - Serial No: {gciFullLoginResult?.PcbResult?.Result?.PcbId}");
|
||||
iHead.SerialNr = gciFullLoginResult?.PcbResult?.Result?.PcbId;
|
||||
if (iHead.ConfigStruct != null)
|
||||
{
|
||||
iHead.ConfigStruct.PCBNumberString = gciFullLoginResult?.PcbResult?.Result?.PcbId;
|
||||
}
|
||||
error = CommErr.None;
|
||||
}
|
||||
else
|
||||
{
|
||||
resultStr = "Failed Combined Login";
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
||||
private CommErr SlotDisconnect(int threadId, GenesisSmartReader iHead, ref string resultStr)
|
||||
{
|
||||
CommErr error = CommErr.FailedSetActiveMode;
|
||||
@ -894,12 +918,12 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
|
||||
if (!string.IsNullOrEmpty(resultStr) && resultStr.Equals(TBF.Rig.RegisterReaders.GenesisRegReader.communication.OptoHeadTest.ResultOk))
|
||||
{
|
||||
log.Debug("SlotSetTestMode successful");
|
||||
resultStr = string.Format($"Serial No: {resultStr}");
|
||||
resultStr = string.Format($"SlotSetTestMode: {resultStr}");
|
||||
error = CommErr.None;
|
||||
}
|
||||
else
|
||||
{
|
||||
resultStr = "Failed Read Serial No";
|
||||
resultStr = "Failed Set Test Mode";
|
||||
}
|
||||
return error;
|
||||
}
|
||||
@ -911,12 +935,12 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
|
||||
if (!string.IsNullOrEmpty(resultStr) && resultStr.Equals(TBF.Rig.RegisterReaders.GenesisRegReader.communication.OptoHeadTest.ResultOk))
|
||||
{
|
||||
log.Debug("SlotLogin successful");
|
||||
resultStr = string.Format($"Serial No: {resultStr}");
|
||||
resultStr = string.Format($"SlotLogin: {resultStr}");
|
||||
error = CommErr.None;
|
||||
}
|
||||
else
|
||||
{
|
||||
resultStr = "Failed Read Serial No";
|
||||
resultStr = "Failed SlotLogin";
|
||||
}
|
||||
return error;
|
||||
}
|
||||
@ -928,7 +952,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
|
||||
if (!string.IsNullOrEmpty(resultStr) && resultStr.Equals(TBF.Rig.RegisterReaders.GenesisRegReader.communication.OptoHeadTest.ResultOk))
|
||||
{
|
||||
log.Debug("SlotSetPassword successful");
|
||||
resultStr = string.Format($"Serial No: {resultStr}");
|
||||
resultStr = string.Format($"SlotSetPassword: {resultStr}");
|
||||
error = CommErr.None;
|
||||
}
|
||||
else
|
||||
@ -944,13 +968,13 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
|
||||
PcbReadResult pcbReadSlot = iHead.OptoHeadTest.PCB_ReadSlot();
|
||||
if (pcbReadSlot.Success)
|
||||
{
|
||||
log.Debug("SlotSetPassword successful");
|
||||
resultStr = string.Format($"Serial No: {pcbReadSlot.PcbId}");
|
||||
log.Debug("SlotPCBSlot successful");
|
||||
resultStr = string.Format($"SlotPCBSlot: {pcbReadSlot.PcbId}");
|
||||
error = CommErr.None;
|
||||
}
|
||||
else
|
||||
{
|
||||
resultStr = "Failed Read Serial No";
|
||||
resultStr = "Failed SlotPCBSlot";
|
||||
}
|
||||
return error;
|
||||
}
|
||||
@ -961,8 +985,8 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
|
||||
resultStr = iHead.OptoHeadTest.ConnectSlot();
|
||||
if (!string.IsNullOrEmpty(resultStr))
|
||||
{
|
||||
log.Debug("SlotSetPassword successful");
|
||||
resultStr = string.Format($"Serial No: {resultStr}");
|
||||
log.Debug("SlotConnect successful");
|
||||
resultStr = string.Format($"SlotConnect: {resultStr}");
|
||||
error = CommErr.None;
|
||||
}
|
||||
else
|
||||
@ -984,8 +1008,8 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
|
||||
resultStr = iHead.OptoHeadTest.InitialiseSlot();
|
||||
if (!string.IsNullOrEmpty(resultStr))
|
||||
{
|
||||
log.Debug("SlotSetPassword successful");
|
||||
resultStr = string.Format($"Serial No: {resultStr}");
|
||||
log.Debug("SlotInitialize successful");
|
||||
resultStr = string.Format($"SlotInitialize: {resultStr}");
|
||||
error = CommErr.None;
|
||||
}
|
||||
else
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user