eDosStation/EpdBase/EpdBase.h

205 lines
3.6 KiB
C
Raw Normal View History

2019-02-01 17:35:18 +01:00
#pragma once
#include <windows.h>
#include "dll2/ex15.mif"
#include "TimeFunctions.h"
namespace EpdBase
{
class Epd2U
{
public:
WORD port = 3;
const WORD MaxDevices = 10;
WORD DeviceCount = 0;
DWORD DeviceIDs[10];
DWORD CurrentDeviceID;
WORD AlarmCtrl = 0b01111110;
DWORD EpdClock;
DWORD RealTime;
WORD IssueCount;
DWORD OffTime;
WORD OperatingStatus;
WORD ErrorStatus;
WORD AlarmStatus;
WORD OtherAlarms;
WORD EEPROMBadSectors;
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;
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;
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;
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;
//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;
void StartDiscover();
void Open(DWORD DeviceID);
void Close();
void DecodeFunctionFlags();
void DecodeStatus();
Epd2U(int comport);
WORD ReadStatus();
WORD EPDReadConfig();
WORD TurnOff();
WORD TurnOn();
WORD ReadTresHolds();
WORD ReadDoses();
WORD DeIssue();
WORD Issue();
~Epd2U();
};
}