public static void ResetSignal(bool val) { //if (m_state != IntState.Wait) { if (val && !m_dirtyResetSignal) { m_inputSignals |= IntSignals.Reset; } } m_dirtyResetSignal = val; }
public static void StartLayer_(bool val) { if (m_state == IntState.Wait) { // if (val && !m_dirtyRunSignal) { m_inputSignals |= IntSignals.Run; } } m_dirtyRunSignal = val; }
private static void processStopRequest() { NativeMethods.PCI_Stop_Execution(); NativeMethods.PCI_Write_Port(0xC, 0x000); NativeMethods.PCI_Write_DA_List((UInt16)0); fileLoader.m_mut.WaitOne(); //lock file loader thread fileLoader.resetFile(); PrefetchList.resetList(); m_runningLIst = ListNumber.Undefine; fileLoader.m_mut.ReleaseMutex(); m_inputSignals &= ~(IntSignals.Reset); m_state = IntState.Wait; // after reset always to wait State. }
public static void processSignals() { NativeMethods.readStatus(ref m_cardStatus); if (m_isIntiialize) { PrefetchList.stepExecution(); } IntSignals s = m_inputSignals; switch (m_state) { case IntState.Wait: WaitState(); if ((s & IntSignals.Run) != 0) { m_inputSignals &= ~IntSignals.Run; m_state = IntState.WaitListReady; } if ((s & (IntSignals.Reset)) != 0) { processStopRequest(); } break; case IntState.WaitListReady: fillList(); if ((s & (IntSignals.Reset)) != 0) { processStopRequest(); } break; case IntState.Work: WorkState(); if ((s & (IntSignals.Reset)) != 0) { processStopRequest(); } break; } }