private void CheckPitchStatus(object state) { TableUsage previousTableUsage = m_TableUsage; m_TableUsage = (new Random()).NextDouble() > 0.5 ? TableUsage.Free : TableUsage.Busy; if (m_TableUsage == TableUsage.Busy && previousTableUsage != TableUsage.Busy) TableNowBusy(this, null); if (m_TableUsage == TableUsage.Free && previousTableUsage != TableUsage.Free) TableNowFree(this, null); }
public void initialize() { tableUsage = new TableUsage[FGTables.Length]; for (int i = 0; i < FGTables.Length; ++i) { tableUsage [i] = new TableUsage(); tableUsage [i].tableIndex = i; tableUsage [i].parent = this; //tableUsage [i].correspondences = correspondences; tableUsage [i].FGCorrespondences = FGCorrespondences; tableUsage [i].initialize(FGTables [i].nRows()); } }
private void LatestImageAvailable(object state, Image<Bgr, byte> image) { m_PreviousTableUsage = m_TableUsage; m_DebugImage = image.Clone(); if (m_Previousimage != null) { // Use an exponential-moving average concept to smooth data double tableBusyProb = ImageProcessing.TableBusyProbability(image, m_Previousimage, m_DebugImage); m_SEMA = (m_SEMA * (1f - RATE)) + (tableBusyProb * RATE); if (m_SEMA > 0.5) m_TableUsage = TableUsage.Busy; else m_TableUsage = TableUsage.Free; } m_Previousimage = image.Clone(); if (m_TableUsage == TableUsage.Busy && m_PreviousTableUsage != TableUsage.Busy) TableNowBusy(this, null); if (m_TableUsage == TableUsage.Free && m_PreviousTableUsage != TableUsage.Free) TableNowFree(this, null); }
void Start() { tableUsage = new TableUsage(); tableUsage.initialize(nRows()); }