diff --git a/EpdBase/EpdBase.cpp b/EpdBase/EpdBase.cpp
index eb18b3d..501d682 100644
--- a/EpdBase/EpdBase.cpp
+++ b/EpdBase/EpdBase.cpp
@@ -608,7 +608,7 @@ int EpdBase::Epd2U::ConnectAndStatus(int tokenSourceTimeoutms)
{
WORD dllStatus;
int rv = 1;
- if (CommsInitialized == 0) StartCom();
+ if (CommsInitialized == 0) StartCom();
if (CommsInitialized == 0) rv = 1;
else {
dllStatus = StartDiscover(tokenSourceTimeoutms);
diff --git a/EpdBase3/Epd3Base.cpp b/EpdBase3/Epd3Base.cpp
index d41e1d4..099118b 100644
--- a/EpdBase3/Epd3Base.cpp
+++ b/EpdBase3/Epd3Base.cpp
@@ -16,18 +16,25 @@ void WINAPI discovery(CommsHandle hComms, DiscoveryId const discovered[], int32_
{
if (count > 0)
{
+ memcpy(¤t->Epd, &discovered[0], sizeof(DiscoveryId));
current->CurrentDeviceID = discovered[0].Id;
current->DeviceCount = count;
- memcpy(¤t->Epd, &discovered[0], sizeof(DiscoveryId));
SetEvent(current->hCompletion);
current->isMK3 = (current->Epd.Gen == EpdGeneration::Mk3);
current->EpdID = current->Epd.Id;
}
}
+void WINAPI connectcallback(CommsHandle hComms, DiscoveryId ID)
+{
+ current->isConnected = 1;
+ current->CurrentDeviceID = ID.Id;
+ current->DeviceCount = 1;
+}
+
void WINAPI disconnectcallback(CommsHandle hComms, DiscoveryId ID)
{
- current->EpdID = 0;
+ current->isConnected = 0;
current->CurrentDeviceID = 0;
current->DeviceCount = 0;
SetEvent(current->hCompletion);
@@ -38,7 +45,7 @@ Epd3Base::Epd3U::Epd3U(int _comport)
port = _comport;
comPort[3] = 48 + _comport;
CommsInitialized = 0;
- epdComsHandle = INVALID_HANDLE_VALUE;
+ epdComsHandle = nullptr;
isBG = isNG = VersionOK = 0;
Error = 123;
current = this;
@@ -64,8 +71,10 @@ Epd3Base::Epd3U::Epd3U(int _comport)
ErrorStatus = (FaultStatusFlags)0;
IssueCount = OtherAlarms = EEPROMBadSectors = 0;
RealTime = EpdClock = OffTime = EpdID = 0;
+ EPDFaulty = false;
+ hasAlarm = hasFault = 0;
ErrorSource = ErrorReason = ErrorData = 0;
- HardVersion = HardVersionMinor= SoftVersion = FunctionFlags = 0;
+ HardVersion = HardVersionMinor = SoftVersion = FunctionFlags = 0;
K1 = K2 = K3 = K4 = K4 = K6 = 0.0F;
HG = SG = BC = FB = 0;
@@ -90,28 +99,60 @@ Epd3Base::Epd3U::Epd3U(int _comport)
Epd3Base::Epd3U::~Epd3U()
{
EndCom();
- if (hCompletion != 0) { CloseHandle(hCompletion); hCompletion = 0; }
+ if (hCompletion != 0) { CloseHandle(hCompletion); hCompletion = 0; }
//if (hWaitTimer != 0) { CloseHandle(hWaitTimer); hWaitTimer = 0; }
}
DWORD Epd3Base::Epd3U::StartCom()
{
ErrorReason = 0;
+ ConnectRetries = 0;
+ int step = 1;
int mx = 10;
- epdComsHandle = INVALID_HANDLE_VALUE;
+
+ epdComsHandle = nullptr;
if (port == 0) {
CommsInitialized = 1;
return 1;
}
- if (CommsInitialized == 0) {
+
+ if (CommsInitialized == 0 || epdComsHandle == nullptr) {
+ step = 2;
epdComsHandle = CreateReaderInterface();
- Dll3RV = OpenReader(epdComsHandle, comPort);
- if (Dll3RV == 0)
- {
- Dll3RV = SetMultipleDiscoveryMode(epdComsHandle, false);
- CommsInitialized = 1;
+ if (epdComsHandle == nullptr) {
+ ++ConnectRetries;
+ step = 3;
+ Sleep(100);
+ epdComsHandle = CreateReaderInterface(); //try again;
+ }
+ if (epdComsHandle != nullptr) {
+ step = 4;
+ Dll3RV = OpenReader(epdComsHandle, comPort); //-6 = r_OperationFailed
+ if (Dll3RV) { //retry
+ ++ConnectRetries;
+ step = 5;
+ Sleep(100);
+ Dll3RV = OpenReader(epdComsHandle, comPort);
+ }
+ if (Dll3RV == 0)
+ {
+ step = 7;
+ CommsInitialized = 1;
+ Dll3RV = SetMultipleDiscoveryMode(epdComsHandle, false);
+ Dll3RV = SetResponseTimeout(epdComsHandle, 1000);
+ //Dll3RV = GetRetryCount(epdComsHandle, &retries); = 3
+ }
+ }
+ else {
+
+ Dll3RV = r_FunctionFail;
}
}
+ if (Dll3RV) goto error;
+ return Dll3RV;
+error:
+ ErrorStep = step;
+ Error = Dll3RV;
return Dll3RV;
}
@@ -120,7 +161,7 @@ void Epd3Base::Epd3U::EndCom()
int rv;
if (CommsInitialized == 1 || CurrentDeviceID != 0) {
if (CommsInitialized == 1) {
- if (epdComsHandle != INVALID_HANDLE_VALUE) {
+ if (epdComsHandle != nullptr) {
DisCon(0);
Dll3RV = CloseReader(epdComsHandle);
if (Dll3RV) {
@@ -135,7 +176,7 @@ void Epd3Base::Epd3U::EndCom()
Epd.Id = 0;
CurrentDeviceID = 0;
CommsInitialized = 0;
- epdComsHandle = INVALID_HANDLE_VALUE;
+ epdComsHandle = nullptr;
}
}
@@ -146,38 +187,42 @@ void Epd3Base::Epd3U::EndCom()
/// rv=1 ,ook bij timeout <>1 voor error
int Epd3Base::Epd3U::StartDiscover(int tokentimeout)
{
- int32_t rv=1;
+ int32_t rv = 1;
int32_t rv2 = 0;
Error = 0;
if (port == 0) {
DeviceCount = 1;
- isBG = 1;
+ isBG = 1;
DeviceIDs[0] = 768;
return 0;
}
-
-
+
+ current = this;
Dll3RV = SetDiscoveryCacheTimeout(epdComsHandle, tokentimeout);
- //Dll3RV = Commit3(epdComsHandle);
- DeviceCount = 0; ConnectTries = 1;
- //rv2 = Cancel(epdComsHandle); Cancel bestaat niet
+ DeviceCount = 0;
ResetEvent(hCompletion);
ConnectTimerFired = 0;
- current = this;
+ isConnected = 0;
+
Dll3RV = StartDiscovery(epdComsHandle, discovery);
if (Dll3RV == 0) {
- Dll3RV = WaitForSingleObject(hCompletion, tokentimeout);
- if (Dll3RV == WAIT_OBJECT_0) rv = 1;
- else if (Dll3RV == WAIT_TIMEOUT) {
- rv = 1; ConnectTimerFired = 1;
- rv2= StopDiscovery(epdComsHandle);
- DeviceCount = 0;
- } else rv = 2;
+ Dll3RV = WaitForSingleObject(hCompletion, tokentimeout);
+ if (Dll3RV == WAIT_OBJECT_0) rv = 1;
+ else if (Dll3RV == WAIT_TIMEOUT) {
+ rv = 1;
+ ConnectTimerFired = 1;
+ rv2 = StopDiscovery(epdComsHandle);
+ DeviceCount = 0;
+ }
+ else rv = 2;
}
- if ( DeviceCount > 0) {
+ if (DeviceCount > 0) {
+ Dll3RV = SetConnectCallback(epdComsHandle, connectcallback);
Dll3RV = Connect3(epdComsHandle, Epd, true);
- if (Dll3RV != 0) rv = 2;
- else Dll3RV = SetDisconnectCallback(epdComsHandle, disconnectcallback);
+ if (Dll3RV != 0) rv = 2;
+ else {
+ Dll3RV = SetDisconnectCallback(epdComsHandle, disconnectcallback);
+ }
}
return rv;
}
@@ -185,7 +230,7 @@ int Epd3Base::Epd3U::StartDiscover(int tokentimeout)
int Epd3Base::Epd3U::OpenDev(DiscoveryId DeviceID)
{
CurrentDeviceID = DeviceID.Id;
- if (epdComsHandle != INVALID_HANDLE_VALUE)
+ if (epdComsHandle != nullptr)
{
Dll3RV = Connect3(epdComsHandle, DeviceID, true);
}
@@ -195,12 +240,13 @@ int Epd3Base::Epd3U::OpenDev(DiscoveryId DeviceID)
int Epd3Base::Epd3U::ReOpenDev()
{
- if (epdComsHandle != INVALID_HANDLE_VALUE)
+ if (epdComsHandle != nullptr)
{
Dll3RV = Connect3(epdComsHandle, Epd, true);
}
- else {
- Dll3RV = r_InvalidCommsHandle; } //no handle ..
+ else {
+ Dll3RV = r_InvalidCommsHandle;
+ } //no handle ..
return Dll3RV;
}
@@ -219,17 +265,17 @@ int Epd3Base::Epd3U::DisCon(UINT16 alarm)
Dll3RV = Disconnect(epdComsHandle);
if (Dll3RV) { rv = Dll3RV; goto error; }
-
+
step = 2;
Dll3RV = WaitForSingleObject(hCompletion, 3000);
switch (Dll3RV) {
- case WAIT_OBJECT_0: rv = 0; break;
- case WAIT_TIMEOUT:
- rv = 0;
- current->CurrentDeviceID = 0;
- current->DeviceCount = 0;
- break;
- default: rv = 3; break;
+ case WAIT_OBJECT_0: rv = 0; break;
+ case WAIT_TIMEOUT:
+ rv = 0;
+ current->CurrentDeviceID = 0;
+ current->DeviceCount = 0;
+ break;
+ default: rv = 3; break;
}
}
return rv;
@@ -239,12 +285,12 @@ error:
void Epd3Base::Epd3U::CloseDev(bool CloseAll)
{
- if (epdComsHandle != INVALID_HANDLE_VALUE) {
+ if (epdComsHandle != nullptr) {
DisCon(0);
if (CloseAll) {
CloseReader(epdComsHandle);
DestroyReaderInterface(epdComsHandle);
- epdComsHandle = INVALID_HANDLE_VALUE;
+ epdComsHandle = nullptr;
}
}
}
@@ -280,9 +326,9 @@ void Epd3Base::Epd3U::DecodeStatus()
EPDIssued = checkStatus(epd3status.OperatingStatus, OpStatusFlags::EpdIssued);
EPDLocked = checkStatus(epd3status.OperatingStatus, OpStatusFlags::GainAdjustable);
EPDTesting = checkStatus(epd3status.OperatingStatus, OpStatusFlags::DetectorTestRequested);
- EPDFaulty = checkStatus(epd3status.FaultStatus, FaultStatusFlags::EpdFaulty);
- EPDNewFault = checkStatus(epd3status.FaultStatus, FaultStatusFlags::EpdFaulty);
+ EPDFaulty = checkStatus(epd3status.FaultStatus, FaultStatusFlags::EpdFaulty);
+ EPDNewFault = checkStatus(epd3status.FaultStatus, FaultStatusFlags::ErrorLogged);
EPDComFault = checkStatus(epd3status.FaultStatus, FaultStatusFlags::EarlyCommsTermination);
EPDCalFault = checkStatus(epd3status.FaultStatus, FaultStatusFlags::NotCalibrated);
EPDDetFault = checkStatus(epd3status.FaultStatus, FaultStatusFlags::DetectorTestFail);
@@ -300,7 +346,7 @@ void Epd3Base::Epd3U::DecodeStatus()
eDosDose07Alarm = checkStatus(status, DoseAlarmFlags::DoseAlarm);
eDosRate07Warning = checkStatus(status, DoseAlarmFlags::LatchedRateWarning) | checkStatus(status, DoseAlarmFlags::RateWarning);
eDosRate07Alarm = checkStatus(status, DoseAlarmFlags::LatchedRateAlarm) | checkStatus(status, DoseAlarmFlags::RateAlarm);
- AlarmDoseHP07N = checkStatus(status, DoseAlarmFlags::DoseAlarm) ;
+ AlarmDoseHP07N = checkStatus(status, DoseAlarmFlags::DoseAlarm);
AlarmRateHP07N = checkStatus(status, DoseAlarmFlags::RateAlarm) | checkStatus(status, DoseAlarmFlags::LatchedRateAlarm);
break;
case MeasurementId::Meas_Hp10:
@@ -316,18 +362,17 @@ void Epd3Base::Epd3U::DecodeStatus()
break;
}
}
+
OtherAlarmReturn = checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::ReturnForRead);
OtherAlarmBatLow = checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::LowBattery);
OtherAlarmCarrier = checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::TelemetryAlert);
OtherAlarmBatVolt = checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::LowBattery);
-
+
eDosDoseAlarm = eDosDose10Alarm || eDosDose07Alarm || checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::DoseAlarm);
eDosRateAlarm = eDosRate07Alarm || eDosRate10Alarm || checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::RateAlarm);
- hasAlarm = eDosDoseAlarm || eDosRateAlarm ;
- if (hasAlarm) {
- }
- hasFault = (int)epd3status.FaultStatus != 0;
+ hasAlarm = eDosDoseAlarm || eDosRateAlarm;
+ hasFault = ((uint32_t)epd3status.FaultStatus & ~(uint32_t)FaultStatusFlags::ErrorLogged) != 0;
eDosBatteryWarning = OtherAlarmBatLow | OtherAlarmBatVolt;
}
@@ -337,7 +382,7 @@ void Epd3Base::Epd3U::SetTime() //Only R3
utc = TimeFunctions::NowToEpdTime(Epd.Gen == EpdGeneration::Mk2);
token = BeginWriteRTC_R3(epdComsHandle, utc, nullptr);
uint32_t r = Commit3(epdComsHandle);
- Dll3RV = EndWriteRTC_R3(epdComsHandle, token);
+ if (!r) Dll3RV = EndWriteRTC_R3(epdComsHandle, token);
}
}
///
@@ -375,14 +420,12 @@ int Epd3Base::Epd3U::ReadStatus()
ErrorSource = ErrorReason = ErrorData = 0;
HardVersion = HardVersionMinor = SoftVersion = FunctionFlags = 0;
- r = ReOpenDev();
-
step = 1;
token = BeginReadStatus(epdComsHandle, nullptr);
r = Commit3(epdComsHandle);
- r = EndReadStatus(epdComsHandle, token, &epd3status);
+ if (!r) r = EndReadStatus(epdComsHandle, token, &epd3status);
if (r != 0) {
- Error = GetErrorCode();
+ Error = GetErrorCode();
goto error;
}
@@ -396,16 +439,16 @@ int Epd3Base::Epd3U::ReadStatus()
uint32_t capabilities;
MarkNumber_t MarkNumber;
VersionNumber_t VersionNumber;
-
+
step = 2;
token = BeginReadEpdIdentities(epdComsHandle, nullptr);
r = Commit3(epdComsHandle);
- r = EndReadEpdIdentities(epdComsHandle, token, &EpdID32, (EpdTypes*)&EpdType, &capabilities, &MarkNumber, &VersionNumber, NULL, 0);
+ if (!r) r = EndReadEpdIdentities(epdComsHandle, token, &EpdID32, (EpdTypes*)&EpdType, &capabilities, &MarkNumber, &VersionNumber, NULL, 0);
if (r != 0) {
- Error = GetErrorCode();
+ Error = GetErrorCode();
goto error;
}
-
+
EpdID = EpdID32;
isBG = (EpdType == EpdTypes::Mk2BetaGamma || EpdType == EpdTypes::Mk3BetaGamma);
isNG = (EpdType == EpdTypes::Mk2Neutron || EpdType == EpdTypes::Mk3Neutron);
@@ -413,16 +456,17 @@ int Epd3Base::Epd3U::ReadStatus()
HardVersionMinor = MarkNumber.Minor;
SoftVersion = VersionNumber.Major;
VersionOK = true;
+
DecodeStatus(); //Alarm status...
step = 3;
token = BeginReadCounts(epdComsHandle, nullptr, 0, nullptr);
r = Commit3(epdComsHandle);
- r = EndReadCounts(epdComsHandle, token, Counts, MaxCounts, &countsRead, &utc, &seconds);
+ if (!r) r = EndReadCounts(epdComsHandle, token, Counts, MaxCounts, &countsRead, &utc, &seconds);
// - 101 = InvalidParam
// - 104 = FunctionFail,
if (r != 0 && r != -104) {
- Error = GetErrorCode();
+ Error = GetErrorCode();
goto error;
}
decodeCounters(countsRead); //HG,SG ..
@@ -436,7 +480,7 @@ int Epd3Base::Epd3U::ReadStatus()
r = Commit3(epdComsHandle);
r = EndReadWearerId(epdComsHandle, token, &mk3WearerID);
if (r != 0) {
- Error = GetErrorCode();
+ Error = GetErrorCode();
goto error;
}
@@ -446,9 +490,9 @@ int Epd3Base::Epd3U::ReadStatus()
step = 5;
token = BeginReadWearerId(epdComsHandle, static_cast(WearerIdType::WearerId_Primary), nullptr);
r = Commit3(epdComsHandle);
- r = EndReadWearerId(epdComsHandle, token, &mk3WearerID);
+ if (!r) r = EndReadWearerId(epdComsHandle, token, &mk3WearerID);
if (r != 0) {
- Error = GetErrorCode();
+ Error = GetErrorCode();
goto error;
}
@@ -465,7 +509,7 @@ int Epd3Base::Epd3U::ReadStatus()
if (utc == 0) {
token = BeginReadRTC(epdComsHandle, nullptr);
r = Commit3(epdComsHandle);
- r = EndReadRTC(epdComsHandle, token, &utc); //EpdClock for MK2
+ if (!r) r = EndReadRTC(epdComsHandle, token, &utc); //EpdClock for MK2
if (r) goto error;
EpdClock = utc;
utc = TimeFunctions::NowToEpdTime(true);
@@ -484,7 +528,7 @@ error:
Error = r;
ErrorStep = step;
return r;
-
+
}
///
/// discover, connect and read status
@@ -495,7 +539,7 @@ int Epd3Base::Epd3U::ConnectAndStatus(int tokenSourceTimeout)
{
WORD dllStatus;
int rv = 1;
- Error = 0; ErrorStep = 0;
+ Error = 0; ErrorStep = 0; hasAlarm = hasFault = 0;
if (CommsInitialized == 0) StartCom();
if (CommsInitialized) {
dllStatus = StartDiscover(tokenSourceTimeout);
@@ -505,7 +549,7 @@ int Epd3Base::Epd3U::ConnectAndStatus(int tokenSourceTimeout)
else rv = 0;
}
else rv = 1;
-
+
return rv;
}
///
@@ -780,9 +824,9 @@ WORD Epd3Base::Epd3U::ReadSensitivitiesAndTresholds()
if (r != 0)
goto error;
decodedTresholds(numTresholds); // HG, SG, BC, FB, BC, FB
-
+
r = ReadCal();// K1 = K2 = K3 = K4 = K4 = K6
-
+
}
return r;
error:
@@ -807,12 +851,11 @@ WORD Epd3Base::Epd3U::ReadDoses()
ErrorSource = ErrorReason = ErrorData = 0;
K1 = 1; K2 = 2; K3 = 3; K4 = 4; K5 = 5; K6 = 6;
SG = 7; BC = 8; FB = 9; HG = 10;
- return 0;
+ return r_OK;
}
-
+
numDoses = 0; utc = 0;
- SetResponseTimeout(epdComsHandle, 2000);
-
+
step = 1;
token = BeginReadDoses(epdComsHandle, nullptr, 0, nullptr);
r = Commit3(epdComsHandle);
@@ -839,7 +882,7 @@ WORD Epd3Base::Epd3U::ReadDoses()
Knocks = quality.Knocks;
Resets = quality.PowerCycles;
-
+
step = 4;
token = BeginReadPeakRates(epdComsHandle, nullptr, 0, nullptr);
r = Commit3(epdComsHandle);
@@ -849,12 +892,15 @@ WORD Epd3Base::Epd3U::ReadDoses()
decodePeakRates(numRates);
step = 5;
- r= ReadSensitivitiesAndTresholds(); //K1 .. K6, SG , BC ,FB , HG
+ r = ReadSensitivitiesAndTresholds(); //K1 .. K6, SG , BC ,FB , HG
if (r != 0)
goto error;
return r;
+
error:
+ Error = r;
+ ErrorStep = step;
return r;
}
///
@@ -869,28 +915,30 @@ int Epd3Base::Epd3U::ClearDoses()
token = BeginClearTotalDose(epdComsHandle, nullptr);
r = Commit3(epdComsHandle);
if (!r) r = EndClearTotalDose(epdComsHandle, token);
- if (r != 0 && r!= -105 )
+ if (r != 0 && r != r_InvalidOp)
goto error;
step++;
token = BeginClearDose(epdComsHandle, nullptr);
r = Commit3(epdComsHandle);
if (!r) r = EndClearDose(epdComsHandle, token);
- if (r != 0 && r != -105)
+ if (r != 0 && r != r_InvalidOp)
goto error;
-
step++;
token = BeginClearPeakRates(epdComsHandle, nullptr);
r = Commit3(epdComsHandle);
if (!r) r = EndClearPeakRates(epdComsHandle, token);
- if (r != 0 && r != -105)
+ if (r != 0 && r != r_InvalidOp)
goto error;
- if (r == -105) r = 0;
+ if (r == r_InvalidOp) r = 0;
+ return r;
+
+error:
+ ErrorStep = step;
+ Error = r;
return r;
-error:
- return r;
}
int Epd3Base::Epd3U::ClearAlarms()
@@ -911,7 +959,7 @@ int Epd3Base::Epd3U::ClearAlarms()
if (!r) r = EndClearLatchedAlarms(epdComsHandle, token);
if (r != 0 && r != -105)
goto error;
-
+
if (r == -105) r = 0;
return r;
@@ -925,7 +973,7 @@ WORD Epd3Base::Epd3U::PrepareForIssue()
int rv = 0;
int step = 0;
if (port == 0) return 0;
-
+
step = 1;
if (DetectorsOn) {
token = BeginEpdOnOff(epdComsHandle, 0, nullptr);
@@ -945,7 +993,7 @@ WORD Epd3Base::Epd3U::PrepareForIssue()
step = 3;
rv = ReOpenDev();
-
+
step = 4;
rv = ClearDoses();
if (rv != 0)
@@ -955,7 +1003,7 @@ WORD Epd3Base::Epd3U::PrepareForIssue()
rv = ClearAlarms();
if (rv != 0)
goto error;
-
+
return rv;
@@ -1008,7 +1056,7 @@ WORD Epd3Base::Epd3U::WriteAlarmTresholds() {
if (isNeutron) measID = (uint8_t)MeasurementId::Meas_Hp10G; else measID = (uint8_t)MeasurementId::Meas_Hp10;
hp10tresholds.MeasId = measID;
encodeTreshold(&hp10tresholds);
-
+
token = BeginWriteAlarmThresholds(epdComsHandle, (uint8_t)hp10tresholds.MeasId, (uint8_t)hp10tresholds.NumberThresholds, hp10tresholds.Thresholds, nullptr);
r = Commit3(epdComsHandle);
if (r != 0)
@@ -1048,9 +1096,10 @@ error:
WORD Epd3Base::Epd3U::DeIssue()
{
int r = 1;
- int ErrorStep = 0;
+ int ErrorStep = 0;
if (port == 0) return 0;
- if (CurrentDeviceID==0) return 0;
+ if (CurrentDeviceID == 0) return 0;
+
//ReOpenDev();
ErrorStep = 1;
@@ -1058,21 +1107,21 @@ WORD Epd3Base::Epd3U::DeIssue()
ErrorStep = 2;
r = ClearDoses();
-
+
ErrorStep = 3;
if (EPDIssued) {
token = BeginDeissueEPD(epdComsHandle, nullptr);
r = Commit3(epdComsHandle);
- r = EndDeissueEPD(epdComsHandle, token);
- if (r != 0)
+ if (!r) r = EndDeissueEPD(epdComsHandle, token);
+ if (r)
r = 0; // goto error;
}
ErrorStep = 4;
token = BeginEpdOnOff(epdComsHandle, 0, nullptr);
r = Commit3(epdComsHandle);
- r = EndEpdOnOff(epdComsHandle, token);
- if (r != 0)
+ if (!r) r = EndEpdOnOff(epdComsHandle, token);
+ if (r)
goto error;
ErrorStep = 5;
@@ -1093,7 +1142,7 @@ WORD Epd3Base::Epd3U::WriteWearer() {
token = BeginSetBaselineCounters(epdComsHandle, nullptr);
r = Commit3(epdComsHandle);
r = EndSetBaselineCounters(epdComsHandle, token);
- if (r != 0)
+ if (r != 0)
goto error;
IdString_t mk3WearerID;
@@ -1102,7 +1151,7 @@ WORD Epd3Base::Epd3U::WriteWearer() {
mk3WearerID.IdType = (uint16_t)WearerIdType::WearerId_Name;
mk3WearerID.Length = 23;
memcpy(mk3WearerID.Utf8String, WearerName, 23);
-
+
step = 1;
token = BeginWriteWearerId(epdComsHandle, mk3WearerID, nullptr);
r = Commit3(epdComsHandle);
@@ -1113,7 +1162,7 @@ WORD Epd3Base::Epd3U::WriteWearer() {
mk3WearerID.IdType = (uint16_t)WearerIdType::WearerId_Primary;
mk3WearerID.Length = 13;
memcpy(mk3WearerID.Utf8String, WearerID, 13);
-
+
step = 2;
token = BeginWriteWearerId(epdComsHandle, mk3WearerID, nullptr);
r = Commit3(epdComsHandle);
@@ -1135,7 +1184,7 @@ error:
WORD Epd3Base::Epd3U::Issue(bool PrepareDone)
{
- int r=0;
+ int r = 0;
int step = 0;
int tries = 0;
if (port == 0) return r;
@@ -1145,7 +1194,7 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone)
r = PrepareForIssue();
if (r) goto error;
}
-
+
/*if (isMK3) {
token = BeginEnableProtectedSession_R3(epdComsHandle, 1, nullptr);
@@ -1155,14 +1204,14 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone)
goto error;
}*/
step = 1;
- r=ReOpenDev();
+ r = ReOpenDev();
if (r) goto error;
step = 2;
r = WriteAlarmTresholds();
if (r != 0)
goto error;
-
+
step = 3;
r = WriteWearer();
if (r != 0)
@@ -1172,14 +1221,14 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone)
step = 4;
//EPDIssued
//if (!DetectorsOn) {
- token = BeginEpdOnOff(epdComsHandle, 1, nullptr);
- r = Commit3(epdComsHandle);
- if (!r) r = EndEpdOnOff(epdComsHandle, token);
- // OKRV = EpdOn(); OKRV = Commit3();
- if (r != 0)
- r=0;
+ token = BeginEpdOnOff(epdComsHandle, 1, nullptr);
+ r = Commit3(epdComsHandle);
+ if (!r) r = EndEpdOnOff(epdComsHandle, token);
+ // OKRV = EpdOn(); OKRV = Commit3();
+ if (r != 0)
+ r = 0;
//}
-
+
//step = 5;
//ReOpenDev();
@@ -1196,13 +1245,13 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone)
r = EndIssueEPD(epdComsHandle, token);
}
if (r)
- goto error;
-
+ goto error;
+
/*if (isMK3) {
token = BeginEnableProtectedSession_R3(epdComsHandle, 0, nullptr);
r = Commit3(epdComsHandle);
r = EndEnableProtectedSession_R3(epdComsHandle, token);
- if (r)
+ if (r)
goto error;
}*/
@@ -1227,6 +1276,7 @@ error:
WORD Epd3Base::Epd3U::EPDReadExtraStatus()
{
if (port == 0) return 1;
+ uint32_t r;
//byBatADC = bySupplyADC = 0;
/*CommitRV = ReadA2ConfigStatus(
&byBatADC,
@@ -1236,9 +1286,9 @@ WORD Epd3Base::Epd3U::EPDReadExtraStatus()
if (CommitRV == 1) CommitRV = Commit3();*/
token = BeginReadBaselineCounts(epdComsHandle, nullptr);
- uint32_t r = Commit3(epdComsHandle);
- r = EndReadBaselineCounts(epdComsHandle, token, Counts, 10, &utc, &countsRead);
- decodeBaseCounters(countsRead);
+ r = Commit3(epdComsHandle);
+ if (!r) r = EndReadBaselineCounts(epdComsHandle, token, Counts, 10, &utc, &countsRead);
+ if (!r) decodeBaseCounters(countsRead);
//if (CommitRV == 1) CommitRV = ReadCounts(&D1, &D2, &D3, &D4, &CountsClock);
//if (CommitRV == 1) CommitRV = Commit3();
//if (CommitRV == 1) CommitRV = ReadBaseCounts(&BaseD1, &BaseD2, &BaseD3, &BaseD4, &BaseCountsClock);
@@ -1283,11 +1333,10 @@ error:
int Epd3Base::Epd3U::GetAll(bool Closeconnection)
{
- int rv = 0, step=1;
+ int rv = 0, step = 1;
rv = ReadDoses();
- step++;
+ step=2;
if (!rv) rv = ReadAlarmTresholds();
-
if (Closeconnection) EndCom();
return rv;
}
@@ -1296,20 +1345,16 @@ int Epd3Base::Epd3U::GetAllDeissue(bool reconnect)
{
int rv = 0;
int step = 0;
-
- /*if (reconnect)
- rv = ReOpenDev();
- if (!rv) goto error;*/
-
+
step = 1;
rv = ReadDoses(); //0 = success
if (rv) goto error;
//rv = ReadAlarmTresholds(); //0 = success
-
+
step = 2;
rv = EPDReadExtraStatus();
if (rv) goto error;
-
+
step = 3;
rv = DeIssue(); //does close
if (rv) goto error;
@@ -1321,12 +1366,12 @@ error:
return rv;
}
-int Epd3Base::Epd3U::IssueAndCheck(float gain,float ChirpRate)
+int Epd3Base::Epd3U::IssueAndCheck(float gain, float ChirpRate)
{
int rv = 0;
int step = 0;
-
- rv = ReOpenDev();
+
+ if (!isConnected) rv = ReOpenDev();
if (rv) goto error;
if (isNG) {
@@ -1343,7 +1388,7 @@ int Epd3Base::Epd3U::IssueAndCheck(float gain,float ChirpRate)
}
}
step = 3;
- rv = SetChirp( ChirpRate);
+ rv = SetChirp(ChirpRate);
if (rv) goto error;
step = 4;
@@ -1363,11 +1408,11 @@ error:
int Epd3Base::Epd3U::WriteConfig(void)
{
- if (port == 0 || WriteConfig32==0) return 1;
+ if (port == 0 || WriteConfig32 == 0) return 1;
int32_t r = 0;
ECLen = 32;
- token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen, nullptr);
+ token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen, nullptr);
r = Commit3(epdComsHandle);
r = EndWriteAccessLevel(epdComsHandle, token);
@@ -1399,7 +1444,7 @@ int Epd3Base::Epd3U::WriteConfig(void)
{ 6,0x97FF,0xFFF9 },
{ 7,0x97FF,0xFFD3 },
{ 8,0x97FF,0xFFFF }
- };
+ };
// 0x1 Operation Menu Back /0x2 On / Off 0x4 Clear Dose 0x8 Toggle Telemtry 0x10 Responder Trigger
// 1 0 0 0 0
@@ -1474,7 +1519,7 @@ int Epd3Base::Epd3U::SetChirp(float Sensitivity)
if (Sensitivity > 0.001F) {
enable = 1;
- token = BeginWriteChirpSensitivity(epdComsHandle, Sensitivity, nullptr);
+ token = BeginWriteChirpSensitivity(epdComsHandle, Sensitivity, nullptr);
r = Commit3(epdComsHandle);
if (!r) r = EndWriteChirpSensitivity(epdComsHandle, token);
}
diff --git a/EpdBase3/Epd3Base.h b/EpdBase3/Epd3Base.h
index 01d3606..26f8ec6 100644
--- a/EpdBase3/Epd3Base.h
+++ b/EpdBase3/Epd3Base.h
@@ -37,6 +37,9 @@ namespace Epd3Base {
WORD ErrorReason;
WORD ErrorData;
+ int ConnectRetries = 0;
+ BYTE isConnected = 0;
+
int32_t Dll3RV;
UINT16 EndSessionControl;
public:
@@ -47,13 +50,17 @@ namespace Epd3Base {
private:
WORD CommsInitialized = 0;
+
public:
+
Epd3U(int _comport);
~Epd3U();
DWORD StartCom();
void EndCom();
int StartDiscover(int tokentimeout);
+
+
//OperatingStatus
BYTE DetectorsOn = 0;
BYTE EPDIssued = 0;
@@ -127,6 +134,7 @@ namespace Epd3Base {
bool isMK3 = false;
bool hasAlarm = false;
bool hasFault = false;
+
SYSTEMTIME tRealTime;
//Wearer
@@ -196,7 +204,7 @@ namespace Epd3Base {
BYTE ConnectTimerFired;
- int ConnectTries;
+
OpStatusFlags OperatingStatus;
FaultStatusFlags ErrorStatus;
diff --git a/EpdBaseClr/EpdBaseClr.cpp b/EpdBaseClr/EpdBaseClr.cpp
index 4d5dce0..bbda9d1 100644
--- a/EpdBaseClr/EpdBaseClr.cpp
+++ b/EpdBaseClr/EpdBaseClr.cpp
@@ -82,7 +82,7 @@ int EpdBaseClr::Epd2::Close()
}
int EpdBaseClr::Epd2::DecodeStatus(Epd3Base::Epd3U* epd)
{
- epd->DecodeStatus();
+ epd->DecodeStatus(); // set hasAlarm
//OperatingStatus
DetectorsOn = epd->DetectorsOn;
EPDIssued = epd->EPDIssued;
@@ -180,7 +180,9 @@ int EpdBaseClr::Epd2::AfterGetStatus(EpdBase::Epd2U *epd)
otherAlarms = epd->OtherAlarms;
errorStatus = epd->ErrorStatus;
operatingStatus = epd->OperatingStatus;
- hasAlarm = epd->hasAlarm;
+ //hasAlarm = epd->hasAlarm; //?1
+ eDoshasAlarm = epd->hasAlarm;
+ eDosHasFault = epd->hasFault;
EpdID = epd->EpdID;
HardVersion = epd->HardVersion / 100;
HardVersionMinor = epd->HardVersion % 100;
@@ -190,6 +192,7 @@ int EpdBaseClr::Epd2::AfterGetStatus(EpdBase::Epd2U *epd)
DecodeStatus(epd);
return 0;
}
+
int EpdBaseClr::Epd2::AfterGetStatus(Epd3Base::Epd3U* epd)
{
EPDIssued= epd->EPDIssued;
@@ -205,14 +208,16 @@ int EpdBaseClr::Epd2::AfterGetStatus(Epd3Base::Epd3U* epd)
otherAlarms = (int)epd->OtherAlarms;
errorStatus = (int)epd->ErrorStatus;
operatingStatus = (int)epd->OperatingStatus;
- hasAlarm = epd->hasAlarm;
+
+ eDoshasAlarm = epd->hasAlarm;
+ eDosHasFault = epd->hasFault;
EpdID = epd->EpdID;
HardVersion = epd->HardVersion;
HardVersionMinor = epd->HardVersionMinor;
SoftVersion = epd->SoftVersion;
FunctionFlags = epd->FunctionFlags;
CountsClock = epd->EpdClock;
- DecodeStatus( epd);
+ DecodeStatus( epd); // zet hasAlarm
return 0;
}
int EpdBaseClr::Epd2::AfterGetStatus()
@@ -251,6 +256,7 @@ int EpdBaseClr::Epd2::GetDoses(EpdBase::Epd2U* epd)
}
int EpdBaseClr::Epd2::AfterGetDoses(Epd3Base::Epd3U* epd)
{
+ eDoshasAlarm = eDosHasFault = false;
int rv = 0;
rv = 0;
GetDosesError = 0;
@@ -316,8 +322,8 @@ int EpdBaseClr::Epd2::GetDoses(Epd3Base::Epd3U* epd)
{
int rv = 1;
Hp10 = Hp07 = 0.0;
- int ReadDosesRV = epd->ReadDoses();
-
+ int ReadDosesRV = epd->ReadDoses(); //0 = succes
+
if (ReadDosesRV == 0) {
rv = AfterGetDoses(epd3);
}
@@ -828,14 +834,15 @@ void EpdBaseClr::Epd2::InitData()
/// 0=success 1=Connect error 2=TO 3=StatusReadError
int EpdBaseClr::Epd2::ConnectAndStatus()
{
+ //0 = ok, 2=TO , anders error
int rv = 1;
int step = 0;
- ErrorStep = ErrorRV = 0;
+ ErrorStep = ErrorRV = 0; ConnectError = 0; eDoshasAlarm = eDosHasFault = false;
if (!onlyMK2) epd->EndCom(); //indien Mk2
InitData();
- //Sleep(100);
+ Sleep(100);
step = 1;
if (onlyMK2 || !epd3)
rv = epd->ConnectAndStatus(tokenSourceTimeout);
@@ -889,6 +896,7 @@ error:
ErrorRV = rv;
return rv;
}
+
void EpdBaseClr::Epd2::WaitEpd()
{
int rv = 0; //start
@@ -905,10 +913,11 @@ void EpdBaseClr::Epd2::WaitEpd()
_EpdTO(this, gcnew EpdTOEventArgs(0, 0)); // epd3->ConnectTries, epd3->ConnectTimerFired));
}
else if (rv > 0 && _EpdError != nullptr) {
- _EpdError(this, gcnew EpdErrorEventArgs(rv,ErrorRV,ErrorStep));
+ _EpdError(this, gcnew EpdErrorEventArgs(rv, ErrorRV, ErrorStep));
}
return;
}
+
System::Threading::Tasks::Task^ EpdBaseClr::Epd2::Wait(int timeout, int Retries)
{
if (waitTask == nullptr)
diff --git a/EpdBaseClr/EpdBaseClr.h b/EpdBaseClr/EpdBaseClr.h
index 92d0aec..595f63c 100644
--- a/EpdBaseClr/EpdBaseClr.h
+++ b/EpdBaseClr/EpdBaseClr.h
@@ -136,6 +136,8 @@ namespace EpdBaseClr {
}
}
+ //private:
+ //bool hasAlarm = false;
public:
bool onlyMK2;
@@ -153,7 +155,7 @@ namespace EpdBaseClr {
bool isOn;
bool isBG, isNG, VersionOK;
bool isMK3;
- bool hasAlarm = false;
+
int InitRV;
int DiscRV;
diff --git a/eDosStation/DataInterface.cs b/eDosStation/DataInterface.cs
index a4af149..f3e38a7 100644
--- a/eDosStation/DataInterface.cs
+++ b/eDosStation/DataInterface.cs
@@ -387,8 +387,8 @@ namespace eDosStation
VisitExitCommand.SetBoolParam("eDosRate10Warning", ep.eDosRate10Warning);
VisitExitCommand.SetBoolParam("eDosRate10Alarm", ep.eDosRate10Alarm);
- VisitExitCommand.SetBoolParam("isAlarm", ep.hasAlarm);
- VisitExitCommand.SetBoolParam("isFault", ep.eDosHasFault);
+ VisitExitCommand.SetBoolParam("isAlarm", ep.eDoshasAlarm, splunkLog);
+ VisitExitCommand.SetBoolParam("isFault", ep.eDosHasFault, splunkLog);
checkCon(true);
VisitExitCommand.Connection = localConnection;
VisitExitCommand.ExecuteNonQuery();
diff --git a/eDosStation/Decoder.cs b/eDosStation/Decoder.cs
index 3472c8c..cb263d4 100644
--- a/eDosStation/Decoder.cs
+++ b/eDosStation/Decoder.cs
@@ -1,55 +1,55 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Controls;
-
-namespace eDosStation
-{
- static class Decoder
- {
- static StackPanel sp;
-
-
- private static void tb_Add( string s)
- {
- TextBlock x = new TextBlock();
- x.Text = s;
- sp.Children.Add(x);
- }
- public static void AlarmToTextBox(StackPanel s,EpdBaseClr.Epd2 ep)
- {
- sp = s;
- if (ep.DetectorsOn > 0) tb_Add("DetectorsOn");
- if (ep.EPDIssued ) tb_Add("EPD Issued");
- //if (ep.EPDLocked > 0) tb_Add("EPD Locked");
- if (ep.EPDTesting > 0) tb_Add("EPD Detector test active");
- if (ep.EPDProcSec > 0) tb_Add("EPD Processing every second");
- if (ep.EPDFaulty > 0) tb_Add("EPD Faulty");
-
- if (ep.EPDNewFault > 0) tb_Add("EPD New Fault in History");
- if (ep.EPDComFault > 0) tb_Add("EPD Communication fault");
- if (ep.EPDCalFault > 0) tb_Add("EPD Calibration factors faulty");
- if (ep.EPDDetFault > 0) tb_Add("EPD Detector faulty");
- if (ep.EPDEprFault > 0) tb_Add("EPD Eprom faulty");
- if (ep.EPDTrhFault > 0) tb_Add("EPD Tresholds faulty");
- if (ep.EPDOthFault > 0) tb_Add("EPD Other Fault");
-
- if (ep.AlarmDoseHP101G > 0) tb_Add("Alarm Dose HP10");
- if (ep.AlarmDoseHP102G > 0) tb_Add("Alarm Dose HP10");
- if (ep.AlarmDoseHP07N > 0) tb_Add("Alarm Dose HP07");
- if (ep.AlarmRateHP101G > 0) tb_Add("Alarm RateHP10 ");
- if (ep.AlarmRateHP102G > 0) tb_Add("Alarm RateHP10 ");
- if (ep.AlarmRateHP07N > 0) tb_Add("Alarm Rate HP07");
-
- if (ep.OtherAlarmRateHp101G > 0) tb_Add("Alarm Rate Hp10 /G");
- if (ep.OtherAlarmRateHp102G > 0) tb_Add("Alarm Rate Hp10 /G");
- if (ep.OtherAlarmRateHp07N > 0) tb_Add("Alarm Rate Hp07 /HPN");
- if (ep.OtherAlarmReturn > 0) tb_Add("Please Return");
- if (ep.OtherAlarmBatLow > 0) tb_Add("Battery Low");
- if (ep.OtherAlarmCarrier > 0) tb_Add("Carrier present");
- if (ep.OtherAlarmBatVolt > 0) tb_Add("Battery Volt");
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Controls;
+
+namespace eDosStation
+{
+ static class Decoder
+ {
+ static StackPanel sp;
+
+
+ private static void tb_Add( string s)
+ {
+ TextBlock x = new TextBlock();
+ x.Text = s;
+ sp.Children.Add(x);
+ }
+ public static void AlarmToTextBox(StackPanel s,EpdBaseClr.Epd2 ep)
+ {
+ sp = s;
+ if (ep.DetectorsOn > 0) tb_Add("DetectorsOn");
+ if (ep.EPDIssued ) tb_Add("EPD Issued");
+ //if (ep.EPDLocked > 0) tb_Add("EPD Locked");
+ if (ep.EPDTesting > 0) tb_Add("EPD Detector test active");
+ if (ep.EPDProcSec > 0) tb_Add("EPD Processing every second");
+ if (ep.EPDFaulty > 0) tb_Add("EPD Faulty");
+
+ if (ep.EPDNewFault > 0) tb_Add("EPD New Fault in History");
+ if (ep.EPDComFault > 0) tb_Add("EPD Communication fault");
+ if (ep.EPDCalFault > 0) tb_Add("EPD Calibration factors faulty");
+ if (ep.EPDDetFault > 0) tb_Add("EPD Detector faulty");
+ if (ep.EPDEprFault > 0) tb_Add("EPD Eprom faulty");
+ if (ep.EPDTrhFault > 0) tb_Add("EPD Tresholds faulty");
+ if (ep.EPDOthFault > 0) tb_Add("EPD Other Fault");
+
+ if (ep.AlarmDoseHP101G > 0) tb_Add("Alarm Dose HP10l");
+ if (ep.AlarmDoseHP102G > 0) tb_Add("Alarm Dose HP10h");
+ if (ep.AlarmDoseHP07N > 0) tb_Add("Alarm Dose HP07");
+ if (ep.AlarmRateHP101G > 0) tb_Add("Alarm RateHP10 ");
+ if (ep.AlarmRateHP102G > 0) tb_Add("Alarm RateHP10 ");
+ if (ep.AlarmRateHP07N > 0) tb_Add("Alarm Rate HP07");
+
+ if (ep.OtherAlarmRateHp101G > 0) tb_Add("Alarm Rate Hp10 /G");
+ if (ep.OtherAlarmRateHp102G > 0) tb_Add("Alarm Rate Hp10 /G");
+ if (ep.OtherAlarmRateHp07N > 0) tb_Add("Alarm Rate Hp07 /HPN");
+ if (ep.OtherAlarmReturn > 0) tb_Add("Please Return");
+ if (ep.OtherAlarmBatLow > 0) tb_Add("Battery Low");
+ if (ep.OtherAlarmCarrier > 0) tb_Add("Carrier present");
+ if (ep.OtherAlarmBatVolt > 0) tb_Add("Battery Volt");
+ }
+ }
+}
diff --git a/eDosStation/EntryBadge.xaml.cs b/eDosStation/EntryBadge.xaml.cs
index 95060ce..fd9f3d5 100644
--- a/eDosStation/EntryBadge.xaml.cs
+++ b/eDosStation/EntryBadge.xaml.cs
@@ -104,7 +104,7 @@ namespace eDosStation
endPage();
return false;
}
- if (ep.hasAlarm && ep.OtherAlarmBatLow > 0)
+ if (ep.eDoshasAlarm || ep.OtherAlarmBatLow > 0 || ep.eDosHasFault)
{
TextBlock il = new TextBlock();
il.Inlines.Add(new Run("EPD is in alarm status\n\n")
diff --git a/eDosStation/EpdExit.xaml.cs b/eDosStation/EpdExit.xaml.cs
index cfdb85f..6239fb8 100644
--- a/eDosStation/EpdExit.xaml.cs
+++ b/eDosStation/EpdExit.xaml.cs
@@ -17,14 +17,12 @@ namespace eDosStation
private bool EpdReading = false;
private bool FinalTimeOut = false;
-
#if SimulateEPD
public SimulateData simulData = new SimulateData();
#endif
public EpdExit(Station curStation)
{
InitializeComponent();
-
thisStation = curStation;
dataInterface = curStation.dataInterface;
}
@@ -147,7 +145,7 @@ namespace eDosStation
}
//bool NoTimeout = false;
-
+
if (ep.alarmStatus != 0)
{
DosePanel.Background = AlarmBrush;
diff --git a/eDosStation/Resources/BuildDate.txt b/eDosStation/Resources/BuildDate.txt
index 579c16d..e41a72e 100644
--- a/eDosStation/Resources/BuildDate.txt
+++ b/eDosStation/Resources/BuildDate.txt
@@ -1 +1 @@
-Tue 05/28/2024 7:59:42.11
+Wed 05/29/2024 15:58:06.78
diff --git a/eDosStation/ShowEPDDose.xaml.cs b/eDosStation/ShowEPDDose.xaml.cs
index 01610e8..cac67aa 100644
--- a/eDosStation/ShowEPDDose.xaml.cs
+++ b/eDosStation/ShowEPDDose.xaml.cs
@@ -84,7 +84,7 @@ namespace eDosStation
HardVersion.Text = ep.HardVersion.ToString() + '.' + ep.HardVersionMinor.ToString(); // ep.SoftVersion.ToString();
- if (ep.hasAlarm)
+ if (ep.eDoshasAlarm)
{
hasAlarm.Text = "Yes";
} else
diff --git a/eDosStation/extensions.cs b/eDosStation/extensions.cs
index 69be78b..49df2de 100644
--- a/eDosStation/extensions.cs
+++ b/eDosStation/extensions.cs
@@ -68,7 +68,21 @@ static public class extensions
}
return found;
}
- public static bool BoolOrDefault( this System.Data.SqlClient.SqlDataReader rs, string colName, bool defaultValue)
+ static public bool SetBoolParam(this System.Data.SqlClient.SqlCommand c, string paramname, bool value, LSWLib.CLog spl=null )
+ {
+ bool found = true;
+ if (c.Parameters.Contains(paramname)) c.Parameters[paramname].Value = value;
+ else
+ {
+ if (paramname[0] != '@') paramname = "@" + paramname; else paramname = paramname.Substring(1);
+ if (c.Parameters.Contains(paramname)) c.Parameters[paramname].Value = value;
+ else found = false;
+ }
+ if (!found && spl != null) spl.WriteSplunkLog("SetBoolParam", LSWLib.CLog.iseverity.err, paramname);
+ return found;
+ }
+
+ public static bool BoolOrDefault( this System.Data.SqlClient.SqlDataReader rs, string colName, bool defaultValue)
{
bool rv = defaultValue;
try
diff --git a/scripts/Upgrader.ps1 b/scripts/Upgrader.ps1
index a44b8fa..26f191e 100644
--- a/scripts/Upgrader.ps1
+++ b/scripts/Upgrader.ps1
@@ -213,17 +213,17 @@ exit
# aWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0
# MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0ECEAVEr/OUnQg5pr/bP1/lYRYwDQYJ
# YIZIAWUDBAIBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3
-# DQEJBTEPFw0yNDA1MjgwNTM0MTJaMC8GCSqGSIb3DQEJBDEiBCDbjZuxJgcSDufz
-# +ekiprJJKPMdOid8HFavnX4C8hgeWzANBgkqhkiG9w0BAQEFAASCAgCH9lWfpp5t
-# b00PHQlLYC1Jy5yb4gosf7fEOR4TS0cduRMhLuUEqij7nUSwPiqAZjNV1eaH3eb9
-# QFzcr9kxcFAtoY8R8pf4G+YSJaiQ7QB2DfbEdkusuxrOtxCIRNwhbaynT0Hhuysj
-# t0VxhU828B1iYpoWTPYnapExqgVokEmuK4kbNNSGJI1BYfE0iqSyMxHvj3brmAnW
-# OzacfYfX//MMvbxno+JP/ynbg8EnAfVxZVL9W8CRTCTEotQFtEVdz/XPfFRQy1IU
-# fN2e4FDuzXS9tf1a6Dn6F8F6FTkCDFP/qZtHIgGI6pk1Kad+vfZh/hpGnvFo+A6B
-# SGh3qNdayL1XGcpnKTm/Yz2faZ05xas+VgmnZ+qO6i6L5Ia1zcsPzQUzylFpqE+v
-# 0rt2OO8yC+UcDhihny09vtnaZvGSg2QCagKqx/lVQEmfBxx4e2zbCKL/NvMm0CB+
-# VyFxku4NvMu28vCVQ029incGJMCsYaOdW8HUFdT6ei9HPU0B5p9dzprqU7xJibkb
-# t3eplK/KgSyHRDnzg2h1DnkY7VzA+cn2WWs9hXX+5PeoDJ3rT4zhkYPQi7gxj0r0
-# Ong4FIclb9y/xVx9y+j//hQKN4SOulJv9xkdGPrIrwpZCdndQjgOcJ8uZBwaOA2g
-# CmZ92tG+4gn8CNOp9zi042M5EwkTtq4u2g==
+# DQEJBTEPFw0yNDA1MjkxMzU4MzFaMC8GCSqGSIb3DQEJBDEiBCDbjZuxJgcSDufz
+# +ekiprJJKPMdOid8HFavnX4C8hgeWzANBgkqhkiG9w0BAQEFAASCAgBGjdQr8S+I
+# nwuGA0gDFbifrx8gb9772uSbSfgF4GM3zmVlNC21F2ZVJruG6N8MN/W3uZxsRjVD
+# /pY0v7kXTJ3ygrvmcKt0reuUkj+qv0HMLa7gd3yTLealUT7+JtzraalEzEsVCGiI
+# OzM/7S2N1Z5YgsjfudW0v5sP4sDjUAUGYIgs2lH+qBFBSH2l/I9pV7gi/obxC7+4
+# EYKLcGWsuXf+q2KRoEPnr5p3fYOrNuNXaVRJkn8NPxRArupcMUddIDV6eMBQ85Xn
+# wPPdap/jjTV839y89km8h/zf70XYrGJDBeevl2VCa2TmlmMJYmQF+6T+zVzSTPyU
+# dnGAoC1ing+ky9U9WZ14K5DNRgbxkAnIgV723BEsI6Vkj55WYQ3a4OKwx080a+rV
+# GeeMKYjhbgnTyD9exX8TkFYdklKY+A1Vurhxjq5BiektiXriw93w5Dsrwq8TnT0o
+# GvaDt3FO+kXRWYBXUMvFBu3ID5wYw/q688g9IF7G0VAxDa73lBF4GC15TkSALVLR
+# eliiwBfdRnoLfxMYurGne4Iux7G4iSxBDlonsHur7Lcc/6jrtIIM8mHn11GWZwXv
+# Dk+CJBvtno+UU2VCCelL+7mZEFQ1cwQLaCM3A8MY+3tgenFke+4HnYLN1AG+D68o
+# h4eZTK9m9nojRGxKVYFVZJc+VhsdkQhHyQ==
# SIG # End signature block
diff --git a/scripts/installatie.ps1 b/scripts/installatie.ps1
index e62ce3f..e11c3d6 100644
--- a/scripts/installatie.ps1
+++ b/scripts/installatie.ps1
@@ -328,17 +328,17 @@ exit
# aWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0
# MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0ECEAVEr/OUnQg5pr/bP1/lYRYwDQYJ
# YIZIAWUDBAIBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3
-# DQEJBTEPFw0yNDA1MjgwNTM0MTJaMC8GCSqGSIb3DQEJBDEiBCAcllG2mSPxCJ8u
-# oQsIqOunNyELPZuVN2PuUwDZLmIbpTANBgkqhkiG9w0BAQEFAASCAgArsQWfdjSe
-# QOVAwFE2Axz5OLj8HMNdSIp0fBDZRJyiL0Pu7JkAcSPvK44kQ/yK9+pLJyLKN3hC
-# 1s9GtSMGdYdqpmrVPvVS8WA0sOH+YtxN+VgudyJ0f1QWHJGJT4BQDRxMYQInBePB
-# 79VJIveRqlSkxjRHLtrZQ56rr5HHukBWkxP0mxEkl8g6U/VbfxgwkgMcm63kv5xT
-# 8tY5jqBj3tRkYg3zoirNEUNH8VzVvtQ6hBfoMM1gZmj7A/QbB4jd3ssawEDY/P3+
-# TQ1Pr4T5wP+0XPis24qwpxjJ6IDFoGodM18MJkAczC6lLraf4DfwdszVJy3yRZov
-# ShR3ueUDeQHZzUEmVh7ZmWv/YYyWexuVHhyR4HBR1Brb3W1XF+/ouSyPba3z06WU
-# UmIMZzy/7VxNtSIBbwFx9le0cn5c5mi4+cNx6nOoT/JAQ4TVckcTOPcTbp3xNbcx
-# Ez1nekS/6hksT5bzogwN9Q7h/yB+kkEKeNc8+5UKtIE6s+5y4+i7RNz5a54549iL
-# Sbg35F+ZyqOpB3bAPafj0p9RpXoqugMISQ5STklSKDmU69/bFsnEPGmMQKfW590G
-# XuhscXk1bSPvx/0decysPJU/tMbj0U1mDMTfXL2pmt+MKcwYirw35t4zGsB31Zpx
-# kf8GhZRTzB0PRN1R0WuQStX3XlF3IsH41A==
+# DQEJBTEPFw0yNDA1MjkxMzU4MzFaMC8GCSqGSIb3DQEJBDEiBCAcllG2mSPxCJ8u
+# oQsIqOunNyELPZuVN2PuUwDZLmIbpTANBgkqhkiG9w0BAQEFAASCAgBnR/5a25Cy
+# oS6Ylo3RZzQJZkih7pEQYAzzhnhueErTJjKQ/xxdvN+IUn/RvUPkas7QRboqfrJm
+# 4xGwmBbEsZuQyt7XBXz7ZS2sVuzpBwN96JhRmIuTZk5uIGbQ0EI9cy1m84MCjOaC
+# dF0+XITTunQBIZs91fQWdhQhi0oDES6yrmi4ziTd2auFoMCD0l4xDQm0AXZ0aGGZ
+# H9mGwuYA5kP8GWj/2Q90wG7/ivnqE7vVQ2ogRuqTQSfYJhy45n1yZh3MC2lHiA83
+# yOiWlr2CZP1vn7kTiPHwDaWJn8YuEhG45Xg9DYSd+yhwmIG+Cy7h3BDE2XTVdhwi
+# CvzLpfCPTJq5xS9G2wMGpxrQYff+EKlXNrVYZCYvlvSm+p5cLGfitgJvUy9Neyuq
+# FMAqzdTcBgf+TBmOP4hwryQKeE1/ZghZ+DnOb3g5JMPyOjqqeMf37aLObl+jiQrN
+# 6apWTPysMla2x1f7QCTqv5a0kElKqdVt/zF/lJekCtWpK//tznXPHDtnyPnb3w0c
+# 9/1j2oClQc0+pVWUnoq8mBb61bvi/9E6EemMSRJ9qHio4+H6J+SHqNKPgiOu4VFT
+# sfHBV6h649yroU8bHMlYkc+52YNoBbJANgeA5ihS02+C2N74mdlmkUEE52unk+2J
+# oQ2vybH262KiIJSPgIQb91KPw4+FjaCtQg==
# SIG # End signature block
diff --git a/scripts/installatie2.ps1 b/scripts/installatie2.ps1
index f173b99..daabf9f 100644
--- a/scripts/installatie2.ps1
+++ b/scripts/installatie2.ps1
@@ -192,17 +192,17 @@ exit
# aWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0
# MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0ECEAVEr/OUnQg5pr/bP1/lYRYwDQYJ
# YIZIAWUDBAIBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3
-# DQEJBTEPFw0yNDA1MjgwNTM0MTJaMC8GCSqGSIb3DQEJBDEiBCDpOCR32+BElOsp
-# pr9o2qvS6Cq0zGXXv8N/urfnLBwlITANBgkqhkiG9w0BAQEFAASCAgCfTHsVbpZf
-# W4dpipchv87UBpejQZy21Uu7uYXTZtVQuyRItstCVQ0xeZU96pBIlhC+o38O+K4O
-# w/VF79BzDe0mA+xbKM7XX3g4JSWgNTARzYSoA5f3UIYWiECk2zkR3s9XHzzBg11D
-# 3DnaVOhpxnz3X9r7dTNHI5iV8pqFQN6L6Hyuc6J4nH+6vLp80BVG4rp29wz6expK
-# 78+nozPHE4lgFEedom0cgDCe6p3UEx77xI2JzlKdl0B3E5B+zY9tAfhMmmtGoZ1y
-# DqhHWiNYCGxVnalkmru9Hte4AiHFpvxUPnPFqRUFuzbyzAZZvePftrRadE4SLIn+
-# 2h7ckT7BAB42y78o7b/DLCAKK5MF6HCuNbmbBMzb0FlnYujGR3wTOFiTTw3gDtPy
-# pH3gSlZVx4pRD5o9lyEv/Vi7yJy7PGt1bikFKA4C57NWtbZn76ZFrfaz2u4KUZEz
-# 0SjK1gPy1ZgF3XksGCRMuL5UtEQH5qP3hVhyL31KeNsadrVpsOQSkCPcQVi7SVe6
-# UVLSjVFxZDTheYy6/zGmzuCJp6i/3+xubSPTIiQSgYcR4C0S8OIGY+2LItXIaNNb
-# j4A20QZPx41CnpMz+8jkHpkXl3j5GNDLxFgI+m83T7efbzOyzPu5RpQQx3eITnZD
-# KJPM7nx/c1O6IgKPN3YIMJjmZ0SE1rwyYA==
+# DQEJBTEPFw0yNDA1MjkxMzU4MzFaMC8GCSqGSIb3DQEJBDEiBCDpOCR32+BElOsp
+# pr9o2qvS6Cq0zGXXv8N/urfnLBwlITANBgkqhkiG9w0BAQEFAASCAgALWrY16T9Q
+# jGcDVEEOobysVU7id8rnqKMXfCLAIlVyI44uEwXMk854ZoUmv7lItRGpLto03sTs
+# 9NI4LOp2rJA90bN1EZZbL05a10elnxbGarZNnHUEA5LKyIFrcTrnASLJ2Hz7PCmW
+# /QBO2lb0AtBtyxmXfzjxAJj+RLbD+lJxWkgEaTidT36foaCbNQvb0qap3B8g+r0K
+# SG9THPmYivEmme2gThHZSJ5emre6cUdZ3cpvKoCuqCMErXKik1az4KDMX6Ym/3AU
+# EW5/WmZkCAiYCEOHlaOLoW3X/XiPW5p72viy5qwaO0f9NfleXU0FkChAvYUgL2jq
+# UjKszVphMrqYJFwc9zLU5zVP+WyA/kOxW7uNs2HzYxMZribDsOaJQQro8T+5iO13
+# 2Ws5tH/hHxPvVH4NHOFctdUg/j2ntJfoAcGYo4j+o6zJQOmInNA3vi0IM8BNSfar
+# BogdNzBVYW5f4giwGLfCN0SEjL8l1m/Rmf7DWhyLpK9T6Lr+t9Fuh6PAE1Icr3Wv
+# PXeS237UKqfEr25i6mDfIEOCiltJfZa88ooJE5eruv6ZD/2nc4U+UZDLYPB/inlZ
+# b1bU17qxfue5MhOA7UQY8xNifuPaf21tgTUAHW71ub3dY4r1FE/7k9uQbU0BxsGA
+# PAD79tEAEFh6FCBKOQtKG0lE2ntikNRQ5Q==
# SIG # End signature block