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(""); } }
/// <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); } }