diff --git a/EpdBase3/Epd3Base.cpp b/EpdBase3/Epd3Base.cpp index e063062..b40690a 100644 --- a/EpdBase3/Epd3Base.cpp +++ b/EpdBase3/Epd3Base.cpp @@ -18,7 +18,7 @@ void Epd3Base::Epd3U::ResetStepReturnValues() for (int i = MaxSteps - 1; i >= 0; --i) for (int j = 0; j < 4; j++) StepReturnValues[i][j] = 0; } -void Epd3Base::Epd3U::SetFunctionReturnValue(enum eFunctions f, BYTE CanIgnore) +int Epd3Base::Epd3U::SetFunctionReturnValue(enum eFunctions f, BYTE CanIgnore) { if (CurrentStep < -1) CurrentStep = -1; if (CurrentStep < MaxSteps - 1) { @@ -29,26 +29,38 @@ void Epd3Base::Epd3U::SetFunctionReturnValue(enum eFunctions f, BYTE CanIgnore) StepReturnValues[CurrentStep][2] = -1; StepReturnValues[CurrentStep][3] = CanIgnore; } + return CurrentStep; } -void Epd3Base::Epd3U::SetCommitReturnValue(int32_t rv) -{ - if (CurrentStep>=0 && CurrentStep= 0 && CurrentStep < MaxSteps) - StepReturnValues[CurrentStep][2] = rv; + StepReturnValues[step][1] = rv; +} + +void Epd3Base::Epd3U::SetCommitReturnValue(int32_t rv) +{ + SetCommitReturnValue(CurrentStep, rv); +} + +uint32_t Epd3Base::Epd3U::SetEndReturnValue(int step, int32_t rv) +{ + if (step >= 0 && step < MaxSteps) + StepReturnValues[step][2] = rv; if (rv != 0) { HasStepError = 1; - if (StepReturnValues[CurrentStep][3]) rv = 0; //if canIngore set rv ok + if (StepReturnValues[step][3]) rv = 0; //if canIngore set rv ok Error = GetErrorCode(); - } + } return rv; } - +uint32_t Epd3Base::Epd3U::SetEndReturnValue(int32_t rv) +{ + return SetEndReturnValue(CurrentStep, rv); +} int32_t Epd3Base::Epd3U::CommitAndSetRV() @@ -58,6 +70,15 @@ int32_t Epd3Base::Epd3U::CommitAndSetRV() return r; } +int32_t Epd3Base::Epd3U::CommitAndSetRV(int idx[], int len) +{ + int32_t r = Commit3(epdComsHandle); + for(int i = 0; i < len ;++i) + SetCommitReturnValue(idx[i],r); + return r; +} + + int32_t Epd3Base::Epd3U::CommitAndEnd2RV(int32_t (WINAPI *endFunction2)(CommsHandle hComms, CompletionToken token), CompletionToken token) { int32_t r = Commit3(epdComsHandle); @@ -67,6 +88,14 @@ int32_t Epd3Base::Epd3U::CommitAndEnd2RV(int32_t (WINAPI *endFunction2)(CommsHa return r; } +int32_t Epd3Base::Epd3U::End2RV(int step, int32_t(WINAPI* endFunction2)(CommsHandle hComms, CompletionToken token), CompletionToken token) +{ + int32_t r = (*endFunction2)(epdComsHandle, token); + r = SetEndReturnValue(step,r); + return r; +} + + void WINAPI completion(CommsHandle hComms, CompletionToken token) { SetEvent(current->hCompletion); @@ -154,7 +183,7 @@ Epd3Base::Epd3U::Epd3U(int _comport) if (_comport == 0) return; if (hCompletion == 0) hCompletion = CreateEvent(NULL, TRUE, FALSE, NULL); - //if (hWaitTimer == 0) hWaitTimer = CreateEvent(NULL, TRUE, FALSE, NULL); + } Epd3Base::Epd3U::~Epd3U() @@ -558,7 +587,6 @@ int Epd3Base::Epd3U::ReadStatus() r = EndReadWearerId(epdComsHandle, token, &mk3WearerID); r = SetEndReturnValue(r); if (r != 0) goto error; - if (mk3WearerID.Length > WearerNameLength) mk3WearerID.Length = WearerNameLength; memcpy(WearerName, mk3WearerID.Utf8String, mk3WearerID.Length); WearerName[mk3WearerID.Length] = 0; @@ -1002,63 +1030,60 @@ error: /// 0 success int Epd3Base::Epd3U::ClearDoses() { - int r = 1; - - SetFunctionReturnValue(eFunctions::ClearTotalDose,0); - token = BeginClearTotalDose(epdComsHandle, nullptr); - r = CommitAndEnd2RV(EndClearTotalDose, token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); if (!r) r = EndClearTotalDose(epdComsHandle, token); SetEndReturnValue(r); - if (r != 0 && r != r_InvalidOp) - goto error; + constexpr int maxbatch = 3; + int rv; + int r[maxbatch]; + int s[maxbatch]; + int batchstep = 0; + s[batchstep]= SetFunctionReturnValue(eFunctions::ClearTotalDose,0); + btoken[batchstep] = BeginClearTotalDose(epdComsHandle, nullptr); + batchstep = 1; + s[batchstep] =SetFunctionReturnValue(eFunctions::ClearDose,0); + btoken[batchstep] = BeginClearDose(epdComsHandle, nullptr); + batchstep = 2; + s[batchstep]= SetFunctionReturnValue(eFunctions::ClearPeakRates,0); + btoken[batchstep] = BeginClearPeakRates(epdComsHandle, nullptr); - - SetFunctionReturnValue(eFunctions::ClearDose,0); - token = BeginClearDose(epdComsHandle, nullptr); - r = CommitAndEnd2RV(EndClearDose, token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); if (!r) r = EndClearDose(epdComsHandle, token); SetEndReturnValue(r); - if (r != 0 && r != r_InvalidOp) - goto error; + rv = CommitAndSetRV(s, maxbatch); + batchstep = 0; + r[batchstep] = End2RV(s[batchstep], EndClearTotalDose, btoken[batchstep]); + batchstep = 1; + r[batchstep] = End2RV(s[batchstep], EndClearDose, btoken[batchstep]); + batchstep = 2; + r[batchstep] = End2RV(s[batchstep], EndClearPeakRates, btoken[batchstep]); - - SetFunctionReturnValue(eFunctions::ClearPeakRates,0); - token = BeginClearPeakRates(epdComsHandle, nullptr); - r = CommitAndEnd2RV(EndClearPeakRates,token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); if (!r) r = EndClearPeakRates(epdComsHandle, token); SetEndReturnValue(r); - if (r != 0 && r != r_InvalidOp) - goto error; + rv = r[0]; + for (int b = 1; !rv && b < maxbatch;++b) if (r[b]) rv = r[b]; + Error = rv; + return rv; - if (r == r_InvalidOp) r = 0; - return r; - -error: - Error = r; - return r; } int Epd3Base::Epd3U::ClearAlarms() { - int r = 0; + constexpr int maxbatch = 2; + int rv; + int r[maxbatch]; + int s[maxbatch]; + int batchstep = 0; - SetFunctionReturnValue(eFunctions::ClearFaultStatus,0); - token = BeginClearFaultStatus(epdComsHandle, nullptr); - r = CommitAndEnd2RV(EndClearFaultStatus, token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); if (!r) r = EndClearFaultStatus(epdComsHandle, token); SetEndReturnValue(r); - if (r != 0 && r != -105) - goto error; + s[batchstep] = SetFunctionReturnValue(eFunctions::ClearFaultStatus,0); + btoken[batchstep]= BeginClearFaultStatus(epdComsHandle, nullptr); + batchstep = 1; + s[batchstep] = SetFunctionReturnValue(eFunctions::ClearLatchedAlarms, 0); + btoken[batchstep] = BeginClearLatchedAlarms(epdComsHandle, nullptr); - SetFunctionReturnValue(eFunctions::ClearLatchedAlarms,0); - token = BeginClearLatchedAlarms(epdComsHandle, nullptr); - r = CommitAndEnd2RV(EndClearLatchedAlarms, token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); if (!r) r = EndClearLatchedAlarms(epdComsHandle, token); SetEndReturnValue(r); - if (r != 0 && r != -105) - goto error; + rv = CommitAndSetRV(s, maxbatch); - if (r == -105) r = 0; - return r; - -error: - //-102 is permissieprobleem (65434) - return r; + batchstep = 0; + r[batchstep] = End2RV(s[batchstep],EndClearFaultStatus, btoken[batchstep]); + batchstep = 1; + r[batchstep] = End2RV(s[batchstep],EndClearLatchedAlarms, btoken[batchstep]); + + rv = r[0]; + for (int b = 1; !rv && b < maxbatch; ++b) if (r[b]) rv = r[b]; + Error = rv; + return rv; } WORD Epd3Base::Epd3U::PrepareForIssue() @@ -1093,17 +1118,17 @@ WORD Epd3Base::Epd3U::PrepareForIssue() if (!isConnected) rv = ReOpenDev(); - step = 4; - rv = ClearDoses(); - if (rv != 0) - goto error; - step = 5; rv = ClearAlarms(); if (rv != 0) goto error; - Sleep(2100); + step = 4; + rv = ClearDoses(); + if (rv != 0) + goto error; + + Sleep(2000); return rv; @@ -1118,7 +1143,7 @@ WORD Epd3Base::Epd3U::ReadAlarmConfig() { SetFunctionReturnValue(eFunctions::ReadAlarmConfiguration,0); token = BeginReadAlarmConfiguration(epdComsHandle, nullptr, 0, nullptr); - int32_t r = Commit3(epdComsHandle); SetCommitReturnValue(r); + int32_t r = CommitAndSetRV(); if (!r) { r = EndReadAlarmConfiguration(epdComsHandle, token, alarmConfig, MaxAlarmConfig, &numAlarm); SetEndReturnValue(r); } return numAlarm; } @@ -1166,7 +1191,6 @@ WORD Epd3Base::Epd3U::WriteAlarmTresholds() { SetFunctionReturnValue(eFunctions::WriteAlarmThresholds,0); token = BeginWriteAlarmThresholds(epdComsHandle, (uint8_t)hp10tresholds.MeasId, (uint8_t)hp10tresholds.NumberThresholds, hp10tresholds.Thresholds, nullptr); r = CommitAndEnd2RV(EndWriteAlarmThresholds, token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); if (r != 0) goto error; r = EndWriteAlarmThresholds(epdComsHandle, token); SetEndReturnValue(r); if (r != 0) goto error; @@ -1177,13 +1201,11 @@ WORD Epd3Base::Epd3U::WriteAlarmTresholds() { SetFunctionReturnValue(eFunctions::WriteAlarmThresholds,0); token = BeginWriteAlarmThresholds(epdComsHandle, (uint8_t)hp07tresholds.MeasId, (uint8_t)hp07tresholds.NumberThresholds, hp07tresholds.Thresholds, nullptr); r = CommitAndEnd2RV(EndWriteAlarmThresholds, token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); if (r != 0) goto error; r = EndWriteAlarmThresholds(epdComsHandle, token); SetEndReturnValue(r); if (r != 0) goto error; SetFunctionReturnValue(eFunctions::WriteRateOffPercentage,0); token = BeginWriteRateOffPercentage(epdComsHandle, RatePct, 2, nullptr); r = CommitAndEnd2RV(EndWriteRateOffPercentage, token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); if (r != 0) goto error; r = EndWriteRateOffPercentage(epdComsHandle, token); SetEndReturnValue(r); if (r != 0) goto error; @@ -1306,7 +1328,6 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone) //normaal is preparedone=tru if (!isConnected) r = ReOpenDev(); if (r) goto error; - step = 4; //EPDIssued //if (!DetectorsOn) { @@ -1356,7 +1377,6 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone) //normaal is preparedone=tru step = 6; if (isMK3) { - r = DisCon(Control); //stops protected session if control is EndSessionCOntrol } @@ -1534,8 +1554,7 @@ int Epd3Base::Epd3U::WriteConfig(void) SetFunctionReturnValue(eFunctions::WriteAccessLevel,0); token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen, nullptr); r = CommitAndEnd2RV(EndWriteAccessLevel,token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); r = EndWriteAccessLevel(epdComsHandle, token); SetEndReturnValue(r); - + if (!r) { displayIds = new QuickAccessDisplay_t[6]{ { 0,0x0021 }, @@ -1550,21 +1569,20 @@ int Epd3Base::Epd3U::WriteConfig(void) SetFunctionReturnValue(eFunctions::WriteQuickAccessDisplays_R3,1); token = BeginWriteQuickAccessDisplays_R3(epdComsHandle, displayIds, numDisplays, nullptr); r = CommitAndEnd2RV(EndWriteQuickAccessDisplays_R3, token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); r = EndWriteQuickAccessDisplays_R3(epdComsHandle, token); SetEndReturnValue(r); } if (!r) { //Unmanaged%20HtmlFiles/_display_ids.html numItems = 9; enables = new DisplayAttributeMap_t[9]{ { 0,0xDFFF,0xFFFF }, - { 1,0xDFFF,0xFF07 }, - { 2,0xDFFF,0xFFFF }, - { 3,0xDFFF,0xFFFF }, - { 4,0xDFFF,0xFE01 }, - { 5,0xDFFF,0xFFFF }, - { 6,0xDFFF,0xFFFF }, - { 7,0xDFFF,0xFFFB }, - { 8,0xDFFF,0xFFFF } + { 1,0xDFFF,0xFF07 }, + { 2,0xDFFF,0xFFFF }, + { 3,0xDFFF,0xFFFF }, + { 4,0xDFFF,0xFE01 }, + { 5,0xDFFF,0xFFFF }, + { 6,0xDFFF,0xFFFF }, + { 7,0xDFFF,0xFFFB }, + { 8,0xDFFF,0xFFFF } }; // 0x1 Operation Menu Back /0x2 On / Off 0x4 Clear Dose 0x8 Toggle Telemtry 0x10 Responder Trigger // 1 0 0 0 0 @@ -1572,7 +1590,6 @@ int Epd3Base::Epd3U::WriteConfig(void) SetFunctionReturnValue(eFunctions::WriteDisplayEnables_R3,1); token = BeginWriteDisplayEnables_R3(epdComsHandle, enables, numItems, nullptr); r = CommitAndEnd2RV(EndWriteDisplayEnables_R3, token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); r = EndWriteDisplayEnables_R3(epdComsHandle, token); SetEndReturnValue(r); } if (!r) { uint8_t numMenus = 9; @@ -1591,9 +1608,6 @@ int Epd3Base::Epd3U::WriteConfig(void) SetFunctionReturnValue(eFunctions::WriteDisplayEnablePermissions_R3,1); token = BeginWriteDisplayEnablePermissions_R3(epdComsHandle, AccessLevel_t::Admin, permissions, numDisplays, nullptr); r = CommitAndEnd2RV(EndWriteDisplayEnablePermissions_R3, token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); - //r = EndWriteDisplayEnablePermissions_R3(epdComsHandle, token); SetEndReturnValue(r); - //r = 0; //override } if (!r) { //AlarmConfiguration @@ -1618,28 +1632,39 @@ int Epd3Base::Epd3U::WriteConfig(void) SetFunctionReturnValue(eFunctions::WriteAlarmConfiguration_R3,1); token = BeginWriteAlarmConfiguration_R3(epdComsHandle, alarmConfigIds, alarmConfigLen, nullptr); r = CommitAndEnd2RV(EndWriteAlarmConfiguration_R3, token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); r = EndWriteAlarmConfiguration_R3(epdComsHandle, token); SetEndReturnValue(r); } - //OffModeDisplay + constexpr int maxbatch= 2; + int s[maxbatch]; + int rv[maxbatch]; + int batchstep; + if (!r) { + //OffModeDisplay + batchstep = 0; dutyCycle = (OffModeDutyCycle)0; offModeDispId = (OffModeDisplayId_t)1; - SetFunctionReturnValue(eFunctions::WriteOffModeDisplay_R3,1); - token = BeginWriteOffModeDisplay_R3(epdComsHandle, dutyCycle, offModeDispId, nullptr); - r = CommitAndEnd2RV(EndWriteOffModeDisplay_R3, token); - /*r = Commit3(epdComsHandle); SetCommitReturnValue(r); - r = EndWriteOffModeDisplay_R3(epdComsHandle, token); SetEndReturnValue(r);*/ - } - //SwitchOnFromButton - if (!r) { + s[batchstep] =SetFunctionReturnValue(eFunctions::WriteOffModeDisplay_R3,1); + btoken[batchstep] = BeginWriteOffModeDisplay_R3(epdComsHandle, dutyCycle, offModeDispId, nullptr); + + //SwitchOnFromButton + batchstep = 1; uint8_t OnOfenabled = 0; - SetFunctionReturnValue(eFunctions::WriteSwitchOnFromButton_R3,0); - token = BeginWriteSwitchOnFromButton_R3(epdComsHandle, OnOfenabled, nullptr); - r = CommitAndEnd2RV(EndWriteSwitchOnFromButton_R3, token); - /*r = Commit3(epdComsHandle); SetCommitReturnValue(r); - r = EndWriteSwitchOnFromButton_R3(epdComsHandle, token); SetEndReturnValue(r);*/ + s[batchstep] = SetFunctionReturnValue(eFunctions::WriteSwitchOnFromButton_R3, 0); + btoken[batchstep] = BeginWriteSwitchOnFromButton_R3(epdComsHandle, OnOfenabled, nullptr); + + r = CommitAndSetRV(s, maxbatch); + + batchstep = 0; + rv[batchstep] = End2RV(batchstep,EndWriteOffModeDisplay_R3, btoken[batchstep]); + batchstep = 1; + rv[batchstep] = End2RV(batchstep, EndWriteSwitchOnFromButton_R3, btoken[batchstep]); + + r = rv[0]; + for (int b = 1; !r && b < maxbatch; ++b) if (rv[b]) r = rv[b]; + Error = r; } + return r; } diff --git a/EpdBase3/Epd3Base.h b/EpdBase3/Epd3Base.h index 6054e18..54274b5 100644 --- a/EpdBase3/Epd3Base.h +++ b/EpdBase3/Epd3Base.h @@ -16,6 +16,7 @@ #define MaxAlarmConfig 10 #define MaxTresholds 10 #define MaxSteps 50 +#define MaxBatch 3 namespace Epd3Base { enum eFunctions { @@ -37,7 +38,7 @@ namespace Epd3Base { uint32_t CurrentDeviceID; EpdGeneration EpdGen; DiscoveryId Epd; - CompletionToken token; + CompletionToken token, btoken[MaxBatch]; WORD port = 3; const WORD MaxDevices = 10; WORD DeviceCount = 0; @@ -288,12 +289,16 @@ namespace Epd3Base { void decodePeakRates(int count); public: - void SetFunctionReturnValue(eFunctions f, BYTE CanIgnore); + int SetFunctionReturnValue(eFunctions f, BYTE CanIgnore); void SetCommitReturnValue(int rv); + void SetCommitReturnValue(int step, int rv); uint32_t SetEndReturnValue(int rv); + uint32_t SetEndReturnValue(int step, int rv); int32_t CommitAndSetRV(); + int32_t CommitAndSetRV(int idx[], int len); int32_t CommitAndEnd2RV(int32_t (WINAPI *endFunction2)(CommsHandle hComms, CompletionToken token), CompletionToken token); + int32_t End2RV(int step, int32_t(WINAPI* endFunction2)(CommsHandle hComms, CompletionToken token), CompletionToken token); int GetAll(bool Closeconnection); int GetAllDeissue(bool reconnect); int IssueAndCheck(float gain, float ChirpRate); diff --git a/eDosLocal/UpdateLocal.sql b/eDosLocal/UpdateLocal.sql index 4fd7c3a..5fb5716 100644 --- a/eDosLocal/UpdateLocal.sql +++ b/eDosLocal/UpdateLocal.sql @@ -373,4 +373,20 @@ END; GO GRANT EXECUTE ON [dbo].[VisitInfo] TO [eDosStation]; -GO \ No newline at end of file +GO + +--2024-09-06 + +IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('[dbo].[Visit]') AND name='InitError') +ALTER TABLE [dbo].[Visit] ADD InitError INT + +go +CREATE OR ALTER PROCEDURE [dbo].[VisitInitConfirm] + @ID_Station INT NULL, + @ID_Visit INT, + @InitError INT +as +UPDATE [dbo].[Visit] SET InitError=@InitError WHERE ID_Station=@ID_Station AND ID_Visit=@ID_Visit; +go +GRANT EXECUTE ON [dbo].[VisitInitConfirm] TO [eDosStation]; +go \ No newline at end of file diff --git a/eDosStation/App.Debug.config b/eDosStation/App.Debug.config index d466e33..23ae3fb 100644 --- a/eDosStation/App.Debug.config +++ b/eDosStation/App.Debug.config @@ -1,9 +1,9 @@  - - - + + + @@ -11,11 +11,11 @@ - - - - - - - + + + + + + + \ No newline at end of file diff --git a/eDosStation/DataInterface.cs b/eDosStation/DataInterface.cs index f3e38a7..5d23ce2 100644 --- a/eDosStation/DataInterface.cs +++ b/eDosStation/DataInterface.cs @@ -15,7 +15,7 @@ namespace eDosStation public SqlConnection localConnection, centralConnection; internal CLog splunkLog; - public System.Data.SqlClient.SqlCommand VisitInitCommand, VisitInfoCommand; + public System.Data.SqlClient.SqlCommand VisitInitCommand, VisitInfoCommand, VisitInitConfirmCommand; public static SqlCommand VisitExitCommand; public static SqlCommand NextIDCommand; public static SqlCommand LastIDCommand; @@ -89,6 +89,7 @@ namespace eDosStation LastIDCommand.Parameters["ID_Station"].Value = curIDStation; VisitInitCommand.Parameters["ID_Station"].Value = curIDStation; CheckStatus.Parameters["ID_Station"].Value = curIDStation; + VisitInitConfirmCommand.Parameters["ID_Station"].Value = curIDStation; } public bool isOnline() { @@ -221,6 +222,13 @@ namespace eDosStation , new System.Data.SqlClient.SqlParameter("epdType",SqlDbType.TinyInt,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null) }); + VisitInitConfirmCommand = new System.Data.SqlClient.SqlCommand("[dbo].[VisitInitConfirm]", localConnection) { CommandType = System.Data.CommandType.StoredProcedure }; + VisitInitConfirmCommand.Parameters.AddRange(new System.Data.SqlClient.SqlParameter[] { + new System.Data.SqlClient.SqlParameter("ID_Station",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null) + , new System.Data.SqlClient.SqlParameter("ID_Visit",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null) + , new System.Data.SqlClient.SqlParameter("InitError",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null) + }); + VisitExitCommand = new System.Data.SqlClient.SqlCommand("[dbo].[VisitExit]", localConnection) { CommandType = System.Data.CommandType.StoredProcedure }; VisitExitCommand.Parameters.AddRange(new System.Data.SqlClient.SqlParameter[] { new System.Data.SqlClient.SqlParameter("EPDVisitID",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null) diff --git a/eDosStation/EntryBadge.xaml b/eDosStation/EntryBadge.xaml index 0dd90de..d792334 100644 --- a/eDosStation/EntryBadge.xaml +++ b/eDosStation/EntryBadge.xaml @@ -45,7 +45,7 @@ - + @@ -177,41 +177,41 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + -