Merged in feature/LocalServer (pull request #5)
Feature/LocalServer * Major refactor. Switching over to a local server hub style driver allowing multiple programs to control the telescope at one time without the need for the POTH Hub * Unified the setup dialog * Implemented shared serial port, Both Telescope and Driver can connect at the same time. * Ported the focuser implementation from the non server based version. * Ported the telescope driver code. * Fixed problem with # not being stripped from the returned string ends. Fixed issue with RA being returned as degress rather than hours. * Telescope passes validation * Added a lock around the focuser move. * Reimplemented CommandBlind and CommandString * Corrected version information * Removed the Altitude support as there's a bug in the Autostar and Audiostar firmware
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
|
||||
namespace ASCOM.Meade.net
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for GarbageCollection.
|
||||
/// </summary>
|
||||
class GarbageCollection
|
||||
{
|
||||
protected bool m_bContinueThread;
|
||||
protected bool m_GCWatchStopped;
|
||||
protected int m_iInterval;
|
||||
protected ManualResetEvent m_EventThreadEnded;
|
||||
|
||||
public GarbageCollection(int iInterval)
|
||||
{
|
||||
m_bContinueThread = true;
|
||||
m_GCWatchStopped = false;
|
||||
m_iInterval = iInterval;
|
||||
m_EventThreadEnded = new ManualResetEvent(false);
|
||||
}
|
||||
|
||||
public void GCWatch()
|
||||
{
|
||||
// Pause for a moment to provide a delay to make threads more apparent.
|
||||
while (ContinueThread())
|
||||
{
|
||||
GC.Collect();
|
||||
Thread.Sleep(m_iInterval);
|
||||
}
|
||||
m_EventThreadEnded.Set();
|
||||
}
|
||||
|
||||
protected bool ContinueThread()
|
||||
{
|
||||
lock (this)
|
||||
{
|
||||
return m_bContinueThread;
|
||||
}
|
||||
}
|
||||
|
||||
public void StopThread()
|
||||
{
|
||||
lock (this)
|
||||
{
|
||||
m_bContinueThread = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void WaitForThreadToStop()
|
||||
{
|
||||
m_EventThreadEnded.WaitOne();
|
||||
m_EventThreadEnded.Reset();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user