public bool RunCommand(BusMasterCommandBase cmd) { if (cmd == null) { return(lastCmdSuccess = false); } string ec = null; if (!ServiceConnectionState(true)) { ec = "SerialPort is not connected or Part is not Online"; } if (string.IsNullOrEmpty(ec)) { if (!lastCmdSuccess) { ec = spFlushAction.Run(); } if (cmd.SP != sp) { cmd.SP = sp; // update commands serial port if needed. if (cmd.ResponseTimeLimit == TimeSpan.Zero) { cmd.ResponseTimeLimit = DefaultResponseTimeLimit; } } if (String.IsNullOrEmpty(ec)) { ec = cmd.RunCmdWrite(); } while (String.IsNullOrEmpty(ec)) { if (cmd.RunIncrementalCmdResponseRead(ref ec)) { break; } } } if (String.IsNullOrEmpty(ec)) { cmd.SetSucceeded(); return(lastCmdSuccess = true); } else { cmd.SetFailed(ec); return(lastCmdSuccess = false); } }
public bool RunCommand(BusMasterCommandBase cmd) { if (cmd == null) return (lastCmdSuccess = false); string ec = null; if (!ServiceConnectionState(true)) ec = "SerialPort is not connected or Part is not Online"; if (string.IsNullOrEmpty(ec)) { if (!lastCmdSuccess) ec = spFlushAction.Run(); if (cmd.SP != sp) { cmd.SP = sp; // update commands serial port if needed. if (cmd.ResponseTimeLimit == TimeSpan.Zero) cmd.ResponseTimeLimit = DefaultResponseTimeLimit; } if (String.IsNullOrEmpty(ec)) ec = cmd.RunCmdWrite(); while (String.IsNullOrEmpty(ec)) { if (cmd.RunIncrementalCmdResponseRead(ref ec)) break; } } if (String.IsNullOrEmpty(ec)) { cmd.SetSucceeded(); return lastCmdSuccess = true; } else { cmd.SetFailed(ec); return lastCmdSuccess = false; } }