Exemple #1
0
 public void Dispose(int timeoutMs = 500)
 {
     _webExchange.Abort();
     if (_thread != null)
     {
         _thread.Shutdown(timeoutMs);
     }
     _thread = null;
 }
Exemple #2
0
 public Status StartTesting(uint tests, DeviceDescrip deviceToUse, string firmwareFilePath, string paramData)
 {
     _tests        = tests;
     _device       = deviceToUse;
     _firmwarePath = firmwareFilePath;
     _configData   = paramData;
     if (_runningThread == null)
     {
         dotNET.Thread t = new dotNET.Thread(TestThread);
         t.Start();
         _runningThread = t;
         return(Status.Ok);
     }
     else
     {
         return(Status.Busy);
     }
 }
Exemple #3
0
        public Status StartHttpGet(HostNameAndPort hostName, string model, byte deviceID, ActionType action, int timeout = 2000, string extraParams = "")
        {
            if (_thread != null)
            {
                return(Status.Busy);
            }

            _params.hostName    = hostName;
            _params.model       = model;
            _params.deviceID    = deviceID;
            _params.action      = action;
            _params.timeout     = timeout;
            _params.extraParams = extraParams;

            _params.isPOST = false;

            _isDone.Reset();

            _thread = new dotNET.Thread(ExecuteTask);
            _thread.Start();

            return(Status.Ok);
        }
Exemple #4
0
        private void TestThread()
        {
            _actionStatus = Status.Ok;
            _running      = true;
            uint testLoops = 0;

            while (_actionStatus == Status.Ok && _running)
            {
                /* Put binaries onto RIO */
                if ((_tests & SFTP_BINARY_ONTO_RIO) != SFTP_BINARY_ONTO_RIO)
                {
                    //Don't executre Check Process
                }
                else if (_actionStatus == Status.Ok && _running)
                {
                    UpdateRio();
                }

                /* Check if process is running */
                if ((_tests & CHECK_PROCESS_RUNNING) != CHECK_PROCESS_RUNNING)
                {
                    //Don't execute Check Process
                }
                else if (_actionStatus == Status.Ok && _running)
                {
                    CheckProcess();
                }

                /* Check version is correct */
                if ((_tests & CHECK_VERSION_NUMBER) != CHECK_VERSION_NUMBER)
                {
                    //Don't execute Check Version Number
                }
                else if (_actionStatus == Status.Ok && _running)
                {
                    CheckVersionNumber();
                }

                /* Check minimum number of devices */
                if ((_tests & CHECK_NUM_DEVICES) != CHECK_NUM_DEVICES)
                {
                    //Don't execute Check Num Devices
                }
                else if (_actionStatus == Status.Ok && _running)
                {
                    CheckNumDevices(1);
                }

                /* Check Firmware flash succeeds */
                if ((_tests & CHECK_FIRMWARE_FLASH) != CHECK_FIRMWARE_FLASH)
                {
                    //Don't execute Check Firmware Flash
                }
                else if (_actionStatus == Status.Ok && _running)
                {
                    CheckFirmwareFlash(_device, _firmwarePath);
                }

                /* Save configs to device */
                if ((_tests & SAVE_CONFIGS_TO_DEVICE) != SAVE_CONFIGS_TO_DEVICE)
                {
                    //Don't execute Save Configs To Device
                }
                else if (_actionStatus == Status.Ok && _running)
                {
                    SaveConfigsToDevice(_device, _configData);
                }

                /*------------ This must be at end ------------*/
                if ((_tests & REBOOT_RIO) != REBOOT_RIO)
                {
                    //Don't reboot rio
                }
                else if (_actionStatus == Status.Ok && _running)
                {
                    RebootRio();
                }
                ++testLoops;
            }
            if (_actionStatus == Status.Ok)
            {
                Log("Ending test, test is successful.");
                Log("Number of test loops was " + testLoops);
            }
            else if (_failedAction != null)
            {
                Log("Ending test, failure was: " + _failedAction.type.ToString());
                Log("Number of test loops was " + testLoops);
            }
            else
            {
                Log("Ending test, failure is unknown");
                Log("Number of test loops was " + testLoops);
            }

            _running       = false;
            _runningThread = null;
        }