Increment assembly version to 3.9.3128.0, enhance thread handling for iPerlCommunicationForm with improved delay logic and UI checks, and replace ReadRegisterAsync with ReadRegisterWithRetryAsync for more robust Genesis register operations.
This commit is contained in:
parent
c991d530d5
commit
4173512ecc
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("3.9.3126.0")]
|
||||
[assembly: AssemblyFileVersion("3.9.3126.0")]
|
||||
[assembly: AssemblyVersion("3.9.3128.0")]
|
||||
[assembly: AssemblyFileVersion("3.9.3128.0")]
|
||||
|
||||
@ -2192,16 +2192,16 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
|
||||
UInt16 valueTrigerIdle = 0;
|
||||
log.Debug( $"CheckMeterPrepare_Async( Slot: {genesisSmartReader.GetSlotNr}) - Start - Will Set TriggerIdle: {valueTrigerIdle}");
|
||||
|
||||
var TriggerIdleAsyncResult = await gciBridge.ReadRegisterAsync(genesisSmartReader.GetSlotNr, RadioService.TriggerIdle);
|
||||
var TriggerIdleAsyncResult = await gciBridge.ReadRegisterWithRetryAsync(genesisSmartReader.GetSlotNr, RadioService.TriggerIdle);
|
||||
if (TriggerIdleAsyncResult == null || !TriggerIdleAsyncResult.Success)
|
||||
{
|
||||
log.Error( $"CheckMeterPrepare_Async( Slot: {genesisSmartReader.GetSlotNr}) - CheckMeterPrepare failed. Result: {TriggerIdleAsyncResult}");
|
||||
return "Failed to disable Led Mode";
|
||||
//return "Failed to disable Led Mode";
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
UInt32 int32 = ParseRawHexToUInt32(TriggerIdleAsyncResult.RawHex);
|
||||
UInt32 int32 = ParseRawHexToUInt32(TriggerIdleAsyncResult?.Result?.RawHex);
|
||||
if (int32 == 0)
|
||||
{
|
||||
log.Debug("Already set ");
|
||||
@ -2217,7 +2217,7 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
|
||||
if (CalFactor2AsyncResult == null || !CalFactor2AsyncResult.Success)
|
||||
{
|
||||
log.Error( $"CheckMeterPrepare_Async( Slot: {genesisSmartReader.GetSlotNr}) - CalFactor2AsyncResult failed. Result: {CalFactor2AsyncResult}");
|
||||
return "Failed to disable Led Mode";
|
||||
return $"Failed to set register {RadioService.TriggerIdle} to {valueTrigerIdle}";
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -421,8 +421,8 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
|
||||
|
||||
//Get Activity Status
|
||||
|
||||
GenesisCordonelInterface.API.PublicModels.RegisterReadResult registerReadResult =
|
||||
await _bridge.ReadRegisterAsync(iHead.GetSlotNr,LedMode, token);
|
||||
var registerReadResult =
|
||||
await _bridge.ReadRegisterWithRetryAsync(iHead.GetSlotNr,LedMode, token);
|
||||
|
||||
if (registerReadResult == null || !registerReadResult.Success)
|
||||
{
|
||||
@ -431,7 +431,7 @@ namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication
|
||||
log.Debug($"GetActivityStatusMode() Read Register OK Response: {registerReadResult}");
|
||||
try
|
||||
{
|
||||
byte[] bytes = HexFormatter.HexStringToByteArray(registerReadResult.RawHex);
|
||||
byte[] bytes = HexFormatter.HexStringToByteArray(registerReadResult.Result.RawHex);
|
||||
//Convert byte array to int
|
||||
if (bytes == null || bytes.Length < 4)
|
||||
{
|
||||
|
||||
@ -1751,10 +1751,28 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
|
||||
}
|
||||
else
|
||||
{
|
||||
log.Debug("Wait for finish workerThreads 2seconds");
|
||||
/// Wait until all threads are finished
|
||||
workerThreads[data.ThreadId].Join(2000);
|
||||
NormalClose();
|
||||
log.Debug("Wait for finish workerThreads 4 seconds");
|
||||
|
||||
Thread lastThread = workerThreads[data.ThreadId];
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
lastThread.Join(2000);
|
||||
|
||||
if (!CanUseUi()) return;
|
||||
|
||||
BeginInvoke(new Action(async () =>
|
||||
{
|
||||
if (!CanUseUi()) return;
|
||||
|
||||
// nechaj výsledky/chyby čitateľné 4 sekundy
|
||||
await Task.Delay(4000);
|
||||
|
||||
if (!CanUseUi() || forcedClose) return;
|
||||
|
||||
NormalClose();
|
||||
}));
|
||||
});
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user