258 lines
4.5 KiB
C++
258 lines
4.5 KiB
C++
#pragma once
|
|
#pragma unmanaged
|
|
#include <windows.h>
|
|
#include "EpdCommon.h"
|
|
#include "TimeFunctions.h"
|
|
|
|
namespace MK3
|
|
{
|
|
class Epd2U
|
|
{
|
|
public:
|
|
char comPort[5] = {"COM4"};
|
|
CommsHandle epdComsHandle;
|
|
uint32_t CurrentDeviceID;
|
|
EpdGeneration EpdGen;
|
|
DiscoveryId Epd;
|
|
|
|
|
|
CompletionToken token;
|
|
|
|
|
|
|
|
WORD port = 3;
|
|
const WORD MaxDevices = 10;
|
|
WORD DeviceCount = 0;
|
|
DWORD DeviceIDs[10];
|
|
//DWORD CurrentDeviceID;
|
|
|
|
//WORD AlarmCtrl = 0b01111110;
|
|
WORD AlarmCtrl = 0b01111010; // NO sound
|
|
WORD EndSessionControl = 0b00010010;
|
|
|
|
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 };
|
|
|
|
DWORD EpdClock;
|
|
DWORD RealTime;
|
|
WORD IssueCount;
|
|
DWORD OffTime;
|
|
OpStatusFlags OperatingStatus;
|
|
FaultStatusFlags ErrorStatus;
|
|
AlarmStatusFlags AlarmStatus;
|
|
WORD OtherAlarms;
|
|
WORD EEPROMBadSectors;
|
|
|
|
WORD CommsInitialized = 0;
|
|
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;
|
|
|
|
WORD ClearDoseRV;
|
|
WORD ClearTotalDoseRV;
|
|
WORD ClearPeakRatesRV;
|
|
WORD DeIssueEpdRV = 0;
|
|
|
|
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;
|
|
WORD HardVersion;
|
|
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;
|
|
DWORD Hp10Time;
|
|
DWORD Hp07Time;
|
|
|
|
|
|
//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;
|
|
|
|
DWORD D1;
|
|
DWORD D2;
|
|
DWORD D3;
|
|
DWORD D4;
|
|
DWORD CountsClock;
|
|
|
|
DWORD BaseD1;
|
|
DWORD BaseD2;
|
|
DWORD BaseD3;
|
|
DWORD BaseD4;
|
|
DWORD BaseCountsClock;
|
|
|
|
|
|
//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;
|
|
|
|
|
|
|
|
DWORD Password = 9;
|
|
|
|
|
|
BYTE byBatADC;
|
|
BYTE bySupplyADC;
|
|
BYTE byStatus3;
|
|
BYTE byStatus4;
|
|
|
|
int StartDiscover();
|
|
void Open(DiscoveryId DeviceID);
|
|
void CloseDev();
|
|
|
|
void DecodeFunctionFlags();
|
|
|
|
void DecodeStatus();
|
|
|
|
Epd2U(int comport);
|
|
WORD WriteConfig();
|
|
DWORD StartCom();
|
|
WORD ReadStatus();
|
|
//WORD EPDReadExtraStatus();
|
|
WORD EPDReadConfig();
|
|
WORD TurnOff();
|
|
WORD TurnOn();
|
|
//WORD WriteCal();
|
|
//WORD ReadTresHolds();
|
|
//WORD ReadDoses();
|
|
|
|
//WORD PrepareForIssue();
|
|
//WORD DeIssue();
|
|
//WORD Issue();
|
|
|
|
~Epd2U();
|
|
|
|
StatusData_t epd3status;
|
|
uint8_t counterIds[6]; //max 6 for mk3
|
|
uint8_t counterIdLen;
|
|
|
|
//Voor read counters
|
|
Counter_t Counts[10];
|
|
uint8_t countsRead;
|
|
uint32_t utc, seconds;
|
|
|
|
//static HANDLE Ev1 ;
|
|
//static Epd2U* current;
|
|
//void WINAPI discovery (CommsHandle hComms, DiscoveryId const discovered[], int32_t count);
|
|
};
|
|
}
|
|
|
|
|
|
|
|
|