static public ArduinoDeviceManager Connect(String nodeID, String port, SerialBaudRate bps, int timeOut, Action <ADMMessage, ArduinoDeviceManager> listener) { if (String.IsNullOrEmpty(nodeID)) { throw new Exception("ArduinoDeviceManager::Connect ... nodeID cannot be empty or null"); } ISerialConnection connection = new XBeeFirmataSerialConnection(nodeID, port, bps); if (connection != null) { var session = new ArduinoSession(connection, timeOut); try { var mgr = new ArduinoDeviceManager(session, listener, port, nodeID); mgr.Connection = connection; return(mgr); } catch (Exception e) { if (connection.IsOpen) { connection.Close(); } throw e; } } return(null); }
public MonoSerialConnection(string portName, SerialBaudRate baudRate) { PortName = portName; BaudRate = (int)baudRate; cancellationTokenSource = new CancellationTokenSource(); serialPort = new SerialPort(portName, (int)baudRate); internalBuffer = new Queue<byte>(); }
public ArduinoUnoR3( bool isEnabled, string comPort, SerialBaudRate baudRate, string instanceName, string instanceDescription) : base(isEnabled, comPort, "AUR3", baudRate, displayData: new DeviceDisplayData( "Arduino Uno R3", "Arduino Uno board", instanceName, instanceDescription)) { }
/// <summary>Инициализировать экземпляр базового класса Arduino-исполнителя. /// Такие исполнители работают на базе протокола Firmata, сервер использует /// библиотеку SolidSoils.Arduino для коммутации с ними. /// </summary> /// /// <param name="isEnabled">Используется ли этот исполнитель в системе или нет.</param> /// <param name="comPort">COM-порт, на котором необходимо запустить службу Firmata /// для этого исполнителя</param> /// <param name="driverId">Индентификатор драйвера исполнителя</param> /// <param name="baudRate">Скорость подключения к исполнителю, бод</param> /// <param name="parent">Если исполнитель является подчинённым, то — /// объект материнского исполнителя</param> /// <param name="displayData">Информация для отображения в вершителях</param> public ArduinoDevice( bool isEnabled, string comPort, string driverId, SerialBaudRate baudRate = SerialBaudRate.Bps_115200, AqAbstractDevice parent = null, DeviceDisplayData displayData = default) : base(isEnabled, parent is null, true, "Arduino", comPort, driverId, ConnectionType.WireFirmata, displayData) { ComPort = comPort; Parent = parent; BaudRate = baudRate; }
static public ArduinoDeviceManager Connect(String port, SerialBaudRate bps, int timeOut, Action <ADMMessage, ArduinoDeviceManager> listener) { ISerialConnection connection = new EnhancedSerialConnection(port, bps); if (connection != null) { var session = new ArduinoSession(connection, timeOut); try { var mgr = new ArduinoDeviceManager(session, listener, port); return(mgr); } catch (Exception e) { if (connection.IsOpen) { connection.Close(); } throw e; } } return(null); }
/// <summary> /// Initializes a new instance of <see cref="SerialConnection"/> class on the given serial port and at the given baud rate. /// </summary> /// <param name="portName">The port name (e.g. 'COM3')</param> /// <param name="baudRate">The baud rate</param> public SerialConnection(string portName, SerialBaudRate baudRate) : base(portName, (int)baudRate) { ReadTimeout = 100; WriteTimeout = 100; }
public SerialPort() { comDevice = IntPtr.Zero; m_Port = SerialCommPort.COM02; m_BaudRate = SerialBaudRate.br004800; m_DataWidth = SerialDataWidth.dw8Bits; m_EnableDTROnOpen = true; m_EnableRTSOnOpen = true; Delay = 100; m_Priority = ThreadPriority.Normal; m_InputBuffer = 0x1000; m_OutputBuffer = 0x1000; m_ReadIntervalTimeout = -1; m_WriteTotalTimeoutMultiplier = 100; m_WriteTotalTimeoutConstant = 0x3e8; NativeMethods.timeBeginPeriod(1); }
static public ArduinoDeviceManager Connect(String nodeID, String port, SerialBaudRate bps, Action <ADMMessage, ArduinoDeviceManager> listener) { return(Connect(nodeID, port, bps, RESPONSE_TIMEOUT, listener)); }
static public ArduinoDeviceManager Connect(String port, SerialBaudRate bps) { return(Connect(port, bps, RESPONSE_TIMEOUT, null)); }
/// <summary> /// Initializes a new instance of <see cref="SerialConnection"/> class on the given serial port and at the given baud rate. /// </summary> /// <param name="portName">The port name (e.g. 'COM3')</param> /// <param name="baudRate">The baud rate</param> public SerialConnection(string portName, SerialBaudRate baudRate) : base(portName, (int) baudRate) { ReadTimeout = 100; WriteTimeout = 100; }
private static ISerialConnection FindConnection(Func<ArduinoSession, bool> isDeviceAvailable, string[] portNames, SerialBaudRate[] baudRates) { for (int x = portNames.Length - 1; x >= 0; x--) { foreach (SerialBaudRate rate in baudRates) { try { using (var connection = new EnhancedSerialConnection(portNames[x], rate)) { using (var session = new ArduinoSession(connection, 100)) { Debug.WriteLine("{0}:{1}; ", portNames[x], (int)rate); if (isDeviceAvailable(session)) return new EnhancedSerialConnection(portNames[x], rate); } } } catch (UnauthorizedAccessException) { // Port is not available. Debug.WriteLine("{0} NOT AVAILABLE; ", portNames[x]); break; } catch (TimeoutException) { // Baudrate or protocol error. } } } return null; }
public Config() { switch (ConfigurationManager.AppSettings["BaudRate"]) { case "115200": baudRate = SerialBaudRate.br115200; break; case "9600": baudRate = SerialBaudRate.br009600; break; case "14400": baudRate = SerialBaudRate.br014400; break; case "19200": baudRate = SerialBaudRate.br019200; break; case "38400": baudRate = SerialBaudRate.br038400; break; case "57600": baudRate = SerialBaudRate.br057600; break; case "128000": baudRate = SerialBaudRate.br128000; break; case "7200": baudRate = SerialBaudRate.br007200; break; case "4800": baudRate = SerialBaudRate.br004800; break; case "2400": baudRate = SerialBaudRate.br002400; break; case "1800": baudRate = SerialBaudRate.br001800; break; case "1200": baudRate = SerialBaudRate.br001200; break; case "600": baudRate = SerialBaudRate.br000600; break; default: baudRate = SerialBaudRate.br000300; break; } switch (Int32.Parse(ConfigurationManager.AppSettings["DataWidth"])) { case 8: dataWidth = SerialDataWidth.dw8Bits; break; case 7: dataWidth = SerialDataWidth.dw7Bits; break; case 6: dataWidth = SerialDataWidth.dw6Bits; break; default: dataWidth = SerialDataWidth.dw5Bits; break; } switch (Int32.Parse(ConfigurationManager.AppSettings["StopBits"])) { case 1: stopBits = SerialStopBits.sb1Bit; break; case 2: stopBits = SerialStopBits.sb2Bits; break; default: stopBits = SerialStopBits.sb1_5Bits; break; } switch (ConfigurationManager.AppSettings["ParityBits"].ToUpper()) { case "NONE": parityBits = SerialParityBits.pbNone; break; case "EVEN": parityBits = SerialParityBits.pbEven; break; case "ODD": parityBits = SerialParityBits.pbOdd; break; case "SPACE": parityBits = SerialParityBits.pbSpace; break; default: parityBits = SerialParityBits.pbMark; break; } port = SerialPort.StringToSerialCommPort(ConfigurationManager.AppSettings["Port"].ToUpper()); }
/// <summary> /// Initializes a new instance of <see cref="EnhancedSerialConnection"/> class on the given serial port and at the given baud rate. /// </summary> /// <param name="portName">The port name (e.g. 'COM3')</param> /// <param name="baudRate">The baud rate</param> public SerialConnection(string portName, SerialBaudRate baudRate) : this(portName, (int)baudRate) { }