public void FindSerialConnection_Serial()
 {
     using (var arduinoConnection = SerialConnection.Find("Hello?", "Arduino!"))
     {
         Assert.IsNotNull(arduinoConnection);
     }
 }
        protected override Task <IObservable <LocalisationData> > InitializeCore()
        {
            return(Task.Run(
                       () =>
            {
                IObservable <byte[]> packets;

                switch (this.ConnectionType)
                {
                case ConnectionType.Serial:
                    packets = ToNcomPacket(SerialConnection.CreateByteListener(this.SerialPortName, this.SerialBaudRate, Parity.None, 8, StopBits.One));
                    break;

                case ConnectionType.Udp:
                    packets = UdpConnection.CreateListener(this.RemoteAddress, this.UdpListenerPort).Select(udpResult => udpResult.Buffer);
                    break;

                default:
                    throw new NotSupportedException(string.Format("Connection type '{0}' is not supported.", this.ConnectionType));
                }

                return (
                    from geoData in ToGeoData(packets)
                    select new LocalisationData {
                    RawData = geoData,
                    GpsStatus = (IsInitializing(geoData) ? GpsStatus.Initializing : geoData.PositionData.Longitude == 0 && geoData.PositionData.Latitude == 0 ? GpsStatus.SignalLost : GpsStatus.Reliable)
                }).Publish().RefCount();
            }));
        }
Example #3
0
        private void buttonConnection_Click(object sender, EventArgs e)
        {
            ConnectionForm form = new ConnectionForm(portName_, baudRate_);

            if (form.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            portName_ = form.PortName;
            baudRate_ = form.BaudRate;

            CloseConnection();
            if (portName_ != null)
            {
                try
                {
                    connection_ = new SerialConnection(portName_, baudRate_);
                }
                catch (Exception)
                {
                }

                if (connection_ != null)
                {
                    SendCommand('c', 1, this.ReceiveCapabilities);
                    SendCommand('t', 8, this.ReceiveMotorLastAngles);
                    SendCommand('h', 4, this.ReceiveAltAzmResolutionFirstTime);
                }
            }
            UpdateUI(false);
        }
Example #4
0
        public static void Main(string[] args)
        {
            if (args.Length < 1)
            {
                Console.WriteLine("Parameter ComPort needed.");
                return;
            }

            string comPort = args[0];

            using (SerialConnection connection = new SerialConnection(comPort))
                using (ELM327 dev = new ELM327(connection, new OBDConsoleLogger(OBDLogLevel.Debug)))
                {
                    dev.SubscribeDataReceived <EngineRPM>((sender, data) => Console.WriteLine("EngineRPM: " + data.Data.Rpm));
                    dev.SubscribeDataReceived <VehicleSpeed>((sender, data) => Console.WriteLine("VehicleSpeed: " + data.Data.Speed));

                    dev.SubscribeDataReceived <IOBDData>((sender, data) => Console.WriteLine($"PID {data.Data.PID.ToHexString()}: {data.Data}"));

                    dev.Initialize();
                    dev.RequestData <FuelType>();
                    for (int i = 0; i < 5; i++)
                    {
                        dev.RequestData <EngineRPM>();
                        dev.RequestData <VehicleSpeed>();
                        Thread.Sleep(1000);
                    }
                }
            Console.ReadLine();

            //Async example
            //MainAsync(comPort).Wait();

            //Console.ReadLine();
        }
Example #5
0
 private static void AutoOpenTest()
 {
     for (int x = 0; x < 1; x++)
     {
         var a = SerialConnection.FindSerialConnection();
     }
 }
    // Connect to the serial port
    private void btn_Connect_Click(object sender, EventArgs e)
    {
        if (port == null)
        {
            // Port is closed

            int baudrate = -1;
            try {
                baudrate = int.Parse(cmb_baudRate.Text);
            } catch { }

            if (baudrate < 0)
            {
                btn_Connect.BackColor = colorClosed;
                Program.errors.Add("Faulty baud rate.");
            }
            else
            {
                btn_Connect.BackColor = colorOpen;
                port = new SerialConnection(cmb_port.Text, baudrate, this);
                port.Open();
                timerbuffer.Start();
            }
        }
        else
        {
            // Port is open
            btn_Connect.BackColor = colorClosed;
            if (port.IsOpen())
            {
                port.Close();
            }
            timerbuffer.Stop();
        }
    }
Example #7
0
    private void WindowStatus_Load(object sender, EventArgs e)
    {
        indexSettings = new IndexSettings(panel_IndexSettings);
        indexStats    = new IndexStats(indexSettings, panel_IndexStats, btn_EditMode);

        joystickSettings = new JoystickSettings();


        //add all available com port elements to com port combobox
        cmb_comport.Items.AddRange(SerialConnection.GetPortList());
        try { cmb_comport.SelectedIndex = 1; } catch { }                                        //load index 1 (COM5) as default

        //temp, initialize status[0]
        st.status[0] = 1;

        // Load all settings
        graphicsCreator = new GraphicsCreator(pan_graphicsCreator);
        graphicToolbox  = new GraphicToolbox(pan_graphicsCreator, pan_graphicToolbox, rightclickMenu);
        ProgramSaverLoader.Load();

        // Start the st_register send timer
        tim_SendCommandsDelay.Tick += ST_Register.SendCommands;

        //load local IP address into communication tabs ethernet server settings
        txt_comm_serverip.Text   = GetLocalIPAddress();
        txt_comm_serverport.Text = "80";
    }
Example #8
0
        public static async Task Main(string[] args)
        {
            if (args.Length < 1)
            {
                Console.WriteLine("Parameter ComPort needed.");
                return;
            }

            string comPort = args[0];

            Console.CancelKeyPress           += ConsoleOnCancelKeyPress;
            using SerialConnection connection = new SerialConnection(comPort);
            using ELM327 dev = new ELM327(connection, new OBDConsoleLogger(OBDLogLevel.Debug));
            dev.SubscribeDataReceived <EngineRPM>((sender, data) => Console.WriteLine("EngineRPM: " + data.Data.Rpm));
            dev.SubscribeDataReceived <VehicleSpeed>((sender, data) => Console.WriteLine("VehicleSpeed: " + data.Data.Speed));

            dev.SubscribeDataReceived <IOBDData>((sender, data) => Console.WriteLine($"PID {((byte)data.Data.PID).ToHexString()}: {data.Data}"));

            dev.Initialize();
            dev.RequestData <FuelType>();
            while (_requestData)
            {
                dev.RequestData <EngineRPM>();
                dev.RequestData <VehicleSpeed>();
                await Task.Delay(1000);
            }
        }
Example #9
0
 private void SendCommand(SerialConnection connection, byte[] cmd, int receiveCnt, ReceiveDelegate receiveDelegate)
 {
     if (connection_ != null)
     {
         connection_.SendReceiveRequest(cmd, receiveCnt, new BaseConnectionHandler(this, receiveDelegate, connection));
     }
 }
 public void FindSerialConnection_FirmataEnabled()
 {
     using (var arduinoConnection = SerialConnection.Find())
     {
         Assert.IsNotNull(arduinoConnection);
     }
 }
Example #11
0
        /// <summary>
        /// Autodetect monochromator controller in connected devices
        /// </summary>
        /// <returns>Controller's device name</returns>
        /// <exception cref="ControllerDetectionException"></exception>
        public string Autodetect()
        {
            // Get connected controllers
            var controllers = Controllers();

            foreach (var controller in controllers)
            {
                try {
                    // Open connection
                    using var conn = new SerialConnection(controller, 1000);
                    conn.Open();

                    // Check connection
                    if (IsMonochromator(conn))
                    {
                        Logger.Info($"Autodection has chosen: {controller}");
                        return(controller);
                    }
                } catch (Exception e) {
                    Logger.Error(e);
                }
            }

            throw new ControllerDetectionException(controllers);
        }
Example #12
0
 private void SendCommand(SerialConnection connection, char cmd, int receiveCnt, ReceiveDelegate receiveDelegate)
 {
     if (connection != null)
     {
         connection.SendReceiveRequest(new byte[] { (byte)cmd }, receiveCnt, new BaseConnectionHandler(this, receiveDelegate, connection));
     }
 }
Example #13
0
        public MainViewModel()
        {
            var connection = new SerialConnection("COM3", SerialBaudRate.Bps_115200);
            var session    = new ArduinoSession(connection);

            session.CreateReceivedStringMonitor().Subscribe(this);
        }
Example #14
0
 public void OpenSerialConnection(string portName, int baudRate, int dataBits, StopBits stopBits, Parity parity)
 {
     spManager              = new SerialConnection(portName, baudRate, dataBits, stopBits, parity);
     spManager.OnTelemetry += SerialPort_OnTelemetry;
     spManager.OnError     += SerialPort_OnError;
     spManager.Open();
 }
Example #15
0
        public void CheckOpenConnectionBadPortName()
        {
            _serialParameters.PortName = "JUNK";
            SerialConnection sc = new SerialConnection(_serialParameters);

            sc.Open();
        }
Example #16
0
    public static SerialConnection OpenConnection()
    {
        if (connection == null)
        {
            connection = new SerialConnection();
            string portname, baudrate, parity, databits, stopbits, handshake;

            portname  = settings.Read("SERIAL PORT PROPERTIES", "PORT_NAME");
            baudrate  = settings.Read("SERIAL PORT PROPERTIES", "BAUD_RATE");
            parity    = settings.Read("SERIAL PORT PROPERTIES", "PARITY");
            databits  = settings.Read("SERIAL PORT PROPERTIES", "DATA_BITS");
            stopbits  = settings.Read("SERIAL PORT PROPERTIES", "STOP_BITS");
            handshake = settings.Read("SERIAL PORT PROPERTIES", "HANDSHAKE");

            connection.SerialPort           = new SerialPort(); //error here
            connection.SerialPort.PortName  = portname;
            connection.SerialPort.BaudRate  = int.Parse(baudrate);
            connection.SerialPort.Parity    = (Parity)Enum.Parse(typeof(Parity), parity, true);
            connection.SerialPort.DataBits  = int.Parse(databits);
            connection.SerialPort.StopBits  = (StopBits)Enum.Parse(typeof(StopBits), stopbits, true);
            connection.SerialPort.Handshake = (Handshake)Enum.Parse(typeof(Handshake), handshake, true);

            connection.SerialPort.Open();
            connection.SerialPort.ReadTimeout   = 200;
            connection.SerialPort.DataReceived += new SerialDataReceivedEventHandler(connection.serialPort1_DataReceived);
        }
Example #17
0
        static void Main(string[] args)
        {
            try
            {
                var connection = new SerialConnection("COM5", SerialBaudRate.Bps_57600);
                var session    = new ArduinoSession(connection, timeOut: 250);

                Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e)
                {
                    e.Cancel = true;
                    running  = false;
                };

                IFirmataProtocol firmata = (IFirmataProtocol)session;

                int led1 = 12;
                int led2 = 11;
                int led3 = 10;

                firmata.SetDigitalPinMode(led1, PinMode.DigitalOutput);
                firmata.SetDigitalPinMode(led2, PinMode.DigitalOutput);
                firmata.SetDigitalPinMode(led3, PinMode.DigitalOutput);

                while (running)
                {
                    // led 1
                    Console.WriteLine("Turn on LED 1");
                    firmata.SetDigitalPin(led1, true);
                    firmata.SetDigitalPin(led2, false);
                    firmata.SetDigitalPin(led3, false);
                    Thread.Sleep(1000); // sleep

                    // led 2
                    Console.WriteLine("Turn on LED 2");
                    firmata.SetDigitalPin(led1, false);
                    firmata.SetDigitalPin(led2, true);
                    firmata.SetDigitalPin(led3, false);
                    Thread.Sleep(1000);

                    // led 3
                    Console.WriteLine("Turn on LED 3");
                    firmata.SetDigitalPin(led1, false);
                    firmata.SetDigitalPin(led2, false);
                    firmata.SetDigitalPin(led3, true);
                    Thread.Sleep(1000);
                }
                // turn off LEDs
                firmata.SetDigitalPin(led1, false);
                firmata.SetDigitalPin(led2, false);
                firmata.SetDigitalPin(led3, false);

                connection.Close();
            }
            catch (Exception err)
            {
                Console.WriteLine(err);
            }
            Console.WriteLine("Program exit. Press ENTER to close.");
            Console.ReadLine();
        }
Example #18
0
        public ConnectionViewModel(ILogger logger)
        {
            DisplayName = "Connection";
            Connections = new List <IConnection>();
            _serial     = new SerialConnection();
            if (_serial.AvailablePorts.Any(x => x.Equals(Settings.Default.SerialPort, StringComparison.InvariantCultureIgnoreCase)))
            {
                _serial.Portname = Settings.Default.SerialPort;
            }
            _serial.Baudrate = Settings.Default.Baudrate;

            Connections.Add(_serial);
            _udp            = new UdpConnection(logger);
            _udp.TerminalIp = Settings.Default.TerminalIp;
            _udp.Port       = Settings.Default.NetworkPort;
            Connections.Add(_udp);

            if (Settings.Default.UseSerialPort)
            {
                IsSerialConnection = true;
            }
            else
            {
                IsNetworkConnection = true;
            }
        }
        public void EnhancedSerialConnection_OpenAndClose()
        {
            var connection = new SerialConnection();

            connection.Open();
            connection.Close();
        }
Example #20
0
        private void btnExecute_Click(object sender, EventArgs e)
        {
            try
            {
                var connection = new SerialConnection("COM5", SerialBaudRate.Bps_57600);
                var session    = new ArduinoSession(connection, timeOut: 250);

                IFirmataProtocol firmata = (IFirmataProtocol)session;

                int redPin   = 9;
                int greenPin = 10;
                int bluePin  = 11;

                firmata.SetDigitalPinMode(redPin, PinMode.PwmOutput);
                firmata.SetDigitalPinMode(greenPin, PinMode.PwmOutput);
                firmata.SetDigitalPinMode(bluePin, PinMode.PwmOutput);

                firmata.SetDigitalPin(redPin, redVal);
                firmata.SetDigitalPin(greenPin, greenVal);
                firmata.SetDigitalPin(bluePin, blueVal);

                connection.Close();
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }
Example #21
0
 // Start is called before the first frame update
 void Start()
 {
     // コントローラに必要なので追加
     serial = gameObject.AddComponent <SerialConnection>();
     serial.SetSize(sizeof(float) * (int)Shoulder.Max);
     data = new float[(int)Shoulder.Max];
     DontDestroyOnLoad(gameObject);
 }
Example #22
0
 private void SerialSend(SerialConnection conn, string command)
 {
     try{
         conn.WriteLine(command);
     } catch (System.NullReferenceException) {
         MessageBox.Show("Serial connection not established");
     }
 }
Example #23
0
        public void SerialConnection_OpenAndDoubleClose()
        {
            var connection = new SerialConnection();

            connection.Open();
            connection.Close();
            connection.Close();
        }
        public void EnhancedSerialConnection_Constructor_WithParameters()
        {
            var connection = new SerialConnection("COM1", SerialBaudRate.Bps_115200);

            //Assert.AreEqual(100, connection.ReadTimeout);
            //Assert.AreEqual(100, connection.WriteTimeout);
            Assert.AreEqual(115200, connection.BaudRate);
        }
        public void SerialConnection_Constructor_WithoutParameters()
        {
            var connection = new SerialConnection();

            //Assert.AreEqual(100, connection.ReadTimeout);
            //Assert.AreEqual(100, connection.WriteTimeout);
            Assert.AreEqual(115200, connection.BaudRate);
        }
Example #26
0
    static void Main(string[] args)
    {
        bool error = false;
        if (args.Length != 2) {
            Console.WriteLine("Syntax: program.exe <port> <baudrate>");
            Console.WriteLine("port        - can be in form of /dev/ttyS0 or com2 or /udp/ipaddress/port");
            Console.WriteLine("baudrate    - any baudrate like 19200 (for udp baudrate could be any number)");
            Console.WriteLine("");
            Console.WriteLine("example: program.exe /dev/ttyUSB0 19200");
            Console.WriteLine("example: program.exe /udp/192.168.0.10/1100 0");
            error = true;
            return;
        }

        if (!error) {
            //Console.WriteLine("arg0: " + args[0] + "\n");
            argPort = args[0];
            argBaud = Int32.Parse(args[1]);
        }

        if (!error) {
            if (DEBUG_LEVEL>0) {
                Console.WriteLine("canDaemon");
                Console.WriteLine("Commands:");
                //Console.WriteLine("reset - reset communication.");
                Console.WriteLine("exit  - exit program");
                Console.WriteLine("");
                Thread.Sleep(1000);
            }

            sc = new SerialConnection();
            try {
                sc.setConfiguration(argBaud, System.IO.Ports.Parity.None, argPort, System.IO.Ports.StopBits.One, 8, false);
            }
            catch (Exception e) { Console.WriteLine("Error: " + e.Message); }
            if (!sc.open()) {
                Console.WriteLine("Error opening port to target");
                //... här ska man testa om igen...

            } else {

                d = new Daemon(sc);
                tcps = new TcpServer(1200);
                d.addServer(tcps);

                Thread t = new Thread(d.thread);
                t.Start();

                string instr;
                do {
                    //Console.Write("> ");
                    instr = Console.ReadLine().ToLower();
                } while (parseInput(instr));
                d.stop();
            }
        }
    }
 private void frmAddInventoryTransItem3_Load(object sender, EventArgs e)
 {
     txtQty.Text = 1.ToString();
     txtWeight.Text = 0.ToString("N3");
     this.ActiveControl = txtPLU;
     
     sc = SerialConnection.OpenConnection();
     sc.WeightReceived += new SerialDataReceivedEventHandler(WeightReceived);
 }
Example #28
0
 private void CloseConnection()
 {
     if (connection_ != null)
     {
         connection_.Close();
         connection_.Dispose();
         connection_ = null;
     }
 }
Example #29
0
        public void SetUp()
        {
            _serialParameters          = new SerialParameters();
            _serialParameters.PortName = "COM3";

            _serialConnection = new SerialConnection(_serialParameters);

            //TODO what I really want to do above is have a config file w/ test settings which will vary by developement environment
            // e.g. SerialParameters sp = new SerialParameters(props.TestPortName, props.TestBaudRate, ...
        }
		public void SetUp()
		{
			_serialParameters = new SerialParameters();
			_serialParameters.PortName = "COM3";

			_serialConnection = new SerialConnection(_serialParameters);

			//TODO what I really want to do above is have a config file w/ test settings which will vary by developement environment
			// e.g. SerialParameters sp = new SerialParameters(props.TestPortName, props.TestBaudRate, ...
		}
Example #31
0
        /// <summary>
        /// Test whether the given connection is a link with monochromator controller
        /// </summary>
        /// <param name="connection">Connection</param>
        /// <returns>true if connection is a link with monochromator controller, false otherwise</returns>
        private static bool IsMonochromator(SerialConnection connection)
        {
            // Ping controller
            connection.Send((uint)PacketHeader.Ping);

            // Parse response
            var responseAsBytes = connection.Read(sizeof(PacketHeader));
            var response        = BitConverter.ToUInt32(responseAsBytes);

            return(response == PingResponse);
        }
Example #32
0
        public static void Main(string[] args)
        {
            //if (args.Length < 1)
            //{
            //    Console.WriteLine("Parameter ComPort needed.");
            //    return;
            //}

            //string comPort = "COM6";

            //using (SerialConnection connection = new SerialConnection(comPort))
            //using (ELM327 dev = new ELM327(connection, new OBDConsoleLogger(OBDLogLevel.Debug)))
            //{

            //    //Realtime

            //    dev.SubscribeDataReceived<EngineRPM>((sender, data) => Console.WriteLine("EngineRPM: " + data.Data.Rpm));
            //    dev.SubscribeDataReceived<VehicleSpeed>((sender, data) => Console.WriteLine("VehicleSpeed: " + data.Data.Speed));
            //    dev.SubscribeDataReceived<EngineCoolantTemperature>((sender, data) => Console.WriteLine("Coolant Temperature: " + data.Data.Temperature));
            //    dev.SubscribeDataReceived<EngineOilTemperature>((sender, data) => Console.WriteLine("Engine Oil Temperature: " + data.Data.Temperature));
            //    dev.SubscribeDataReceived<FuelTankLevelInput>((sender, data) => Console.WriteLine("Coolant Temperature: " + data.Data.Level));

            //    //dev.SubscribeDataReceived<IOBDData>((sender, data) => Console.WriteLine($"PID {data.Data.PID.ToHexString()}: {data.Data}"));

            //    //Analytics

            //    //Calculate Hard Braking, Hard Acceleration, Frequent stoppages, RPM Vs Speed.

            //    //Error Codes
            //    dev.SubscribeDataReceived<EGRError>((sender, data) => Console.WriteLine("EngineRPM: " + data.Data));


            //    dev.Initialize();
            //    dev.RequestData<FuelType>();
            //    for (int i = 0; i < 5; i++)
            //    {
            //        dev.RequestData<EngineRPM>();
            //        dev.RequestData<VehicleSpeed>();
            //        Thread.Sleep(1000);
            //    }
            //}
            //Console.ReadLine();

            //Async example

            connection = new SerialConnection("COM2");
            //MainAsync("COM6").Wait();


            ContinuousPush(3000, () => true);

            Console.ReadKey();
            //Console.ReadLine();
        }
Example #33
0
 public Daemon(SerialConnection sc)
 {
     this.sc = sc;
     running = true;
 }
		public void CheckOpenConnectionBadPortName()
		{
			_serialParameters.PortName = "JUNK";
			SerialConnection sc = new SerialConnection(_serialParameters);
			sc.Open();
		}
		public void CreateSerialConnectionDefaultParameters()
		{
			SerialConnection sc = new SerialConnection(new SerialParameters());
			Assert.IsNotNull(sc);
		}
Example #36
0
        private static void Main(string[] args)
        {
            var consoleListener = new TextWriterTraceListener(Console.Out);
            Trace.Listeners.Add(consoleListener);

            var portName = args.Length > 1 ? args[1] : GetPortName();

            using(var conn = new SerialConnection(portName))
            {
                conn.Open();

                //conn.WritePriorityMessage("Hello World!");
                conn.SetDateTime(DateTime.Now);
                //conn.Send(Clear());
                //Thread.Sleep(10000);

                //conn.Send(DemoPicture());
                //DemoWriteTextCommands(conn);
            }

            Console.ReadLine();
        }