soms alarm
This commit is contained in:
parent
54ec2e1084
commit
ac283fdb0e
15 changed files with 328 additions and 252 deletions
|
|
@ -608,7 +608,7 @@ int EpdBase::Epd2U::ConnectAndStatus(int tokenSourceTimeoutms)
|
||||||
{
|
{
|
||||||
WORD dllStatus;
|
WORD dllStatus;
|
||||||
int rv = 1;
|
int rv = 1;
|
||||||
if (CommsInitialized == 0) StartCom();
|
if (CommsInitialized == 0) StartCom();
|
||||||
if (CommsInitialized == 0) rv = 1;
|
if (CommsInitialized == 0) rv = 1;
|
||||||
else {
|
else {
|
||||||
dllStatus = StartDiscover(tokenSourceTimeoutms);
|
dllStatus = StartDiscover(tokenSourceTimeoutms);
|
||||||
|
|
|
||||||
|
|
@ -16,18 +16,25 @@ void WINAPI discovery(CommsHandle hComms, DiscoveryId const discovered[], int32_
|
||||||
{
|
{
|
||||||
if (count > 0)
|
if (count > 0)
|
||||||
{
|
{
|
||||||
|
memcpy(¤t->Epd, &discovered[0], sizeof(DiscoveryId));
|
||||||
current->CurrentDeviceID = discovered[0].Id;
|
current->CurrentDeviceID = discovered[0].Id;
|
||||||
current->DeviceCount = count;
|
current->DeviceCount = count;
|
||||||
memcpy(¤t->Epd, &discovered[0], sizeof(DiscoveryId));
|
|
||||||
SetEvent(current->hCompletion);
|
SetEvent(current->hCompletion);
|
||||||
current->isMK3 = (current->Epd.Gen == EpdGeneration::Mk3);
|
current->isMK3 = (current->Epd.Gen == EpdGeneration::Mk3);
|
||||||
current->EpdID = current->Epd.Id;
|
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)
|
void WINAPI disconnectcallback(CommsHandle hComms, DiscoveryId ID)
|
||||||
{
|
{
|
||||||
current->EpdID = 0;
|
current->isConnected = 0;
|
||||||
current->CurrentDeviceID = 0;
|
current->CurrentDeviceID = 0;
|
||||||
current->DeviceCount = 0;
|
current->DeviceCount = 0;
|
||||||
SetEvent(current->hCompletion);
|
SetEvent(current->hCompletion);
|
||||||
|
|
@ -38,7 +45,7 @@ Epd3Base::Epd3U::Epd3U(int _comport)
|
||||||
port = _comport;
|
port = _comport;
|
||||||
comPort[3] = 48 + _comport;
|
comPort[3] = 48 + _comport;
|
||||||
CommsInitialized = 0;
|
CommsInitialized = 0;
|
||||||
epdComsHandle = INVALID_HANDLE_VALUE;
|
epdComsHandle = nullptr;
|
||||||
isBG = isNG = VersionOK = 0;
|
isBG = isNG = VersionOK = 0;
|
||||||
Error = 123;
|
Error = 123;
|
||||||
current = this;
|
current = this;
|
||||||
|
|
@ -64,8 +71,10 @@ Epd3Base::Epd3U::Epd3U(int _comport)
|
||||||
ErrorStatus = (FaultStatusFlags)0;
|
ErrorStatus = (FaultStatusFlags)0;
|
||||||
IssueCount = OtherAlarms = EEPROMBadSectors = 0;
|
IssueCount = OtherAlarms = EEPROMBadSectors = 0;
|
||||||
RealTime = EpdClock = OffTime = EpdID = 0;
|
RealTime = EpdClock = OffTime = EpdID = 0;
|
||||||
|
EPDFaulty = false;
|
||||||
|
hasAlarm = hasFault = 0;
|
||||||
ErrorSource = ErrorReason = ErrorData = 0;
|
ErrorSource = ErrorReason = ErrorData = 0;
|
||||||
HardVersion = HardVersionMinor= SoftVersion = FunctionFlags = 0;
|
HardVersion = HardVersionMinor = SoftVersion = FunctionFlags = 0;
|
||||||
|
|
||||||
K1 = K2 = K3 = K4 = K4 = K6 = 0.0F;
|
K1 = K2 = K3 = K4 = K4 = K6 = 0.0F;
|
||||||
HG = SG = BC = FB = 0;
|
HG = SG = BC = FB = 0;
|
||||||
|
|
@ -90,28 +99,60 @@ Epd3Base::Epd3U::Epd3U(int _comport)
|
||||||
Epd3Base::Epd3U::~Epd3U()
|
Epd3Base::Epd3U::~Epd3U()
|
||||||
{
|
{
|
||||||
EndCom();
|
EndCom();
|
||||||
if (hCompletion != 0) { CloseHandle(hCompletion); hCompletion = 0; }
|
if (hCompletion != 0) { CloseHandle(hCompletion); hCompletion = 0; }
|
||||||
//if (hWaitTimer != 0) { CloseHandle(hWaitTimer); hWaitTimer = 0; }
|
//if (hWaitTimer != 0) { CloseHandle(hWaitTimer); hWaitTimer = 0; }
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD Epd3Base::Epd3U::StartCom()
|
DWORD Epd3Base::Epd3U::StartCom()
|
||||||
{
|
{
|
||||||
ErrorReason = 0;
|
ErrorReason = 0;
|
||||||
|
ConnectRetries = 0;
|
||||||
|
int step = 1;
|
||||||
int mx = 10;
|
int mx = 10;
|
||||||
epdComsHandle = INVALID_HANDLE_VALUE;
|
|
||||||
|
epdComsHandle = nullptr;
|
||||||
if (port == 0) {
|
if (port == 0) {
|
||||||
CommsInitialized = 1;
|
CommsInitialized = 1;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (CommsInitialized == 0) {
|
|
||||||
|
if (CommsInitialized == 0 || epdComsHandle == nullptr) {
|
||||||
|
step = 2;
|
||||||
epdComsHandle = CreateReaderInterface();
|
epdComsHandle = CreateReaderInterface();
|
||||||
Dll3RV = OpenReader(epdComsHandle, comPort);
|
if (epdComsHandle == nullptr) {
|
||||||
if (Dll3RV == 0)
|
++ConnectRetries;
|
||||||
{
|
step = 3;
|
||||||
Dll3RV = SetMultipleDiscoveryMode(epdComsHandle, false);
|
Sleep(100);
|
||||||
CommsInitialized = 1;
|
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;
|
return Dll3RV;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -120,7 +161,7 @@ void Epd3Base::Epd3U::EndCom()
|
||||||
int rv;
|
int rv;
|
||||||
if (CommsInitialized == 1 || CurrentDeviceID != 0) {
|
if (CommsInitialized == 1 || CurrentDeviceID != 0) {
|
||||||
if (CommsInitialized == 1) {
|
if (CommsInitialized == 1) {
|
||||||
if (epdComsHandle != INVALID_HANDLE_VALUE) {
|
if (epdComsHandle != nullptr) {
|
||||||
DisCon(0);
|
DisCon(0);
|
||||||
Dll3RV = CloseReader(epdComsHandle);
|
Dll3RV = CloseReader(epdComsHandle);
|
||||||
if (Dll3RV) {
|
if (Dll3RV) {
|
||||||
|
|
@ -135,7 +176,7 @@ void Epd3Base::Epd3U::EndCom()
|
||||||
Epd.Id = 0;
|
Epd.Id = 0;
|
||||||
CurrentDeviceID = 0;
|
CurrentDeviceID = 0;
|
||||||
CommsInitialized = 0;
|
CommsInitialized = 0;
|
||||||
epdComsHandle = INVALID_HANDLE_VALUE;
|
epdComsHandle = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -146,7 +187,7 @@ void Epd3Base::Epd3U::EndCom()
|
||||||
/// <returns>rv=1 ,ook bij timeout <>1 voor error</returns>
|
/// <returns>rv=1 ,ook bij timeout <>1 voor error</returns>
|
||||||
int Epd3Base::Epd3U::StartDiscover(int tokentimeout)
|
int Epd3Base::Epd3U::StartDiscover(int tokentimeout)
|
||||||
{
|
{
|
||||||
int32_t rv=1;
|
int32_t rv = 1;
|
||||||
int32_t rv2 = 0;
|
int32_t rv2 = 0;
|
||||||
Error = 0;
|
Error = 0;
|
||||||
if (port == 0) {
|
if (port == 0) {
|
||||||
|
|
@ -156,28 +197,32 @@ int Epd3Base::Epd3U::StartDiscover(int tokentimeout)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
current = this;
|
||||||
Dll3RV = SetDiscoveryCacheTimeout(epdComsHandle, tokentimeout);
|
Dll3RV = SetDiscoveryCacheTimeout(epdComsHandle, tokentimeout);
|
||||||
//Dll3RV = Commit3(epdComsHandle);
|
DeviceCount = 0;
|
||||||
DeviceCount = 0; ConnectTries = 1;
|
|
||||||
//rv2 = Cancel(epdComsHandle); Cancel bestaat niet
|
|
||||||
ResetEvent(hCompletion);
|
ResetEvent(hCompletion);
|
||||||
ConnectTimerFired = 0;
|
ConnectTimerFired = 0;
|
||||||
current = this;
|
isConnected = 0;
|
||||||
|
|
||||||
Dll3RV = StartDiscovery(epdComsHandle, discovery);
|
Dll3RV = StartDiscovery(epdComsHandle, discovery);
|
||||||
if (Dll3RV == 0) {
|
if (Dll3RV == 0) {
|
||||||
Dll3RV = WaitForSingleObject(hCompletion, tokentimeout);
|
Dll3RV = WaitForSingleObject(hCompletion, tokentimeout);
|
||||||
if (Dll3RV == WAIT_OBJECT_0) rv = 1;
|
if (Dll3RV == WAIT_OBJECT_0) rv = 1;
|
||||||
else if (Dll3RV == WAIT_TIMEOUT) {
|
else if (Dll3RV == WAIT_TIMEOUT) {
|
||||||
rv = 1; ConnectTimerFired = 1;
|
rv = 1;
|
||||||
rv2= StopDiscovery(epdComsHandle);
|
ConnectTimerFired = 1;
|
||||||
DeviceCount = 0;
|
rv2 = StopDiscovery(epdComsHandle);
|
||||||
} else rv = 2;
|
DeviceCount = 0;
|
||||||
|
}
|
||||||
|
else rv = 2;
|
||||||
}
|
}
|
||||||
if ( DeviceCount > 0) {
|
if (DeviceCount > 0) {
|
||||||
|
Dll3RV = SetConnectCallback(epdComsHandle, connectcallback);
|
||||||
Dll3RV = Connect3(epdComsHandle, Epd, true);
|
Dll3RV = Connect3(epdComsHandle, Epd, true);
|
||||||
if (Dll3RV != 0) rv = 2;
|
if (Dll3RV != 0) rv = 2;
|
||||||
else Dll3RV = SetDisconnectCallback(epdComsHandle, disconnectcallback);
|
else {
|
||||||
|
Dll3RV = SetDisconnectCallback(epdComsHandle, disconnectcallback);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
@ -185,7 +230,7 @@ int Epd3Base::Epd3U::StartDiscover(int tokentimeout)
|
||||||
int Epd3Base::Epd3U::OpenDev(DiscoveryId DeviceID)
|
int Epd3Base::Epd3U::OpenDev(DiscoveryId DeviceID)
|
||||||
{
|
{
|
||||||
CurrentDeviceID = DeviceID.Id;
|
CurrentDeviceID = DeviceID.Id;
|
||||||
if (epdComsHandle != INVALID_HANDLE_VALUE)
|
if (epdComsHandle != nullptr)
|
||||||
{
|
{
|
||||||
Dll3RV = Connect3(epdComsHandle, DeviceID, true);
|
Dll3RV = Connect3(epdComsHandle, DeviceID, true);
|
||||||
}
|
}
|
||||||
|
|
@ -195,12 +240,13 @@ int Epd3Base::Epd3U::OpenDev(DiscoveryId DeviceID)
|
||||||
|
|
||||||
int Epd3Base::Epd3U::ReOpenDev()
|
int Epd3Base::Epd3U::ReOpenDev()
|
||||||
{
|
{
|
||||||
if (epdComsHandle != INVALID_HANDLE_VALUE)
|
if (epdComsHandle != nullptr)
|
||||||
{
|
{
|
||||||
Dll3RV = Connect3(epdComsHandle, Epd, true);
|
Dll3RV = Connect3(epdComsHandle, Epd, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Dll3RV = r_InvalidCommsHandle; } //no handle ..
|
Dll3RV = r_InvalidCommsHandle;
|
||||||
|
} //no handle ..
|
||||||
return Dll3RV;
|
return Dll3RV;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -223,13 +269,13 @@ int Epd3Base::Epd3U::DisCon(UINT16 alarm)
|
||||||
step = 2;
|
step = 2;
|
||||||
Dll3RV = WaitForSingleObject(hCompletion, 3000);
|
Dll3RV = WaitForSingleObject(hCompletion, 3000);
|
||||||
switch (Dll3RV) {
|
switch (Dll3RV) {
|
||||||
case WAIT_OBJECT_0: rv = 0; break;
|
case WAIT_OBJECT_0: rv = 0; break;
|
||||||
case WAIT_TIMEOUT:
|
case WAIT_TIMEOUT:
|
||||||
rv = 0;
|
rv = 0;
|
||||||
current->CurrentDeviceID = 0;
|
current->CurrentDeviceID = 0;
|
||||||
current->DeviceCount = 0;
|
current->DeviceCount = 0;
|
||||||
break;
|
break;
|
||||||
default: rv = 3; break;
|
default: rv = 3; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return rv;
|
return rv;
|
||||||
|
|
@ -239,12 +285,12 @@ error:
|
||||||
|
|
||||||
void Epd3Base::Epd3U::CloseDev(bool CloseAll)
|
void Epd3Base::Epd3U::CloseDev(bool CloseAll)
|
||||||
{
|
{
|
||||||
if (epdComsHandle != INVALID_HANDLE_VALUE) {
|
if (epdComsHandle != nullptr) {
|
||||||
DisCon(0);
|
DisCon(0);
|
||||||
if (CloseAll) {
|
if (CloseAll) {
|
||||||
CloseReader(epdComsHandle);
|
CloseReader(epdComsHandle);
|
||||||
DestroyReaderInterface(epdComsHandle);
|
DestroyReaderInterface(epdComsHandle);
|
||||||
epdComsHandle = INVALID_HANDLE_VALUE;
|
epdComsHandle = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -280,9 +326,9 @@ void Epd3Base::Epd3U::DecodeStatus()
|
||||||
EPDIssued = checkStatus(epd3status.OperatingStatus, OpStatusFlags::EpdIssued);
|
EPDIssued = checkStatus(epd3status.OperatingStatus, OpStatusFlags::EpdIssued);
|
||||||
EPDLocked = checkStatus(epd3status.OperatingStatus, OpStatusFlags::GainAdjustable);
|
EPDLocked = checkStatus(epd3status.OperatingStatus, OpStatusFlags::GainAdjustable);
|
||||||
EPDTesting = checkStatus(epd3status.OperatingStatus, OpStatusFlags::DetectorTestRequested);
|
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);
|
EPDComFault = checkStatus(epd3status.FaultStatus, FaultStatusFlags::EarlyCommsTermination);
|
||||||
EPDCalFault = checkStatus(epd3status.FaultStatus, FaultStatusFlags::NotCalibrated);
|
EPDCalFault = checkStatus(epd3status.FaultStatus, FaultStatusFlags::NotCalibrated);
|
||||||
EPDDetFault = checkStatus(epd3status.FaultStatus, FaultStatusFlags::DetectorTestFail);
|
EPDDetFault = checkStatus(epd3status.FaultStatus, FaultStatusFlags::DetectorTestFail);
|
||||||
|
|
@ -300,7 +346,7 @@ void Epd3Base::Epd3U::DecodeStatus()
|
||||||
eDosDose07Alarm = checkStatus(status, DoseAlarmFlags::DoseAlarm);
|
eDosDose07Alarm = checkStatus(status, DoseAlarmFlags::DoseAlarm);
|
||||||
eDosRate07Warning = checkStatus(status, DoseAlarmFlags::LatchedRateWarning) | checkStatus(status, DoseAlarmFlags::RateWarning);
|
eDosRate07Warning = checkStatus(status, DoseAlarmFlags::LatchedRateWarning) | checkStatus(status, DoseAlarmFlags::RateWarning);
|
||||||
eDosRate07Alarm = checkStatus(status, DoseAlarmFlags::LatchedRateAlarm) | checkStatus(status, DoseAlarmFlags::RateAlarm);
|
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);
|
AlarmRateHP07N = checkStatus(status, DoseAlarmFlags::RateAlarm) | checkStatus(status, DoseAlarmFlags::LatchedRateAlarm);
|
||||||
break;
|
break;
|
||||||
case MeasurementId::Meas_Hp10:
|
case MeasurementId::Meas_Hp10:
|
||||||
|
|
@ -316,6 +362,7 @@ void Epd3Base::Epd3U::DecodeStatus()
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
OtherAlarmReturn = checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::ReturnForRead);
|
OtherAlarmReturn = checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::ReturnForRead);
|
||||||
OtherAlarmBatLow = checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::LowBattery);
|
OtherAlarmBatLow = checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::LowBattery);
|
||||||
OtherAlarmCarrier = checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::TelemetryAlert);
|
OtherAlarmCarrier = checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::TelemetryAlert);
|
||||||
|
|
@ -323,11 +370,9 @@ void Epd3Base::Epd3U::DecodeStatus()
|
||||||
|
|
||||||
eDosDoseAlarm = eDosDose10Alarm || eDosDose07Alarm || checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::DoseAlarm);
|
eDosDoseAlarm = eDosDose10Alarm || eDosDose07Alarm || checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::DoseAlarm);
|
||||||
eDosRateAlarm = eDosRate07Alarm || eDosRate10Alarm || checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::RateAlarm);
|
eDosRateAlarm = eDosRate07Alarm || eDosRate10Alarm || checkStatus(epd3status.AlarmStatus, AlarmStatusFlags::RateAlarm);
|
||||||
hasAlarm = eDosDoseAlarm || eDosRateAlarm ;
|
|
||||||
if (hasAlarm) {
|
|
||||||
|
|
||||||
}
|
hasAlarm = eDosDoseAlarm || eDosRateAlarm;
|
||||||
hasFault = (int)epd3status.FaultStatus != 0;
|
hasFault = ((uint32_t)epd3status.FaultStatus & ~(uint32_t)FaultStatusFlags::ErrorLogged) != 0;
|
||||||
eDosBatteryWarning = OtherAlarmBatLow | OtherAlarmBatVolt;
|
eDosBatteryWarning = OtherAlarmBatLow | OtherAlarmBatVolt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -337,7 +382,7 @@ void Epd3Base::Epd3U::SetTime() //Only R3
|
||||||
utc = TimeFunctions::NowToEpdTime(Epd.Gen == EpdGeneration::Mk2);
|
utc = TimeFunctions::NowToEpdTime(Epd.Gen == EpdGeneration::Mk2);
|
||||||
token = BeginWriteRTC_R3(epdComsHandle, utc, nullptr);
|
token = BeginWriteRTC_R3(epdComsHandle, utc, nullptr);
|
||||||
uint32_t r = Commit3(epdComsHandle);
|
uint32_t r = Commit3(epdComsHandle);
|
||||||
Dll3RV = EndWriteRTC_R3(epdComsHandle, token);
|
if (!r) Dll3RV = EndWriteRTC_R3(epdComsHandle, token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -375,12 +420,10 @@ int Epd3Base::Epd3U::ReadStatus()
|
||||||
ErrorSource = ErrorReason = ErrorData = 0;
|
ErrorSource = ErrorReason = ErrorData = 0;
|
||||||
HardVersion = HardVersionMinor = SoftVersion = FunctionFlags = 0;
|
HardVersion = HardVersionMinor = SoftVersion = FunctionFlags = 0;
|
||||||
|
|
||||||
r = ReOpenDev();
|
|
||||||
|
|
||||||
step = 1;
|
step = 1;
|
||||||
token = BeginReadStatus(epdComsHandle, nullptr);
|
token = BeginReadStatus(epdComsHandle, nullptr);
|
||||||
r = Commit3(epdComsHandle);
|
r = Commit3(epdComsHandle);
|
||||||
r = EndReadStatus(epdComsHandle, token, &epd3status);
|
if (!r) r = EndReadStatus(epdComsHandle, token, &epd3status);
|
||||||
if (r != 0) {
|
if (r != 0) {
|
||||||
Error = GetErrorCode();
|
Error = GetErrorCode();
|
||||||
goto error;
|
goto error;
|
||||||
|
|
@ -400,7 +443,7 @@ int Epd3Base::Epd3U::ReadStatus()
|
||||||
step = 2;
|
step = 2;
|
||||||
token = BeginReadEpdIdentities(epdComsHandle, nullptr);
|
token = BeginReadEpdIdentities(epdComsHandle, nullptr);
|
||||||
r = Commit3(epdComsHandle);
|
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) {
|
if (r != 0) {
|
||||||
Error = GetErrorCode();
|
Error = GetErrorCode();
|
||||||
goto error;
|
goto error;
|
||||||
|
|
@ -413,12 +456,13 @@ int Epd3Base::Epd3U::ReadStatus()
|
||||||
HardVersionMinor = MarkNumber.Minor;
|
HardVersionMinor = MarkNumber.Minor;
|
||||||
SoftVersion = VersionNumber.Major;
|
SoftVersion = VersionNumber.Major;
|
||||||
VersionOK = true;
|
VersionOK = true;
|
||||||
|
|
||||||
DecodeStatus(); //Alarm status...
|
DecodeStatus(); //Alarm status...
|
||||||
|
|
||||||
step = 3;
|
step = 3;
|
||||||
token = BeginReadCounts(epdComsHandle, nullptr, 0, nullptr);
|
token = BeginReadCounts(epdComsHandle, nullptr, 0, nullptr);
|
||||||
r = Commit3(epdComsHandle);
|
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
|
// - 101 = InvalidParam
|
||||||
// - 104 = FunctionFail,
|
// - 104 = FunctionFail,
|
||||||
if (r != 0 && r != -104) {
|
if (r != 0 && r != -104) {
|
||||||
|
|
@ -446,7 +490,7 @@ int Epd3Base::Epd3U::ReadStatus()
|
||||||
step = 5;
|
step = 5;
|
||||||
token = BeginReadWearerId(epdComsHandle, static_cast<uint16_t>(WearerIdType::WearerId_Primary), nullptr);
|
token = BeginReadWearerId(epdComsHandle, static_cast<uint16_t>(WearerIdType::WearerId_Primary), nullptr);
|
||||||
r = Commit3(epdComsHandle);
|
r = Commit3(epdComsHandle);
|
||||||
r = EndReadWearerId(epdComsHandle, token, &mk3WearerID);
|
if (!r) r = EndReadWearerId(epdComsHandle, token, &mk3WearerID);
|
||||||
if (r != 0) {
|
if (r != 0) {
|
||||||
Error = GetErrorCode();
|
Error = GetErrorCode();
|
||||||
goto error;
|
goto error;
|
||||||
|
|
@ -465,7 +509,7 @@ int Epd3Base::Epd3U::ReadStatus()
|
||||||
if (utc == 0) {
|
if (utc == 0) {
|
||||||
token = BeginReadRTC(epdComsHandle, nullptr);
|
token = BeginReadRTC(epdComsHandle, nullptr);
|
||||||
r = Commit3(epdComsHandle);
|
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;
|
if (r) goto error;
|
||||||
EpdClock = utc;
|
EpdClock = utc;
|
||||||
utc = TimeFunctions::NowToEpdTime(true);
|
utc = TimeFunctions::NowToEpdTime(true);
|
||||||
|
|
@ -495,7 +539,7 @@ int Epd3Base::Epd3U::ConnectAndStatus(int tokenSourceTimeout)
|
||||||
{
|
{
|
||||||
WORD dllStatus;
|
WORD dllStatus;
|
||||||
int rv = 1;
|
int rv = 1;
|
||||||
Error = 0; ErrorStep = 0;
|
Error = 0; ErrorStep = 0; hasAlarm = hasFault = 0;
|
||||||
if (CommsInitialized == 0) StartCom();
|
if (CommsInitialized == 0) StartCom();
|
||||||
if (CommsInitialized) {
|
if (CommsInitialized) {
|
||||||
dllStatus = StartDiscover(tokenSourceTimeout);
|
dllStatus = StartDiscover(tokenSourceTimeout);
|
||||||
|
|
@ -807,11 +851,10 @@ WORD Epd3Base::Epd3U::ReadDoses()
|
||||||
ErrorSource = ErrorReason = ErrorData = 0;
|
ErrorSource = ErrorReason = ErrorData = 0;
|
||||||
K1 = 1; K2 = 2; K3 = 3; K4 = 4; K5 = 5; K6 = 6;
|
K1 = 1; K2 = 2; K3 = 3; K4 = 4; K5 = 5; K6 = 6;
|
||||||
SG = 7; BC = 8; FB = 9; HG = 10;
|
SG = 7; BC = 8; FB = 9; HG = 10;
|
||||||
return 0;
|
return r_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
numDoses = 0; utc = 0;
|
numDoses = 0; utc = 0;
|
||||||
SetResponseTimeout(epdComsHandle, 2000);
|
|
||||||
|
|
||||||
step = 1;
|
step = 1;
|
||||||
token = BeginReadDoses(epdComsHandle, nullptr, 0, nullptr);
|
token = BeginReadDoses(epdComsHandle, nullptr, 0, nullptr);
|
||||||
|
|
@ -849,12 +892,15 @@ WORD Epd3Base::Epd3U::ReadDoses()
|
||||||
decodePeakRates(numRates);
|
decodePeakRates(numRates);
|
||||||
|
|
||||||
step = 5;
|
step = 5;
|
||||||
r= ReadSensitivitiesAndTresholds(); //K1 .. K6, SG , BC ,FB , HG
|
r = ReadSensitivitiesAndTresholds(); //K1 .. K6, SG , BC ,FB , HG
|
||||||
if (r != 0)
|
if (r != 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
Error = r;
|
||||||
|
ErrorStep = step;
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -869,28 +915,30 @@ int Epd3Base::Epd3U::ClearDoses()
|
||||||
token = BeginClearTotalDose(epdComsHandle, nullptr);
|
token = BeginClearTotalDose(epdComsHandle, nullptr);
|
||||||
r = Commit3(epdComsHandle);
|
r = Commit3(epdComsHandle);
|
||||||
if (!r) r = EndClearTotalDose(epdComsHandle, token);
|
if (!r) r = EndClearTotalDose(epdComsHandle, token);
|
||||||
if (r != 0 && r!= -105 )
|
if (r != 0 && r != r_InvalidOp)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
step++;
|
step++;
|
||||||
token = BeginClearDose(epdComsHandle, nullptr);
|
token = BeginClearDose(epdComsHandle, nullptr);
|
||||||
r = Commit3(epdComsHandle);
|
r = Commit3(epdComsHandle);
|
||||||
if (!r) r = EndClearDose(epdComsHandle, token);
|
if (!r) r = EndClearDose(epdComsHandle, token);
|
||||||
if (r != 0 && r != -105)
|
if (r != 0 && r != r_InvalidOp)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
|
||||||
step++;
|
step++;
|
||||||
token = BeginClearPeakRates(epdComsHandle, nullptr);
|
token = BeginClearPeakRates(epdComsHandle, nullptr);
|
||||||
r = Commit3(epdComsHandle);
|
r = Commit3(epdComsHandle);
|
||||||
if (!r) r = EndClearPeakRates(epdComsHandle, token);
|
if (!r) r = EndClearPeakRates(epdComsHandle, token);
|
||||||
if (r != 0 && r != -105)
|
if (r != 0 && r != r_InvalidOp)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (r == -105) r = 0;
|
if (r == r_InvalidOp) r = 0;
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
return r;
|
ErrorStep = step;
|
||||||
|
Error = r;
|
||||||
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Epd3Base::Epd3U::ClearAlarms()
|
int Epd3Base::Epd3U::ClearAlarms()
|
||||||
|
|
@ -1050,7 +1098,8 @@ WORD Epd3Base::Epd3U::DeIssue()
|
||||||
int r = 1;
|
int r = 1;
|
||||||
int ErrorStep = 0;
|
int ErrorStep = 0;
|
||||||
if (port == 0) return 0;
|
if (port == 0) return 0;
|
||||||
if (CurrentDeviceID==0) return 0;
|
if (CurrentDeviceID == 0) return 0;
|
||||||
|
|
||||||
|
|
||||||
//ReOpenDev();
|
//ReOpenDev();
|
||||||
ErrorStep = 1;
|
ErrorStep = 1;
|
||||||
|
|
@ -1063,16 +1112,16 @@ WORD Epd3Base::Epd3U::DeIssue()
|
||||||
if (EPDIssued) {
|
if (EPDIssued) {
|
||||||
token = BeginDeissueEPD(epdComsHandle, nullptr);
|
token = BeginDeissueEPD(epdComsHandle, nullptr);
|
||||||
r = Commit3(epdComsHandle);
|
r = Commit3(epdComsHandle);
|
||||||
r = EndDeissueEPD(epdComsHandle, token);
|
if (!r) r = EndDeissueEPD(epdComsHandle, token);
|
||||||
if (r != 0)
|
if (r)
|
||||||
r = 0; // goto error;
|
r = 0; // goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
ErrorStep = 4;
|
ErrorStep = 4;
|
||||||
token = BeginEpdOnOff(epdComsHandle, 0, nullptr);
|
token = BeginEpdOnOff(epdComsHandle, 0, nullptr);
|
||||||
r = Commit3(epdComsHandle);
|
r = Commit3(epdComsHandle);
|
||||||
r = EndEpdOnOff(epdComsHandle, token);
|
if (!r) r = EndEpdOnOff(epdComsHandle, token);
|
||||||
if (r != 0)
|
if (r)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
ErrorStep = 5;
|
ErrorStep = 5;
|
||||||
|
|
@ -1135,7 +1184,7 @@ error:
|
||||||
|
|
||||||
WORD Epd3Base::Epd3U::Issue(bool PrepareDone)
|
WORD Epd3Base::Epd3U::Issue(bool PrepareDone)
|
||||||
{
|
{
|
||||||
int r=0;
|
int r = 0;
|
||||||
int step = 0;
|
int step = 0;
|
||||||
int tries = 0;
|
int tries = 0;
|
||||||
if (port == 0) return r;
|
if (port == 0) return r;
|
||||||
|
|
@ -1155,7 +1204,7 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone)
|
||||||
goto error;
|
goto error;
|
||||||
}*/
|
}*/
|
||||||
step = 1;
|
step = 1;
|
||||||
r=ReOpenDev();
|
r = ReOpenDev();
|
||||||
if (r) goto error;
|
if (r) goto error;
|
||||||
|
|
||||||
step = 2;
|
step = 2;
|
||||||
|
|
@ -1172,12 +1221,12 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone)
|
||||||
step = 4;
|
step = 4;
|
||||||
//EPDIssued
|
//EPDIssued
|
||||||
//if (!DetectorsOn) {
|
//if (!DetectorsOn) {
|
||||||
token = BeginEpdOnOff(epdComsHandle, 1, nullptr);
|
token = BeginEpdOnOff(epdComsHandle, 1, nullptr);
|
||||||
r = Commit3(epdComsHandle);
|
r = Commit3(epdComsHandle);
|
||||||
if (!r) r = EndEpdOnOff(epdComsHandle, token);
|
if (!r) r = EndEpdOnOff(epdComsHandle, token);
|
||||||
// OKRV = EpdOn(); OKRV = Commit3();
|
// OKRV = EpdOn(); OKRV = Commit3();
|
||||||
if (r != 0)
|
if (r != 0)
|
||||||
r=0;
|
r = 0;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//step = 5;
|
//step = 5;
|
||||||
|
|
@ -1196,7 +1245,7 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone)
|
||||||
r = EndIssueEPD(epdComsHandle, token);
|
r = EndIssueEPD(epdComsHandle, token);
|
||||||
}
|
}
|
||||||
if (r)
|
if (r)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
/*if (isMK3) {
|
/*if (isMK3) {
|
||||||
token = BeginEnableProtectedSession_R3(epdComsHandle, 0, nullptr);
|
token = BeginEnableProtectedSession_R3(epdComsHandle, 0, nullptr);
|
||||||
|
|
@ -1227,6 +1276,7 @@ error:
|
||||||
WORD Epd3Base::Epd3U::EPDReadExtraStatus()
|
WORD Epd3Base::Epd3U::EPDReadExtraStatus()
|
||||||
{
|
{
|
||||||
if (port == 0) return 1;
|
if (port == 0) return 1;
|
||||||
|
uint32_t r;
|
||||||
//byBatADC = bySupplyADC = 0;
|
//byBatADC = bySupplyADC = 0;
|
||||||
/*CommitRV = ReadA2ConfigStatus(
|
/*CommitRV = ReadA2ConfigStatus(
|
||||||
&byBatADC,
|
&byBatADC,
|
||||||
|
|
@ -1236,9 +1286,9 @@ WORD Epd3Base::Epd3U::EPDReadExtraStatus()
|
||||||
if (CommitRV == 1) CommitRV = Commit3();*/
|
if (CommitRV == 1) CommitRV = Commit3();*/
|
||||||
|
|
||||||
token = BeginReadBaselineCounts(epdComsHandle, nullptr);
|
token = BeginReadBaselineCounts(epdComsHandle, nullptr);
|
||||||
uint32_t r = Commit3(epdComsHandle);
|
r = Commit3(epdComsHandle);
|
||||||
r = EndReadBaselineCounts(epdComsHandle, token, Counts, 10, &utc, &countsRead);
|
if (!r) r = EndReadBaselineCounts(epdComsHandle, token, Counts, 10, &utc, &countsRead);
|
||||||
decodeBaseCounters(countsRead);
|
if (!r) decodeBaseCounters(countsRead);
|
||||||
//if (CommitRV == 1) CommitRV = ReadCounts(&D1, &D2, &D3, &D4, &CountsClock);
|
//if (CommitRV == 1) CommitRV = ReadCounts(&D1, &D2, &D3, &D4, &CountsClock);
|
||||||
//if (CommitRV == 1) CommitRV = Commit3();
|
//if (CommitRV == 1) CommitRV = Commit3();
|
||||||
//if (CommitRV == 1) CommitRV = ReadBaseCounts(&BaseD1, &BaseD2, &BaseD3, &BaseD4, &BaseCountsClock);
|
//if (CommitRV == 1) CommitRV = ReadBaseCounts(&BaseD1, &BaseD2, &BaseD3, &BaseD4, &BaseCountsClock);
|
||||||
|
|
@ -1283,11 +1333,10 @@ error:
|
||||||
|
|
||||||
int Epd3Base::Epd3U::GetAll(bool Closeconnection)
|
int Epd3Base::Epd3U::GetAll(bool Closeconnection)
|
||||||
{
|
{
|
||||||
int rv = 0, step=1;
|
int rv = 0, step = 1;
|
||||||
rv = ReadDoses();
|
rv = ReadDoses();
|
||||||
step++;
|
step=2;
|
||||||
if (!rv) rv = ReadAlarmTresholds();
|
if (!rv) rv = ReadAlarmTresholds();
|
||||||
|
|
||||||
if (Closeconnection) EndCom();
|
if (Closeconnection) EndCom();
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
@ -1297,10 +1346,6 @@ int Epd3Base::Epd3U::GetAllDeissue(bool reconnect)
|
||||||
int rv = 0;
|
int rv = 0;
|
||||||
int step = 0;
|
int step = 0;
|
||||||
|
|
||||||
/*if (reconnect)
|
|
||||||
rv = ReOpenDev();
|
|
||||||
if (!rv) goto error;*/
|
|
||||||
|
|
||||||
step = 1;
|
step = 1;
|
||||||
rv = ReadDoses(); //0 = success
|
rv = ReadDoses(); //0 = success
|
||||||
if (rv) goto error;
|
if (rv) goto error;
|
||||||
|
|
@ -1321,12 +1366,12 @@ error:
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Epd3Base::Epd3U::IssueAndCheck(float gain,float ChirpRate)
|
int Epd3Base::Epd3U::IssueAndCheck(float gain, float ChirpRate)
|
||||||
{
|
{
|
||||||
int rv = 0;
|
int rv = 0;
|
||||||
int step = 0;
|
int step = 0;
|
||||||
|
|
||||||
rv = ReOpenDev();
|
if (!isConnected) rv = ReOpenDev();
|
||||||
if (rv) goto error;
|
if (rv) goto error;
|
||||||
|
|
||||||
if (isNG) {
|
if (isNG) {
|
||||||
|
|
@ -1343,7 +1388,7 @@ int Epd3Base::Epd3U::IssueAndCheck(float gain,float ChirpRate)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
step = 3;
|
step = 3;
|
||||||
rv = SetChirp( ChirpRate);
|
rv = SetChirp(ChirpRate);
|
||||||
if (rv) goto error;
|
if (rv) goto error;
|
||||||
|
|
||||||
step = 4;
|
step = 4;
|
||||||
|
|
@ -1363,11 +1408,11 @@ error:
|
||||||
|
|
||||||
int Epd3Base::Epd3U::WriteConfig(void)
|
int Epd3Base::Epd3U::WriteConfig(void)
|
||||||
{
|
{
|
||||||
if (port == 0 || WriteConfig32==0) return 1;
|
if (port == 0 || WriteConfig32 == 0) return 1;
|
||||||
int32_t r = 0;
|
int32_t r = 0;
|
||||||
ECLen = 32;
|
ECLen = 32;
|
||||||
|
|
||||||
token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen, nullptr);
|
token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen, nullptr);
|
||||||
r = Commit3(epdComsHandle);
|
r = Commit3(epdComsHandle);
|
||||||
r = EndWriteAccessLevel(epdComsHandle, token);
|
r = EndWriteAccessLevel(epdComsHandle, token);
|
||||||
|
|
||||||
|
|
@ -1399,7 +1444,7 @@ int Epd3Base::Epd3U::WriteConfig(void)
|
||||||
{ 6,0x97FF,0xFFF9 },
|
{ 6,0x97FF,0xFFF9 },
|
||||||
{ 7,0x97FF,0xFFD3 },
|
{ 7,0x97FF,0xFFD3 },
|
||||||
{ 8,0x97FF,0xFFFF }
|
{ 8,0x97FF,0xFFFF }
|
||||||
};
|
};
|
||||||
// 0x1 Operation Menu Back /0x2 On / Off 0x4 Clear Dose 0x8 Toggle Telemtry 0x10 Responder Trigger
|
// 0x1 Operation Menu Back /0x2 On / Off 0x4 Clear Dose 0x8 Toggle Telemtry 0x10 Responder Trigger
|
||||||
// 1 0 0 0 0
|
// 1 0 0 0 0
|
||||||
|
|
||||||
|
|
@ -1474,7 +1519,7 @@ int Epd3Base::Epd3U::SetChirp(float Sensitivity)
|
||||||
|
|
||||||
if (Sensitivity > 0.001F) {
|
if (Sensitivity > 0.001F) {
|
||||||
enable = 1;
|
enable = 1;
|
||||||
token = BeginWriteChirpSensitivity(epdComsHandle, Sensitivity, nullptr);
|
token = BeginWriteChirpSensitivity(epdComsHandle, Sensitivity, nullptr);
|
||||||
r = Commit3(epdComsHandle);
|
r = Commit3(epdComsHandle);
|
||||||
if (!r) r = EndWriteChirpSensitivity(epdComsHandle, token);
|
if (!r) r = EndWriteChirpSensitivity(epdComsHandle, token);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,9 @@ namespace Epd3Base {
|
||||||
WORD ErrorReason;
|
WORD ErrorReason;
|
||||||
WORD ErrorData;
|
WORD ErrorData;
|
||||||
|
|
||||||
|
int ConnectRetries = 0;
|
||||||
|
BYTE isConnected = 0;
|
||||||
|
|
||||||
int32_t Dll3RV;
|
int32_t Dll3RV;
|
||||||
UINT16 EndSessionControl;
|
UINT16 EndSessionControl;
|
||||||
public:
|
public:
|
||||||
|
|
@ -47,13 +50,17 @@ namespace Epd3Base {
|
||||||
private:
|
private:
|
||||||
WORD CommsInitialized = 0;
|
WORD CommsInitialized = 0;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Epd3U(int _comport);
|
Epd3U(int _comport);
|
||||||
~Epd3U();
|
~Epd3U();
|
||||||
DWORD StartCom();
|
DWORD StartCom();
|
||||||
void EndCom();
|
void EndCom();
|
||||||
int StartDiscover(int tokentimeout);
|
int StartDiscover(int tokentimeout);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//OperatingStatus
|
//OperatingStatus
|
||||||
BYTE DetectorsOn = 0;
|
BYTE DetectorsOn = 0;
|
||||||
BYTE EPDIssued = 0;
|
BYTE EPDIssued = 0;
|
||||||
|
|
@ -127,6 +134,7 @@ namespace Epd3Base {
|
||||||
bool isMK3 = false;
|
bool isMK3 = false;
|
||||||
bool hasAlarm = false;
|
bool hasAlarm = false;
|
||||||
bool hasFault = false;
|
bool hasFault = false;
|
||||||
|
|
||||||
SYSTEMTIME tRealTime;
|
SYSTEMTIME tRealTime;
|
||||||
|
|
||||||
//Wearer
|
//Wearer
|
||||||
|
|
@ -196,7 +204,7 @@ namespace Epd3Base {
|
||||||
|
|
||||||
|
|
||||||
BYTE ConnectTimerFired;
|
BYTE ConnectTimerFired;
|
||||||
int ConnectTries;
|
|
||||||
|
|
||||||
OpStatusFlags OperatingStatus;
|
OpStatusFlags OperatingStatus;
|
||||||
FaultStatusFlags ErrorStatus;
|
FaultStatusFlags ErrorStatus;
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ int EpdBaseClr::Epd2::Close()
|
||||||
}
|
}
|
||||||
int EpdBaseClr::Epd2::DecodeStatus(Epd3Base::Epd3U* epd)
|
int EpdBaseClr::Epd2::DecodeStatus(Epd3Base::Epd3U* epd)
|
||||||
{
|
{
|
||||||
epd->DecodeStatus();
|
epd->DecodeStatus(); // set hasAlarm
|
||||||
//OperatingStatus
|
//OperatingStatus
|
||||||
DetectorsOn = epd->DetectorsOn;
|
DetectorsOn = epd->DetectorsOn;
|
||||||
EPDIssued = epd->EPDIssued;
|
EPDIssued = epd->EPDIssued;
|
||||||
|
|
@ -180,7 +180,9 @@ int EpdBaseClr::Epd2::AfterGetStatus(EpdBase::Epd2U *epd)
|
||||||
otherAlarms = epd->OtherAlarms;
|
otherAlarms = epd->OtherAlarms;
|
||||||
errorStatus = epd->ErrorStatus;
|
errorStatus = epd->ErrorStatus;
|
||||||
operatingStatus = epd->OperatingStatus;
|
operatingStatus = epd->OperatingStatus;
|
||||||
hasAlarm = epd->hasAlarm;
|
//hasAlarm = epd->hasAlarm; //?1
|
||||||
|
eDoshasAlarm = epd->hasAlarm;
|
||||||
|
eDosHasFault = epd->hasFault;
|
||||||
EpdID = epd->EpdID;
|
EpdID = epd->EpdID;
|
||||||
HardVersion = epd->HardVersion / 100;
|
HardVersion = epd->HardVersion / 100;
|
||||||
HardVersionMinor = epd->HardVersion % 100;
|
HardVersionMinor = epd->HardVersion % 100;
|
||||||
|
|
@ -190,6 +192,7 @@ int EpdBaseClr::Epd2::AfterGetStatus(EpdBase::Epd2U *epd)
|
||||||
DecodeStatus(epd);
|
DecodeStatus(epd);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int EpdBaseClr::Epd2::AfterGetStatus(Epd3Base::Epd3U* epd)
|
int EpdBaseClr::Epd2::AfterGetStatus(Epd3Base::Epd3U* epd)
|
||||||
{
|
{
|
||||||
EPDIssued= epd->EPDIssued;
|
EPDIssued= epd->EPDIssued;
|
||||||
|
|
@ -205,14 +208,16 @@ int EpdBaseClr::Epd2::AfterGetStatus(Epd3Base::Epd3U* epd)
|
||||||
otherAlarms = (int)epd->OtherAlarms;
|
otherAlarms = (int)epd->OtherAlarms;
|
||||||
errorStatus = (int)epd->ErrorStatus;
|
errorStatus = (int)epd->ErrorStatus;
|
||||||
operatingStatus = (int)epd->OperatingStatus;
|
operatingStatus = (int)epd->OperatingStatus;
|
||||||
hasAlarm = epd->hasAlarm;
|
|
||||||
|
eDoshasAlarm = epd->hasAlarm;
|
||||||
|
eDosHasFault = epd->hasFault;
|
||||||
EpdID = epd->EpdID;
|
EpdID = epd->EpdID;
|
||||||
HardVersion = epd->HardVersion;
|
HardVersion = epd->HardVersion;
|
||||||
HardVersionMinor = epd->HardVersionMinor;
|
HardVersionMinor = epd->HardVersionMinor;
|
||||||
SoftVersion = epd->SoftVersion;
|
SoftVersion = epd->SoftVersion;
|
||||||
FunctionFlags = epd->FunctionFlags;
|
FunctionFlags = epd->FunctionFlags;
|
||||||
CountsClock = epd->EpdClock;
|
CountsClock = epd->EpdClock;
|
||||||
DecodeStatus( epd);
|
DecodeStatus( epd); // zet hasAlarm
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int EpdBaseClr::Epd2::AfterGetStatus()
|
int EpdBaseClr::Epd2::AfterGetStatus()
|
||||||
|
|
@ -251,6 +256,7 @@ int EpdBaseClr::Epd2::GetDoses(EpdBase::Epd2U* epd)
|
||||||
}
|
}
|
||||||
int EpdBaseClr::Epd2::AfterGetDoses(Epd3Base::Epd3U* epd)
|
int EpdBaseClr::Epd2::AfterGetDoses(Epd3Base::Epd3U* epd)
|
||||||
{
|
{
|
||||||
|
eDoshasAlarm = eDosHasFault = false;
|
||||||
int rv = 0;
|
int rv = 0;
|
||||||
rv = 0;
|
rv = 0;
|
||||||
GetDosesError = 0;
|
GetDosesError = 0;
|
||||||
|
|
@ -316,7 +322,7 @@ int EpdBaseClr::Epd2::GetDoses(Epd3Base::Epd3U* epd)
|
||||||
{
|
{
|
||||||
int rv = 1;
|
int rv = 1;
|
||||||
Hp10 = Hp07 = 0.0;
|
Hp10 = Hp07 = 0.0;
|
||||||
int ReadDosesRV = epd->ReadDoses();
|
int ReadDosesRV = epd->ReadDoses(); //0 = succes
|
||||||
|
|
||||||
if (ReadDosesRV == 0) {
|
if (ReadDosesRV == 0) {
|
||||||
rv = AfterGetDoses(epd3);
|
rv = AfterGetDoses(epd3);
|
||||||
|
|
@ -828,14 +834,15 @@ void EpdBaseClr::Epd2::InitData()
|
||||||
/// <returns>0=success 1=Connect error 2=TO 3=StatusReadError</returns>
|
/// <returns>0=success 1=Connect error 2=TO 3=StatusReadError</returns>
|
||||||
int EpdBaseClr::Epd2::ConnectAndStatus()
|
int EpdBaseClr::Epd2::ConnectAndStatus()
|
||||||
{
|
{
|
||||||
|
//0 = ok, 2=TO , anders error
|
||||||
int rv = 1;
|
int rv = 1;
|
||||||
int step = 0;
|
int step = 0;
|
||||||
ErrorStep = ErrorRV = 0;
|
ErrorStep = ErrorRV = 0; ConnectError = 0; eDoshasAlarm = eDosHasFault = false;
|
||||||
|
|
||||||
if (!onlyMK2) epd->EndCom(); //indien Mk2
|
if (!onlyMK2) epd->EndCom(); //indien Mk2
|
||||||
|
|
||||||
InitData();
|
InitData();
|
||||||
//Sleep(100);
|
Sleep(100);
|
||||||
step = 1;
|
step = 1;
|
||||||
if (onlyMK2 || !epd3)
|
if (onlyMK2 || !epd3)
|
||||||
rv = epd->ConnectAndStatus(tokenSourceTimeout);
|
rv = epd->ConnectAndStatus(tokenSourceTimeout);
|
||||||
|
|
@ -889,6 +896,7 @@ error:
|
||||||
ErrorRV = rv;
|
ErrorRV = rv;
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EpdBaseClr::Epd2::WaitEpd()
|
void EpdBaseClr::Epd2::WaitEpd()
|
||||||
{
|
{
|
||||||
int rv = 0; //start
|
int rv = 0; //start
|
||||||
|
|
@ -905,10 +913,11 @@ void EpdBaseClr::Epd2::WaitEpd()
|
||||||
_EpdTO(this, gcnew EpdTOEventArgs(0, 0)); // epd3->ConnectTries, epd3->ConnectTimerFired));
|
_EpdTO(this, gcnew EpdTOEventArgs(0, 0)); // epd3->ConnectTries, epd3->ConnectTimerFired));
|
||||||
}
|
}
|
||||||
else if (rv > 0 && _EpdError != nullptr) {
|
else if (rv > 0 && _EpdError != nullptr) {
|
||||||
_EpdError(this, gcnew EpdErrorEventArgs(rv,ErrorRV,ErrorStep));
|
_EpdError(this, gcnew EpdErrorEventArgs(rv, ErrorRV, ErrorStep));
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
System::Threading::Tasks::Task^ EpdBaseClr::Epd2::Wait(int timeout, int Retries)
|
System::Threading::Tasks::Task^ EpdBaseClr::Epd2::Wait(int timeout, int Retries)
|
||||||
{
|
{
|
||||||
if (waitTask == nullptr)
|
if (waitTask == nullptr)
|
||||||
|
|
|
||||||
|
|
@ -136,6 +136,8 @@ namespace EpdBaseClr {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//private:
|
||||||
|
//bool hasAlarm = false;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool onlyMK2;
|
bool onlyMK2;
|
||||||
|
|
@ -153,7 +155,7 @@ namespace EpdBaseClr {
|
||||||
bool isOn;
|
bool isOn;
|
||||||
bool isBG, isNG, VersionOK;
|
bool isBG, isNG, VersionOK;
|
||||||
bool isMK3;
|
bool isMK3;
|
||||||
bool hasAlarm = false;
|
|
||||||
|
|
||||||
int InitRV;
|
int InitRV;
|
||||||
int DiscRV;
|
int DiscRV;
|
||||||
|
|
|
||||||
|
|
@ -387,8 +387,8 @@ namespace eDosStation
|
||||||
VisitExitCommand.SetBoolParam("eDosRate10Warning", ep.eDosRate10Warning);
|
VisitExitCommand.SetBoolParam("eDosRate10Warning", ep.eDosRate10Warning);
|
||||||
VisitExitCommand.SetBoolParam("eDosRate10Alarm", ep.eDosRate10Alarm);
|
VisitExitCommand.SetBoolParam("eDosRate10Alarm", ep.eDosRate10Alarm);
|
||||||
|
|
||||||
VisitExitCommand.SetBoolParam("isAlarm", ep.hasAlarm);
|
VisitExitCommand.SetBoolParam("isAlarm", ep.eDoshasAlarm, splunkLog);
|
||||||
VisitExitCommand.SetBoolParam("isFault", ep.eDosHasFault);
|
VisitExitCommand.SetBoolParam("isFault", ep.eDosHasFault, splunkLog);
|
||||||
checkCon(true);
|
checkCon(true);
|
||||||
VisitExitCommand.Connection = localConnection;
|
VisitExitCommand.Connection = localConnection;
|
||||||
VisitExitCommand.ExecuteNonQuery();
|
VisitExitCommand.ExecuteNonQuery();
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,8 @@ namespace eDosStation
|
||||||
if (ep.EPDTrhFault > 0) tb_Add("EPD Tresholds faulty");
|
if (ep.EPDTrhFault > 0) tb_Add("EPD Tresholds faulty");
|
||||||
if (ep.EPDOthFault > 0) tb_Add("EPD Other Fault");
|
if (ep.EPDOthFault > 0) tb_Add("EPD Other Fault");
|
||||||
|
|
||||||
if (ep.AlarmDoseHP101G > 0) tb_Add("Alarm Dose HP10");
|
if (ep.AlarmDoseHP101G > 0) tb_Add("Alarm Dose HP10l");
|
||||||
if (ep.AlarmDoseHP102G > 0) tb_Add("Alarm Dose HP10");
|
if (ep.AlarmDoseHP102G > 0) tb_Add("Alarm Dose HP10h");
|
||||||
if (ep.AlarmDoseHP07N > 0) tb_Add("Alarm Dose HP07");
|
if (ep.AlarmDoseHP07N > 0) tb_Add("Alarm Dose HP07");
|
||||||
if (ep.AlarmRateHP101G > 0) tb_Add("Alarm RateHP10 ");
|
if (ep.AlarmRateHP101G > 0) tb_Add("Alarm RateHP10 ");
|
||||||
if (ep.AlarmRateHP102G > 0) tb_Add("Alarm RateHP10 ");
|
if (ep.AlarmRateHP102G > 0) tb_Add("Alarm RateHP10 ");
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ namespace eDosStation
|
||||||
endPage();
|
endPage();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (ep.hasAlarm && ep.OtherAlarmBatLow > 0)
|
if (ep.eDoshasAlarm || ep.OtherAlarmBatLow > 0 || ep.eDosHasFault)
|
||||||
{
|
{
|
||||||
TextBlock il = new TextBlock();
|
TextBlock il = new TextBlock();
|
||||||
il.Inlines.Add(new Run("EPD is in alarm status\n\n")
|
il.Inlines.Add(new Run("EPD is in alarm status\n\n")
|
||||||
|
|
|
||||||
|
|
@ -17,14 +17,12 @@ namespace eDosStation
|
||||||
private bool EpdReading = false;
|
private bool EpdReading = false;
|
||||||
private bool FinalTimeOut = false;
|
private bool FinalTimeOut = false;
|
||||||
|
|
||||||
|
|
||||||
#if SimulateEPD
|
#if SimulateEPD
|
||||||
public SimulateData simulData = new SimulateData();
|
public SimulateData simulData = new SimulateData();
|
||||||
#endif
|
#endif
|
||||||
public EpdExit(Station curStation)
|
public EpdExit(Station curStation)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
thisStation = curStation;
|
thisStation = curStation;
|
||||||
dataInterface = curStation.dataInterface;
|
dataInterface = curStation.dataInterface;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Tue 05/28/2024 7:59:42.11
|
Wed 05/29/2024 15:58:06.78
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ namespace eDosStation
|
||||||
|
|
||||||
HardVersion.Text = ep.HardVersion.ToString() + '.' + ep.HardVersionMinor.ToString(); // ep.SoftVersion.ToString();
|
HardVersion.Text = ep.HardVersion.ToString() + '.' + ep.HardVersionMinor.ToString(); // ep.SoftVersion.ToString();
|
||||||
|
|
||||||
if (ep.hasAlarm)
|
if (ep.eDoshasAlarm)
|
||||||
{
|
{
|
||||||
hasAlarm.Text = "Yes";
|
hasAlarm.Text = "Yes";
|
||||||
} else
|
} else
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,21 @@ static public class extensions
|
||||||
}
|
}
|
||||||
return found;
|
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;
|
bool rv = defaultValue;
|
||||||
try
|
try
|
||||||
|
|
|
||||||
|
|
@ -213,17 +213,17 @@ exit
|
||||||
# aWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0
|
# aWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0
|
||||||
# MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0ECEAVEr/OUnQg5pr/bP1/lYRYwDQYJ
|
# MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0ECEAVEr/OUnQg5pr/bP1/lYRYwDQYJ
|
||||||
# YIZIAWUDBAIBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3
|
# YIZIAWUDBAIBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3
|
||||||
# DQEJBTEPFw0yNDA1MjgwNTM0MTJaMC8GCSqGSIb3DQEJBDEiBCDbjZuxJgcSDufz
|
# DQEJBTEPFw0yNDA1MjkxMzU4MzFaMC8GCSqGSIb3DQEJBDEiBCDbjZuxJgcSDufz
|
||||||
# +ekiprJJKPMdOid8HFavnX4C8hgeWzANBgkqhkiG9w0BAQEFAASCAgCH9lWfpp5t
|
# +ekiprJJKPMdOid8HFavnX4C8hgeWzANBgkqhkiG9w0BAQEFAASCAgBGjdQr8S+I
|
||||||
# b00PHQlLYC1Jy5yb4gosf7fEOR4TS0cduRMhLuUEqij7nUSwPiqAZjNV1eaH3eb9
|
# nwuGA0gDFbifrx8gb9772uSbSfgF4GM3zmVlNC21F2ZVJruG6N8MN/W3uZxsRjVD
|
||||||
# QFzcr9kxcFAtoY8R8pf4G+YSJaiQ7QB2DfbEdkusuxrOtxCIRNwhbaynT0Hhuysj
|
# /pY0v7kXTJ3ygrvmcKt0reuUkj+qv0HMLa7gd3yTLealUT7+JtzraalEzEsVCGiI
|
||||||
# t0VxhU828B1iYpoWTPYnapExqgVokEmuK4kbNNSGJI1BYfE0iqSyMxHvj3brmAnW
|
# OzM/7S2N1Z5YgsjfudW0v5sP4sDjUAUGYIgs2lH+qBFBSH2l/I9pV7gi/obxC7+4
|
||||||
# OzacfYfX//MMvbxno+JP/ynbg8EnAfVxZVL9W8CRTCTEotQFtEVdz/XPfFRQy1IU
|
# EYKLcGWsuXf+q2KRoEPnr5p3fYOrNuNXaVRJkn8NPxRArupcMUddIDV6eMBQ85Xn
|
||||||
# fN2e4FDuzXS9tf1a6Dn6F8F6FTkCDFP/qZtHIgGI6pk1Kad+vfZh/hpGnvFo+A6B
|
# wPPdap/jjTV839y89km8h/zf70XYrGJDBeevl2VCa2TmlmMJYmQF+6T+zVzSTPyU
|
||||||
# SGh3qNdayL1XGcpnKTm/Yz2faZ05xas+VgmnZ+qO6i6L5Ia1zcsPzQUzylFpqE+v
|
# dnGAoC1ing+ky9U9WZ14K5DNRgbxkAnIgV723BEsI6Vkj55WYQ3a4OKwx080a+rV
|
||||||
# 0rt2OO8yC+UcDhihny09vtnaZvGSg2QCagKqx/lVQEmfBxx4e2zbCKL/NvMm0CB+
|
# GeeMKYjhbgnTyD9exX8TkFYdklKY+A1Vurhxjq5BiektiXriw93w5Dsrwq8TnT0o
|
||||||
# VyFxku4NvMu28vCVQ029incGJMCsYaOdW8HUFdT6ei9HPU0B5p9dzprqU7xJibkb
|
# GvaDt3FO+kXRWYBXUMvFBu3ID5wYw/q688g9IF7G0VAxDa73lBF4GC15TkSALVLR
|
||||||
# t3eplK/KgSyHRDnzg2h1DnkY7VzA+cn2WWs9hXX+5PeoDJ3rT4zhkYPQi7gxj0r0
|
# eliiwBfdRnoLfxMYurGne4Iux7G4iSxBDlonsHur7Lcc/6jrtIIM8mHn11GWZwXv
|
||||||
# Ong4FIclb9y/xVx9y+j//hQKN4SOulJv9xkdGPrIrwpZCdndQjgOcJ8uZBwaOA2g
|
# Dk+CJBvtno+UU2VCCelL+7mZEFQ1cwQLaCM3A8MY+3tgenFke+4HnYLN1AG+D68o
|
||||||
# CmZ92tG+4gn8CNOp9zi042M5EwkTtq4u2g==
|
# h4eZTK9m9nojRGxKVYFVZJc+VhsdkQhHyQ==
|
||||||
# SIG # End signature block
|
# SIG # End signature block
|
||||||
|
|
|
||||||
|
|
@ -328,17 +328,17 @@ exit
|
||||||
# aWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0
|
# aWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0
|
||||||
# MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0ECEAVEr/OUnQg5pr/bP1/lYRYwDQYJ
|
# MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0ECEAVEr/OUnQg5pr/bP1/lYRYwDQYJ
|
||||||
# YIZIAWUDBAIBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3
|
# YIZIAWUDBAIBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3
|
||||||
# DQEJBTEPFw0yNDA1MjgwNTM0MTJaMC8GCSqGSIb3DQEJBDEiBCAcllG2mSPxCJ8u
|
# DQEJBTEPFw0yNDA1MjkxMzU4MzFaMC8GCSqGSIb3DQEJBDEiBCAcllG2mSPxCJ8u
|
||||||
# oQsIqOunNyELPZuVN2PuUwDZLmIbpTANBgkqhkiG9w0BAQEFAASCAgArsQWfdjSe
|
# oQsIqOunNyELPZuVN2PuUwDZLmIbpTANBgkqhkiG9w0BAQEFAASCAgBnR/5a25Cy
|
||||||
# QOVAwFE2Axz5OLj8HMNdSIp0fBDZRJyiL0Pu7JkAcSPvK44kQ/yK9+pLJyLKN3hC
|
# oS6Ylo3RZzQJZkih7pEQYAzzhnhueErTJjKQ/xxdvN+IUn/RvUPkas7QRboqfrJm
|
||||||
# 1s9GtSMGdYdqpmrVPvVS8WA0sOH+YtxN+VgudyJ0f1QWHJGJT4BQDRxMYQInBePB
|
# 4xGwmBbEsZuQyt7XBXz7ZS2sVuzpBwN96JhRmIuTZk5uIGbQ0EI9cy1m84MCjOaC
|
||||||
# 79VJIveRqlSkxjRHLtrZQ56rr5HHukBWkxP0mxEkl8g6U/VbfxgwkgMcm63kv5xT
|
# dF0+XITTunQBIZs91fQWdhQhi0oDES6yrmi4ziTd2auFoMCD0l4xDQm0AXZ0aGGZ
|
||||||
# 8tY5jqBj3tRkYg3zoirNEUNH8VzVvtQ6hBfoMM1gZmj7A/QbB4jd3ssawEDY/P3+
|
# H9mGwuYA5kP8GWj/2Q90wG7/ivnqE7vVQ2ogRuqTQSfYJhy45n1yZh3MC2lHiA83
|
||||||
# TQ1Pr4T5wP+0XPis24qwpxjJ6IDFoGodM18MJkAczC6lLraf4DfwdszVJy3yRZov
|
# yOiWlr2CZP1vn7kTiPHwDaWJn8YuEhG45Xg9DYSd+yhwmIG+Cy7h3BDE2XTVdhwi
|
||||||
# ShR3ueUDeQHZzUEmVh7ZmWv/YYyWexuVHhyR4HBR1Brb3W1XF+/ouSyPba3z06WU
|
# CvzLpfCPTJq5xS9G2wMGpxrQYff+EKlXNrVYZCYvlvSm+p5cLGfitgJvUy9Neyuq
|
||||||
# UmIMZzy/7VxNtSIBbwFx9le0cn5c5mi4+cNx6nOoT/JAQ4TVckcTOPcTbp3xNbcx
|
# FMAqzdTcBgf+TBmOP4hwryQKeE1/ZghZ+DnOb3g5JMPyOjqqeMf37aLObl+jiQrN
|
||||||
# Ez1nekS/6hksT5bzogwN9Q7h/yB+kkEKeNc8+5UKtIE6s+5y4+i7RNz5a54549iL
|
# 6apWTPysMla2x1f7QCTqv5a0kElKqdVt/zF/lJekCtWpK//tznXPHDtnyPnb3w0c
|
||||||
# Sbg35F+ZyqOpB3bAPafj0p9RpXoqugMISQ5STklSKDmU69/bFsnEPGmMQKfW590G
|
# 9/1j2oClQc0+pVWUnoq8mBb61bvi/9E6EemMSRJ9qHio4+H6J+SHqNKPgiOu4VFT
|
||||||
# XuhscXk1bSPvx/0decysPJU/tMbj0U1mDMTfXL2pmt+MKcwYirw35t4zGsB31Zpx
|
# sfHBV6h649yroU8bHMlYkc+52YNoBbJANgeA5ihS02+C2N74mdlmkUEE52unk+2J
|
||||||
# kf8GhZRTzB0PRN1R0WuQStX3XlF3IsH41A==
|
# oQ2vybH262KiIJSPgIQb91KPw4+FjaCtQg==
|
||||||
# SIG # End signature block
|
# SIG # End signature block
|
||||||
|
|
|
||||||
|
|
@ -192,17 +192,17 @@ exit
|
||||||
# aWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0
|
# aWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0
|
||||||
# MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0ECEAVEr/OUnQg5pr/bP1/lYRYwDQYJ
|
# MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0ECEAVEr/OUnQg5pr/bP1/lYRYwDQYJ
|
||||||
# YIZIAWUDBAIBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3
|
# YIZIAWUDBAIBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3
|
||||||
# DQEJBTEPFw0yNDA1MjgwNTM0MTJaMC8GCSqGSIb3DQEJBDEiBCDpOCR32+BElOsp
|
# DQEJBTEPFw0yNDA1MjkxMzU4MzFaMC8GCSqGSIb3DQEJBDEiBCDpOCR32+BElOsp
|
||||||
# pr9o2qvS6Cq0zGXXv8N/urfnLBwlITANBgkqhkiG9w0BAQEFAASCAgCfTHsVbpZf
|
# pr9o2qvS6Cq0zGXXv8N/urfnLBwlITANBgkqhkiG9w0BAQEFAASCAgALWrY16T9Q
|
||||||
# W4dpipchv87UBpejQZy21Uu7uYXTZtVQuyRItstCVQ0xeZU96pBIlhC+o38O+K4O
|
# jGcDVEEOobysVU7id8rnqKMXfCLAIlVyI44uEwXMk854ZoUmv7lItRGpLto03sTs
|
||||||
# w/VF79BzDe0mA+xbKM7XX3g4JSWgNTARzYSoA5f3UIYWiECk2zkR3s9XHzzBg11D
|
# 9NI4LOp2rJA90bN1EZZbL05a10elnxbGarZNnHUEA5LKyIFrcTrnASLJ2Hz7PCmW
|
||||||
# 3DnaVOhpxnz3X9r7dTNHI5iV8pqFQN6L6Hyuc6J4nH+6vLp80BVG4rp29wz6expK
|
# /QBO2lb0AtBtyxmXfzjxAJj+RLbD+lJxWkgEaTidT36foaCbNQvb0qap3B8g+r0K
|
||||||
# 78+nozPHE4lgFEedom0cgDCe6p3UEx77xI2JzlKdl0B3E5B+zY9tAfhMmmtGoZ1y
|
# SG9THPmYivEmme2gThHZSJ5emre6cUdZ3cpvKoCuqCMErXKik1az4KDMX6Ym/3AU
|
||||||
# DqhHWiNYCGxVnalkmru9Hte4AiHFpvxUPnPFqRUFuzbyzAZZvePftrRadE4SLIn+
|
# EW5/WmZkCAiYCEOHlaOLoW3X/XiPW5p72viy5qwaO0f9NfleXU0FkChAvYUgL2jq
|
||||||
# 2h7ckT7BAB42y78o7b/DLCAKK5MF6HCuNbmbBMzb0FlnYujGR3wTOFiTTw3gDtPy
|
# UjKszVphMrqYJFwc9zLU5zVP+WyA/kOxW7uNs2HzYxMZribDsOaJQQro8T+5iO13
|
||||||
# pH3gSlZVx4pRD5o9lyEv/Vi7yJy7PGt1bikFKA4C57NWtbZn76ZFrfaz2u4KUZEz
|
# 2Ws5tH/hHxPvVH4NHOFctdUg/j2ntJfoAcGYo4j+o6zJQOmInNA3vi0IM8BNSfar
|
||||||
# 0SjK1gPy1ZgF3XksGCRMuL5UtEQH5qP3hVhyL31KeNsadrVpsOQSkCPcQVi7SVe6
|
# BogdNzBVYW5f4giwGLfCN0SEjL8l1m/Rmf7DWhyLpK9T6Lr+t9Fuh6PAE1Icr3Wv
|
||||||
# UVLSjVFxZDTheYy6/zGmzuCJp6i/3+xubSPTIiQSgYcR4C0S8OIGY+2LItXIaNNb
|
# PXeS237UKqfEr25i6mDfIEOCiltJfZa88ooJE5eruv6ZD/2nc4U+UZDLYPB/inlZ
|
||||||
# j4A20QZPx41CnpMz+8jkHpkXl3j5GNDLxFgI+m83T7efbzOyzPu5RpQQx3eITnZD
|
# b1bU17qxfue5MhOA7UQY8xNifuPaf21tgTUAHW71ub3dY4r1FE/7k9uQbU0BxsGA
|
||||||
# KJPM7nx/c1O6IgKPN3YIMJjmZ0SE1rwyYA==
|
# PAD79tEAEFh6FCBKOQtKG0lE2ntikNRQ5Q==
|
||||||
# SIG # End signature block
|
# SIG # End signature block
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue