コード例 #1
0
        public static string TestModeCharacter(this TestSignalMode value)
        {
            switch (value)
            {
            case TestSignalMode.InternalGround:
                return("0");

            case TestSignalMode.Signal1Slow:
                return("-");

            case TestSignalMode.Signal1Fast:
                return("=");

            case TestSignalMode.DcSignal:
                return("p");

            case TestSignalMode.Signal2Slow:
                return("[");

            case TestSignalMode.Signal2Fast:
                return("]");

            default:
                return("");
            }
        }
コード例 #2
0
        /// <summary>
        /// Start signal test
        /// </summary>
        public async Task <bool> SetSignalTestModeAsync(TestSignalMode mode)
        {
            if (await SettingsLock.WaitAsync(0))
            {
                try
                {
                    Log?.Invoke(this, new LogEventArgs(this, "SetSignalTestModeAsync", $"Setting board to signal test mode {mode}.", LogLevel.DEBUG));

                    //  send command to enter test mode
                    var response = ConfigureBoard(mode.TestModeCharacter());
                    Log?.Invoke(this, new LogEventArgs(this, "StartSignalTestAsync", $"Response:{response}.", LogLevel.DEBUG));
                    return(true);
                }
                finally
                {
                    SettingsLock.Release();
                }
            }
            else
            {
                Log?.Invoke(this, new LogEventArgs(this, "SetSignalTestModeAsync", $"Another process is busy with the settings.", LogLevel.WARN));
                return(false);
            }
        }