Пример #1
0
 public void SetRunState(RUN_STATE State)
 {
     lock (this)
     {
         m_RunState = State;
     }
 }
Пример #2
0
        public RUN_STATE GetRunState()
        {
            RUN_STATE State = RUN_STATE.RESERVED;

            lock (this)
            {
                State = m_RunState;
            }

            return(State);
        }
Пример #3
0
    // Thread function to check NIC settings and force if
    // not right
    private void MonitorNICs(object oIn)
    {
        StateManager CurState = (StateManager)oIn;

        if (CurState.m_bShutdown)
        {
            return;
        }

        RUN_STATE Now = CurState.GetRunState();

        if ((Now == RUN_STATE.DNSCRYPT_FULL) || (Now == RUN_STATE.DNSCRYPT_TCP) || (Now == RUN_STATE.SERVICE_RESTART))
        {
            // Keep monitoring they are set to proxy
            CurState.SetNICsState(NICHandler.IP_CHOICES.LOCALHOST, NICHandler.EnsureNICsState(NICHandler.IP_CHOICES.LOCALHOST));
        }
        else if (Now == RUN_STATE.SERVICE_RUNNING)
        {
            // Set the NICs to proxy
            CurState.SetNICsState(NICHandler.IP_CHOICES.LOCALHOST, NICHandler.EnsureNICsState(NICHandler.IP_CHOICES.LOCALHOST));
        }
        else if (Now == RUN_STATE.OPENDNS_ONLY)
        {
            // Set the NICs to OpenDNS
            CurState.SetNICsState(NICHandler.IP_CHOICES.OPENDNS, NICHandler.EnsureNICsState(NICHandler.IP_CHOICES.OPENDNS));
        }
        else if (Now == RUN_STATE.FAIL_CLOSED)
        {
            // Set NICs to Proxy
            CurState.SetNICsState(NICHandler.IP_CHOICES.LOCALHOST, NICHandler.EnsureNICsState(NICHandler.IP_CHOICES.LOCALHOST));
        }
        else if (Now == RUN_STATE.FAIL_OPEN)
        {
            // Set the NICs to Default
            CurState.SetNICsState(NICHandler.IP_CHOICES.DEFAULT, NICHandler.EnsureNICsState(NICHandler.IP_CHOICES.DEFAULT));
        }
        else if (Now == RUN_STATE.DEFAULT)
        {
            // Set or ensure NICs are original user settings
            CurState.SetNICsState(NICHandler.IP_CHOICES.DEFAULT, NICHandler.EnsureNICsState(NICHandler.IP_CHOICES.DEFAULT));
        }
        else
        {
            // Set or ensure NICs are original user settings
            CurState.SetNICsState(NICHandler.IP_CHOICES.DEFAULT, NICHandler.EnsureNICsState(NICHandler.IP_CHOICES.DEFAULT));
        }
    }
Пример #4
0
        void statusBar1_StartStopClick(object sender, EventArgs e)
        {
            if (task.bRunning)
            {
                btn_menu.Label = StringResource.str("menu");
                bt_run.Text    = StringResource.str("start");
                status         = RUN_STATE.STOPPING;
                task.Stop();
                return;
            }

            btn_menu.Label = StringResource.str("pause");
            runstate.LoadScheme();
            if (runstate.NumOfRunsLeft <= 0)
            {
                MsgDlg.Show("No valid selection");
                return;
            }

            DoNextMeasure();
            Program.testdata.ClearAll();
        }
Пример #5
0
        private void DoNextMeasure()
        {
            RsInfo rs = runstate.selectedRs.Dequeue();
            RxInfo rx = runstate.selectedRx.Dequeue();

            status = RUN_STATE.INITIALIZING;

            if (false)
            {
                SysConfig syscfg = Program.sysinfo;

                DeviceMgr.Log(String.Format(@"==== New Measurement Paramter========
                                            Measure times = {0}\r\nRs ID = {1}\r\nRs Value = {2}\r\nRs Temp. Alpha = {3}\r\nRs Temp. Beta = {4}\r\n
                                            Temperature = {5}\r\nRx ID = {6}\r\nSample times = {7}\r\nSwitch delay = {8}\r\n
                                            Filter = {9}\r\nFilter Length = {10}\r\nMeasure delay = {12}\r\n
                                            AutoFilter = {13}\r\nRx curr. = {14}\r\n
                                            New Measurement Started...", syscfg.iMeasTimes.ToString(), rs.sSerial, rs.dValue.ToString("F8"), rs.dAlpha.ToString("F3"), rs.dBeta.ToString("F3"),
                                            syscfg.dTemp.ToString("F3"), rx.sSerial, syscfg.iSampleTimes, syscfg.iKTT,
                                            syscfg.sFilterType, syscfg.iFilter, syscfg.iMeasDelay, syscfg.bThrow, rx.iIx
                                            ));
            }
            task.Start(rx, rs);
        }
Пример #6
0
        private static bool tmlock = false; //lock for timer handler
        void uiTimer_Tick(object sender, EventArgs e)
        {
            if (tmlock)
            {
                return;
            }
            tmlock = true;
            if (DeviceMgr.Loaded && status == RUN_STATE.DISABLED)
            {
                status = RUN_STATE.IDLE;
            }

            if (task.bRunning)
            {
                task.Step();
                if (!task.bRunning)
                {
                    status = RUN_STATE.IDLE;
                    DeviceMgr.Log("Measurement Stopped...");
                }
            }

            tmlock = false;
        }
Пример #7
0
        void RunWnd_Load(object sender, EventArgs e)
        {
            status = RUN_STATE.DISABLED;
            Rectangle rect = new Rectangle();
//          FullScreenClass.SetFullScreen(true, ref rect);
        }
Пример #8
0
 public void SetRunState(RUN_STATE State)
 {
     lock (this)
     {
         m_RunState = State;
     }
 }
Пример #9
0
        void statusBar1_StartStopClick(object sender, EventArgs e)
        {
            if (task.bRunning)
            {
                btn_menu.Label = StringResource.str("menu");
                bt_run.Text = StringResource.str("start");
                status = RUN_STATE.STOPPING;                
                task.Stop();
                return;
            }

            btn_menu.Label = StringResource.str("pause");
                runstate.LoadScheme();
                if (runstate.NumOfRunsLeft <= 0)
                {
                    MsgDlg.Show("No valid selection");
                    return;
                }

                DoNextMeasure();
                Program.testdata.ClearAll();
            
        }
Пример #10
0
        private void DoNextMeasure()
        {
            RsInfo rs = runstate.selectedRs.Dequeue();
            RxInfo rx = runstate.selectedRx.Dequeue();

            status = RUN_STATE.INITIALIZING;

            if (false)
            {
                SysConfig syscfg = Program.sysinfo;

                DeviceMgr.Log(String.Format(@"==== New Measurement Paramter========
                                            Measure times = {0}\r\nRs ID = {1}\r\nRs Value = {2}\r\nRs Temp. Alpha = {3}\r\nRs Temp. Beta = {4}\r\n
                                            Temperature = {5}\r\nRx ID = {6}\r\nSample times = {7}\r\nSwitch delay = {8}\r\n
                                            Filter = {9}\r\nFilter Length = {10}\r\nMeasure delay = {12}\r\n
                                            AutoFilter = {13}\r\nRx curr. = {14}\r\n
                                            New Measurement Started...", syscfg.iMeasTimes.ToString(), rs.sSerial, rs.dValue.ToString("F8"), rs.dAlpha.ToString("F3"), rs.dBeta.ToString("F3"),
                                                                       syscfg.dTemp.ToString("F3"), rx.sSerial, syscfg.iSampleTimes, syscfg.iKTT,
                                                                       syscfg.sFilterType, syscfg.iFilter, syscfg.iMeasDelay, syscfg.bThrow, rx.iIx
                                            ));
            }
            task.Start(rx, rs);
                
        }
Пример #11
0
        void RunWnd_Load(object sender, EventArgs e)
        {
            status = RUN_STATE.DISABLED;
            Rectangle rect = new Rectangle();
//          FullScreenClass.SetFullScreen(true, ref rect);
        }
Пример #12
0
        private static bool tmlock = false; //lock for timer handler
        void uiTimer_Tick(object sender, EventArgs e)
        {

            if (tmlock)
                return;
            tmlock = true;
            if (DeviceMgr.Loaded && status == RUN_STATE.DISABLED)
                status = RUN_STATE.IDLE;

            if (task.bRunning)
            {
                task.Step();
                if (!task.bRunning)
                {
                    status = RUN_STATE.IDLE;
                    DeviceMgr.Log("Measurement Stopped...");
                }
            }

            tmlock = false;
        }
Пример #13
0
    // Just checks if the DNSCrypt service is running, and forces the state
    // the user desires if not already in that state
    public void DoCheckServiceRunning(object oIn)
    {
        StateManager CurState = (StateManager)oIn;

        if (CurState.m_bShutdown)
        {
            return;
        }

        RUN_STATE State = CurState.GetRunState();

        switch (State)
        {
        case RUN_STATE.SERVICE_RUNNING:
        case RUN_STATE.DNSCRYPT_FULL:

            if (!CurState.m_ServiceManager.IsServiceRunning())
            {
                // Not running, launch one
                WriteToLog("Starting OpenDNS Service - " + CurState.m_ServiceManager.StartServiceProcess(CurState.GetDoDNSCryptTCP()));

                CurState.SetProxyRunning(false);
            }
            else if (CurState.m_ServiceManager.IsProxyRunning())
            {
                // Everything is ok, the service exists
                CurState.SetProxyRunning(true);
            }

            break;

        case RUN_STATE.DNSCRYPT_TCP:

            if (!CurState.m_ServiceManager.IsServiceRunningInTcpMode())
            {
                if (!CurState.m_ServiceManager.IsServiceRunning())
                {
                    // Not running, launch one
                    WriteToLog("Starting OpenDNS Service - " + CurState.m_ServiceManager.StartServiceProcess(CurState.GetDoDNSCryptTCP()));
                }
                else
                {
                    // Already running, restart
                    CurState.m_ServiceManager.RestartServiceProcess(CurState.GetDoDNSCryptTCP());
                }

                CurState.SetProxyRunning(false);
            }
            else if (CurState.m_ServiceManager.IsProxyRunning())
            {
                // Everything is ok, the service exists
                CurState.SetProxyRunning(true);
            }

            break;

        case RUN_STATE.SERVICE_RESTART:

            CurState.m_ServiceManager.RestartServiceProcess(CurState.GetDoDNSCryptTCP());

            CurState.SetProxyRunning(true);

            break;

        case RUN_STATE.FAIL_OPEN:

            // Keep the proxy running but set NICs to default
            if (!CurState.m_ServiceManager.IsServiceRunning())
            {
                // Not running, launch one
                WriteToLog("Starting OpenDNS Service - " + CurState.m_ServiceManager.StartServiceProcess(CurState.GetDoDNSCryptTCP()));
            }
            else if (CurState.m_ServiceManager.IsServiceRunningInTcpMode() != CurState.GetDoDNSCryptTCP())
            {
                CurState.m_ServiceManager.RestartServiceProcess(CurState.GetDoDNSCryptTCP());
            }

            break;

        case RUN_STATE.FAIL_CLOSED:

            // Keep the proxy running and NICs pointed at it
            if (!CurState.m_ServiceManager.IsServiceRunning())
            {
                // Not running, launch one
                WriteToLog("Starting OpenDNS Service - " + CurState.m_ServiceManager.StartServiceProcess(CurState.GetDoDNSCryptTCP()));
            }
            else if (CurState.m_ServiceManager.IsServiceRunningInTcpMode() != CurState.GetDoDNSCryptTCP())
            {
                CurState.m_ServiceManager.RestartServiceProcess(CurState.GetDoDNSCryptTCP());
            }

            break;

        case RUN_STATE.DEFAULT:

            // All we care about in other states is kill any processes hanging
            // around if we don't need them
            if (CurState.m_ServiceManager.IsServiceRunning())
            {
                CurState.m_ServiceManager.KillServiceProcess();

                CurState.SetProxyRunning(false);
            }

            break;

        default:

            // All we care about in other states is kill any processes hanging
            // around if we don't need them
            if (CurState.m_ServiceManager.IsServiceRunning())
            {
                CurState.m_ServiceManager.KillServiceProcess();

                CurState.SetProxyRunning(false);
            }

            break;
        }
    }