/// <summary> /// Open an Animated Head serial port. /// </summary> /// <param name="comPort"></param> /// <param name="baudRate"></param> /// <returns>true for success</returns> public bool Open(int comPort, int baudRate) { if (_serialPort != null) { Close(); } if (!ValidBaudRate(baudRate)) { throw new System.ArgumentException(Resources.InvalidBaudRate, "baudRate"); } _serialPort = new SerialPort("COM" + comPort.ToString(CultureInfo.InvariantCulture), baudRate, Parity.None, 8, StopBits.One); _serialPort.Handshake = Handshake.None; _serialPort.Encoding = Encoding.ASCII; // that's only for text read, not binary _serialPort.NewLine = "\r\n"; // that's only for text read, not binary _serialPort.ReadTimeout = 1100; if (_ahDataPort == null) { _ahDataPort = new AnimatedHeadDataPort(); } bool serialPortOpened = false; try { if (comPort > 0) { if (TrySerialPort(_serialPort.PortName, baudRate)) { _serialPort.Open(); serialPortOpened = true; _serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived); } } } catch { if (serialPortOpened) { serialPortOpened = false; _serialPort.DataReceived -= new SerialDataReceivedEventHandler(serialPort_DataReceived); } } return(serialPortOpened); }
/// <summary> /// Default AnimatedHeadConnection constructor /// </summary> /// <param name="config"></param> /// <param name="ahDataPort"></param> public AnimatedHeadConnection(AnimatedHeadConfig config, AnimatedHeadDataPort ahDataPort) { this._config = config; this._ahDataPort = ahDataPort; }