This commit is contained in:
Luc Vandenbroucke 2020-02-05 16:27:38 +01:00
parent 3c99fe5624
commit 0ea1a6a4fe
3 changed files with 21 additions and 26 deletions

View file

@ -1,7 +1,8 @@
#include "stdafx.h"
#include "EpdBase.h"
#define DiscoveryExpirationPeriod 1000
#define DiscoveryTimeslotPeriod 200
#define DiscoveryExpirationPeriod 5000
EpdBase::Epd2U::Epd2U(int comport)
{
@ -19,7 +20,7 @@ DWORD EpdBase::Epd2U::StartCom()
if (InitRv == 0) Error = GetErrorDetails(&ErrorSource, &ErrorReason, &ErrorData);
else {
CommsInitialized = 1;
SetDiscoveryExpirationPeriod(port, DiscoveryExpirationPeriod);
//SetDiscoveryExpirationPeriod(port, DiscoveryExpirationPeriod);
}
return Error;
}
@ -27,32 +28,27 @@ DWORD EpdBase::Epd2U::StartCom()
EpdBase::Epd2U::~Epd2U()
{
DeinitComms(port);
}
int EpdBase::Epd2U::StartDiscover()
{
Error = 0;
Sleep(200);
DiscRV= Discover(port, DeviceIDs, MaxDevices, &DeviceCount);
Commit();
if (DiscRV == 1 && DeviceCount == 0)
{
DeinitComms(port);
System::Diagnostics::Trace::WriteLine("StartDiscover");
FlushBuffers(port);
FlushDiscoveryCache(port);
Sleep(200);
InitRv = InitComms(port, 9600, 8, 0, 0);
if (InitRv == 1) {
CommsInitialized = 1;
Error = 0;
SetDiscoveryTimeslotCount(port, 2);
SetDiscoveryTimeslotPeriod(port, DiscoveryTimeslotPeriod);
SetDiscoveryExpirationPeriod(port, DiscoveryExpirationPeriod);
DiscRV = Discover(port, DeviceIDs, MaxDevices, &DeviceCount);
Commit();
}
else
int tries = 25; DeviceCount = 0;
while (tries-- > 0 && DeviceCount == 0)
{
Error = GetErrorDetails(&ErrorSource, &ErrorReason, &ErrorData);
DiscRV = Discover(port, DeviceIDs, MaxDevices, &DeviceCount);
System::Diagnostics::Trace::WriteLine(System::String::Format("Discover try: {0} RV={1}", tries, DiscRV));
}
if (DiscRV != 1) {
Error = GetErrorDetails(&ErrorSource, &ErrorReason, &ErrorData);
System::Diagnostics::Trace::WriteLine(System::String::Format("StartDiscover Error Connect1: {0}", ErrorReason));
}
return DiscRV;
}

View file

@ -23,7 +23,6 @@ EpdBaseClr::Epd2::!Epd2()
int EpdBaseClr::Epd2::Connect()
{
ConnectError = 0;
epd->StartCom();
b->CurrentDeviceID = 0;

View file

@ -179,7 +179,7 @@ namespace eDosStation
//ep = new EpdBaseClr.Epd2(thisStation.ComPort);
int rv = ep.Connect();
System.Diagnostics.Debug.WriteLine($"Connect {rv} error {ep.ConnectError}");
if (ep.DeviceCount == 1)
if (ep.DeviceCount >0 && ep.b.CurrentDeviceID>0)
{
EpdFound = true;
statusEPD.Content = $"StartScan : EPD: {ep.b.CurrentDeviceID}";
@ -207,8 +207,8 @@ namespace eDosStation
{
dispatcherTimer.Stop();
EpdFound = false;
ep.Connect();
if (ep.DeviceCount == 1 )
int rv = ep.Connect();
if (rv==1 && ep.DeviceCount > 0 && ep.b.CurrentDeviceID>0)
{
EpdFound = true;
statusEPD.Content = $"EPD: {ep.b.CurrentDeviceID}";