eDosStation/eDosStation_Backup_2025.02.04_07.47.06/DecodeResults.cs
2025-02-10 07:05:37 +01:00

126 lines
5.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using cspl = LSWLib.CLog;
namespace eDosStation
{
static class DecodeResults
{
static readonly string[] names =
{
"ReadSensitivities",
"ReadDetectorThresholds",
"fReadDoses",
"ReadTotalDoses",
"ReadQualityData",
"ReadPeakRates",
"ClearTotalDose",
"ClearDose",
"ClearPeakRates",
"ClearFaultStatus",
"ClearLatchedAlarms",
"EpdOnOff",
"ReadAlarmConfiguration",
"ReadAlarmThresholds",
"WriteAlarmThresholds",
"WriteRateOffPercentage",
"DeissueEPD",
"SetBaselineCounters",
"WriteWearerId",
"ReadBaselineCounts",
"MfrLogin_R2",
"WriteSensitivities_R2",
"WriteAccessLevelAmin",
"WriteAccessLevelOpen",
"WriteQuickAccessDisplays_R3",
"WriteDisplayEnables_R3",
"WriteDisplayEnablePermissions_R3",
"WriteAlarmConfiguration_R3",
"WriteOffModeDisplay_R3",
"WriteSwitchOnFromButton_R3",
"WriteChirpSensitivity",
"WriteChirpEnable_R3","WriteRTC_R3","ReadStatus","ReadEpdIdentities","ReadCounts","ReadWearerId","ReadRTC"
,"DestroyReaderInterface" //0=ok
,"Disconnect" , "DisconnectAndNotify" //0=ok
,"StartDiscover","IssueEPD","EnableProtectedSession_R3"
,"CreateReaderInterface"
,"OpenReader","TestVibe"
};
private static string GetName(int func)
{
if (func >= 0 && func < names.Length) return names[func]; else return func.ToString();
}
private static string Getresult(int rval)
{
string rv;
switch (rval) {
case 0: rv = "r_OK"; break;
case -1: rv = "r_UnknownError"; break;
case -2: rv = "r_InvalidCommsHandle"; break;
case -3: rv = "r_InvalidPortName"; break;
case -4: rv = "r_PortAlreadyOpen"; break;
case -5: rv = "r_PortClosed"; break;
case -6: rv = "r_OperationFailed"; break;
case -7: rv = "r_InvalidState"; break;
case -8: rv = "r_InvalidCompletionToken"; break;
case -9: rv = "r_OperationTimeout"; break;
case -100: rv = "r_UnknownCmd"; break;
case -101: rv = "r_InvalidParam"; break;
case -102: rv = "r_InsufficientPriv"; break;
case -103: rv = "r_UnsupportedOp"; break;
case -104: rv = "r_FunctionFail"; break;
case -105: rv = "r_InvalidOp"; break;
case -106: rv = "r_IncompleteCommand"; break;
case -107: rv = "r_ResponseTooBig"; break; //response exceeded single frame length
case -108: rv = "r_ErrorBadStoredData"; break;
case -109: rv = "r_InvalidResponseDataLength"; break;
case -110: rv = "r_PayloadTooBig"; break;
case -111: rv = "r_ParseFailure"; break;
case -112: rv = "r_EEPROMWriteFailure"; break;
case -113: rv = "r_Busy"; break;
case -121: rv = "r_EEPROMReadFailure"; break;
case -122: rv = "r_WearerNameMismatch"; break;
case -123: rv = "r_DataTooLongForBuffer"; break;
case -200: rv = "r_ErrorUnexpectedResponse"; break;
case -201: rv = "r_ErrorNotProcessed"; break; //command not processed due to previous failure
case -202: rv = "r_ErrorNotConnected"; break;
case -203: rv = "r_ErrorUserCancelled"; break;
default: rv = rval.ToString(); break;
}
return rv;
}
public static string decodesteps(System.Collections.Generic.List<EpdBaseClr.cStepValues> Lst)
{
if (Lst != null)
{
System.Text.StringBuilder sb = new StringBuilder();
for (int s = 0; s < Lst.Count; s++)
{
sb.Append(GetName(Lst[s].func));
sb.Append(": commit : ");
sb.Append(Getresult(Lst[s].commitrv));
sb.Append(": End : ");
sb.AppendLine(Getresult(Lst[s].endrv));
}
return sb.ToString();
}
else return "List Empty";
}
public static void logsteps(string module, System.Collections.Generic.List<EpdBaseClr.cStepValues> Lst, cspl spl)
{
if (Lst != null)
for (int s = 0; s < Lst.Count; s++)
{
string msg = $"{s} {GetName(Lst[s].func)} commit: {Getresult(Lst[s].commitrv)} end : {Getresult(Lst[s].endrv)} ({Lst[s].endrv})";
spl?.WriteSplunkLog(module, null, Lst[s].commitrv == 0 && Lst[s].endrv == 0 ? cspl.iseverity.info : cspl.iseverity.err, msg);
}
}
}
}