public static CommunicationProcessResult WriteSingle <T>(Connection connection, IReporter reporter, int timeout, int retryLimit, ISettingValue <T> setting, T value) { setting.Value = value; SettingProcess process = new SettingProcess(connection, reporter, setting, timeout, retryLimit); CommunicationProcessResult result = process.Write(); return(result); }
public static CommunicationProcessResult WriteSingle <T>(Connection connection, IReporter reporter, ISettingValue <T> setting, T value) { setting.Value = value; SettingProcess process = new SettingProcess(connection, reporter, new ISettingValue[] { setting }, 100, 3); CommunicationProcessResult result = process.Write(); return(result); }
/// <summary> /// Reads a single <see cref="ISettingValue"/>. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="connection">The connection.</param> /// <param name="reporter">The reporter.</param> /// <param name="timeout">The timeout.</param> /// <param name="retryLimit">The retry limit.</param> /// <param name="setting">The setting.</param> /// <param name="value">The value.</param> /// <returns>ImuAsyncProcessResult.</returns> public static CommunicationProcessResult ReadSingle <T>(Connection connection, IReporter reporter, int timeout, int retryLimit, ISettingValue <T> setting, out T value) { SettingProcess process = new SettingProcess(connection, reporter, setting, timeout, retryLimit); CommunicationProcessResult result = process.Read(); switch (result) { case CommunicationProcessResult.Success: value = setting.RemoteValue; break; default: value = default(T); break; } return(result); }
/// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="connection"></param> /// <param name="reporter">Progress reporter.</param> /// <param name="muteToStart"></param> /// <param name="message"></param> /// <param name="value"></param> /// <returns></returns> public static CommunicationProcessResult ReadSingle <T>(Connection connection, IReporter reporter, ISettingValue <T> setting, out T value) // bool muteToStart, { SettingProcess process = new SettingProcess(connection, reporter, new ISettingValue[] { setting }, 100, 3); // muteToStart CommunicationProcessResult result = process.Read(); switch (result) { case CommunicationProcessResult.Success: value = setting.RemoteValue; break; default: value = default(T); break; } return(result); }
private string GetResultText(CommunicationProcessResult result) { switch (result) { case CommunicationProcessResult.Running: return("Process is still running."); case CommunicationProcessResult.Success: return("Process completed successfully."); case CommunicationProcessResult.ConnectionError: return("Messages could not be sent."); case CommunicationProcessResult.RetryLimitExceeded: return("Maximum retry limit exceeded."); default: return("Unknown state."); } }
private static CommunicationProcessResult SendInner <T>(Connection connection, IReporter reporter, int timeout, int retryLimit, CommandCallback callback, out T result) { CommandProcess process = new CommandProcess(connection, reporter, callback, timeout, retryLimit); result = default(T); CommunicationProcessResult processResult = process.Send(); if (processResult == CommunicationProcessResult.Success) { if (callback.ReturnMessage != null && callback.ReturnMessage.Count > 0 && callback.ReturnMessage[0] is T) { result = (T)callback.ReturnMessage[0]; } else { throw new Exception("Command did not return the expected message. " + callback.ReturnMessage.ToString()); } } return(processResult); }