public void EnhancedSerialConnection_OpenAndClose()
        {
            var connection = new EnhancedSerialConnection();

            connection.Open();
            connection.Close();
        }
Esempio n. 2
0
        public void FirmataSetup(String porta)
        {
            try
            {
                if (arduino != null)
                {
                    arduino.Clear();
                    arduino.Dispose();
                }

                connection = new EnhancedSerialConnection(porta, SerialBaudRate.Bps_9600);
                arduino    = new ArduinoSession(connection);

                _COMStatusLabel.Text = porta;
                _MessageLabel.Text   = "Connected.";

                Ready = true;
            }
            catch (Exception e)
            {
                _COMStatusLabel.Text = porta;
                _MessageLabel.Text   = e.Message;

                Ready = false;
            }
        }
        public void EnhancedSerialConnection_Constructor_WithParameters()
        {
            var connection = new EnhancedSerialConnection("COM1", SerialBaudRate.Bps_115200);

            Assert.AreEqual(100, connection.ReadTimeout);
            Assert.AreEqual(100, connection.WriteTimeout);
            Assert.AreEqual(115200, connection.BaudRate);
        }
 public void GetAvailablePorts()
 {
     string[] ports = EnhancedSerialConnection.GetPortNames();
     print("Available ports:");
     foreach (string p in ports)
     {
         print(p);
     }
 }
        public void EnhancedSerialConnection_OpenAndClose()
        {
            if (!AreSerialPortsAvailable())
            {
                return;
            }

            var connection = new EnhancedSerialConnection();

            connection.Open();
            connection.Close();
        }
Esempio n. 6
0
        static void Main(string[] args)
        {
            // DisplayPortCapabilities();

            ISerialConnection connection = new EnhancedSerialConnection("COM4", SerialBaudRate.Bps_57600);

            using (var session = new ArduinoSession(connection))
                PerformBasicTest(session);

            Console.WriteLine("Press a key");
            Console.ReadKey(true);
        }
Esempio n. 7
0
        private ISerialConnection getArduinoConnection()
        {
            Console.WriteLine("Searching for arduino ...");
            ISerialConnection _connection = EnhancedSerialConnection.Find();

            if (_connection == null)
            {
                Console.WriteLine("Arduino not found .... :(");
                return(null);
            }
            Console.WriteLine($"Arduino found in : {_connection.PortName} at {_connection.BaudRate} baud rate.");
            return(_connection);
        }
        public void EnhancedSerialConnection_Constructor_WithParameters()
        {
            if (!AreSerialPortsAvailable())
            {
                return;
            }

            var connection = new EnhancedSerialConnection("COM1", SerialBaudRate.Bps_115200);

            Assert.AreEqual(100, connection.ReadTimeout);
            Assert.AreEqual(100, connection.WriteTimeout);
            Assert.AreEqual(115200, connection.BaudRate);
        }
        public void EnhancedSerialConnection_Constructor_WithoutParameters()
        {
            if (!AreSerialPortsAvailable())
            {
                Assert.ThrowsException <ArgumentNullException>(() => new SerialConnection());
                return;
            }

            var connection = new EnhancedSerialConnection();

            Assert.AreEqual(100, connection.ReadTimeout);
            Assert.AreEqual(100, connection.WriteTimeout);
            Assert.AreEqual(115200, connection.BaudRate);
        }
Esempio n. 10
0
        private static ISerialConnection GetConnection()
        {
            Console.WriteLine("Searching Arduino connection...");
            ISerialConnection connection = EnhancedSerialConnection.Find();

            if (connection == null)
            {
                Console.WriteLine("No connection found. Make shure your Arduino board is attached to a USB port.");
            }
            else
            {
                Console.WriteLine($"Connected to port {connection.PortName} at {connection.BaudRate} baud.");
            }

            return(connection);
        }
Esempio n. 11
0
        protected virtual void Dispose(bool disposing)
        {
            if (disposing)
            {
                // free managed resources
                if (connection != null)
                {
                    connection.Dispose();
                    connection = null;
                }

                if (arduino != null)
                {
                    arduino.Dispose();
                    arduino = null;
                }
            }
        }
        public IFirmataProtocol EstablishConnection(string port)
        {
            print("Searching for Arduino connection...");

            if (port == "auto")
            {
                connection          = EnhancedSerialConnection.Find();
                connection.BaudRate = 9600;

                if (connection == null)
                {
                    print(NoConnect);
                }
                else
                {
                    print(System.String.Format("Connected to port {0} at {1} baud rate.", connection.PortName, connection.BaudRate));
                    session = new ArduinoSession(connection)
                    {
                        TimeOut = 3000
                    };
                    protocol = session;
                }
            }
            else
            {
                connection = new EnhancedSerialConnection(port, SerialBaudRate.Bps_9600);

                if (connection == null)
                {
                    print(NoConnect);
                }
                else
                {
                    print(System.String.Format("Connected to port {0} at {1} baud rate.", connection.PortName, connection.BaudRate));
                    session = new ArduinoSession(connection)
                    {
                        TimeOut = 3000
                    };
                    protocol = session;
                }
            }
            return(protocol);
        }
Esempio n. 13
0
 private void SetConnection()
 {
     try
     {
         _connection = EnhancedSerialConnection.Find();
         if (_connection == null)
         {
             _comOK = false;
         }
         else
         {
             _comOK = true;
         }
     }
     catch
     {
         _comOK = false;
         _connection.Close();
     }
 }
Esempio n. 14
0
        private void DoTurnLight(bool on)
        {
            if (this.session == null)
            {
                this.connection = EnhancedSerialConnection.Find();
                if (this.connection != null)
                {
                    this.session = new ArduinoSession(this.connection);
                    session.SetDigitalPinMode(PWM_PIN, PinMode.PwmOutput);
                    session.SetDigitalPinMode(LED_PIN, PinMode.DigitalOutput);
                    SetState($"Firmata on {connection.PortName} (PWM pin {PWM_PIN})");
                }
            }

            if (this.session != null)
            {
                int pwmWidthByte = ((LangLedMain.BrightnessPercentage * 255) / 100);
                session.SetDigitalPin(PWM_PIN, on ? pwmWidthByte : 0);
                session.SetDigitalPin(LED_PIN, on);
            }
        }
Esempio n. 15
0
        private void findArduino() // Try finding the arduino
        {
            ISerialConnection connection = EnhancedSerialConnection.Find();

            if (connection != null)
            {
                session            = new ArduinoSession(connection);
                lblConnection.Text = "Arduino found!";
                session.SetDigitalPinMode(redPin, PinMode.PwmOutput);
                session.SetDigitalPinMode(greenPin, PinMode.PwmOutput);
                session.SetDigitalPinMode(bluePin, PinMode.PwmOutput);
                session.SetDigitalPin(redPin, btnColor.BackColor.R);
                session.SetDigitalPin(greenPin, btnColor.BackColor.G);
                session.SetDigitalPin(bluePin, btnColor.BackColor.B);
                btnRetry.Hide();
            }
            else
            {
                lblConnection.Text = "The arduino was not found...";
                btnRetry.Show();
            }
        }
Esempio n. 16
0
        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);
        }
Esempio n. 17
0
        private static ISerialConnection GetConnection()
        {
            ISerialConnection connection = null;

            Console.WriteLine("Searching for serial ports");
            var ports = SerialPort.GetPortNames();

            foreach (var port in ports.Where(p => p != "COM3" && p != "COM1"))
            {
                try
                {
                    connection = new EnhancedSerialConnection(port, SerialBaudRate.Bps_57600);
                    Console.WriteLine($"Connected to port {connection.PortName} at {connection.BaudRate} baud.");
                    break;
                }
                catch (Exception e)
                {
                    Console.WriteLine("Failed to connect serial port: " + e);
                    connection = null;
                }
            }

            return(connection);
        }
Esempio n. 18
0
        static void SimpelTest()
        {
            var connection = new EnhancedSerialConnection("COM6", SerialBaudRate.Bps_57600);
            var session = new ArduinoSession(connection, timeOut: 250);
            IFirmataProtocol firmata = session;

            firmata.AnalogStateReceived += session_OnAnalogStateReceived;
            firmata.DigitalStateReceived += session_OnDigitalStateReceived;

            Firmware firm = firmata.GetFirmware();
            Console.WriteLine();
            Console.WriteLine("Firmware: {0} {1}.{2}", firm.Name, firm.MajorVersion, firm.MinorVersion);
            Console.WriteLine();

            ProtocolVersion version = firmata.GetProtocolVersion();
            Console.WriteLine();
            Console.WriteLine("Protocol version: {0}.{1}", version.Major, version.Minor);
            Console.WriteLine();

            BoardCapability caps = firmata.GetBoardCapability();
            Console.WriteLine();
            Console.WriteLine("Board Capabilities:");

            foreach (var pincap in caps.PinCapabilities)
            {
                Console.WriteLine("Pin {0}: Input: {1}, Output: {2}, Analog: {3}, Analog-Res: {4}, PWM: {5}, PWM-Res: {6}, Servo: {7}, Servo-Res: {8}",
                    pincap.PinNumber, pincap.DigitalInput, pincap.DigitalOutput, pincap.Analog, pincap.AnalogResolution, pincap.Pwm, pincap.PwmResolution,
                    pincap.Servo, pincap.ServoResolution);
            }
            Console.WriteLine();

            var analogMapping = firmata.GetBoardAnalogMapping();
            Console.WriteLine("Analog channel mappings:");

            foreach (var mapping in analogMapping.PinMappings)
            {
                Console.WriteLine("Channel {0} is mapped to pin {1}.", mapping.Channel, mapping.PinNumber);
            }

            firmata.ResetBoard();

            Console.WriteLine();
            Console.WriteLine("Digital port states:");

            for (int x = 0; x < 20; x++)
            {
                var pinState = firmata.GetPinState(x);

                Console.WriteLine("Pin {0}: Mode = {1}, Value = {2}", x, pinState.Mode, pinState.Value);
            }
            Console.WriteLine();

            firmata.SetDigitalPort(0, 0x04);
            firmata.SetDigitalPort(1, 0xff);
            firmata.SetDigitalPinMode(10, PinMode.DigitalOutput);
            firmata.SetDigitalPinMode(11, PinMode.ServoControl);
            firmata.SetDigitalPin(11, 90);
            Thread.Sleep(500);
            int hi = 0;

            for (int a = 0; a <= 179; a += 1)
            {
                firmata.SetDigitalPin(11, a);
                Thread.Sleep(100);
                firmata.SetDigitalPort(1, hi);
                hi ^= 4;
                Console.Write("{0};", a);
            }
            Console.WriteLine();
            Console.WriteLine();

            firmata.SetDigitalPinMode(6, PinMode.DigitalInput);

            //firmata.SetDigitalPortState(2, 255);
            //firmata.SetDigitalPortState(3, 255);

            firmata.SetSamplingInterval(500);
            firmata.SetAnalogReportMode(0, false);

            firmata.SetDigitalReportMode(0, true);
            firmata.SetDigitalReportMode(1, true);
            firmata.SetDigitalReportMode(2, true);

            for (int x = 0; x < 20; x++)
            {
                PinState state = firmata.GetPinState(x);
                Console.WriteLine("Digital {1} pin {0}: {2}", x, state.Mode, state.Value);
            }
            Console.WriteLine();



            Console.ReadLine();
            firmata.SetAnalogReportMode(0, false);
            firmata.SetDigitalReportMode(0, false);
            firmata.SetDigitalReportMode(1, false);
            firmata.SetDigitalReportMode(2, false);
            Console.WriteLine("Ready.");
        }
Esempio n. 19
0
        static void SimpelTest()
        {
            var connection           = new EnhancedSerialConnection("COM6", SerialBaudRate.Bps_57600);
            var session              = new ArduinoSession(connection, timeOut: 250);
            IFirmataProtocol firmata = session;

            firmata.AnalogStateReceived  += session_OnAnalogStateReceived;
            firmata.DigitalStateReceived += session_OnDigitalStateReceived;

            Firmware firm = firmata.GetFirmware();

            Console.WriteLine();
            Console.WriteLine("Firmware: {0} {1}.{2}", firm.Name, firm.MajorVersion, firm.MinorVersion);
            Console.WriteLine();

            ProtocolVersion version = firmata.GetProtocolVersion();

            Console.WriteLine();
            Console.WriteLine("Protocol version: {0}.{1}", version.Major, version.Minor);
            Console.WriteLine();

            BoardCapability caps = firmata.GetBoardCapability();

            Console.WriteLine();
            Console.WriteLine("Board Capabilities:");

            foreach (var pincap in caps.PinCapabilities)
            {
                Console.WriteLine("Pin {0}: Input: {1}, Output: {2}, Analog: {3}, Analog-Res: {4}, PWM: {5}, PWM-Res: {6}, Servo: {7}, Servo-Res: {8}",
                                  pincap.PinNumber, pincap.DigitalInput, pincap.DigitalOutput, pincap.Analog, pincap.AnalogResolution, pincap.Pwm, pincap.PwmResolution,
                                  pincap.Servo, pincap.ServoResolution);
            }
            Console.WriteLine();

            var analogMapping = firmata.GetBoardAnalogMapping();

            Console.WriteLine("Analog channel mappings:");

            foreach (var mapping in analogMapping.PinMappings)
            {
                Console.WriteLine("Channel {0} is mapped to pin {1}.", mapping.Channel, mapping.PinNumber);
            }

            firmata.ResetBoard();

            Console.WriteLine();
            Console.WriteLine("Digital port states:");

            for (int x = 0; x < 20; x++)
            {
                var pinState = firmata.GetPinState(x);

                Console.WriteLine("Pin {0}: Mode = {1}, Value = {2}", x, pinState.Mode, pinState.Value);
            }
            Console.WriteLine();

            firmata.SetDigitalPort(0, 0x04);
            firmata.SetDigitalPort(1, 0xff);
            firmata.SetDigitalPinMode(10, PinMode.DigitalOutput);
            firmata.SetDigitalPinMode(11, PinMode.ServoControl);
            firmata.SetDigitalPin(11, 90);
            Thread.Sleep(500);
            int hi = 0;

            for (int a = 0; a <= 179; a += 1)
            {
                firmata.SetDigitalPin(11, a);
                Thread.Sleep(100);
                firmata.SetDigitalPort(1, hi);
                hi ^= 4;
                Console.Write("{0};", a);
            }
            Console.WriteLine();
            Console.WriteLine();

            firmata.SetDigitalPinMode(6, PinMode.DigitalInput);

            //firmata.SetDigitalPortState(2, 255);
            //firmata.SetDigitalPortState(3, 255);

            firmata.SetSamplingInterval(500);
            firmata.SetAnalogReportMode(0, false);

            firmata.SetDigitalReportMode(0, true);
            firmata.SetDigitalReportMode(1, true);
            firmata.SetDigitalReportMode(2, true);

            for (int x = 0; x < 20; x++)
            {
                PinState state = firmata.GetPinState(x);
                Console.WriteLine("Digital {1} pin {0}: {2}", x, state.Mode, state.Value);
            }
            Console.WriteLine();



            Console.ReadLine();
            firmata.SetAnalogReportMode(0, false);
            firmata.SetDigitalReportMode(0, false);
            firmata.SetDigitalReportMode(1, false);
            firmata.SetDigitalReportMode(2, false);
            Console.WriteLine("Ready.");
        }