consolidate less calls

This commit is contained in:
Luc 2021-06-01 16:35:24 +02:00
parent e2150f27f7
commit 1cc3d0602a
10 changed files with 290 additions and 147 deletions

View file

@ -221,6 +221,10 @@ WORD EpdBase::Epd2U::ReadStatus()
}
return CommitRV;
}
/// <summary>
///
/// </summary>
/// <returns>0 ok</returns>
WORD EpdBase::Epd2U::EPDReadExtraStatus()
{
int rv = 0;
@ -237,7 +241,8 @@ WORD EpdBase::Epd2U::EPDReadExtraStatus()
if (CommitRV == 1) CommitRV = Commit();
if (CommitRV == 1) CommitRV = ReadBaseCounts(&BaseD1, &BaseD2, &BaseD3, &BaseD4, &BaseCountsClock);
if (CommitRV == 1) CommitRV = Commit();
if (CommitRV == 0) {
if (CommitRV == 1) rv = 0;
else {
Error = GetErrorDetails(&ErrorSource, &ErrorReason, &ErrorData);
rv = ErrorReason;
}
@ -318,6 +323,11 @@ WORD EpdBase::Epd2U::WriteCal()
if (CommitRV == 0) Error = GetErrorDetails(&ErrorSource, &ErrorReason, &ErrorData);
return CommitRV;
}
/// <summary>
///
/// </summary>
/// <returns>0 Success</returns>
WORD EpdBase::Epd2U::ReadTresHolds()
{
if (port == 0) {
@ -351,6 +361,11 @@ WORD EpdBase::Epd2U::ReadTresHolds()
if (CommitRV == 0) Error = GetErrorDetails(&ErrorSource, &ErrorReason, &ErrorData);
if (CommitRV == 1) return 0; else return 123;
}
/// <summary>
///
/// </summary>
/// <returns>0 OK</returns>
WORD EpdBase::Epd2U::ReadDoses()
{
if (port == 0) {
@ -386,8 +401,8 @@ WORD EpdBase::Epd2U::ReadDoses()
return 0;
}
TimeFunctions::EPD2PeakTimeToFiletime(EpdClock, Hp10Time, &Hp10FTime);
TimeFunctions::EPD2PeakTimeToFiletime(EpdClock, Hp07Time, &Hp07FTime);
TimeFunctions::EPD2PeakTimeToFiletime(EpdClock, Hp10Time, (LPFILETIME) &Hp10FTime);
TimeFunctions::EPD2PeakTimeToFiletime(EpdClock, Hp07Time, (LPFILETIME) &Hp07FTime);
CommitRV = Commit();
if (CommitRV == 0) Error = GetErrorDetails(&ErrorSource, &ErrorReason, &ErrorData);
@ -405,7 +420,7 @@ WORD EpdBase::Epd2U::ReadDoses()
&HG);
CommitRV = Commit();
if (CommitRV == 0) Error = GetErrorDetails(&ErrorSource, &ErrorReason, &ErrorData);
return CommitRV;
return CommitRV==1 ? 0 : 1;
}
WORD EpdBase::Epd2U::PrepareForIssue()
{
@ -420,6 +435,11 @@ WORD EpdBase::Epd2U::PrepareForIssue()
if (CommitRV) rv = 0; else rv = 1;
return rv;
}
/// <summary>
/// DeIssue and close
/// </summary>
/// <returns></returns>
WORD EpdBase::Epd2U::DeIssue()
{
int rv = 0;
@ -503,6 +523,28 @@ WORD EpdBase::Epd2U::Issue()
return rv;
}
int EpdBase::Epd2U::GetAllDeissue()
{
int rv = 0;
rv = ReadDoses(); //0 = success
//rv = ReadTresHolds(); //tresholds not needed, only doses
rv = EPDReadExtraStatus();
rv = DeIssue(); //does close
return rv;
}
int EpdBase::Epd2U::GetAll(bool Closeconnection)
{
int rv = 0;
rv = ReadDoses(); //0 = success
rv = ReadTresHolds(); //0 = success Tresholds needed
if (Closeconnection) Close();
return rv;
}
/// <summary>
/// discover, connect and read status
/// </summary>

View file

@ -101,7 +101,7 @@ namespace EpdBase
DWORD Hp07Peak;
DWORD Hp10Time;
DWORD Hp07Time;
FILETIME Hp10FTime , Hp07FTime;
long long Hp10FTime , Hp07FTime;
//AlarmDoseTreshold
@ -231,6 +231,8 @@ namespace EpdBase
WORD DeIssue();
WORD Issue();
int GetAll(bool Close);
int GetAllDeissue();
~Epd2U();
int ConnectAndStatus(int tokenSourceTimeout);

View file

@ -81,11 +81,14 @@ void TimeFunctions::UnixTimeToFileTime(time_t t, LPFILETIME pft)
}
void TimeFunctions::EPD2PeakTimeToFiletime(DWORD EpdClock, DWORD EpdPeakTime, FILETIME *PeakFileTime ) {
if (EpdPeakTime != 0xCDCDCDCD) {
UINT32 tm = EpdClock - EpdPeakTime;
GetSystemTimeAsFileTime(&lu.FT);
lu.LL -= UInt32x32To64(tm, 10000000);
*PeakFileTime = lu.FT;
}
if (EpdPeakTime != 0xCDCDCDCD) {
UINT32 tm = EpdClock - EpdPeakTime;
GetSystemTimeAsFileTime(&lu.FT);
lu.LL -= UInt32x32To64(tm, 10000000);
*PeakFileTime = lu.FT;
}
else {
(*PeakFileTime).dwLowDateTime = (*PeakFileTime).dwHighDateTime = 0;
}
}

View file

@ -344,6 +344,11 @@ int Epd3Base::Epd3U::ConnectAndStatus(int tokenSourceTimeout)
else rv = 0;
return rv;
}
/// <summary>
/// K1 = K2 = K3 = K4 = K4 = K6 (*100000 )
/// </summary>
/// <param name="count"></param>
void Epd3Base::Epd3U::decodeSensitivities(int count) {
K1 = K2 = K3 = K4 = K4 = K6 = 0.0F;
@ -388,6 +393,7 @@ void Epd3Base::Epd3U::decodeDoses(int count)
}
}
}
void Epd3Base::Epd3U::decodePeakRates(int count)
{
//Rates
@ -402,14 +408,14 @@ void Epd3Base::Epd3U::decodePeakRates(int count)
case MeasurementId::Meas_Hp10N:
Hp07Peak = peakRates[ix].value;
Hp07Time = peakRates[ix].timestamp;
TimeFunctions::EpdTimeToFileTime(Hp07Time, &Hp07FTime, false);
TimeFunctions::EpdTimeToFileTime(Hp07Time, (LPFILETIME)&Hp07FTime, false);
//FileTimeToSystemTime(&Hp07FTime, &st07);
break;
case MeasurementId::Meas_Hp10:
case MeasurementId::Meas_Hp10G:
Hp10Peak = peakRates[ix].value;
Hp10Time = peakRates[ix].timestamp;
TimeFunctions::EpdTimeToFileTime(Hp10Time, &Hp10FTime, false);
TimeFunctions::EpdTimeToFileTime(Hp10Time, (LPFILETIME)&Hp10FTime, false);
//FileTimeToSystemTime(&Hp10FTime, &st10);
break;
}
@ -514,6 +520,11 @@ void Epd3Base::Epd3U::encodeTreshold(Mk3AlarmThresholds_t* th)
th->Thresholds[3].Id = (uint16_t)ThresholdId::Thres_RateWarning;
th->Thresholds[3].Value = *pTHRateWarning;
}
/// <summary>
/// HG, SG, BC, FB, BC, FB
/// </summary>
/// <param name="numdTresholds"></param>
void Epd3Base::Epd3U::decodedTresholds(int numdTresholds)
{
for (int ix = 0; ix < numdTresholds; ix++) {
@ -524,14 +535,12 @@ void Epd3Base::Epd3U::decodedTresholds(int numdTresholds)
case CounterType::Counter_Fb1: FB = dTresholds[ix].value; break;
case CounterType::Counter_An1: BC = dTresholds[ix].value; break; //AN-> BC
case CounterType::Counter_Fn2: FB = dTresholds[ix].value; break; //FN->FB
}
}
}
/// <summary>
///
/// K1 .. K6, SG , BC ,FB , HG
/// </summary>
/// <returns>0 OK</returns>
WORD Epd3Base::Epd3U::ReadSensitivitiesAndTresholds()
@ -549,11 +558,8 @@ WORD Epd3Base::Epd3U::ReadSensitivitiesAndTresholds()
uint16_t FBthresh;
uint16_t HGthresh;
//ResetEvent(Ev1);
//token = BeginReadDoses(epdComsHandle, new uint8_t[]{ 0, 1 }, 2 , completion);
token = BeginReadCalibrationData_R2(epdComsHandle, nullptr);
r = Commit3(epdComsHandle);
//r = WaitForSingleObject(Ev1, 10000); // no time-out interval
r = EndReadCalibrationData_R2(epdComsHandle, token,
&HGSens10,
&SGSens10,
@ -578,30 +584,27 @@ WORD Epd3Base::Epd3U::ReadSensitivitiesAndTresholds()
HG = HGthresh;
}
else {
token = BeginReadDetectorThresholds_R3(epdComsHandle, nullptr, 0, nullptr);
r = Commit3(epdComsHandle);
r = EndReadDetectorThresholds_R3(epdComsHandle, token, dTresholds, MaxTresholds, &numTresholds);
if (r != 0)
goto error;
decodedTresholds(numTresholds);
decodedTresholds(numTresholds); // HG, SG, BC, FB, BC, FB
token = BeginReadSensitivities(epdComsHandle, nullptr, 0, nullptr);
r = Commit3(epdComsHandle);
r = EndReadSensitivities(epdComsHandle, token, sensitivities, MaxSensitivities, &numSensitivities);
if (r != 0)
goto error;
decodeSensitivities(numSensitivities);
decodeSensitivities(numSensitivities); // K1 = K2 = K3 = K4 = K4 = K6
}
return r;
error:
return r;
}
/// <summary>
///
/// Doses, totDoses, Knocks + Resets , PeakRates, SensitivitiesAndTresholds: K1 .. K6, SG , BC ,FB , HG
/// </summary>
/// <returns>0 OK</returns>
WORD Epd3Base::Epd3U::ReadDoses()
@ -636,7 +639,6 @@ WORD Epd3Base::Epd3U::ReadDoses()
r = EndReadTotalDoses(epdComsHandle, token, totdoses, MaxDoses, &numtotDoses, &utc);
if (r != 0)
goto error;
decodetotDoses(numtotDoses);
token = BeginReadQualityData(epdComsHandle, nullptr);
@ -644,7 +646,6 @@ WORD Epd3Base::Epd3U::ReadDoses()
r = EndReadQualityData(epdComsHandle, token, &quality);
if (r != 0)
goto error;
Knocks = quality.Knocks;
Resets = quality.PowerCycles;
@ -653,10 +654,10 @@ WORD Epd3Base::Epd3U::ReadDoses()
r = EndReadPeakRates(epdComsHandle, token, peakRates, MaxPeakRates, &numRates);
if (r != 0)
goto error;
decodePeakRates(numRates);
r= ReadSensitivitiesAndTresholds();
r= ReadSensitivitiesAndTresholds(); //K1 .. K6, SG , BC ,FB , HG
if (r != 0)
goto error;
@ -744,31 +745,26 @@ WORD Epd3Base::Epd3U::ReadAlarmConfig() {
}
WORD Epd3Base::Epd3U::ReadAlarmTresholds() {
//Alleen MK3 ? leeg bij MK2
bool isNeutron = (EpdType == EpdTypes::Mk2Neutron || EpdType == EpdTypes::Mk3Neutron);
uint8_t measID;
uint32_t r;
SetResponseTimeout(epdComsHandle, 2000);
if (isNeutron) measID = (uint8_t)MeasurementId::Meas_Hp10N; else measID = (uint8_t)MeasurementId::Meas_Hp07;
SetResponseTimeout(epdComsHandle, 2000);
//ResetEvent(Ev1);
hp07tresholds.MeasId = measID;
token = BeginReadAlarmThresholds(epdComsHandle, (uint8_t)hp07tresholds.MeasId, nullptr, 0, nullptr);
r = Commit3(epdComsHandle);
//r = WaitForSingleObject(Ev1, 10000); // no time-out interval
r = EndReadAlarmThresholds(epdComsHandle, token, &hp07tresholds);
decodeTreshold(&hp07tresholds);
if (isNeutron) measID = (uint8_t)MeasurementId::Meas_Hp10G; else measID = (uint8_t)MeasurementId::Meas_Hp10;
hp10tresholds.MeasId = 0;
//ResetEvent(Ev1);
hp10tresholds.MeasId = measID;
token = BeginReadAlarmThresholds(epdComsHandle, (uint8_t)hp10tresholds.MeasId, nullptr, 0, nullptr);
r = Commit3(epdComsHandle);
//r = WaitForSingleObject(Ev1, 10000); // no time-out interval
r = EndReadAlarmThresholds(epdComsHandle, token, &hp10tresholds);
decodeTreshold(&hp10tresholds);
return r;
}
WORD Epd3Base::Epd3U::WriteAlarmTresholds() {
@ -879,7 +875,6 @@ WORD Epd3Base::Epd3U::WriteWearer() {
error:
return r;
}
/// <summary>
///
/// </summary>
@ -998,4 +993,22 @@ WORD Epd3Base::Epd3U::WriteCal()
return r;
error:
return r;
}
int Epd3Base::Epd3U::GetAll(bool Closeconnection)
{
int rv = 0;
rv = ReadDoses();
rv = ReadAlarmTresholds();
if (Closeconnection) EndCom();
return rv;
}
int Epd3Base::Epd3U::GetAllDeissue()
{
int rv = 0;
rv = ReadDoses(); //0 = success
//rv = ReadAlarmTresholds(); //0 = success
rv = EPDReadExtraStatus();
rv = DeIssue(); //does close
return rv;
}

View file

@ -129,8 +129,7 @@ namespace Epd3Base {
float Hp07Peak;
DWORD Hp10Time;
DWORD Hp07Time;
FILETIME Hp10FTime,Hp07FTime;
long long Hp10FTime,Hp07FTime;
//AlarmDoseTreshold
@ -225,6 +224,8 @@ namespace Epd3Base {
public:
int GetAll(bool Closeconnection);
int GetAllDeissue();
WORD ReadSensitivitiesAndTresholds();
WORD ReadDoses();
int ClearDoses();
@ -240,6 +241,7 @@ namespace Epd3Base {
WORD Issue();
WORD EPDReadExtraStatus();
WORD WriteCal();
};
}

View file

@ -85,5 +85,8 @@ void TimeFunctions::UnixTimeToFileTime(time_t t, LPFILETIME pft)
GetSystemTimeAsFileTime(&lu.FT);
lu.LL -= UInt32x32To64(tm, 10000000);
*PeakFileTime = lu.FT;
} else
{
(*PeakFileTime).dwLowDateTime = (*PeakFileTime).dwHighDateTime = 0;
}
}

View file

@ -226,35 +226,45 @@ int EpdBaseClr::Epd2::GetDoses(EpdBase::Epd2U* epd)
int rv = 1;
Hp10 = Hp07 = 0.0;
ReadDosesRV = epd->ReadDoses();
if (ReadDosesRV == 1) {
rv = 0;
GetDosesError = 0;
Hp10 = (double)epd->Hp10Dose / 64.0;
Hp07 = (double)epd->Hp07Dose / 64.0;
Hp07Peak = (double)epd->Hp07Peak / 64.0;
Hp10Peak = (double)epd->Hp10Peak / 64.0;
Hp07Total = epd->Hp07Total / 64.0;
Hp10Total = epd->Hp10Total / 64.0;
rv = AfterGetDoses(epd);
}
else {
rv = 1;
GetDosesError = epd->Error;
}
return rv;
}
if (epd->Hp10Time > 0) {
double x = (epd->EpdClock - epd->Hp10Time) * -1.0;
Hp10PeakTime = System::DateTime::Now.AddSeconds(x);
int EpdBaseClr::Epd2::AfterGetDoses(Epd3Base::Epd3U* epd)
{
int rv = 0;
rv = 0;
GetDosesError = 0;
Hp10 = (double)epd->Hp10Dose;
Hp07 = (double)epd->Hp07Dose;
Hp07Peak = (double)epd->Hp07Peak;
Hp10Peak = (double)epd->Hp10Peak;
Hp07Total = epd->Hp07Total;
Hp10Total = epd->Hp10Total;
if (epd->Hp10FTime != 0) {
//seconds since 2000 ?
//double x = (epd->EpdClock - epd->Hp10Time) * -1.0;
Hp10PeakTime = System::DateTime::FromFileTime(epd->Hp10FTime);
//Hp10PeakTime = Jan2000->AddSeconds(epd->Hp10Time);
}
else
Hp10PeakTime = System::Nullable<System::DateTime>();;
if (epd->Hp07Time > 0) {
double x = (epd->EpdClock - epd->Hp07Time) * -1.0;
Hp07PeakTime = System::DateTime::Now.AddSeconds(x);
if (epd->Hp07FTime != 0) {
//double x = (epd->EpdClock - epd->Hp07Time) * -1.0;
Hp07PeakTime = System::DateTime::FromFileTime(epd->Hp07FTime);
//Hp07PeakTime = Jan2000->AddSeconds(epd->Hp07Time);
}
else
Hp10PeakTime = System::Nullable<System::DateTime>();
Hp07PeakTime = System::Nullable<System::DateTime>();
QualityData = epd->QualityData;
K1 = epd->K1;
@ -281,46 +291,12 @@ int EpdBaseClr::Epd2::GetDoses(Epd3Base::Epd3U* epd)
int ReadDosesRV = epd->ReadDoses();
if (ReadDosesRV == 0) {
rv = 0;
GetDosesError = 0;
Hp10 = (double)epd->Hp10Dose;
Hp07 = (double)epd->Hp07Dose;
Hp07Peak = (double)epd->Hp07Peak;
Hp10Peak = (double)epd->Hp10Peak;
Hp07Total = epd->Hp07Total;
Hp10Total = epd->Hp10Total;
}
rv = AfterGetDoses(epd3);
}
else {
rv = 1;
GetDosesError = epd->Error;
}
if (epd->Hp10Time > 0) {
//seconds since 2000 ?
//double x = (epd->EpdClock - epd->Hp10Time) * -1.0;
Hp10PeakTime = Jan2000->AddSeconds(epd->Hp10Time);
}
else
Hp10PeakTime = System::Nullable<System::DateTime>();;
if (epd->Hp07Time > 0) {
//double x = (epd->EpdClock - epd->Hp07Time) * -1.0;
Hp07PeakTime = Jan2000->AddSeconds(epd->Hp07Time);
}
else
Hp07PeakTime = System::Nullable<System::DateTime>();
QualityData = epd->QualityData;
K1 = epd->K1;
K2 = epd->K2;
K3 = epd->K3;
K4 = epd->K4;
K5 = epd->K5;
K6 = epd->K6;
SG = epd->SG;
BC = epd->SG;
FB = epd->FB;
HG = epd->HG;
return rv;
}
@ -488,6 +464,36 @@ int EpdBaseClr::Epd2::ReadTresholds()
rv = ReadTresholds(epd);
return rv;
}
int EpdBaseClr::Epd2::AfterReadTresholds(EpdBase::Epd2U* epd)
{
int rv = 0;
Hp10THDose1 = (double)epd->Hp10THDose1 / 64.0;
Hp10THDose2 = (double)epd->Hp10THDose2 / 64.0;
Hp07THDose = (double)epd->Hp07THDose / 64.0;
Hp10Rate1On = (double)epd->Hp10Rate1On;
Hp10Rate2On = (double)epd->Hp10Rate2On;
Hp07RateOn = (double)epd->Hp07RateOn;
Hp10Rate1Off = (double)epd->Hp10Rate1Off;
Hp10Rate2Off = (double)epd->Hp10Rate2Off;
Hp07RateOff = (double)epd->Hp07RateOff;
K1 = epd->K1;
K2 = epd->K2;
K3 = epd->K3;
K4 = epd->K4;
K5 = epd->K5;
K6 = epd->K6;
SG = epd->SG;
BC = epd->BC;
FB = epd->FB;
HG = epd->HG;
return rv;
}
/// <summary>
///
/// </summary>
@ -498,14 +504,18 @@ int EpdBaseClr::Epd2::ReadTresholds(EpdBase::Epd2U* epd)
ReadTresholdsError = 0;
int rv = epd->ReadTresHolds();
if (rv != 0) ReadTresholdsError = epd->Error;
rv = AfterReadTresholds(epd);
return rv;
}
Hp10THDose1 = (double)epd->Hp10THDose1 / 64.0;
Hp10THDose2 = (double)epd->Hp10THDose2 / 64.0;
Hp07THDose = (double)epd->Hp07THDose / 64.0;
Hp10Total = (double)epd->Hp10Total / 64.0;
Hp07Total = (double)epd->Hp07Total / 64.0;
int EpdBaseClr::Epd2::AfterReadTresholds(Epd3Base::Epd3U* epd)
{
int rv = 0;
Hp10THDose1 = (double)epd->Hp10THDose1;
Hp10THDose2 = (double)epd->Hp10THDose2;
Hp07THDose = (double)epd->Hp07THDose;
Hp10Rate1On = (double)epd->Hp10Rate1On;
Hp10Rate2On = (double)epd->Hp10Rate2On;
Hp07RateOn = (double)epd->Hp07RateOn;
@ -513,6 +523,11 @@ int EpdBaseClr::Epd2::ReadTresholds(EpdBase::Epd2U* epd)
Hp10Rate2Off = (double)epd->Hp10Rate2Off;
Hp07RateOff = (double)epd->Hp07RateOff;
Hp10Total = (double)epd->Hp10Total;
Hp07Total = (double)epd->Hp07Total;
K1 = epd->K1;
K2 = epd->K2;
K3 = epd->K3;
@ -538,32 +553,7 @@ int EpdBaseClr::Epd2::ReadTresholds(Epd3Base::Epd3U* epd)
rv= epd->ReadAlarmTresholds();
rv = epd->ReadSensitivitiesAndTresholds();
if (rv != 0) ReadTresholdsError = epd->Error;
Hp10THDose1 = (double)epd->Hp10THDose1 ;
Hp10THDose2 = (double)epd->Hp10THDose2 ;
Hp07THDose = (double)epd->Hp07THDose ;
Hp10Total = (double)epd->Hp10Total ;
Hp07Total = (double)epd->Hp07Total ;
Hp10Rate1On = (double)epd->Hp10Rate1On;
Hp10Rate2On = (double)epd->Hp10Rate2On ;
Hp07RateOn = (double)epd->Hp07RateOn ;
Hp10Rate1Off = (double)epd->Hp10Rate1Off ;
Hp10Rate2Off = (double)epd->Hp10Rate2Off ;
Hp07RateOff = (double)epd->Hp07RateOff ;
K1 = epd->K1;
K2 = epd->K2;
K3 = epd->K3;
K4 = epd->K4;
K5 = epd->K5;
K6 = epd->K6;
SG = epd->SG;
BC = epd->BC;
FB = epd->FB;
HG = epd->HG;
rv = AfterReadTresholds(epd);
return rv;
}
/// <summary>
@ -607,6 +597,96 @@ int EpdBaseClr::Epd2::ReadExtraStatus(Epd3Base::Epd3U* epd)
return rv;
}
int EpdBaseClr::Epd2::AfterGetDoses(EpdBase::Epd2U* epd)
{
int rv = 0;
GetDosesError = 0;
Hp10 = (double)epd->Hp10Dose / 64.0;
Hp07 = (double)epd->Hp07Dose / 64.0;
Hp07Peak = (double)epd->Hp07Peak / 64.0;
Hp10Peak = (double)epd->Hp10Peak / 64.0;
Hp07Total = epd->Hp07Total / 64.0;
Hp10Total = epd->Hp10Total / 64.0;
if (epd->Hp10FTime != 0) {
try {
Hp10PeakTime = System::DateTime::FromFileTime(epd->Hp10FTime);
}
catch (System::Exception^ ex) {
Hp10PeakTime = System::Nullable<System::DateTime>();
}
//double x = (epd->EpdClock - epd->Hp10Time) * -1.0;
//Hp10PeakTime = System::DateTime::Now.AddSeconds(x);
}
else
Hp10PeakTime = System::Nullable<System::DateTime>();
if (epd->Hp07FTime != 0) {
try {
Hp07PeakTime = System::DateTime::FromFileTime(epd->Hp07FTime);
}
catch (System::Exception^ ex) {
Hp10PeakTime = System::Nullable<System::DateTime>();
}
//double x = (epd->EpdClock - epd->Hp07Time) * -1.0;
//Hp07PeakTime = System::DateTime::Now.AddSeconds(x);
}
else
Hp10PeakTime = System::Nullable<System::DateTime>();
QualityData = epd->QualityData;
K1 = epd->K1;
K2 = epd->K2;
K3 = epd->K3;
K4 = epd->K4;
K5 = epd->K5;
K6 = epd->K6;
SG = epd->SG;
BC = epd->SG;
FB = epd->FB;
HG = epd->HG;
return rv;
}
/// <summary>
/// Get Doses and tresholds, and close if requested
/// </summary>
/// <param name="close"></param>
/// <returns></returns>
int EpdBaseClr::Epd2::GetAll(bool close)
{
int rv = 0;
if (!isMK3) {
rv = epd->GetAll(close);
rv = AfterGetDoses(epd);
rv = AfterReadTresholds(epd);
}
else
{
rv = epd3->GetAll(close);
rv = AfterGetDoses(epd3);
rv = AfterReadTresholds(epd3);
}
return rv;
}
int EpdBaseClr::Epd2::GetAllDeissue()
{
int rv = 0;
if (!isMK3) {
rv = epd->GetAllDeissue();
rv = AfterGetDoses(epd);
rv = AfterReadTresholds(epd);
}
else
{
rv = epd3->GetAllDeissue();
rv = AfterGetDoses(epd3);
rv = AfterReadTresholds(epd3);
}
return rv;
}
int EpdBaseClr::Epd2::SwitchCon()
{
int rv = 0;
@ -682,7 +762,8 @@ void EpdBaseClr::Epd2::WaitEpd()
rv = 2;
}*/
if (rv == 0) {
if (_EpdRead != nullptr) _EpdRead(this, gcnew EpdEventArgs(EpdID, EPDIssued, isBG, isMK3));
if (_EpdRead != nullptr)
_EpdRead(this, gcnew EpdEventArgs(EpdID, EPDIssued, isBG, isMK3));
}
else if (rv == 2 && _EpdTO != nullptr) {
_EpdTO(this, gcnew EpdTOEventArgs(epd3->ConnectTries, epd3->ConnectTimerFired));

View file

@ -250,6 +250,7 @@ namespace EpdBaseClr {
int GetStatus();
int GetDoses();
int GetDoses(EpdBase::Epd2U* epd);
int AfterGetDoses(Epd3Base::Epd3U* epd);
int GetDoses(Epd3Base::Epd3U* epd);
int SetDeIssued();
int SetIssued();
@ -264,11 +265,15 @@ namespace EpdBaseClr {
int WriteCalibration(EpdBase::Epd2U* epd);
int WriteCalibration(Epd3Base::Epd3U* epd);
int ReadTresholds();
int AfterReadTresholds(EpdBase::Epd2U* epd);
int ReadTresholds(EpdBase::Epd2U* epd);
int AfterReadTresholds(Epd3Base::Epd3U* epd);
int ReadTresholds(Epd3Base::Epd3U* epd);
int ReadExtraStatus();
int ReadExtraStatus(EpdBase::Epd2U* epd);
int ReadExtraStatus(Epd3Base::Epd3U* epd);
int AfterGetDoses(EpdBase::Epd2U* epd);
int ConnectAndStatus();
System::Threading::CancellationTokenSource^ tokenSource;
@ -278,10 +283,14 @@ namespace EpdBaseClr {
System::Threading::Tasks::Task^ Wait(int timeout, int Retries);
void WaitEnd();
int GetAll(bool close);
int GetAllDeissue();
private:
int AfterGetStatus(EpdBase::Epd2U* epd);
int AfterGetStatus(Epd3Base::Epd3U* epd);
int AfterGetStatus();
int SwitchCon();
void InitData();
void WaitEpd();

View file

@ -119,32 +119,20 @@ namespace eDosStation
DosePanel.Background = GreenBrush;
ok.IsSelected = true;
}
rv = ep.ReadExtraStatus(); //D1 BaseD1 ...
rv = ep.GetAllDeissue();
if (rv != 0)
{
MessageBox.Show($"ReadExtraStatus {rv}");
}
MessageBox.Show($"GetDoses {rv} er:{ep.GetDosesError}");
Wearer.Text = $"{ep.WearerName}";
EpdVisit.Text = $"{ep.WearerID}";
rv = ep.GetDoses();
if (rv != 0)
{
rv = ep.GetDoses(); //try again
if (rv != 0)
MessageBox.Show($"GetDoses {rv} er:{ep.GetDosesError}");
}
HpDose07.Text = $"Hp07: {ep.Hp07:0.00} µSv ";
HpDose10.Text = $"Hp10: {ep.Hp10:0.00} µSv";
if (int.TryParse(ep.WearerID, out int EpdVisitID))
{
bool isBG = ep.isBG;
rv = ep.SetDeIssued(); //includes close
if (rv != 0)
{
MessageBox.Show($"DeIssueerror {rv}");
}
#if SimulateEPD
ep.CountsClock = 789;

View file

@ -72,10 +72,10 @@ namespace eDosStation
private void LoadDoses()
{
//ep.GetStatus();
int rv= ep.GetDoses();
rv = ep.ReadTresholds(); //0=success
rv = ep.Close();
int rv = 0;
rv = ep.GetAll(true);
if (rv != 0) MessageBox.Show("Communication error");
isIssued.Text = ep.EPDIssued ? "Yes" : "no";
string sPersID = ep.WearerName.Trim();