From 54235996eab2a8687345c90f5eae38b9d487fcb7 Mon Sep 17 00:00:00 2001 From: luc Date: Thu, 29 Oct 2026 10:53:53 +0100 Subject: [PATCH] with callback --- EpdBase3/Epd3Base.cpp | 286 ++++++++++++------------- EpdBase3/Epd3Base.h | 115 +++++++--- EpdBaseClr/EpdBaseClr.cpp | 8 +- EpdBaseClr/EpdBaseClr.h | 3 +- EpdBaseClr/EpdProgress.h | 3 +- EpdBaseClr/Version.h | 4 +- eDosLocal/SqlUpdates/update_006.sql | 2 +- eDosStation/DecodeResults.cs | 2 +- eDosStation/Properties/AssemblyInfo.cs | 4 +- eDosStation/Resources/BuildDate.txt | 2 +- scripts/Downgrader.ps1 | 24 +-- scripts/UpdateSql.ps1 | 24 +-- scripts/Upgrader.ps1 | 24 +-- scripts/installatie.ps1 | 24 +-- scripts/installatie2.ps1 | 24 +-- 15 files changed, 297 insertions(+), 252 deletions(-) diff --git a/EpdBase3/Epd3Base.cpp b/EpdBase3/Epd3Base.cpp index f369854..ed1f701 100644 --- a/EpdBase3/Epd3Base.cpp +++ b/EpdBase3/Epd3Base.cpp @@ -20,19 +20,6 @@ -#ifdef _DEBUG -#define DebugWrite_IsActive() true -#else -#define DebugWrite_IsActive() (g_EnableReleaseLogging) -#endif - -#define DebugWrite(f, ...) \ - do { \ - if (DebugWrite_IsActive()) { \ - auto _msg = std::format(f, ##__VA_ARGS__); \ - OutputDebugStringA(_msg.c_str()); \ - } \ - } while (0) @@ -66,6 +53,7 @@ void Epd3Base::Epd3U::ResetStepReturnValues() HasStepError = 0; for (int i = MaxSteps - 1; i >= 0; --i) { StepReturnValues[i][static_cast(EpdStepColumns::function)] = 0; + StepReturnValues[i][static_cast(EpdStepColumns::retry)] = 0; StepReturnValues[i][static_cast(EpdStepColumns::commitRV)] = -998; StepReturnValues[i][static_cast(EpdStepColumns::endRV)] = -1; StepReturnValues[i][static_cast(EpdStepColumns::canIgnorore)] = 0; @@ -84,6 +72,7 @@ int Epd3Base::Epd3U::SetFunctionReturnValue(enum eFunctions f, BYTE CanIgnore, i ++CurrentStep; if (CurrentStep == 0) HasStepError = 0; StepReturnValues[CurrentStep][static_cast(EpdStepColumns::function)] = f; + StepReturnValues[CurrentStep][static_cast(EpdStepColumns::retry)] = retry; StepReturnValues[CurrentStep][static_cast(EpdStepColumns::commitRV)] = -998; StepReturnValues[CurrentStep][static_cast(EpdStepColumns::endRV)] = -1; StepReturnValues[CurrentStep][static_cast(EpdStepColumns::canIgnorore)] = CanIgnore; @@ -125,11 +114,7 @@ uint32_t Epd3Base::Epd3U::SetEndReturnValue(int step, int32_t rv) auto endTime = std::chrono::steady_clock::now(); auto duration = std::chrono::duration_cast>(endTime - sessionStart); StepReturnValues[step][static_cast(EpdStepColumns::endMS)] = duration.count(); - //CommitRV = -998 if not set. - /*if (StepReturnValues[step][static_cast(EpdStepColumns::commitMS)] <= 0) { - StepReturnValues[step][static_cast(EpdStepColumns::commitRV)] = 0; - StepReturnValues[step][static_cast(EpdStepColumns::commitMS)] = duration.count(); - }*/ + if (rv != 0) { HasStepError = 1; if (StepReturnValues[step][static_cast(EpdStepColumns::canIgnorore)]) rv = 0; //if canIgnore set this return rv ok @@ -153,23 +138,23 @@ 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::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, int waitTime) -{ - int32_t r = Commit3(epdComsHandle); - SetCommitReturnValue(r); - if (waitTime) Sleep(waitTime); - if (!r) r = (*endFunction2)(epdComsHandle, token); - r= SetEndReturnValue(r); - return r; -} +//int32_t Epd3Base::Epd3U::CommitAndEnd2RV(int32_t (WINAPI *endFunction2)(CommsHandle hComms, CompletionToken token), CompletionToken token, int waitTime) +//{ +// int32_t r = Commit3(epdComsHandle); +// SetCommitReturnValue(r); +// if (waitTime) Sleep(waitTime); +// if (!r) r = (*endFunction2)(epdComsHandle, token); +// r= SetEndReturnValue(r); +// return r; +//} int32_t Epd3Base::Epd3U::End2RV(int step, int32_t(WINAPI* endFunction2)(CommsHandle hComms, CompletionToken token), CompletionToken token) { @@ -180,6 +165,7 @@ int32_t Epd3Base::Epd3U::End2RV(int step, int32_t(WINAPI* endFunction2)(CommsHan void WINAPI completion(CommsHandle hComms, CompletionToken token) { + SetEvent(current->hCompletion); } @@ -306,7 +292,8 @@ Epd3Base::Epd3U::Epd3U(int _comport) if (hCompletion == 0) hCompletion = CreateEvent(NULL, TRUE, FALSE, NULL); if (hCancel == 0) hCancel = CreateEvent(NULL, TRUE, FALSE, NULL); - + s_pInstance = this; + m_activeToken = nullptr; } Epd3Base::Epd3U::~Epd3U() @@ -393,9 +380,14 @@ DWORD Epd3Base::Epd3U::StartCom() Dll3RV = SetConnectCallback(epdComsHandle, connectcallback); Dll3RV = SetDisconnectCallback(epdComsHandle, disconnectcallback); Dll3RV = SetMultipleDiscoveryMode(epdComsHandle, false); + Dll3RV= SetDiscoveryTimeslots(epdComsHandle, 1); Dll3RV = SetResponseTimeout(epdComsHandle, ResponseTimeout); //initial Dll3RV = SetDiscoveryCacheTimeout(epdComsHandle, DiscoveryCacheTimeout); +#if !_DEBUG Dll3RV = SetRetryCount(epdComsHandle, 20); +#else + Dll3RV = SetRetryCount(epdComsHandle, 1); +#endif step = 4; SetFunctionReturnValue(fOpenReader, 0,0); @@ -771,17 +763,17 @@ int Epd3Base::Epd3U::SetTime() //Only R3 int r = 0; if (Epd.Gen == EpdGeneration::Mk3) { - //SetFunctionReturnValue(WriteRTC_R3, 1); + utc = TimeFunctions::NowToEpd3Time(); r = RunComsTransaction(WriteRTC_R3, 1, - [&]() { - return BeginWriteRTC_R3(epdComsHandle, utc, nullptr); + [&](auto cb) { + return BeginWriteRTC_R3(epdComsHandle, utc, cb); }, [&](auto token) { return EndWriteRTC_R3(epdComsHandle, token); }, 10 ); - // token = BeginWriteRTC_R3(epdComsHandle, utc, nullptr); r = CommitAndEnd2RV(EndWriteRTC_R3, token,100); + } return r; } @@ -790,22 +782,20 @@ int Epd3Base::Epd3U::ReadStatusOnly() { EPDStep = EpdSteps::StepReadStatus; int rv=0; - ResetEvent(hCompletion); - + current->StatusDecoded = false; if (!isConnected) rv = ReConnect(); if (rv) return rv; - - RunComsTransaction(eFunctions::ReadStatusOnly,0, - [&]() { - return BeginReadStatus(epdComsHandle, nullptr); + RunComsTransaction(eFunctions::ReadStatusOnly, 0, + [&](auto cb) { + return BeginReadStatus(epdComsHandle, cb); }, [&](auto token) { return EndReadStatus(epdComsHandle, token, &epd3status); }, 10 - ); + ); if (rv) { @@ -879,8 +869,8 @@ int Epd3Base::Epd3U::ReadStatus(bool onlyStatus) step = 2; rv = RunComsTransaction(eFunctions::ReadStatus, 0, - [&]() { - return BeginReadStatus(epdComsHandle, nullptr); + [&](auto cb) { + return BeginReadStatus(epdComsHandle, cb); }, [&](auto token) { return EndReadStatus(epdComsHandle, token, &epd3status); @@ -900,8 +890,8 @@ int Epd3Base::Epd3U::ReadStatus(bool onlyStatus) // millivolt vbat0 off load battery voltage vbat1 on load battery voltage vcpu CPU supply voltage, in millivolts rv = RunComsTransaction(eFunctions::ReadVoltages, 0, - [&]() { - return BeginReadVoltages(epdComsHandle, nullptr); + [&](auto cb) { + return BeginReadVoltages(epdComsHandle, cb); }, [&](auto token) { return EndReadVoltages(epdComsHandle, token, &vbat0, &vbat1, &vcpu); @@ -938,8 +928,8 @@ int Epd3Base::Epd3U::ReadStatus(bool onlyStatus) EPDStepResult = EpdStepResults::Started; rv = RunComsTransaction(eFunctions::ReadEpdIdentities, 0, - [&]() { - return BeginReadEpdIdentities(epdComsHandle, nullptr); + [&](auto cb) { + return BeginReadEpdIdentities(epdComsHandle, cb); }, [&](auto token) { return EndReadEpdIdentities(epdComsHandle, token, &EpdID32, reinterpret_cast(&EpdType), &capabilities, &MarkNumber, &VersionNumber, nullptr, 0); @@ -971,8 +961,8 @@ int Epd3Base::Epd3U::ReadStatus(bool onlyStatus) step = 4; EPDStep = EpdSteps::StepReadCounts; rv = RunComsTransaction(eFunctions::ReadCounts, 0, - [&]() { - return BeginReadCounts(epdComsHandle, nullptr,0,nullptr); + [&](auto cb) { + return BeginReadCounts(epdComsHandle, nullptr,0,cb); }, [&](auto token) { return EndReadCounts(epdComsHandle, token, Counts, MaxCounts, &countsRead, &utc, &seconds); @@ -996,8 +986,8 @@ int Epd3Base::Epd3U::ReadStatus(bool onlyStatus) if (utc == 0) { EPDStep = EpdSteps::StepReadRTC; rv = RunComsTransaction(eFunctions::ReadRTC, 0, - [&]() { - return BeginReadRTC(epdComsHandle, nullptr); + [&](auto cb) { + return BeginReadRTC(epdComsHandle, cb); }, [&](auto token) { return EndReadRTC(epdComsHandle, token, &utc); @@ -1032,8 +1022,8 @@ int Epd3Base::Epd3U::ReadStatus(bool onlyStatus) EPDStep = EpdSteps::StepReadWearerId; //batchstep = 0; rv = RunComsTransaction(eFunctions::ReadWearerId, 0, - [&]() { - return BeginReadWearerId(epdComsHandle, static_cast(WearerIdType::WearerId_Name), nullptr); + [&](auto cb) { + return BeginReadWearerId(epdComsHandle, static_cast(WearerIdType::WearerId_Name), cb); }, [&](auto token) { return EndReadWearerId(epdComsHandle, token, &mk3WearerID); @@ -1053,8 +1043,8 @@ int Epd3Base::Epd3U::ReadStatus(bool onlyStatus) //batchstep = 1; rv = RunComsTransaction(eFunctions::ReadWearerId, 0, - [&]() { - return BeginReadWearerId(epdComsHandle, static_cast(WearerIdType::WearerId_Primary), nullptr); + [&](auto cb) { + return BeginReadWearerId(epdComsHandle, static_cast(WearerIdType::WearerId_Primary), cb); }, [&](auto token) { return EndReadWearerId(epdComsHandle, token, &mk3WearerID); @@ -1388,8 +1378,8 @@ WORD Epd3Base::Epd3U::ReadCal() int r = 0, r2 = 0; Error = 0; r = RunComsTransaction(eFunctions::ReadSensitivities, 0, - [&]() { - return BeginReadSensitivities(epdComsHandle, nullptr, 0, nullptr); + [&](auto cb) { + return BeginReadSensitivities(epdComsHandle, nullptr, 0, cb); }, [&](auto token) { return EndReadSensitivities(epdComsHandle, token, sensitivities, MaxSensitivities, &numSensitivities); @@ -1424,8 +1414,8 @@ WORD Epd3Base::Epd3U::ReadCal() r = RunComsTransaction(eFunctions::ReadGains, 0, - [&]() { - return BeginReadGains(epdComsHandle, nullptr, 0, nullptr); + [&](auto cb) { + return BeginReadGains(epdComsHandle, nullptr, 0, cb); }, [&](auto token) { return EndReadGains(epdComsHandle, token, gains, MaxGains, &numGains); @@ -1483,7 +1473,7 @@ WORD Epd3Base::Epd3U::ReadSensitivitiesAndTresholds() uint16_t FBthresh; uint16_t HGthresh; - token = BeginReadCalibrationData_R2(epdComsHandle, nullptr); + CompletionToken token = BeginReadCalibrationData_R2(epdComsHandle, nullptr); r = Commit3(epdComsHandle); r = EndReadCalibrationData_R2(epdComsHandle, token, &HGSens10, @@ -1512,8 +1502,8 @@ WORD Epd3Base::Epd3U::ReadSensitivitiesAndTresholds() } else { r = RunComsTransaction(eFunctions::ReadDetectorThresholds, 0, - [&]() { - return BeginReadDetectorThresholds_R3(epdComsHandle, nullptr, 0, nullptr); + [&](auto cb) { + return BeginReadDetectorThresholds_R3(epdComsHandle, nullptr, 0, cb); }, [&](auto token) { return EndReadDetectorThresholds_R3(epdComsHandle, token, dTresholds, MaxTresholds, &numTresholds); @@ -1571,8 +1561,8 @@ WORD Epd3Base::Epd3U::ReadDoses() numDoses = 0; utc = 0; r = RunComsTransaction(eFunctions::fReadDoses, 0, - [&]() { - return BeginReadDoses(epdComsHandle, nullptr, 0, nullptr); + [&](auto cb) { + return BeginReadDoses(epdComsHandle, nullptr, 0, cb); }, [&](auto token) { return EndReadDoses(epdComsHandle, token, doses, MaxDoses, &numDoses, &utc); @@ -1599,8 +1589,8 @@ WORD Epd3Base::Epd3U::ReadDoses() decodeDoses(numDoses); r = RunComsTransaction(eFunctions::ReadTotalDoses, 0, - [&]() { - return BeginReadTotalDoses(epdComsHandle, nullptr, 0, nullptr); + [&](auto cb) { + return BeginReadTotalDoses(epdComsHandle, nullptr, 0, cb); }, [&](auto token) { return EndReadTotalDoses(epdComsHandle, token, totdoses, MaxDoses, &numtotDoses, &utc); @@ -1627,8 +1617,8 @@ WORD Epd3Base::Epd3U::ReadDoses() decodetotDoses(numtotDoses); r = RunComsTransaction(eFunctions::ReadQualityData, 0, - [&]() { - return BeginReadQualityData(epdComsHandle, nullptr); + [&](auto cb) { + return BeginReadQualityData(epdComsHandle, cb); }, [&](auto token) { return EndReadQualityData(epdComsHandle, token, &quality); @@ -1649,8 +1639,8 @@ WORD Epd3Base::Epd3U::ReadDoses() Resets = quality.PowerCycles; r = RunComsTransaction(eFunctions::ReadPeakRates, 0, - [&]() { - return BeginReadPeakRates(epdComsHandle, nullptr, 0, nullptr); + [&](auto cb) { + return BeginReadPeakRates(epdComsHandle, nullptr, 0, cb); }, [&](auto token) { return EndReadPeakRates(epdComsHandle, token, peakRates, MaxPeakRates, &numRates); @@ -1689,8 +1679,8 @@ int Epd3Base::Epd3U::ClearDoses() { int rv; rv = RunComsTransaction(eFunctions::ClearTotalDose, 0, - [&]() { - return BeginClearTotalDose(epdComsHandle, nullptr); + [&](auto cb) { + return BeginClearTotalDose(epdComsHandle, cb); }, [&](auto token) { return EndClearTotalDose(epdComsHandle, token); @@ -1709,8 +1699,8 @@ int Epd3Base::Epd3U::ClearDoses() if (rv) goto error; rv = RunComsTransaction(eFunctions::ClearDose, 0, - [&]() { - return BeginClearDose(epdComsHandle, nullptr); + [&](auto cb) { + return BeginClearDose(epdComsHandle, cb); }, [&](auto token) { return EndClearDose(epdComsHandle, token); @@ -1730,8 +1720,8 @@ int Epd3Base::Epd3U::ClearDoses() if (rv) goto error; rv = RunComsTransaction(eFunctions::ClearPeakRates, 0, - [&]() { - return BeginClearPeakRates(epdComsHandle, nullptr); + [&](auto cb) { + return BeginClearPeakRates(epdComsHandle, cb); }, [&](auto token) { return EndClearPeakRates(epdComsHandle, token); @@ -1761,8 +1751,8 @@ int Epd3Base::Epd3U::ClearAlarms() int rv; rv = RunComsTransaction(eFunctions::ClearFaultStatus, 0, - [&]() { - return BeginClearFaultStatus(epdComsHandle, nullptr); + [&](auto cb) { + return BeginClearFaultStatus(epdComsHandle, cb); }, [&](auto token) { return EndClearFaultStatus(epdComsHandle, token); @@ -1781,8 +1771,8 @@ int Epd3Base::Epd3U::ClearAlarms() //} rv = RunComsTransaction(eFunctions::ClearLatchedAlarms, 0, - [&]() { - return BeginClearLatchedAlarms(epdComsHandle, nullptr); + [&](auto cb) { + return BeginClearLatchedAlarms(epdComsHandle, cb); }, [&](auto token) { return EndClearLatchedAlarms(epdComsHandle, token); @@ -1806,8 +1796,8 @@ int Epd3Base::Epd3U::ClearAlarms() WORD Epd3Base::Epd3U::SetCalDueDate() { UINT32 utc = TimeFunctions::NewCalDueTime(); int rv = RunComsTransaction(eFunctions::fSetCalDueDate, 0, - [&]() { - return BeginWriteCalDueDate_R3(epdComsHandle, utc, nullptr); + [&](auto cb) { + return BeginWriteCalDueDate_R3(epdComsHandle, utc, cb); }, [&](auto token) { return EndWriteCalDueDate_R3(epdComsHandle, token); @@ -1927,8 +1917,8 @@ WORD Epd3Base::Epd3U::ReadAlarmConfig() { //Alleen MK3 ? leeg bij MK2 numAlarm = 0; int r = RunComsTransaction(eFunctions::ReadAlarmConfiguration, 0, - [&]() { - return BeginReadAlarmConfiguration(epdComsHandle, nullptr, 0, nullptr); + [&](auto cb) { + return BeginReadAlarmConfiguration(epdComsHandle, nullptr, 0, cb); }, [&](auto token) { return EndReadAlarmConfiguration(epdComsHandle, token, alarmConfig, MaxAlarmConfig, &numAlarm); @@ -1951,8 +1941,8 @@ WORD Epd3Base::Epd3U::ReadAlarmTresholds() { if (isNeutron) measID = (uint8_t)MeasurementId::Meas_Hp10N; else measID = (uint8_t)MeasurementId::Meas_Hp07; hp07tresholds.MeasId = measID; r = RunComsTransaction(eFunctions::ReadAlarmThresholds, 0, - [&]() { - return BeginReadAlarmThresholds(epdComsHandle, (uint8_t)hp07tresholds.MeasId, nullptr, 0, nullptr); + [&](auto cb) { + return BeginReadAlarmThresholds(epdComsHandle, (uint8_t)hp07tresholds.MeasId, nullptr, 0, cb); }, [&](auto token) { return EndReadAlarmThresholds(epdComsHandle, token, &hp07tresholds); @@ -1978,8 +1968,8 @@ WORD Epd3Base::Epd3U::ReadAlarmTresholds() { if (isNeutron) measID = (uint8_t)MeasurementId::Meas_Hp10G; else measID = (uint8_t)MeasurementId::Meas_Hp10; hp10tresholds.MeasId = measID; r = RunComsTransaction(eFunctions::ReadAlarmThresholds, 0, - [&]() { - return BeginReadAlarmThresholds(epdComsHandle, (uint8_t)hp10tresholds.MeasId, nullptr, 0, nullptr); + [&](auto cb) { + return BeginReadAlarmThresholds(epdComsHandle, (uint8_t)hp10tresholds.MeasId, nullptr, 0, cb); }, [&](auto token) { return EndReadAlarmThresholds(epdComsHandle, token, &hp10tresholds); @@ -2002,8 +1992,8 @@ WORD Epd3Base::Epd3U::WriteAlarmTresholds() { encodeTreshold(&hp10tresholds); r = RunComsTransaction(eFunctions::WriteAlarmThresholdsHP10, 0, - [&]() { - return BeginWriteAlarmThresholds(epdComsHandle, (uint8_t)hp10tresholds.MeasId, (uint8_t)hp10tresholds.NumberThresholds, hp10tresholds.Thresholds, nullptr); + [&](auto cb) { + return BeginWriteAlarmThresholds(epdComsHandle, (uint8_t)hp10tresholds.MeasId, (uint8_t)hp10tresholds.NumberThresholds, hp10tresholds.Thresholds, cb); }, [&](auto token) { return EndWriteAlarmThresholds(epdComsHandle, token); @@ -2021,8 +2011,8 @@ WORD Epd3Base::Epd3U::WriteAlarmTresholds() { hp07tresholds.NumberThresholds = 4; r = RunComsTransaction(eFunctions::WriteAlarmThresholdsHP07, 0, - [&]() { - return BeginWriteAlarmThresholds(epdComsHandle, (uint8_t)hp07tresholds.MeasId, (uint8_t)hp07tresholds.NumberThresholds, hp07tresholds.Thresholds, nullptr); + [&](auto cb) { + return BeginWriteAlarmThresholds(epdComsHandle, (uint8_t)hp07tresholds.MeasId, (uint8_t)hp07tresholds.NumberThresholds, hp07tresholds.Thresholds, cb); }, [&](auto token) { return EndWriteAlarmThresholds(epdComsHandle, token); @@ -2034,8 +2024,8 @@ WORD Epd3Base::Epd3U::WriteAlarmTresholds() { goto error; r = RunComsTransaction(eFunctions::WriteRateOffPercentage, 0, - [&]() { - return BeginWriteRateOffPercentage(epdComsHandle, RatePct, 2, nullptr); + [&](auto cb) { + return BeginWriteRateOffPercentage(epdComsHandle, RatePct, 2, cb); }, [&](auto token) { return EndWriteRateOffPercentage(epdComsHandle, token); @@ -2079,8 +2069,8 @@ WORD Epd3Base::Epd3U::DeIssue() #endif r = RunComsTransaction(eFunctions::DeissueEPD, 0, - [&]() { - return BeginDeissueEPD(epdComsHandle, nullptr); + [&](auto cb) { + return BeginDeissueEPD(epdComsHandle, cb); }, [&](auto token) { return EndDeissueEPD(epdComsHandle, token); @@ -2117,8 +2107,8 @@ WORD Epd3Base::Epd3U::WriteWearer() { int step = 0; r = RunComsTransaction(eFunctions::SetBaselineCounters, 0, - [&]() { - return BeginSetBaselineCounters(epdComsHandle, nullptr); + [&](auto cb) { + return BeginSetBaselineCounters(epdComsHandle, cb); }, [&](auto token) { return EndSetBaselineCounters(epdComsHandle, token); @@ -2138,8 +2128,8 @@ WORD Epd3Base::Epd3U::WriteWearer() { memcpy(mk3WearerID.Utf8String, WearerName, 23); r = RunComsTransaction(eFunctions::WriteWearerIdName, 0, - [&]() { - return BeginWriteWearerId(epdComsHandle, mk3WearerID, nullptr); + [&](auto cb) { + return BeginWriteWearerId(epdComsHandle, mk3WearerID, cb); }, [&](auto token) { return EndWriteWearerId(epdComsHandle, token); @@ -2155,8 +2145,8 @@ WORD Epd3Base::Epd3U::WriteWearer() { memcpy(mk3WearerID.Utf8String, WearerID, 13); r = RunComsTransaction(eFunctions::WriteWearerIdPrimary, 0, - [&]() { - return BeginWriteWearerId(epdComsHandle, mk3WearerID, nullptr); + [&](auto cb) { + return BeginWriteWearerId(epdComsHandle, mk3WearerID, cb); }, [&](auto token) { return EndWriteWearerId(epdComsHandle, token); @@ -2215,8 +2205,8 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone) //normaal is preparedone=tru DoProtectSession = false; if (DoProtectSession) { r = RunComsTransaction(eFunctions::EnableProtectedSession, 0, - [&]() { - return BeginEnableProtectedSession(epdComsHandle, 1, nullptr); + [&](auto cb) { + return BeginEnableProtectedSession(epdComsHandle, 1, cb); }, [&](auto token) { return EndIssueEPD(EndEnableProtectedSession, token); @@ -2256,8 +2246,8 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone) //normaal is preparedone=tru tries = 1; r = RunComsTransaction(eFunctions::IssueEPD, 0, - [&]() { - return BeginIssueEPD(epdComsHandle, nullptr); + [&](auto cb) { + return BeginIssueEPD(epdComsHandle, cb); }, [&](auto token) { return EndIssueEPD(epdComsHandle, token); @@ -2287,8 +2277,8 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone) //normaal is preparedone=tru if (DoProtectSession) { r = RunComsTransaction(eFunctions::DisableProtectedSession, 0, - [&]() { - return BeginEnableProtectedSession(epdComsHandle, 0, nullptr); + [&](auto cb) { + return BeginEnableProtectedSession(epdComsHandle, 0, cb); }, [&](auto token) { return EndIssueEPD(EndEnableProtectedSession, token); @@ -2319,8 +2309,8 @@ WORD Epd3Base::Epd3U::EPDReadExtraStatus() uint32_t r; r = RunComsTransaction(eFunctions::ReadBaselineCounts, 0, - [&]() { - return BeginReadBaselineCounts(epdComsHandle, nullptr); + [&](auto cb) { + return BeginReadBaselineCounts(epdComsHandle, cb); }, [&](auto token) { return EndReadBaselineCounts(epdComsHandle, token, Counts, 10, &utc, &countsRead); @@ -2355,8 +2345,8 @@ WORD Epd3Base::Epd3U::WriteCal() Password = 9; r = RunComsTransaction(eFunctions::MfrLogin_R2, 0, - [&]() { - return BeginMfrLogin_R2(epdComsHandle, Password, nullptr); + [&](auto cb) { + return BeginMfrLogin_R2(epdComsHandle, Password, cb); }, [&](auto token) { return EndMfrLogin_R2(epdComsHandle, token); @@ -2370,8 +2360,8 @@ WORD Epd3Base::Epd3U::WriteCal() goto error; r = RunComsTransaction(eFunctions::WriteSensitivities_R2, 0, - [&]() { - return BeginWriteSensitivities_R2(epdComsHandle, nullptr, (uint16_t)K1, (uint16_t)K2, (uint16_t)K3, (uint16_t)K4, (uint16_t)K5, (uint16_t)K6); + [&](auto cb) { + return BeginWriteSensitivities_R2(epdComsHandle, cb, (uint16_t)K1, (uint16_t)K2, (uint16_t)K3, (uint16_t)K4, (uint16_t)K5, (uint16_t)K6); }, [&](auto token) { return EndWriteSensitivities_R2(epdComsHandle, token); @@ -2395,8 +2385,8 @@ WORD Epd3Base::Epd3U::WriteCal() // goto error; r = RunComsTransaction(eFunctions::WriteAccessLevelAdmin, 0, - [&]() { - return BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen, nullptr); + [&](auto cb) { + return BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen,cb); }, [&](auto token) { return EndWriteAccessLevel(epdComsHandle, token); @@ -2421,8 +2411,8 @@ WORD Epd3Base::Epd3U::WriteCal() gains[1].id = (uint16_t)SensitivityId::Fn1Sens10N; //K3 gains[1].value = GainFn; r = RunComsTransaction(eFunctions::WriteGains_R3, 0, - [&]() { - return BeginWriteGains(epdComsHandle, gains, numGains, nullptr); + [&](auto cb) { + return BeginWriteGains(epdComsHandle, gains, numGains, cb); }, [&](auto token) { return EndWriteGains(epdComsHandle, token); @@ -2605,8 +2595,8 @@ int Epd3Base::Epd3U::WriteConfig(void) // Become admin if (!r) { r = RunComsTransaction(eFunctions::WriteAccessLevelAdmin, 0, - [&]() { - return BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen, nullptr); + [&](auto cb) { + return BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen, cb); }, [&](auto token) { return EndWriteAccessLevel(epdComsHandle, token); @@ -2628,8 +2618,8 @@ int Epd3Base::Epd3U::WriteConfig(void) { 5,0x0062 } }; r = RunComsTransaction(eFunctions::WriteQuickAccessDisplays_R3, 0, - [&]() { - return BeginWriteQuickAccessDisplays_R3(epdComsHandle, vdisplayIds.data(), static_cast(vdisplayIds.size()), nullptr); + [&](auto cb) { + return BeginWriteQuickAccessDisplays_R3(epdComsHandle, vdisplayIds.data(), static_cast(vdisplayIds.size()), cb); }, [&](auto token) { return EndWriteQuickAccessDisplays_R3(epdComsHandle, token); @@ -2648,8 +2638,8 @@ int Epd3Base::Epd3U::WriteConfig(void) if (SoftVersion >= 2) { r = RunComsTransaction(eFunctions::EnableTestSound, 0, - [&]() { - return BeginEnableTestSound_R3(epdComsHandle, 1, nullptr); + [&](auto cb) { + return BeginEnableTestSound_R3(epdComsHandle, 1, cb); }, [&](auto token) { return EndEnableTestSound_R3(epdComsHandle, token); @@ -2661,8 +2651,8 @@ int Epd3Base::Epd3U::WriteConfig(void) if (!r && isAdmin) { r = RunComsTransaction(eFunctions::WriteDoseProfileInterval, 0, - [&]() { - return BeginWriteDoseProfileInterval(epdComsHandle, 0, nullptr); + [&](auto cb) { + return BeginWriteDoseProfileInterval(epdComsHandle, 0, cb); }, [&](auto token) { return EndWriteDoseProfileInterval(epdComsHandle, token); @@ -2709,8 +2699,8 @@ int Epd3Base::Epd3U::WriteConfig(void) // 1 0 0 0 0 r = RunComsTransaction(eFunctions::WriteDisplayEnables_R3, 1, - [&]() { - return BeginWriteDisplayEnables_R3(epdComsHandle, venables.data(), static_cast(venables.size()), nullptr); + [&](auto cb) { + return BeginWriteDisplayEnables_R3(epdComsHandle, venables.data(), static_cast(venables.size()), cb); }, [&](auto token) { return EndWriteDisplayEnables_R3(epdComsHandle, token); @@ -2763,8 +2753,8 @@ int Epd3Base::Epd3U::WriteConfig(void) { (AlarmIds)9,0,0x0000,0x9CA5,60 } }; r = RunComsTransaction(eFunctions::WriteAlarmConfiguration_R3, 1, - [&]() { - return BeginWriteAlarmConfiguration_R3(epdComsHandle, valarmConfigIds.data(), static_cast(valarmConfigIds.size()), nullptr); + [&](auto cb) { + return BeginWriteAlarmConfiguration_R3(epdComsHandle, valarmConfigIds.data(), static_cast(valarmConfigIds.size()), cb); }, [&](auto token) { return EndWriteAlarmConfiguration_R3(epdComsHandle, token); @@ -2792,8 +2782,8 @@ int Epd3Base::Epd3U::WriteConfig(void) offModeDispId = (OffModeDisplayId_t)1; r = RunComsTransaction(eFunctions::WriteOffModeDisplay_R3, 1, - [&]() { - return BeginWriteOffModeDisplay_R3(epdComsHandle, dutyCycle, offModeDispId, nullptr); + [&](auto cb) { + return BeginWriteOffModeDisplay_R3(epdComsHandle, dutyCycle, offModeDispId, cb); }, [&](auto token) { return EndWriteOffModeDisplay_R3(epdComsHandle, token); @@ -2817,8 +2807,8 @@ int Epd3Base::Epd3U::WriteConfig(void) }*/ r = RunComsTransaction(eFunctions::WriteAccessLevelOpen, 0 , - [&]() { - return BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Open, nullptr, 0, nullptr); + [&](auto cb) { + return BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Open, nullptr, 0, cb); }, [&](auto token) { return EndWriteAccessLevel(epdComsHandle, token); @@ -2856,22 +2846,20 @@ int Epd3Base::Epd3U::SetChirp(float Sensitivity) if (Sensitivity > 0.001F) { enable = 1; r = RunComsTransaction(eFunctions::WriteChirpSensitivity, 0, - [&]() { - return BeginWriteChirpSensitivity(epdComsHandle, Sensitivity, nullptr); + [&](auto cb) { + return BeginWriteChirpSensitivity(epdComsHandle, Sensitivity, cb); }, [&](auto token) { return EndWriteChirpSensitivity(epdComsHandle, token); }, 10 ); - - } if (r) goto error; if (!r) { r = RunComsTransaction(eFunctions::WriteChirpEnable_R3, 0, - [&]() { - return BeginWriteChirpEnable_R3(epdComsHandle, enable, nullptr); + [&](auto cb) { + return BeginWriteChirpEnable_R3(epdComsHandle, enable, cb); }, [&](auto token) { return EndWriteChirpEnable_R3(epdComsHandle, token); @@ -2891,8 +2879,8 @@ int Epd3Base::Epd3U::GetSelfTestData() { int r = 1; r = RunComsTransaction(eFunctions::fReadSelfTestInterval, 0, - [&]() { - return BeginReadSelfTestInterval(epdComsHandle, nullptr); + [&](auto cb) { + return BeginReadSelfTestInterval(epdComsHandle, cb); }, [&](auto token) { return EndReadSelfTestInterval(epdComsHandle, token, &SelfTestMinutes); @@ -2925,8 +2913,8 @@ int Epd3Base::Epd3U::DoSelfTest() r = SetEpdON(); r = RunComsTransaction(eFunctions::fDoSelfTest, 0, - [&]() { - return BeginStartDetectorTest(epdComsHandle, nullptr); + [&](auto cb) { + return BeginStartDetectorTest(epdComsHandle, cb); }, [&](auto token) { return EndStartDetectorTest(epdComsHandle, token); diff --git a/EpdBase3/Epd3Base.h b/EpdBase3/Epd3Base.h index 1c756d7..0c3d7df 100644 --- a/EpdBase3/Epd3Base.h +++ b/EpdBase3/Epd3Base.h @@ -16,6 +16,22 @@ #pragma unmanaged +#ifdef _DEBUG +#define DebugWrite_IsActive() true +#else +#define DebugWrite_IsActive() (g_EnableReleaseLogging) +#endif + +#define DebugWrite(f, ...) \ + do { \ + if (DebugWrite_IsActive()) { \ + auto _msg = std::format(f, ##__VA_ARGS__); \ + OutputDebugStringA(_msg.c_str()); \ + } \ + } while (0) + + + #define MaxPeakRates 10 #define MaxSensitivities 10 #define MaxGains 10 @@ -25,7 +41,7 @@ #define MaxAlarmConfig 10 #define MaxTresholds 10 #define MaxSteps 50 -#define MaxBatch 4 +//#define MaxBatch 4 //ResponseTimeout was set to 2500 in code, but initial this was 500ms // 0b 1001110010000100 //constexpr int ResponseTimeout = 500; @@ -114,13 +130,14 @@ namespace Epd3Base { { public: const char* LogFileName; + std::ofstream logFile; char comPort[5] = { "COM4" }; CommsHandle epdComsHandle; //uint32_t CurrentDeviceID; EpdGeneration EpdGen; DiscoveryId Epd; - CompletionToken token, btoken[MaxBatch]; + CompletionToken m_activeToken ; //btoken[MaxBatch], WORD port = 3; const WORD MaxDevices = 10; WORD DeviceCount = 0; @@ -435,8 +452,8 @@ namespace Epd3Base { 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, int waitTime=10); + //int32_t CommitAndSetRV(int idx[], int len); + //int32_t CommitAndEnd2RV(int32_t (WINAPI *endFunction2)(CommsHandle hComms, CompletionToken token), CompletionToken token, int waitTime=10); int32_t End2RV(int step, int32_t(WINAPI* endFunction2)(CommsHandle hComms, CompletionToken token), CompletionToken token); int GetAll(bool Closeconnection); int GetAllDeissue(bool reconnect); @@ -469,57 +486,95 @@ namespace Epd3Base { void incrementError(int rv); void ResetStepReturnValues(); template - bool RunComsTransaction(enum eFunctions f, BYTE CanIgnor, FBegin beginCall, FEnd endCall, int waitTime=10) { - int r = 0, trie = 0; - SetFunctionReturnValue(f, CanIgnor, trie); - auto token = beginCall(); - r = Commit3(epdComsHandle); - SetCommitReturnValue(r); - if (!r) { - Sleep(waitTime); - r = endCall(token); - } - else { - SetEndReturnValue(r); - trie++; - ReConnect(); - SetFunctionReturnValue(f, CanIgnor, trie); - token = beginCall(); + bool RunComsTransaction(enum eFunctions f, BYTE CanIgnor, FBegin beginCall, FEnd endCall, int waitTime = 10, int maxRetries = 1) { + int r = 0; + int trie = 0; // Current retry + + while (trie <= maxRetries ) { + if (isCancelled()) break; + ResetEvent(hCompletion); + SetFunctionReturnValue(f, CanIgnor, trie); + m_activeToken = beginCall(completion); + + // 1. Commit phase r = Commit3(epdComsHandle); SetCommitReturnValue(r); - if (!r) { - Sleep(waitTime); - r = endCall(token); + + // 2. End phase if commit succeeded + if (r == 0) { + + DWORD waitResult = WaitForSingleObject(hCompletion, 5000); + + if (waitResult == WAIT_OBJECT_0) { + Sleep(waitTime); + r = endCall(m_activeToken); + } + else { + // Dll Timeout or failure occurred + m_activeToken = nullptr; + r = -1; // Set your timeout/error code here + } + //r = endCall(token); + } + SetEndReturnValue(r); + + if (r == 0) { + break; + } + + trie++; + if (trie <= maxRetries) { +#if _DEBUG + DebugWrite("***===*** Retry rv {} trie {}", r, trie); +#endif + //if (r==r_ErrorNotConnected) + ReConnect(); //misschien alleen als error = not connected ? + r= ReadStatusOnly(); } } - return SetEndReturnValue(r); + m_activeToken = nullptr; + return r; } + int SetEpdOFF() { return RunComsTransaction( eFunctions::EpdOff, 0, - [&]() { - return BeginEpdOnOff(epdComsHandle, 0, nullptr); + [&](auto cb) { + return BeginEpdOnOff(epdComsHandle, 0, cb); }, [&](auto token) { return EndEpdOnOff(epdComsHandle, token); }, - 1000 + 100 ); } int SetEpdON() { return RunComsTransaction( eFunctions::EpdOn, 0, - [&]() { - return BeginEpdOnOff(epdComsHandle, 1, nullptr); + [&](auto cb) { + return BeginEpdOnOff(epdComsHandle, 1, cb); }, [&](auto token) { return EndEpdOnOff(epdComsHandle, token); }, - 1000 + 200 ); } + + inline static Epd3Base::Epd3U* s_pInstance = nullptr; // Tracks the active instance (C++17) + + static void WINAPI completion(CommsHandle hComms, CompletionToken token) + { + if (s_pInstance) { + // ONLY signal the event if the token matches our current active request! + if (token == s_pInstance->m_activeToken) { + SetEvent(s_pInstance->hCompletion); + } + } + //SetEvent(s_pInstance->hCompletion); + } public: diff --git a/EpdBaseClr/EpdBaseClr.cpp b/EpdBaseClr/EpdBaseClr.cpp index 82652cc..0a3a823 100644 --- a/EpdBaseClr/EpdBaseClr.cpp +++ b/EpdBaseClr/EpdBaseClr.cpp @@ -132,7 +132,6 @@ int EpdBaseClr::Epd2::GetSteps() if (nsteps>0) { StepReturnValues = gcnew System::Collections::Generic::List(nsteps); cStepValues^ x; - for (int i = 0; iendrv = epd3->StepReturnValues[i][2]; x->commitms = epd3->StepReturnValues[i][4]; x->endms = epd3->StepReturnValues[i][5]; - x->commitcode = epd3->StepReturnValues[i][6]; - x->endcode = epd3->StepReturnValues[i][7]; + x->commitcode = (Int16)epd3->StepReturnValues[i][6]; + x->endcode = epd3->StepReturnValues[i][7]; + x->retry = epd3->StepReturnValues[i][8]; StepReturnValues->Add(x); - } int tm; if (nsteps>0) { @@ -1034,6 +1033,7 @@ int EpdBaseClr::Epd2::IssueAndCheck(float gain, float ChirpRate, bool WriteConfi if (!isMK3) { LogMessage("IssueAndCheck: !isMK3 BeforeSetIssued"); BeforeSetIssued(epd); + rv = epd->IssueAndCheck(gain); LogMessage("IssueAndCheck: !isMK3 rv={}",rv); } diff --git a/EpdBaseClr/EpdBaseClr.h b/EpdBaseClr/EpdBaseClr.h index 74ca64a..48cefb0 100644 --- a/EpdBaseClr/EpdBaseClr.h +++ b/EpdBaseClr/EpdBaseClr.h @@ -38,6 +38,7 @@ namespace EpdBaseClr { Int32 endms; Int32 commitcode; int32_t endcode; + Int32 retry; cStepValues(); ~ cStepValues(); @@ -47,7 +48,7 @@ namespace EpdBaseClr { cStepValues:: cStepValues() { - func = -1; commitrv = -1; endrv = -1; commitms = -1; endms = -1; commitcode = 0; endcode = 0; + func = -1; commitrv = -1; endrv = -1; commitms = -1; endms = -1; commitcode = 0; endcode = 0; retry = 0; } cStepValues::~ cStepValues() diff --git a/EpdBaseClr/EpdProgress.h b/EpdBaseClr/EpdProgress.h index f5f14e4..035ecd9 100644 --- a/EpdBaseClr/EpdProgress.h +++ b/EpdBaseClr/EpdProgress.h @@ -49,7 +49,8 @@ EXPORT_MANAGED enum class EpdStepColumns commitMS, endMS, commitCode, - endCode, + endCode, + retry, maxStepColumn }; diff --git a/EpdBaseClr/Version.h b/EpdBaseClr/Version.h index 77d5fc2..f1c80e1 100644 --- a/EpdBaseClr/Version.h +++ b/EpdBaseClr/Version.h @@ -3,11 +3,11 @@ // C++ / Win32 resource editor vereist getallen met komma's #define VERSION_MAJOR 4 #define VERSION_MINOR 3 -#define VERSION_BUILD 0 +#define VERSION_BUILD 2 #define VERSION_REVISION 0 // Strings voor de tekstuele weergave -#define VERSION_STRING "4.3.0.0" +#define VERSION_STRING "4.3.2.0" #define COPYRIGHT_STRING "Copyright (c) 2019-2026 LSW-Tech Luc Vandenbroucke" #define COMPANY_STRING "LSW-Tech" #define PRODUCT_STRING "EpdBaseClr" diff --git a/eDosLocal/SqlUpdates/update_006.sql b/eDosLocal/SqlUpdates/update_006.sql index 9909169..3308835 100644 --- a/eDosLocal/SqlUpdates/update_006.sql +++ b/eDosLocal/SqlUpdates/update_006.sql @@ -33,7 +33,7 @@ AS BEGIN VALUES(@EPDID, @FirmWare, @ID_Station, @now, @ID_Station, @now, @epdType, 0, @HardWare); ELSE UPDATE [dbo].[EPDDevice] - SET [Last_Station]=@ID_Station, [lastseen]=@now, [synced]=0, [HardWare]=@HardWare + SET [Last_Station]=@ID_Station, [lastseen]=@now, [synced]=0, [HardWare]=@HardWare, [FirmWare]=@FirmWare WHERE [EPDID]=@EPDID; INSERT [dbo].[EPDDeviceLog]([EPDID], [ID_Station], [ID_Visit], [updated], [BatNoload_mV], [Batload_mV], [CPU_mV], [r_InvalidState], [r_OperationTimeout], [r_InsufficientPriv], [r_OperationFailed], [r_ErrorUnexpectedResponse], [r_OtherError], [WriteTime], [Registered] , [DllVersion]) diff --git a/eDosStation/DecodeResults.cs b/eDosStation/DecodeResults.cs index b671e2c..2ba54a5 100644 --- a/eDosStation/DecodeResults.cs +++ b/eDosStation/DecodeResults.cs @@ -144,7 +144,7 @@ namespace eDosStation if (Lst != null && Lst.Count > 0) for (int s = 0; s < Lst.Count; s++) { - string msg = $"{s} {GetName(Lst[s].func)} commit: {Getresult(Lst[s].commitrv)} ({Lst[s].commitms} ms) (er {Lst[s].commitcode} ) / end : {Getresult(Lst[s].endrv)} ({Lst[s].endms} ms) (er {Lst[s].endcode} )"; + string msg = $"{s} {GetName(Lst[s].func)} commit: {Getresult(Lst[s].commitrv)} ({Lst[s].commitms} ms) (er {Lst[s].commitcode} ) / end : {Getresult(Lst[s].endrv)} ({Lst[s].endms} ms) (er {Lst[s].endcode} ) retry {Lst[s].retry}"; spl?.WriteSplunkLog(module, null,(Lst[s].commitrv == 0 || Lst[s].commitrv == -998 )&& Lst[s].endrv == 0 ? cspl.iseverity.info : cspl.iseverity.err, msg); } } diff --git a/eDosStation/Properties/AssemblyInfo.cs b/eDosStation/Properties/AssemblyInfo.cs index 4e63eb4..3e2d9da 100644 --- a/eDosStation/Properties/AssemblyInfo.cs +++ b/eDosStation/Properties/AssemblyInfo.cs @@ -78,5 +78,5 @@ using System.Windows; //2026-10-16 4.1.9 : testsound only from epd software version 2+ //2026-10-22 4.1.10-12 : register hardware version,r_ErrorUnexpectedResponse -[assembly: AssemblyVersion("4.1.13.0")] -[assembly: AssemblyFileVersion("4.1.13.0")] +[assembly: AssemblyVersion("4.1.15.0")] +[assembly: AssemblyFileVersion("4.1.15.0")] diff --git a/eDosStation/Resources/BuildDate.txt b/eDosStation/Resources/BuildDate.txt index 9a6512b..6037a85 100644 --- a/eDosStation/Resources/BuildDate.txt +++ b/eDosStation/Resources/BuildDate.txt @@ -1 +1 @@ -22/10/2026 15:59:17,40 +29/10/2026 10:24:54,58 diff --git a/scripts/Downgrader.ps1 b/scripts/Downgrader.ps1 index 07e0805..f6c1e64 100644 --- a/scripts/Downgrader.ps1 +++ b/scripts/Downgrader.ps1 @@ -208,17 +208,17 @@ exit # RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt # ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExAhAIT9wzT35FTtvDD4/5 # khg1MA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc -# BgkqhkiG9w0BCQUxDxcNMjYxMDIyMTM1OTMwWjAvBgkqhkiG9w0BCQQxIgQgwGts +# BgkqhkiG9w0BCQUxDxcNMjYxMDI5MDkyNTA3WjAvBgkqhkiG9w0BCQQxIgQgwGts # hmgwg+1No3Bfq4IiEmxiCsjb9Jy7A/l9sT7ewm0wDQYJKoZIhvcNAQEBBQAEggIA -# aid89A+Uk/vvBwIM8u9hg7hfk0rr0dfhoP/Dtubh54LKBg/0ZzwJa6uSt3zelrvu -# mNQbsSwRRHsqJaWJ0Ao64IPhKov8hPilSJX6NRRitf4SPYXfXikaRI103PZDmusz -# Kl5SpeYPg9VmdAgn25uwFAjQO9Kx9gCWIo6uiq/00zIQfmJRjM55NU9dWr+qWjWS -# xA7gYSN+Len0AOdk/Eo1d7vx2C2n6fCXA079HC/e3cS7eedCEIut1D14xLdif9aH -# qNcOVk50FhHqIqH2TKo2mPrZcyS37fnsHctvKb4CTgKBNGtUD3zD7uRFBWc5aayu -# koe/TgFPpNeevP8AMTbPSkocZp+a5eVvyUwlTdpQ1nNHf9vqzUj7jSsymOhuajn1 -# ydD6EM5ZQwXmTzXw+BLbc0XOUHaV/cuu5sBZs/QPa1Qge9WZUh8YGst3Lxc0dmG1 -# pJ0fMz/2UG/uZFC+RGJhW4i/yfjeEzd+mpxT0xd1sJF6eyCypP7rJfMn0LO3JufZ -# iGNeHVero2vpG9jaxjeN66I4Fa4zVQ+dmIftHjGWZjmUn7U5GJdfuLmDxeTablCT -# XtYeSgI55nkagDgWx+p4RbQEzsQBPPNlwvhh93Kvz7+x7Jbv3VwlXigyPHuriMc5 -# C0QIKQ/mN/n7ERBFGF61LLFWbK9Urd0W7i4N/Ld4sYE= +# J/kRH4P1VU2foQVL58+wLGu6YtqtoUfJ8/VjBeIUOaZdwuSUNWEXACQ8C1gQ66kT +# UeISVgfxC1Ec2Aa/q5cje1cV3/BhOqT1oADVI79tyjsFgzofKAWAGKNp55dBHP99 +# H7vIBRJNaDTsNInzkAHj6FlY1Il1BEIhaXS5esaw4ej70Z3ulm1NAEgpiiuh/0kF +# P6Q8dcGLhG+5V/Jz1ZqtXXBp6DIV9e3xycEz4dy19cFTeplPGrijP0oAY0/hdsr+ +# 5soraVsz/fjXq7bDKWX3BcA+2E4ueS8lIAFrmLtiF+A5rkHePMh9lS4wv0Q2fnLL +# rjuGrvfvCXs5rQJ6FIC6w1dH3+/5v0aWXP1DQzkByZ8GfUa0hbjJEXlawOoY9AAu +# hbLyDuC09GClslNB40nMRpr9qKKqhlk2i4GcXFmWI66WTx8H9/1GXSpFiUHEOcr+ +# zSiu61Yhm2WSlJzJjhv8AEaZa8/FlZsVwsSBlfrXhIVMSS49SWXAYFD9Z0eZElum +# AC1pKCVq2BEf0HG33gaS5NbXtKgxtdThdrcT1SFyfq+jrsRPqOPTml3bFT/yN1y2 +# O0nSzyw0HMavS3VxTxPQemV79tHAIYyWQVOvY5dV25KdVUMsuKiGcvxoFi/Aml6i +# kDPk4DVVcs00Ghoz6m78JJBbVZ33+PdLXHS8I2N02pc= # SIG # End signature block diff --git a/scripts/UpdateSql.ps1 b/scripts/UpdateSql.ps1 index 9d98d52..fd022e1 100644 --- a/scripts/UpdateSql.ps1 +++ b/scripts/UpdateSql.ps1 @@ -262,17 +262,17 @@ Write-Host "Database is volledig up-to-date!" -ForegroundColor Green # RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt # ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExAhAIT9wzT35FTtvDD4/5 # khg1MA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc -# BgkqhkiG9w0BCQUxDxcNMjYxMDIyMTM1OTMxWjAvBgkqhkiG9w0BCQQxIgQgX8Jz +# BgkqhkiG9w0BCQUxDxcNMjYxMDI5MDkyNTA4WjAvBgkqhkiG9w0BCQQxIgQgX8Jz # mt8t4dFlf6dbnq2GYMYV89o+noBMKSYbxRzsddYwDQYJKoZIhvcNAQEBBQAEggIA -# Kj5HuXiR76PIdc4NaMipB1wQHDpXGfBVQaRHsxriX6pw9m+dPTPJSR0MyfD9cjlB -# TR8MppvOv7g6ZlHOyrX5aaNwEtw6h4VSH1oP1cgWLNneO4W7zmmVI+VuwmiA6NMk -# pVWakW03ax9PBVcaB1+qn3ERF5Rnh5sx30GtGdVdODn/qvFl6Mvp1NepePxky3f5 -# o7DiTvSuV+unofLopLTf0yYi9DZBGNkfhxUMPTghFmzqhLuNtw3HFzdXzAaqDu3A -# nE8kcUeZ+LpyfMnrvMy/lZV2Sg25yVT/rAwiL8EV7Z4BmjlE2jtZXp50GeltAywY -# Yaer/NwF1rJrkaNT7elgcrjt4HU3Qv9JwcLBVRu65zmaY7QhRAX+ukIQUZ3COjQx -# O9GsQbXUim5nThYA0+Jr/Hl51swoNDp/udNHU7DcdkUhr5znnZQsWIz24Ab7o9OE -# X0bSpr/hAdbzKJCrlc/Uc1BAkKgzv4vZuPtYJVib3V5IW9kX9jdsP/KecwMDdmfH -# c2RJR4fu6sEofQG1vXoKBQGJxx9fRUbg9uvM1ngke4sirbvlDFMCH+ziVa91b+hP -# V1KO64gDNoW2aucjFJ15cGEZ5AFXQEu7nJKI1pBcDLcWimiQ0SR2AEX16B0sQj07 -# fohQitfrS1hPn8hx4dIWMOV8wfxOs8MEfyZf+mddtyM= +# AFh3VuR8Qz1QAhq3V2Vib3wluF0flQI7ukrJuwwfKsux95vG6EiWiKpI5jeTKIPJ +# pgpMhSY2zCXuHUBbn/lRso1Fmj6e2Zr7GILj4xD0kT4F7kbYCm7f5oKbHfbT4M0m +# vVZIFlHqyzilCVBJus97OMaU4Je2Wv26lLEn70n6wtmh5hdbUWHycfFssQgPiGIJ +# s1kXwKe5iCy0wNZknUIjYBoxNuqEnRn1wMhCt7dVdadxgJGpbQp169C0qEayrLYl +# d80u3ylQ8eMr9FE+D+aU4nP2GzdzgD//TAbft3tRfxEW+kivzfGJlsO/JsONwXsN +# 5I7D8m34R0InDVp+5TaCWMA2mHk1IArPyDhXEN9zZJPd6xYMI4O6Ffb1BkKqOBzi +# prkE+dyHbVRDokKLEKVjuFI5B3CMPkG4LVRJEsViwVPr72q1xFIAPdLWYBgcVmFr +# vqyIuU+QhkFgGVKFDKfLMUIlzIeG2gbn4rb7kUhPf7kFSvIXwe2WB2PKDyMg0OuI +# ovRLfOasxIDsNCeihCX2HCRMdDnpphLkYSXomYo2eVUm1hPPWdBum71ZhntqMbMQ +# wsrA3YP1N8BYHZLjnWa5/OYRqsJH5O+ak0bP4UTqCICDuQ4OQfsnYJl+smn4Wofl +# hRQnFlC4Ds31XHVESImAqRgdRdV15tgDY5BL2IwzDaA= # SIG # End signature block diff --git a/scripts/Upgrader.ps1 b/scripts/Upgrader.ps1 index 6e06595..cc50a7b 100644 --- a/scripts/Upgrader.ps1 +++ b/scripts/Upgrader.ps1 @@ -351,17 +351,17 @@ exit # RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt # ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExAhAIT9wzT35FTtvDD4/5 # khg1MA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc -# BgkqhkiG9w0BCQUxDxcNMjYxMDIyMTM1OTMwWjAvBgkqhkiG9w0BCQQxIgQgOHLe +# BgkqhkiG9w0BCQUxDxcNMjYxMDI5MDkyNTA3WjAvBgkqhkiG9w0BCQQxIgQgOHLe # 10ZbE4bBoaCBq6mdTnn2K0ymg6PqwqP+YaWiyT4wDQYJKoZIhvcNAQEBBQAEggIA -# P+BfQ1XdMydyUvDYUcHiIiOKFhvkbS1nZH1JuK6zpCXhOOhGjf7s5o3KFnYCFG8p -# 80lXtRb9Odpoo7su2+PJxCjEyB1BQv/AL40pIic1fHFF0sxEdtI5WbYAIcvAzAr1 -# GAeAw8WMyZw3cBGHSP7SSEfCBpA4nf3a8RMU/3fLGcJmjYtWtSYmbpsi7/A8InUC -# Ly65wl2KlJPpGhxuYBsGzWr0VzkUDLW4qw0yAor77T8xslBsi4giVLKys8/zlJCO -# UKev3VTdEyIQTOdrcP5cbyrN6u8aWpUXKqrHRPiVn7VNS7C+NdRkBIsrbG9SEw1A -# +ALHrDmOKCo10cJiPJmbpLl7FiGKkFR0jcT7m/ojXPFzYZYIN8Lma8HJCRG4j0OQ -# 7mAfhDhusQcL5AMLnNPCy68Wqajinl1+Bo5IlaRJCryUG606HsgKE6JsJ5cFSHm7 -# nXCpJSL4sJfCV/t5e/hE2hZfxYGjDgKwPlSppzTjW2GJNiu5ZlURPG8T5txmxnDt -# w0PpVdnfIFX+PsbfeQ5yHzTxDqrgzWM6iz8nHfrpMiswhM7kSCGmHqO7ZOwAsN03 -# 8b/z7kI1bQoNbkIXP55I3sLSiabFZCSvDZIgPu+pu0mP0AKBFkBxuy21XRggWmA/ -# 2MnoHYCWENpjTWErTWQjni4yAGAbZftM9VB0ECoowxs= +# LTMZGeT68+1HxynHj0bcDAwTr31sysVX9nzUOkFzBaqaQjtrEMpcOdurqhZSwXl6 +# o/Ilr50STTUrRlbVsxIflOw60lQzxRQsGK396siaCvcv6A+1efmVg67goEG+xcxh +# Qn54S09awYK/X3wDlbgz8NUNHsmgTR4QoYeHtQa/p2pQ6Cf99v9S/Q4d4KkrU53e +# dPVczxvLcuRwT992aXr6hXNOGRUzDxIOhqT2FHxQPA0hSofCemhtzgyf4opHUmAb +# y6WuCnxz91FVdWrqh8HaJtD7A8hSLU0xgcvp5DahoyHKSPDs9GyFcIkatP5L8Emk +# srGCaF1QGwTTvNa2QbtU6m0/zX7WM4jZmCyk0fHGKvi5GyehUYSv7GZvyt/YPeQu +# 7vIdPWrjy+rYXVFmnXHLlAWfaqz7Na3LGNHT8jyRgEMhO9Wt/aeYwogMnXbuWkSQ +# ac/Wo2B80M4EntIVIv6c5GrmCGxwAw9katccgH1NS3AlkDx/Avpjt0W4OiyfBCMg +# 8jc2uel1r3LpskQO5s4GpduJluRrxrgPoln+SJlmuLUS5CC42FH94h9AKetRNYhw +# C1p+ccLPyPmHqmvxwqFTXEjZJTEwU32vokN4zJDCWXsuVq7OzeOEbcc+EMWzNlfJ +# rlnqr72s+beaKctoSwljRI3mjRIX2AYnN7nntX7guo0= # SIG # End signature block diff --git a/scripts/installatie.ps1 b/scripts/installatie.ps1 index eced68b..7053c45 100644 --- a/scripts/installatie.ps1 +++ b/scripts/installatie.ps1 @@ -333,17 +333,17 @@ exit # RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt # ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExAhAIT9wzT35FTtvDD4/5 # khg1MA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc -# BgkqhkiG9w0BCQUxDxcNMjYxMDIyMTM1OTMxWjAvBgkqhkiG9w0BCQQxIgQgvcaw +# BgkqhkiG9w0BCQUxDxcNMjYxMDI5MDkyNTA3WjAvBgkqhkiG9w0BCQQxIgQgvcaw # S55NsqsO8cNQM/o5pcLWgsKlsCZImMggqSii8i4wDQYJKoZIhvcNAQEBBQAEggIA -# Pwzbcf1TrlVxZSmIhiv32rVDxPVp1CdY8zyMZuvCCxyvapbHNRCxr+pzanDwdbGc -# pOxAazRL5fcywpQ192N4VUa+2C5bPPZ/GKN+7u42Acs4xXcNytEVsAKHsODqKcFI -# QdreC6bpdCuyIVuFpeyl8TIssjYtN6XQF8Be/qZI1FOPi7EUS1WHlsuXs8YaI9Aw -# 9pNXbLoR03Ry3ChPmepUskrrRmPmqRoL8S6f2KxZRggO0SfnoxjGRgNCu05Yjfgp -# Ly3vuYxUQnlj5VXGmAH0Y0QZ4mSKyC58yq3DIsRWAi7r1gY3+3gTPCwPcaj8FMAB -# Of0jIitHHE10c+dLsCPtl2uVjM/FM3y65e6COat7I/97sbdeNHr0GWhA7haJTUtZ -# C8TkB5kuparhD0KcekQnZDZCOJdbZzI90nRDsj4Hbgk6H/Gp64g5udNdyK7Yf+dX -# DSwkhQ6Zjey6AHSMkIUsa8BODz3WWfSWpoqxLgBBX4BhfD+LjfY4nWUEJDWM7wc5 -# OIDaTRjGD3OPcFFOyBqp/lDS5gsi/SuO4tIs87jvVCVN9MruKUdFcT0BOzfFOYv1 -# 478HTROFlLty6yoed+am4XFWarGOxyBcHCEm8paPgmZhkxSIiYzKbauBioaYEaZD -# 7a7SGkAR56/s9zpGGmvtt+ID83OtrfUylZ7QcCkd5j0= +# FczbdVVtAh1Kt5kPlzPL2bns/UAU/17lW44vNeH6IZ6Roe9SZ+w+GB5tkMB6vqtR +# DvJ/ynEL1ikYM+JA2G4AsYUVyN+LgDwuMDJkI18Liau+iMkF//wCaHq9UQNsUP3n +# oG1Zyi9YdGAHyglVrYvu7/GF1Kxifon3JLVJHq6/RKwlT03orX+ppwct3xxT8yOA +# GkoSbKKSHEoK/VaeYY4XfFpHwgUNeuweg/94M5GUKbVGJ6QyDNeoLFgS8MzNh8QF +# 0hTOXTmA5LOaukpfW02YnN76jO3X836i2LBWIn9jb9bvXZI+slvCDlmU1L3Qlnew +# /AJZv1JYhRmF6WV9z5Cmc1ETpxii/kbuj85aU1apWPqsS236/Wo0++18RE1dnQrB +# heM4O3waUgJXZRqrhICzQxwr+eEBeEeL8ByFw6cAnPoSr3j7UtPpbjonZLQuVHoC +# lnJqvc/lGs6hmdOmHVEK732F6+dR8S4SNgVis7CLnVQtRkZo7e1doR+/npMDnnAS +# UxMtKbPxoWIC+F48DpejasPS+98rhyZ0yR2Gcd4yRVTf37+1Pgn0zC6hBQlJgt4u +# YexvV2kMJizYFp+KniGVu7bxsrep8/cUnXTFxkzKFb8rqHiOZXM/RCT2dHjgCG4E +# axVIOG+56VD8pnzHyoZgBBHjjsyxCJWFcEXbl3nqFAk= # SIG # End signature block diff --git a/scripts/installatie2.ps1 b/scripts/installatie2.ps1 index 8b609e3..520f6c1 100644 --- a/scripts/installatie2.ps1 +++ b/scripts/installatie2.ps1 @@ -193,17 +193,17 @@ exit # RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt # ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExAhAIT9wzT35FTtvDD4/5 # khg1MA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc -# BgkqhkiG9w0BCQUxDxcNMjYxMDIyMTM1OTMxWjAvBgkqhkiG9w0BCQQxIgQg6Tgk +# BgkqhkiG9w0BCQUxDxcNMjYxMDI5MDkyNTA4WjAvBgkqhkiG9w0BCQQxIgQg6Tgk # d9vgRJTrKaa/aNqr0ugqtMxl17/Df7q35ywcJSEwDQYJKoZIhvcNAQEBBQAEggIA -# HqPO9fcFB/S6MVIdOQbai3zNPkTRN42P6weOB9R9fAthapxxn7ZtdsHrAu6JvbGq -# jo+jkgVgjbPxhuCOhFUFGT1E9jW3bJtgjDuXSdrkdmlqhOlaS5DppFsYgl81sJfd -# uFJPPJsYsx/tgepF2d2p9tXz7EDuAFEiiJmGnLuMP3zWp8pdsdxWcbE+lmjLRGUN -# WOqaFXILagR1UtkzWGriAQd0Z9+7c3OTxLgRYc5Xgjd+ZAuOG+FbBUMBEJCg86jC -# +YQLsAbSWpVlujcu5+d6CfbcLXKmq95E6Vw2kGngfpomK2/VDqyXaoJJG6NCL/Pt -# 61cx/WLJ2JM9LKTTk6iJY7ezg/ai0WH5p5rXcvGfgXbjvpEHrootzwntl/JBmAiv -# WDhsON4udWbQ3NfSXySts+BFzH+DOWWJ7192sPY7y1diDXmB4n3wN7UYQNbxac4D -# NPyf3afWVQvTXxj97R1cXDRH2gA/lLF7Acdr9+FWtUYXgcwRfajk70QR7PEKHM51 -# rxMoSB5xRNOX76FymKl3d+aBvvWlI3/547scaSPSCC3qR4A4GU/sOlBDnxloZHEH -# AMiu67w+iRAwpUTneHvEXjgPg0ca1K67svFBI3xlSdChNMngrqF+orOmmc+Upn12 -# FhPn4VvV27X3jE58Rq7HqnJ3S4IyQ9KOPwHSsdN/OeY= +# O1suoDc1AD00ILPpPB1JzilxO8zlJCjM/HVCrZgy4d2/9XI7zjbnoqpfQj6U+aEB +# wbNIDx4nX2r8tax29JVfWnpF18vZnKx3L+4b+upJXailgtBRgxf+TOEgayc6z0Ag +# uvEXcp3PI58k0I+DdhHbO+aprMRHXQ/nWVSaHwCjwxIlrGwek95ybGN46bOl+tzk +# BFY4u5sAqr3yXOIjc5Kf51rlVbHxY3T3LKLhBYY7HWv21VnliwmW45AUslbT4/xj +# w2T4jN83Dob1P1JyGg9caBAq1vlZuIPB705zvdV/DvrnC8M39Vy+ZNux4o3b9bHH +# M+lymJ6gw9c7EJtopISGSLmfAow56KAD7RASksGsWAcjzQZJVCQcLml8Ed3+lyYc +# ohu/er6Q+yKT3Ydse/DzkNX6F4H+6MV/hVR9CeI+yJIm2GpB2Y3GWZYyT8knsjB9 +# w2Mypk/P8WlimYXLzOxkU1y8BR4KCFbkUFugJmOv31ao0O9+yPfioY1aRZNrtgsk +# cE6QqMgENyPHiJqv5YObmqPnRp9JzhGj6+pThnQbuOucanLocuC1AixioVq+jrNu +# G1/Rmdu2/t0xeJa3/hrThzbB6wMh6exuhJ6Aej84QGb1Q69jBs8Vg2OoPz9IQllq +# VObFs4e0Jyx1G6rAbPivjnApZbHziJZxBSHn2ix2BGo= # SIG # End signature block