2019-02-01 17:35:18 +01:00
|
|
|
#pragma once
|
2021-05-28 17:06:41 +02:00
|
|
|
#pragma unmanaged
|
|
|
|
|
#include <windows.h>
|
|
|
|
|
#include "reader2.h"
|
|
|
|
|
#pragma unmanaged
|
2019-02-01 17:35:18 +01:00
|
|
|
namespace EpdBase
|
|
|
|
|
{
|
|
|
|
|
class Epd2U
|
|
|
|
|
{
|
2021-06-02 13:54:22 +02:00
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
bool isBG ;
|
|
|
|
|
bool isNG ;
|
|
|
|
|
bool VersionOK;
|
|
|
|
|
bool hasAlarm = false;
|
2022-04-26 08:43:13 +02:00
|
|
|
bool hasFault = false;
|
2021-06-02 13:54:22 +02:00
|
|
|
|
2019-02-01 17:35:18 +01:00
|
|
|
public:
|
|
|
|
|
WORD port = 3;
|
|
|
|
|
const WORD MaxDevices = 10;
|
|
|
|
|
WORD DeviceCount = 0;
|
|
|
|
|
DWORD DeviceIDs[10];
|
|
|
|
|
DWORD CurrentDeviceID;
|
|
|
|
|
|
2021-05-03 09:56:58 +02:00
|
|
|
WORD AlarmCtrl = 0b01111110;
|
|
|
|
|
//WORD AlarmCtrl = 0b01111010; // NO sound
|
|
|
|
|
WORD EndSessionControl = 0b00010110;
|
2019-02-01 17:35:18 +01:00
|
|
|
|
2020-03-11 13:23:29 +01:00
|
|
|
BYTE displayConfig[56] = { 0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
|
|
|
|
|
|
2019-02-01 17:35:18 +01:00
|
|
|
DWORD EpdClock;
|
|
|
|
|
DWORD RealTime;
|
|
|
|
|
WORD IssueCount;
|
|
|
|
|
DWORD OffTime;
|
|
|
|
|
WORD OperatingStatus;
|
|
|
|
|
WORD ErrorStatus;
|
|
|
|
|
WORD AlarmStatus;
|
|
|
|
|
WORD OtherAlarms;
|
|
|
|
|
WORD EEPROMBadSectors;
|
|
|
|
|
|
2024-05-16 15:56:07 +02:00
|
|
|
WORD WriteConfig32 = 0;
|
|
|
|
|
|
2019-02-27 07:22:39 +01:00
|
|
|
WORD CommsInitialized = 0;
|
2019-02-01 17:35:18 +01:00
|
|
|
WORD InitRv = 0;
|
|
|
|
|
WORD DiscRV = 0;
|
|
|
|
|
WORD ConRV = 0;
|
|
|
|
|
WORD OpenRV=0;
|
|
|
|
|
WORD ReadStatusRV = 0;
|
|
|
|
|
WORD CommitRV = 0;
|
|
|
|
|
WORD OffRV = 0;
|
|
|
|
|
WORD OnRV = 0;
|
|
|
|
|
WORD EndSessionRV = 0;
|
|
|
|
|
WORD ReadConfigRV = 0;
|
|
|
|
|
WORD ReadDoseTresholdRV = 0;
|
|
|
|
|
WORD ReadAlarmRateThresholdsRV = 0;
|
|
|
|
|
WORD ReadCalibrationDataRV = 0;
|
|
|
|
|
WORD ReadWearerRV = 0;
|
|
|
|
|
WORD ReadEpdIDRV = 0;
|
|
|
|
|
WORD ReadDosesQualityRV;
|
|
|
|
|
WORD ReadPeaksRV = 0;
|
|
|
|
|
|
2019-02-08 16:42:48 +01:00
|
|
|
WORD ClearDoseRV;
|
|
|
|
|
WORD ClearTotalDoseRV;
|
|
|
|
|
WORD ClearPeakRatesRV;
|
|
|
|
|
WORD DeIssueEpdRV = 0;
|
2019-02-01 17:35:18 +01:00
|
|
|
|
|
|
|
|
WORD WriteAlarmDoseThresholdsRV = 0;
|
|
|
|
|
WORD WriteAlarmRateThresholdsRV = 0;
|
|
|
|
|
WORD WriteWearerNameRV = 0;
|
|
|
|
|
|
|
|
|
|
WORD IssueEpdRV = 0;
|
|
|
|
|
|
|
|
|
|
WORD Error=0;
|
|
|
|
|
|
|
|
|
|
WORD ErrorSource;
|
|
|
|
|
WORD ErrorReason;
|
|
|
|
|
WORD ErrorData;
|
|
|
|
|
|
|
|
|
|
//Identification
|
|
|
|
|
|
|
|
|
|
DWORD EpdID=0;
|
2024-05-22 13:31:10 +02:00
|
|
|
WORD HardVersion, HardVersionMinor;
|
2019-02-01 17:35:18 +01:00
|
|
|
WORD SoftVersion;
|
|
|
|
|
WORD FunctionFlags;
|
|
|
|
|
|
|
|
|
|
WORD EpdType = 0xff;
|
|
|
|
|
|
|
|
|
|
SYSTEMTIME tRealTime;
|
|
|
|
|
|
|
|
|
|
//Wearer
|
|
|
|
|
#define WearerIDLength 12
|
|
|
|
|
BYTE WearerID[(WearerIDLength)+1];
|
|
|
|
|
#define WearerNameLength 22
|
|
|
|
|
BYTE WearerName[WearerNameLength+1];
|
|
|
|
|
|
|
|
|
|
// Dose
|
|
|
|
|
DWORD Hp10Dose;
|
|
|
|
|
DWORD Hp07Dose;
|
|
|
|
|
DWORD Hp10Total;
|
|
|
|
|
DWORD Hp07Total;
|
|
|
|
|
WORD Knocks;
|
|
|
|
|
WORD Resets;
|
|
|
|
|
WORD QualityData;
|
|
|
|
|
|
|
|
|
|
//Peaks
|
|
|
|
|
DWORD Hp10Peak;
|
|
|
|
|
DWORD Hp07Peak;
|
2019-02-08 16:42:48 +01:00
|
|
|
DWORD Hp10Time;
|
|
|
|
|
DWORD Hp07Time;
|
2021-06-01 16:35:24 +02:00
|
|
|
long long Hp10FTime , Hp07FTime;
|
2019-02-01 17:35:18 +01:00
|
|
|
|
|
|
|
|
//AlarmDoseTreshold
|
|
|
|
|
DWORD Hp10THDose1;
|
|
|
|
|
DWORD Hp10THDose2;
|
|
|
|
|
DWORD Hp07THDose;
|
|
|
|
|
|
|
|
|
|
DWORD Hp10Rate1On;
|
|
|
|
|
DWORD Hp10Rate2On;
|
|
|
|
|
DWORD Hp07RateOn;
|
|
|
|
|
DWORD Hp10Rate1Off;
|
|
|
|
|
DWORD Hp10Rate2Off;
|
|
|
|
|
DWORD Hp07RateOff;
|
|
|
|
|
|
|
|
|
|
WORD K1;
|
|
|
|
|
WORD K2;
|
|
|
|
|
WORD K3;
|
|
|
|
|
WORD K4;
|
|
|
|
|
WORD K5;
|
|
|
|
|
WORD K6;
|
|
|
|
|
WORD SG;
|
|
|
|
|
WORD BC;
|
|
|
|
|
WORD FB;
|
|
|
|
|
WORD HG;
|
|
|
|
|
|
2019-02-14 15:56:23 +01:00
|
|
|
DWORD D1;
|
|
|
|
|
DWORD D2;
|
|
|
|
|
DWORD D3;
|
|
|
|
|
DWORD D4;
|
|
|
|
|
DWORD CountsClock;
|
|
|
|
|
|
|
|
|
|
DWORD BaseD1;
|
|
|
|
|
DWORD BaseD2;
|
|
|
|
|
DWORD BaseD3;
|
|
|
|
|
DWORD BaseD4;
|
|
|
|
|
DWORD BaseCountsClock;
|
|
|
|
|
|
2019-02-01 17:35:18 +01:00
|
|
|
//Config
|
|
|
|
|
WORD CountDownTime;
|
|
|
|
|
DWORD ReturnTime;
|
|
|
|
|
WORD ChirpRate;
|
|
|
|
|
WORD TeleBaudSetting;
|
|
|
|
|
WORD SelfTestInterval;
|
|
|
|
|
WORD BatteryLoadTestInt;
|
|
|
|
|
WORD GeneralControl;
|
|
|
|
|
WORD CommsTimeout;
|
|
|
|
|
WORD InhibitTimeout;
|
|
|
|
|
WORD MinTxInterval;
|
|
|
|
|
WORD MaxTxIntervals;
|
|
|
|
|
WORD RandomiseWindow;
|
|
|
|
|
WORD DoseIncThresh;
|
|
|
|
|
|
|
|
|
|
//OperatingStatus
|
|
|
|
|
BYTE DetectorsOn=0;
|
|
|
|
|
BYTE EPDIssued = 0;
|
|
|
|
|
BYTE EPDLocked = 0;
|
|
|
|
|
BYTE EPDTesting = 0;
|
|
|
|
|
BYTE EPDProcSec= 0;
|
|
|
|
|
BYTE EPDFaulty = 0;
|
|
|
|
|
|
|
|
|
|
//ERrrostatus
|
|
|
|
|
BYTE EPDNewFault = 0;
|
|
|
|
|
BYTE EPDComFault = 0;
|
|
|
|
|
BYTE EPDCalFault = 0;
|
|
|
|
|
BYTE EPDDetFault = 0;
|
|
|
|
|
BYTE EPDEprFault = 0;
|
|
|
|
|
BYTE EPDTrhFault = 0;
|
|
|
|
|
BYTE EPDOthFault = 0;
|
|
|
|
|
|
|
|
|
|
//AlarmStatus
|
|
|
|
|
BYTE AlarmDoseHP101G = 0;
|
|
|
|
|
BYTE AlarmDoseHP102G = 0;
|
|
|
|
|
BYTE AlarmDoseHP07N = 0;
|
|
|
|
|
BYTE AlarmRateHP101G = 0;
|
|
|
|
|
BYTE AlarmRateHP102G = 0;
|
|
|
|
|
BYTE AlarmRateHP07N = 0;
|
|
|
|
|
|
|
|
|
|
//OtherAlarm
|
|
|
|
|
BYTE OtherAlarmRateHp101G = 0;
|
|
|
|
|
BYTE OtherAlarmRateHp102G = 0;
|
|
|
|
|
BYTE OtherAlarmRateHp07N = 0;
|
|
|
|
|
BYTE OtherAlarmReturn = 0;
|
|
|
|
|
BYTE OtherAlarmBatLow = 0;
|
|
|
|
|
BYTE OtherAlarmCarrier= 0;
|
|
|
|
|
BYTE OtherAlarmBatVolt = 0;
|
|
|
|
|
|
2022-04-12 14:28:14 +02:00
|
|
|
//New fields
|
|
|
|
|
BYTE eDosDose07Warning = 0;
|
|
|
|
|
BYTE eDosDose07Alarm = 0;
|
|
|
|
|
BYTE eDosDose10Warning = 0;
|
|
|
|
|
BYTE eDosDose10Alarm = 0;
|
|
|
|
|
BYTE eDosRate07Warning = 0;
|
|
|
|
|
BYTE eDosRate07Alarm = 0;
|
|
|
|
|
BYTE eDosRate10Warning = 0;
|
|
|
|
|
BYTE eDosRate10Alarm = 0;
|
|
|
|
|
BYTE eDosBatteryWarning = 0;
|
|
|
|
|
BYTE eDosDoseAlarm = 0;
|
|
|
|
|
BYTE eDosRateAlarm = 0;
|
2019-02-01 17:35:18 +01:00
|
|
|
|
2019-02-12 16:01:47 +01:00
|
|
|
|
|
|
|
|
DWORD Password = 9;
|
|
|
|
|
|
|
|
|
|
BYTE byBatADC;
|
|
|
|
|
BYTE bySupplyADC;
|
|
|
|
|
BYTE byStatus3;
|
|
|
|
|
BYTE byStatus4;
|
|
|
|
|
|
2021-05-03 09:56:58 +02:00
|
|
|
int maxDiscoverTime = 10000;
|
2021-05-28 17:06:41 +02:00
|
|
|
int ConnectTries = 0;
|
2021-05-03 09:56:58 +02:00
|
|
|
LARGE_INTEGER WaitDiscovery;
|
2021-05-27 16:13:53 +02:00
|
|
|
BYTE ConnectTimerFired;
|
2021-05-12 12:35:50 +02:00
|
|
|
int StartDiscover(int EpdTimeout);
|
2021-05-28 17:06:41 +02:00
|
|
|
int Open(DWORD DeviceID);
|
2024-10-14 07:51:22 +02:00
|
|
|
void Close(WORD doEndCom);
|
|
|
|
|
int CloseAndSignal(WORD EndSessionControl, WORD duration, WORD doEndCom);
|
2019-02-01 17:35:18 +01:00
|
|
|
void DecodeFunctionFlags();
|
|
|
|
|
|
|
|
|
|
void DecodeStatus();
|
|
|
|
|
|
|
|
|
|
Epd2U(int comport);
|
2021-04-16 10:38:48 +02:00
|
|
|
WORD WriteConfig();
|
2019-02-25 09:12:08 +01:00
|
|
|
DWORD StartCom();
|
2021-05-28 17:06:41 +02:00
|
|
|
void EndCom();
|
2019-02-01 17:35:18 +01:00
|
|
|
WORD ReadStatus();
|
2019-02-12 16:01:47 +01:00
|
|
|
WORD EPDReadExtraStatus();
|
2019-02-01 17:35:18 +01:00
|
|
|
WORD EPDReadConfig();
|
|
|
|
|
WORD TurnOff();
|
|
|
|
|
WORD TurnOn();
|
2021-06-02 13:54:22 +02:00
|
|
|
WORD ReadCal();
|
2019-02-12 16:01:47 +01:00
|
|
|
WORD WriteCal();
|
2019-02-01 17:35:18 +01:00
|
|
|
WORD ReadTresHolds();
|
2021-06-02 13:54:22 +02:00
|
|
|
|
2019-02-01 17:35:18 +01:00
|
|
|
WORD ReadDoses();
|
|
|
|
|
|
2022-03-17 08:57:22 +01:00
|
|
|
WORD ClearAlarms();
|
2019-04-03 13:13:47 +02:00
|
|
|
WORD PrepareForIssue();
|
|
|
|
|
|
2024-10-14 07:51:22 +02:00
|
|
|
WORD DeIssue(WORD doEndCom);
|
|
|
|
|
WORD Issue(WORD doEndCom);
|
2021-06-01 16:35:24 +02:00
|
|
|
int GetAll(bool Close);
|
|
|
|
|
int GetAllDeissue();
|
2019-02-01 17:35:18 +01:00
|
|
|
~Epd2U();
|
2021-05-27 16:13:53 +02:00
|
|
|
|
|
|
|
|
int ConnectAndStatus(int tokenSourceTimeout);
|
2021-06-02 13:54:22 +02:00
|
|
|
int IssueAndCheck(float gain);
|
2021-05-12 12:35:50 +02:00
|
|
|
|
2021-05-27 16:13:53 +02:00
|
|
|
public:
|
|
|
|
|
HANDLE hWaitTimer = 0;
|
2019-02-01 17:35:18 +01:00
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|