#include "stdafx.h" #include "EpdBaseClr.h" EpdBaseClr::Epd2::Epd2(int port) { epd = new EpdBase::Epd2U(port); b = gcnew sEpdBase(); this->InitRV = epd->InitRv; } int EpdBaseClr::Epd2::Connect() { b->CurrentDeviceID = 0; epd->StartDiscover(); DiscRV = epd->DiscRV; if (epd->DiscRV == 1 && epd->DeviceCount > 0) b->CurrentDeviceID = epd->DeviceIDs[0]; return DiscRV; } int EpdBaseClr::Epd2::GetStatus() { //ReadStatus StatusRV = 0; Issued = false; WearerName = String::Empty; epd->ReadStatus(); StatusRV= epd->ReadStatusRV; Issued = epd->EPDIssued; WearerID = gcnew String((char *)epd->WearerID); WearerName = gcnew String((char *)epd->WearerName); isOn = (epd->DetectorsOn != 0); return StatusRV; } int EpdBaseClr::Epd2::GetDoses() { Hp10 = Hp07 = 0.0; ReadDosesRV = epd->ReadDoses(); if (ReadDosesRV == 1) { Hp10 = (double)epd->Hp10Dose / 64.0; Hp07 = (double)epd->Hp07Dose / 64.0; Hp07Peak = (double)epd->Hp07Peak / 64.0; Hp10Peak = (double)epd->Hp10Peak / 64.0; } //epd->SoftVersion return ReadDosesRV; } int EpdBaseClr::Epd2::SetDeIssued() { return epd->DeIssue(); } int EpdBaseClr::Epd2::SetIssued() { epd->AlarmDoseHP07N = alarmHP07; epd->AlarmDoseHP101G = alarmHP10; memset(epd->WearerID, ' ', WearerIDLength); epd->WearerID[WearerIDLength] = 0; char* str1 = (char*)(void *)Runtime::InteropServices::Marshal::StringToHGlobalAnsi(WearerID); int l = strlen(str1); if (l > WearerIDLength)l = WearerIDLength; _memccpy( epd->WearerID+WearerIDLength-l, str1, l, WearerIDLength); Runtime::InteropServices::Marshal::FreeHGlobal((IntPtr)str1); memset(epd->WearerName, 0, WearerNameLength + 1); char* str2 = (char*)(void*)Runtime::InteropServices::Marshal::StringToHGlobalAnsi(WearerName); _memccpy(epd->WearerName, str2, strlen(str2), WearerNameLength); Runtime::InteropServices::Marshal::FreeHGlobal((IntPtr)str2); epd->Issue(); return 0; }