Esempio n. 1
0
        public async void ConnectAndListen()
        {
            // attempt to connect to the first available serial device - will have to do for now
            try
            {
                string aqs = SerialDevice.GetDeviceSelector();
                var dis = await DeviceInformation.FindAllAsync(aqs);

                if (dis.Count < 1)
                {
                   // Status = "No serial devices found";
                }

                var entry = dis[0];
                serialPort = await SerialDevice.FromIdAsync(entry.Id);

                // Configure serial settings
                serialPort.WriteTimeout = TimeSpan.FromMilliseconds(1000);
                serialPort.ReadTimeout = TimeSpan.FromMilliseconds(1000);
                serialPort.BaudRate = 57600;
                serialPort.Parity = SerialParity.None;
                serialPort.StopBits = SerialStopBitCount.One;
                serialPort.DataBits = 8;
                serialPort.Handshake = SerialHandshake.None;

                // Create cancellation token object to close I/O operations when closing the device
                ReadCancellationTokenSource = new CancellationTokenSource();
                Listen();
            }

            catch (Exception ex)
            {
               // Status = ex.Message;
            }
        }
Esempio n. 2
0
 public async Task ConnectToDevice(DeviceInformation device)
 {
     this.State = ConnectionState.Connecting;
     try
     {
         serialConnection = await SerialDevice.FromIdAsync(device.Id);
         if (serialConnection != null)
         {
             serialConnection.BaudRate = 115200;
             serialConnection.DataBits = 8;
             serialConnection.Parity = SerialParity.None;
             writer = new DataWriter(serialConnection.OutputStream);
             reader = new DataReader(serialConnection.InputStream);
             Task listen = ListenForMessagesAsync();
             this.State = ConnectionState.Connected;
         }
         else {
             Debugger.ReportToDebugger(this, "Unable to create service.\nMake sure that the 'serialcommunication' capability is declared with a function of type 'name:serialPort' in Package.appxmanifest.", Debugger.Device.Pc);
             this.State = ConnectionState.Failure;
         }
     }
     catch (TaskCanceledException ex)
     {
         this.State = ConnectionState.Failure;
         Debugger.ReportToDebugger(this, ex.Message, Debugger.Device.Pc);
     }
     catch (Exception ex)
     {
         this.State = ConnectionState.Failure;
         Debugger.ReportToDebugger(this, ex.Message, Debugger.Device.Pc);
     }
 }
Esempio n. 3
0
        static void Main(string[] args)
        {
            SerialDevice sd;
            STPv3Reader reader;
            STPv3Request request;
            STPv3Response response;
            Tag tag = new Tag();
            tag.Type = TagType.AUTO_DETECT;
            string port;
            byte[] resp;
            float temp;

            if (args.Length < 1)
                port = "COM1";
            else
                port = args[0];

            sd = new SerialDevice();
            reader = new STPv3Reader(sd);
            try
            {
                sd.Address = port;
                sd.BaudRate = 38400;
                sd.Open();

                // read product code, reader name, hw version, fw version, and reader ID
                Console.Out.WriteLine(String.Format("Product Code: {0}", reader.ProductCode));
                Console.Out.WriteLine(String.Format("Reader Name: {0}", reader.ReaderName));
                Console.Out.WriteLine(String.Format("Hardware Version: {0}", reader.HardwareVersion));
                Console.Out.WriteLine(String.Format("Firmware Version: {0}", reader.FirmwareVersion));
                Console.Out.WriteLine(String.Format("Reader ID: {0}",
                    String.Join("", Array.ConvertAll<byte, string>(reader.ReaderID, delegate(byte value){ return String.Format("{0:X2}", value); }))));

                //scan for tags
                request = new STPv3Request();
                request.Tag = tag;
                request.Command = STPv3Commands.SELECT_TAG;
                request.Inventory = true;
                request.Issue(sd);

                while (((response = request.GetResponse()) != null) && (response.Success))
                {
                    if (response.ResponseCode == STPv3ResponseCode.SELECT_TAG_PASS)
                    {
                        Console.Out.WriteLine(String.Format("Tag found: {0} -> {1}",
                            Enum.GetName(typeof(SkyeTek.Tags.TagType),
                            response.TagType), String.Join("",
                            Array.ConvertAll<byte, string>(response.TID,
                            delegate(byte value) { return String.Format("{0:X2}", value); }))));
                    }
                }
            }

            catch (Exception ex)
            {
                Console.Out.WriteLine(ex.ToString());
            }

            Console.In.ReadLine();
        }
        private async void btnConnect_Click(object sender, RoutedEventArgs e)
        {
            string deviceQuery = SerialDevice.GetDeviceSelector();
            
            //using Windows.Devices.Enumeration
            var deviceInfo = await DeviceInformation.FindAllAsync(deviceQuery);

            if (deviceInfo != null && deviceInfo.Count > 0)
            {
                //your board name may differ, introspect the return value of deviceInfo to 
                //determine the serial hardware you have your modem attached to
                var serialBoardName = "CP2102 USB to UART Bridge Controller";
                var zbInfo = deviceInfo.Where(x => x.Name.Equals(serialBoardName)).First();
                _zbCoordinator = await SerialDevice.FromIdAsync(zbInfo.Id);

                // Configure serial settings
                _zbCoordinator.WriteTimeout = TimeSpan.FromMilliseconds(1000);
                _zbCoordinator.ReadTimeout = TimeSpan.FromMilliseconds(1000);
                _zbCoordinator.BaudRate = 9600;
                _zbCoordinator.Parity = SerialParity.None;
                _zbCoordinator.StopBits = SerialStopBitCount.One;
                _zbCoordinator.DataBits = 8;

                btnConnect.IsEnabled = false;
                btnSend.IsEnabled = true;
                btnRead.IsEnabled = true;
            }
            else
            {
                this.txtHeader.Text = "Something went wrong :( -- Device not found";
            }

        }
        public async Task Open()
        {
            if (Status == ModbusServerStatus.Initialled)
            {
                try
                {
                    Status = ModbusServerStatus.Opening;
                    string aqs = SerialDevice.GetDeviceSelector(portName);
                    var dis = await DeviceInformation.FindAllAsync(aqs);
                    serialPort = await SerialDevice.FromIdAsync(dis[0].Id);

                    serialPort.WriteTimeout = TimeSpan.FromMilliseconds(WRITE_TIMEOUT);
                    serialPort.ReadTimeout = TimeSpan.FromMilliseconds(READ_TIMEOUT);
                    serialPort.BaudRate = BAUD_RATE;
                    serialPort.Parity = SERIAL_PARITY;
                    serialPort.StopBits = SERIAL_STOP_BIT_COUNT;
                    serialPort.DataBits = DATA_BITS;
                    serialPort.Handshake = SERIAL_HANDSHAKE;

                    readCancellationTokenSource = new CancellationTokenSource();

                    listen(1024);
                    Status = ModbusServerStatus.Opened;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
        public override async Task<bool> Connect(Connection newConnection)
        {
            var deviceInfo = newConnection.Source as DeviceInformation;
            if (deviceInfo != null)
            {
                this.service = await SerialDevice.FromIdAsync(deviceInfo.Id);
                if (this.service == null)
                {
                    return false;
                }

                this.service.BaudRate = 115200;
                this.service.StopBits = SerialStopBitCount.One;
                this.service.Handshake = SerialHandshake.None;
                this.service.DataBits = 8;

                this.service.ReadTimeout = TimeSpan.FromSeconds(5);
                this.service.WriteTimeout = TimeSpan.FromSeconds(5);
                this.service.IsDataTerminalReadyEnabled = false;

                return this.InstrumentSocket(this.service.InputStream, this.service.OutputStream);
            }

            return false;
        }
Esempio n. 7
0
        async Task<bool> onewireReset(string deviceId)
        {
            try
            {
                if (serialPort != null)
                    serialPort.Dispose();

                serialPort = await SerialDevice.FromIdAsync(deviceId);

                // Configure serial settings
                serialPort.WriteTimeout = TimeSpan.FromMilliseconds(1000);
                serialPort.ReadTimeout = TimeSpan.FromMilliseconds(1000);
                serialPort.BaudRate = 9600;
                serialPort.Parity = SerialParity.None;
                serialPort.StopBits = SerialStopBitCount.One;
                serialPort.DataBits = 8;
                serialPort.Handshake = SerialHandshake.None;

                dataWriteObject = new DataWriter(serialPort.OutputStream);
                dataWriteObject.WriteByte(0xF0);
                await dataWriteObject.StoreAsync();

                dataReaderObject = new DataReader(serialPort.InputStream);
                await dataReaderObject.LoadAsync(1);
                byte resp = dataReaderObject.ReadByte();
                if (resp == 0xFF)
                {
                    System.Diagnostics.Debug.WriteLine("Nothing connected to UART");
                    return false;
                }
                else if (resp == 0xF0)
                {
                    System.Diagnostics.Debug.WriteLine("No 1-wire devices are present");
                    return false;
                }
                else
                {
                    System.Diagnostics.Debug.WriteLine("Response: " + resp);
                    serialPort.Dispose();
                    serialPort = await SerialDevice.FromIdAsync(deviceId);

                    // Configure serial settings
                    serialPort.WriteTimeout = TimeSpan.FromMilliseconds(1000);
                    serialPort.ReadTimeout = TimeSpan.FromMilliseconds(1000);
                    serialPort.BaudRate = 115200;
                    serialPort.Parity = SerialParity.None;
                    serialPort.StopBits = SerialStopBitCount.One;
                    serialPort.DataBits = 8;
                    serialPort.Handshake = SerialHandshake.None;
                    dataWriteObject = new DataWriter(serialPort.OutputStream);
                    dataReaderObject = new DataReader(serialPort.InputStream);
                    return true;
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("Exception: " + ex.Message);
                return false;
            }
        }
Esempio n. 8
0
        private async void InitializeSerial()
        {
            //Selector nadje device
            var selector = SerialDevice.GetDeviceSelector("COM4"); //podesiti tacno koji je port
            //info na onsovu selektora
            var devices = await DeviceInformation.FindAllAsync(selector);
            //nadje se device info

            if (devices.Any())
            {
                var deviceInfo = devices.First();
                //najosjetljivija metoda, vraca null ako nesto nije uredu
                //to moze biti da nije capability naveden u manifestu, da device ne prepoznaje ili da je
                //device zauzet od druge aplikacije
                //da je user blokirao ili sistem
                //moze biti null iako je nadjen device information
                serialDevice = await SerialDevice.FromIdAsync(deviceInfo.Id);
                //Set up serial device according to device specifications:
                //This might differ from device to device
                //specifikacije com porta, nacin na koj iuredjaj salje bite
                serialDevice.BaudRate = 9600;
                serialDevice.DataBits = 8;
                serialDevice.Parity = SerialParity.None;
                serialDevice.StopBits = SerialStopBitCount.One;
                serialDevice.WriteTimeout = TimeSpan.FromMilliseconds(300);

                serialDevice.ReadTimeout = TimeSpan.FromMilliseconds(1000);

                // Create cancellation token object to close I/O operations when closing the device
                ReadCancellationTokenSource = new CancellationTokenSource();

                Listen();
            }
        }
Esempio n. 9
0
 public async void InitializeReader(Action<string> callback)
 {
     //Selector nadje device
     var selector = SerialDevice.GetDeviceSelector(port); 
     //info na onsovu selektora
     var devices = await DeviceInformation.FindAllAsync(selector);
     //nadje se device info
     if (devices.Any()) 
     {
         var deviceInfo = devices.First();
         //najosjetljivija metoda, vraca null ako nesto nije uredu
         //to moze biti da nije capability naveden u manifestu, da device ne prepoznaje ili da je device zauzet od druge aplikacije
         //da je user blokirao ili sistem
         //moze biti null iako je nadjen device information
         serialDevice = await SerialDevice.FromIdAsync(deviceInfo.Id);
         //Set up serial device according to device specifications:
         //This might differ from device to device
         //specifikacije com porta, nacin na koj iuredjaj salje bite
         serialDevice.BaudRate = 9600;
         serialDevice.DataBits = 8;
         serialDevice.Parity = SerialParity.None;
         serialDevice.StopBits = SerialStopBitCount.One;
         serialDevice.ReadTimeout = TimeSpan.FromMilliseconds(1000);
         //ima sekundu izmedju dva citanja, ako se kartica brzo provuce dvaput biti ce 28 bita
         ReadCancellationTokenSource = new CancellationTokenSource();
         //pokretanje uredjaja
         Listen(callback);
     }
 }
Esempio n. 10
0
 public SerialConnection(SerialDevice serialDevice)
 {
     _serialDevice = serialDevice;
     _input = _serialDevice.InputStream;
     _output = _serialDevice.OutputStream;
     _serialDevice.ErrorReceived += _serialDevice_ErrorReceived;
     _buffer = new byte[1024];
 }
Esempio n. 11
0
 public void Close()
 {
     if (serialPort != null)
     {
         serialPort.Dispose();
         serialPort = null;
     }
 }
Esempio n. 12
0
 public void shutdown()
 {
     if (serialPort != null)
     {
         serialPort.Dispose();
         serialPort = null;
     }
 }
Esempio n. 13
0
 public XBeeDevice(SerialDevice serialDevice)
 {
     _serialDevice = serialDevice;
     _serialDevice.ErrorReceived += _serialDevice_ErrorReceived;
     _input = _serialDevice.InputStream;
     _output = _serialDevice.OutputStream;
     Task.Run(() => ReadLoop(_cts.Token));
 }
Esempio n. 14
0
 public void Close()
 {
     if (_device != null)
     {
         _inputStream = null;
         _outputStream = null;
         _device.Dispose();
         _device = null;
     }
 }
Esempio n. 15
0
        internal async Task<bool> InitializeAsync()
        {
            _serialDevice = await StartupTask.SerialDeviceHelper.GetSerialDeviceAsync("AH03FK33", 57600, new TimeSpan(0, 0, 0, 1), new TimeSpan(0, 0, 0, 1));

            if (_serialDevice == null)
                return false;

            _arduinoDataReader = new DataReader(_serialDevice.InputStream);

            return true;
        }
Esempio n. 16
0
        public static async Task <Brick> InitializeInstance(SerialDevice serialDevice)
        {
            instance = new Brick(serialDevice);
            Task configSerialTask = instance.ConfigureSerialPort();
            Task <GpioController> gpioControllerTask = GpioController.GetDefaultAsync().AsTask <GpioController>();
            await Task.WhenAll(configSerialTask, gpioControllerTask);

            instance.arduino1Led = new BrickLed(gpioControllerTask.Result, Arduino.Arduino1);
            instance.arduino2Led = new BrickLed(gpioControllerTask.Result, Arduino.Arduino2);
            return(instance);
        }
Esempio n. 17
0
        /// <summary>
        /// comPortInput_Click: Action to take when 'Connect' button is clicked
        /// - Get the selected device index and use Id to create the SerialDevice object
        /// - Configure default settings for the serial port
        /// - Create the ReadCancellationTokenSource token
        /// - Add text to rcvdText textbox to invoke rcvdText_TextChanged event
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void comPortInput_Click(object sender, RoutedEventArgs e)
        {
            System.Collections.IList selection = null; //= ConnectDevices.SelectedItems;
            if (selection != null)
            {
                if (selection.Count <= 0)
                {
                    //status.Text = "Select a device and connect";
                    return;
                }
            }

            DeviceInformation entry = (DeviceInformation)selection[0];

            try
            {
                serialPort = await SerialDevice.FromIdAsync(entry.Id);

                // Disable the 'Connect' button 
                //comPortInput.IsEnabled = false;

                // Configure serial settings
                serialPort.WriteTimeout = TimeSpan.FromMilliseconds(1000);
                serialPort.ReadTimeout = TimeSpan.FromMilliseconds(1000);
                serialPort.BaudRate = 9600;
                serialPort.Parity = SerialParity.None;
                serialPort.StopBits = SerialStopBitCount.One;
                serialPort.DataBits = 8;

                // Display configured settings
                //status.Text = "Serial port configured successfully!\n ----- Properties ----- \n";
                //status.Text += "BaudRate: " + serialPort.BaudRate.ToString() + "\n";
                //status.Text += "DataBits: " + serialPort.DataBits.ToString() + "\n";
                //status.Text += "Handshake: " + serialPort.Handshake.ToString() + "\n";
                //status.Text += "Parity: " + serialPort.Parity.ToString() + "\n";
                //status.Text += "StopBits: " + serialPort.StopBits.ToString() + "\n";

                // Set the RcvdText field to invoke the TextChanged callback
                // The callback launches an async Read task to wait for data
               // rcvdText.Text = "Waiting for data...";

                // Create cancellation token object to close I/O operations when closing the device
                ReadCancellationTokenSource = new CancellationTokenSource();

                // Enable 'WRITE' button to allow sending data
                //sendTextButton.IsEnabled = true;
            }
            catch (Exception ex)
            {
                //status.Text = ex.Message;
                //comPortInput.IsEnabled = true;
                //sendTextButton.IsEnabled = false;
            }
        }
Esempio n. 18
0
        public MainPage()
        {
            this.InitializeComponent();
            myKey = "";
            AutoResetEvent AutoEvent = new AutoResetEvent(true);

            pilotTimer        = new Timer(new TimerCallback(checkStatus), AutoEvent, 0, 1);
            currentController = 0;

            string selector = SerialDevice.GetDeviceSelector("COM3");
        }
Esempio n. 19
0
 /// <summary>
 /// CloseDevice:
 /// - Disposes SerialDevice object
 /// - Clears the enumerated device Id list
 /// </summary>
 private void CloseDevice()
 {
     if (serialPort != null)
     {
         serialPort.Dispose();
     }
     serialPort = null;
     sendTextButton.IsEnabled = false;
     ClearInputData();
     listOfDevices.Clear();
 }
        internal SerialWatcher()
        {
            _devices = new List <string>();
            string _deviceSelector = SerialDevice.GetDeviceSelector();

            _deviceWatcher          = DeviceInformation.CreateWatcher(_deviceSelector);
            _deviceWatcher.Added   += OnNewDeviceAdded;
            _deviceWatcher.Removed += OnDeviceRemoved;
            _deviceWatcher.Updated += OnDeviceCollectionUpdated;
            _deviceWatcher.EnumerationCompleted += OnDeviceEnumerationCompleted;
        }
Esempio n. 21
0
 private void StartLookup()
 {
     if (_deviceWatcher == null)
     {
         var aqsFilter = SerialDevice.GetDeviceSelector();
         _deviceWatcher          = DeviceInformation.CreateWatcher(aqsFilter);
         _deviceWatcher.Added   += DeviceWatcher_Added;
         _deviceWatcher.Removed += DeviceWatcher_Removed;
         _deviceWatcher.Start();
     }
 }
Esempio n. 22
0
        private async void AcceptButton_Click(object sender, RoutedEventArgs e)
        {
            var connection = _viewModel.Connection;

            connection.Device = await SerialDevice.FromIdAsync(connection.Id);

            MainPage.ViewModel.DeviceConnections.Add(connection);
            MainPage.ViewModel.SelectedDeviceConnection = connection;

            Frame.GoBack();
        }
Esempio n. 23
0
 public void Close()
 {
     if (device != null)
     {
         device.Dispose();
         device = null;
         info   = null;
     }
     Source?.Dispose();
     Source = null;
 }
 protected virtual void DetruirePortSerie()
 {
     lock (_portSerieLock)
     {
         if (_portSerie != null)
         {
             _portSerie.Dispose();
         }
         _portSerie = null;
     }
 }
        internal async Task<bool> InitializeAsync()
        {
            _lcdSerialDevice = await StartupTask.SerialDeviceHelper.GetSerialDeviceAsync("DN01E099", 9600, new TimeSpan(0, 0, 0, 1), new TimeSpan(0, 0, 0, 1));
         
            if (_lcdSerialDevice == null)
                return false;

            _outputStream = new DataWriter(_lcdSerialDevice.OutputStream);

            return true;
        }
Esempio n. 26
0
        public MainPage()
        {
            this.InitializeComponent();

            this.serialPort = null;
            this.dataReader = null;
            this.deviceList = new ObservableCollection <DeviceInformation>();
            this.readCancellationTokenSource = null;

            this.ListAvailablePort();
        }
Esempio n. 27
0
        /// <summary>
        /// comPortInput_Click: Action to take when 'Connect' button is clicked
        /// - Get the selected device index and use Id to create the SerialDevice object
        /// - Configure default settings for the serial port
        /// - Create the ReadCancellationTokenSource token
        /// - Start listening on the serial port input
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void comPortInput_Click(object sender, RoutedEventArgs e)
        {
            var selection = ConnectDevices.SelectedItems;

            if (selection.Count <= 0)
            {
                status.Text = "Select a device and connect";
                return;
            }

            DeviceInformation entry = (DeviceInformation)selection[0];

            try
            {
                serialPort = await SerialDevice.FromIdAsync(entry.Id);

                // Disable the 'Connect' button
                comPortInput.IsEnabled = false;

                // Configure serial settings
                serialPort.WriteTimeout = TimeSpan.FromMilliseconds(1000);
                serialPort.ReadTimeout  = TimeSpan.FromMilliseconds(1000);
                serialPort.BaudRate     = 57600;
                serialPort.Parity       = SerialParity.None;
                serialPort.StopBits     = SerialStopBitCount.One;
                serialPort.DataBits     = 8;
                serialPort.Handshake    = SerialHandshake.None;

                // Display configured settings
                status.Text  = "Serial port configured successfully: ";
                status.Text += serialPort.BaudRate + "-";
                status.Text += serialPort.DataBits + "-";
                status.Text += serialPort.Parity.ToString() + "-";
                status.Text += serialPort.StopBits;

                // Set the RcvdText field to invoke the TextChanged callback
                // The callback launches an async Read task to wait for data


                // Create cancellation token object to close I/O operations when closing the device
                ReadCancellationTokenSource = new CancellationTokenSource();

                // Enable 'WRITE' button to allow sending data
                sendTextButton.IsEnabled = true;

                Listen();
            }
            catch (Exception ex)
            {
                status.Text              = ex.Message;
                comPortInput.IsEnabled   = true;
                sendTextButton.IsEnabled = false;
            }
        }
Esempio n. 28
0
 private void CloseSerialPortDevice()
 {
     try
     {
         _serialDevice?.Dispose();
         _serialDevice = null;
     }
     catch (Exception ex)
     {
         throw new Exception($"{ex.Message} -->[WinIotPakcgeManager_CloseingDevice]", ex.InnerException);
     }
 }
Esempio n. 29
0
        private async void Page_Loaded(object sender, RoutedEventArgs e)
        {
            string aqs = SerialDevice.GetDeviceSelector();
            var    dis = await DeviceInformation.FindAllAsync(aqs);

            DataContext = _viewModel =
                new AddConnectionViewModel
            {
                DeviceIds  = dis.Select(d => d.Id).ToList(),
                Connection = null
            };
        }
Esempio n. 30
0
        public void InitWatcher()
        {
            string devSelector = SerialDevice.GetDeviceSelectorFromUsbVidPid(Vid, Pid);

            watcher          = DeviceInformation.CreateWatcher(devSelector);
            watcher.Added   += Watcher_Added;
            watcher.Removed += Watcher_Removed;
            watcher.EnumerationCompleted += Watcher_EnumerationCompleted;
            watcher.Start();

            InitTimer();
        }
Esempio n. 31
0
        private async void InitializeComPort()
        {
            string aqs = SerialDevice.GetDeviceSelector();
            DeviceInformationCollection dic = await DeviceInformation.FindAllAsync(aqs).AsTask();
            DeviceInformation di = dic.FirstOrDefault();

            _serialPort = await SerialDevice.FromIdAsync(di.Id).AsTask();
            _serialPort.IsDataTerminalReadyEnabled = true;
            _serialPort.BaudRate = 9600;

            _readCancellationTokenSource = new CancellationTokenSource();
        }
Esempio n. 32
0
        /// <summary>
        /// CloseDevice:
        /// - Disposes SerialDevice object
        /// - Clears the enumerated device Id list
        /// </summary>
        private void CloseDevice()
        {
            if (serialPort != null)
            {
                serialPort.Dispose();
            }
            serialPort = null;

            comPortInput.IsEnabled = true;
            rcvdText.Text          = "";
            listOfDevices.Clear();
        }
Esempio n. 33
0
 /// <summary>
 /// Constructor configures the Serial settings for interfacing
 /// with the Cottonwood board
 /// </summary>
 /// <param name="device">Serial device object representing
 ///  the Cottonwood board</param>
 public Cottonwood(SerialDevice device)
 {
     //configures the serial settings for interfacing with
     //the Cottonwood board
     _rfidReader = device;
     _rfidReader.WriteTimeout = TimeSpan.FromMilliseconds(1000);
     _rfidReader.ReadTimeout  = TimeSpan.FromMilliseconds(1000);
     _rfidReader.BaudRate     = 9600;
     _rfidReader.Parity       = SerialParity.None;
     _rfidReader.StopBits     = SerialStopBitCount.One;
     _rfidReader.DataBits     = 8;
 }
        private async Task SetupConnection()
        {
            //CLose any previous connections before associating the new one
            CloseConnection();
            serialDevice = await SerialDevice.FromIdAsync(serialDeviceId);

            if (serialDevice != null)
            {
                //Configure connection
                SerialCommunicationHelper.SetDefaultConfiguration(serialDevice);
            }
        }
Esempio n. 35
0
        private async void DeviceWatcher_Removed(DeviceWatcher sender, DeviceInformationUpdate args)
        {
            var device = await SerialDevice.FromIdAsync(args.Id);

            if (_device != null && args.Id == _deviceId)
            {
                _device.DataReceived -= _device_DataReceived;
                _device.Stop();
                _device   = null;
                _deviceId = string.Empty;
            }
        }
Esempio n. 36
0
 public void Dispose()
 {
     lock (this)
     {
         if (_serialDevice != null)
         {
             _serialDevice.Dispose();
             _serialDevice = null;
         }
     }
     throw new NotImplementedException();
 }
Esempio n. 37
0
        private static void _sds011_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            if (e.EventType == SerialData.Chars)
            {
                // Ignore the in between noise
            }
            else if (e.EventType == SerialData.WatchChar)
            {
                SerialDevice serDev = (SerialDevice)sender;

                using (DataReader dr = new DataReader(serDev.InputStream))
                {
                    dr.InputStreamOptions = InputStreamOptions.Partial;
                    uint bytesRead = dr.Load(serDev.BytesToRead);

                    if (bytesRead > 0)
                    {
                        byte[] rawData = new byte[bytesRead];
                        dr.ReadBytes(rawData);

                        // If rawData.Length == 10 and rawData[0] = 0xAA and rawData[9] = 0xAB and rawData[1] = 0xC0
                        // this means we have a valid measure package from the sensor
                        // and byte[2] = low byte, byte[3] = high byte of uint representing the AQI for PM 2.5
                        if (rawData.Length >= 10)
                        {
                            if ((rawData[0] == 0xAA) && (rawData[1] == 0xC0) && (rawData[9] == 0xAB))
                            {
                                // Need to do checksum
                                byte crc = 0;
                                for (int i = 0; i < 6; i++)
                                {
                                    crc += rawData[i + 2];
                                }
                                if (crc == rawData[8])
                                {
                                    // All right, we have a go !!!!
                                    float pm25 = 0, pm10 = 0;

                                    pm25 = (float)((int)rawData[2] | (int)(rawData[3] << 8)) / 10;
                                    pm10 = (float)((int)rawData[4] | (int)(rawData[5] << 8)) / 10;

                                    Console.WriteLine(String.Format("Air quality index: {0}\tPM 10\t{1} µg / m3\tPM 2.5\t{2} µg / m3\tSensor: {3}",
                                                                    DateTime.UtcNow.ToString("yyyy'-'MM'-'dd'\t'HH':'mm':'ss"),
                                                                    pm10.ToString("N1"),
                                                                    pm25.ToString("N1"),
                                                                    "SDS011"));
                                }
                            }
                        }
                    }
                }
            }
        }
Esempio n. 38
0
 /// <summary>
 /// Constructor configures the Serial settings for interfacing
 /// with the Cottonwood board
 /// </summary>
 /// <param name="device">Serial device object representing 
 ///  the Cottonwood board</param>
 public Cottonwood(SerialDevice device)
 {
     //configures the serial settings for interfacing with 
     //the Cottonwood board
     _rfidReader = device;
     _rfidReader.WriteTimeout = TimeSpan.FromMilliseconds(1000);
     _rfidReader.ReadTimeout = TimeSpan.FromMilliseconds(1000);
     _rfidReader.BaudRate = 9600;
     _rfidReader.Parity = SerialParity.None;
     _rfidReader.StopBits = SerialStopBitCount.One;
     _rfidReader.DataBits = 8;
 }
Esempio n. 39
0
        public async Task LookForDevices()
        {
            State = ConnectionState.Enumerating;
            Devices.Clear();
            var serviceInfoCollection = await DeviceInformation.FindAllAsync(SerialDevice.GetDeviceSelector());

            foreach (var serviceInfo in serviceInfoCollection)
            {
                Devices.Add(serviceInfo);
            }
            State = ConnectionState.Enumerated;
        }
Esempio n. 40
0
 /// <summary>
 /// 向串口发送数据
 /// </summary>
 /// <param name="data"></param>
 public void SendData(byte[] data)
 {
     try
     {
         SerialDevice.DiscardInBuffer();
         SerialDevice.Write(data, 0, data.Length);
     }
     catch (Exception ex)
     {
         ExceptionProcess(ex);
     }
 }
Esempio n. 41
0
 /// <summary>
 /// 关闭串口资源
 /// </summary>
 public void Close()
 {
     try
     {
         SerialDevice.Close();
         SerialDevice.Dispose();
     }
     catch (Exception ex)
     {
         ExceptionProcess(ex);
     }
 }
Esempio n. 42
0
        private void CloseDevice()
        {
            if (serialPort != null)
            {
                serialPort.Dispose();
            }
            serialPort = null;

            connectButton.IsEnabled = true;
            outputTextBox.Text      = "";
            deviceList.Clear();
        }
Esempio n. 43
0
        public SerialPort(ushort vendorId, ushort productId)
        {
            var selector = SerialDevice.GetDeviceSelectorFromUsbVidPid(vendorId, productId);
            var devices  = Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(selector, null).AsTask().Result;

            if (!devices.Any())
            {
                throw new ArgumentOutOfRangeException("Serialport not found, invalid vendorId or productId");
            }

            _id = devices.First().Id;
        }
Esempio n. 44
0
        private void serialConnectButton_Click(object sender, RoutedEventArgs e)
        {
            Task.Run(async () =>
            {
                if (serialPort != null)
                {
                    serialPort.Dispose(); // close Serial Port connection
                    serialPort = null;

                    await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                    {
                        serialConnectButton.Content = "Connect";
                        printLog("Board Disconnected");
                        serialChooseBox.IsEnabled = true;
                    });
                }
                else
                {
                    await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
                    {
                        var selection = serialChooseBox.SelectedIndex;
                        if ((serialChooseBox.Items.Count > 0) && (selection >= 0))
                        {
                            ComboBoxItem selectedItem = (ComboBoxItem)serialChooseBox.SelectedItem;

                            int serialConnectionStatus = await connectToSerial((string)selectedItem.Tag); // tag is holding info for serial connection (from doSerialScan)

                            // Ui
                            if (serialConnectionStatus == 0)
                            {
                                serialChooseBox.IsEnabled = false;
                                serialConnectButton.Content = "Disconnect";

                                // after connection is established, ask for board version
                                int version = await utpAskHwVersion();
                                if (version >= 0)
                                {
                                    printLog(("Test Board v." + version.ToString()));
                                }
                                else
                                {
                                    printLog("Connected, but couldn't get board version");
                                }
                            }
                        }
                        else
                        {
                        printLog("No Serial Port selected");
                        }
                    });
                }
            });
        }
Esempio n. 45
0
        public SerialPort(string name)
        {
            var selector = SerialDevice.GetDeviceSelector(name);
            var devices  = Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(selector, null).AsTask().Result;

            if (!devices.Any())
            {
                throw new ArgumentOutOfRangeException(nameof(name), name, "Serialport not found");
            }

            _id = devices.First().Id;
        }
Esempio n. 46
0
        /// <summary>
        /// Initialize and spawn serial device based on DeviceInformation and baud rate
        /// </summary>
        /// <param name="info">The device information for spawning the serial device</param>
        /// <param name="baudRate">Specified baud rate</param>
        /// <returns>The initialized SerialDevice</returns>
        private static async Task <SerialDevice> InitializeSerialPort(DeviceInformation info, uint baudRate)
        {
            var retSerialPort = await SerialDevice.FromIdAsync(info.Id);

            retSerialPort.Parity    = SerialParity.None;
            retSerialPort.StopBits  = SerialStopBitCount.One;
            retSerialPort.DataBits  = 8;
            retSerialPort.BaudRate  = baudRate;
            retSerialPort.Handshake = SerialHandshake.None;

            return(retSerialPort);
        }
Esempio n. 47
0
 public Arduino(SerialDevice uredjaj)
 {
     this.Uredjaj         = uredjaj;
     temperatura          = vlaznostZemlje = "Nije procitano";
     uredjaj.BaudRate     = 9600;
     uredjaj.DataBits     = 8;
     uredjaj.Parity       = SerialParity.None;
     uredjaj.Handshake    = SerialHandshake.None;
     uredjaj.StopBits     = SerialStopBitCount.One;
     uredjaj.ReadTimeout  = TimeSpan.FromMilliseconds(1000);
     uredjaj.WriteTimeout = TimeSpan.FromMilliseconds(1000);
 }
 private void SetupSerialDevice(SerialDevice serialDevice)
 {
     serialDevice.BaudRate  = BaudRate;
     serialDevice.StopBits  = SerialStopBitCount.One;
     serialDevice.DataBits  = 8;
     serialDevice.Parity    = SerialParity.None;
     serialDevice.Handshake = SerialHandshake.None;
     serialDevice.IsDataTerminalReadyEnabled = true;
     serialDevice.IsRequestToSendEnabled     = false;
     serialDevice.ReadTimeout  = TimeSpan.FromMilliseconds(3);     // default 5 seconds, we want instant response from Arduino boards
     serialDevice.WriteTimeout = TimeSpan.FromMilliseconds(10000);
 }
 /// <summary>
 /// Gets all serial devices connected to the computer and sets the SerialDevices collection
 /// </summary>
 public async void GetSerialDevices()
 {
     try
     {
         //Gets all COM and Blutooth ports
         var aqs = SerialDevice.GetDeviceSelector();
         SerialDevices = await DeviceInformation.FindAllAsync(aqs);
     }
     catch (Exception ex)
     {
     }
 }
Esempio n. 50
0
        internal async Task<bool> InitializeAsync()
        {
            _gpsSerialDevice = await StartupTask.SerialDeviceHelper.GetSerialDeviceAsync("AH03F3RY", 57600, TimeSpan.FromMilliseconds(200), TimeSpan.FromMilliseconds(200));

            if (_gpsSerialDevice == null)
                return false;

            _outputStream = new DataWriter(_gpsSerialDevice.OutputStream);
            _inputStream = new DataReader(_gpsSerialDevice.InputStream) {InputStreamOptions = InputStreamOptions.Partial};

            return true;
        }
Esempio n. 51
0
        /// <summary>
        /// WriteAsync: Task that asynchronously writes data from the input text box 'sendText' to the OutputStream
        /// </summary>

        public async Task OpenDevices(ListBox devices_list)
        {
            var selection = devices_list.SelectedItems;

            error = false;
            if (selection.Count <= 0)
            {
                error  = true;
                status = "СТАТУС: ВЫБЕРИТЕ И ПОДКЛЮЧИТЕ УСТРОЙСТВО";
                return;
            }

            DeviceInformation entry = (DeviceInformation)selection[0];

            try
            {
                serialport = await SerialDevice.FromIdAsync(entry.Id);


                // Configure serial settings
                serialport.WriteTimeout = TimeSpan.FromMilliseconds(50);
                serialport.ReadTimeout  = TimeSpan.FromMilliseconds(50);
                serialport.BaudRate     = 9600;
                serialport.Parity       = SerialParity.None;
                serialport.StopBits     = SerialStopBitCount.One;
                serialport.DataBits     = 8;
                serialport.Handshake    = SerialHandshake.None;

                // Display configured settings
                status  = "СТАТУС: ПОДКЛЮЧЕНО - ";
                status += serialport.BaudRate + "-";
                status += serialport.DataBits + "-";
                status += serialport.Parity.ToString() + "-";
                status += serialport.StopBits;

                wait_answer = 0;


                // Create cancellation token object to close I/O operations when closing the device
                ReadCancellationTokenSource = new CancellationTokenSource();

                // Enable 'WRITE' button to allow sending data
//                sendTextButton.IsEnabled = true;

                Listen();
            }
            catch (Exception ex)
            {
                status = "СТАТУС: " + ex.Message;
                error  = true;
            }
        }
Esempio n. 52
0
        public void Open()
        {
            _device = SerialDevice.FromIdAsync(_id).AsTask().Result;
            if (_device == null)
                throw new Exception("Error opening serialdevice, make sure the app manifest contains a DeviceCapability section for the serialport.");

            _device.BaudRate = 115200;
            _device.Parity = SerialParity.None;
            _device.DataBits = 8;
            _device.StopBits = SerialStopBitCount.One;
            _inputStream = new SerialReadStream(_device.InputStream);
            _outputStream = new SerialWriteStream(_device.OutputStream);
        }
Esempio n. 53
0
 private async Task Initialize()
 {
     var device = SerialDevice.GetDeviceSelectorFromUsbVidPid(0x1F00, 0x2012);
     var usbDevices = await DeviceInformation.FindAllAsync(device);
     var currentDevice = usbDevices.FirstOrDefault();
     _realDevice = await SerialDevice.FromIdAsync(currentDevice.Id);
     _realDevice.Handshake = SerialHandshake.XOnXOff;
     _realDevice.BaudRate = 9600;
     _realDevice.Parity = SerialParity.None;
     _realDevice.StopBits = SerialStopBitCount.One;
     _realDevice.DataBits = 8;
     _realDevice.IsDataTerminalReadyEnabled = true;
 }
 public async void SerialConnection()
 {
     SetStatus("Retrieving RFID Reader through UART Bridge ...");
     string deviceQuery = SerialDevice.GetDeviceSelector();
     var discovered = await DeviceInformation.FindAllAsync(deviceQuery);
     var readerInfo = discovered.Where(x => x.Name == _uartBridgeName).First();
     _rfidReader = await SerialDevice.FromIdAsync(readerInfo.Id);
     _rfidReader.WriteTimeout = TimeSpan.FromMilliseconds(1000);
     _rfidReader.ReadTimeout = TimeSpan.FromMilliseconds(1000);
     _rfidReader.BaudRate = 9600;
     _rfidReader.Parity = SerialParity.None;
     _rfidReader.StopBits = SerialStopBitCount.One;
     _rfidReader.DataBits = 8;
     SetStatus("Reader ready and configured");
 }
Esempio n. 55
0
 //Create a device from a module connected to COM1 serial port
 public Boolean CreateSerialDevice()
 {
     SerialDevice sd = new SerialDevice();
     try
     {
         sd.Address = "COM1";
         sd.BaudRate = 38400;
         sd.ReadTimeout = 200;
         device = sd;
     }
     catch (Exception ex)
     {
         Console.Out.WriteLine("EXCEPTION:" + ex.ToString());
     }
     return true;
 }
Esempio n. 56
0
        private ArduinoDevice(SerialDevice device)
        {
            _Device = device;

            _Device.BaudRate = 115200;
            _Device.DataBits = 8;
            _Device.Parity = SerialParity.None;
            _Device.StopBits = SerialStopBitCount.One;
            _Device.Handshake = SerialHandshake.None;
            _Device.WriteTimeout = TimeSpan.FromMilliseconds(1000);
            _Device.ReadTimeout = TimeSpan.FromMilliseconds(1000);

            _DeviceWriter = new DataWriter(_Device.OutputStream);
            _DeviceReader = new DataReader(_Device.InputStream);
            _DeviceReader.InputStreamOptions = InputStreamOptions.Partial;
        }
        private async Task Init()
        {
            _serialPort = await SerialDevice.FromIdAsync(_device.Id);

            // Configure serial settings
            _serialPort.BaudRate = 115200;
            _serialPort.Parity = SerialParity.None;
            _serialPort.StopBits = SerialStopBitCount.One;
            _serialPort.DataBits = 8;
            _dataReader = new DataReader(_serialPort.InputStream);
            await Task.Run(async () =>
            {
                while (!_cancellation.Token.IsCancellationRequested)
                {
                    await ReadAsync();
                }
            }, _cancellation.Token);
        }
        private async Task OpenPort(string deviceId)
        {
            serialPort = await SerialDevice.FromIdAsync(deviceId);

            if (serialPort != null)
            {
                serialPort.WriteTimeout = TimeSpan.FromMilliseconds(1000);
                serialPort.ReadTimeout = TimeSpan.FromMilliseconds(1000);
                serialPort.BaudRate = 9600;
                serialPort.Parity = SerialParity.None;
                serialPort.StopBits = SerialStopBitCount.One;
                serialPort.DataBits = 8;
                serialPort.Handshake = SerialHandshake.None;
                txtStatus.Text = "Serial port configured successfully";

                btnOne.IsEnabled = true;
                btnZero.IsEnabled = true;
            }
        }
Esempio n. 59
0
 public async Task<bool> Open()
 {
     var devices = await DeviceInformation.FindAllAsync(SerialDevice.GetDeviceSelector());
     if (devices.Count > 0)
     {
         serialPort = await SerialDevice.FromIdAsync(devices[0].Id);
         if (serialPort != null)
         {
             serialPort.WriteTimeout = TimeSpan.FromMilliseconds(1000);
             serialPort.ReadTimeout = TimeSpan.FromMilliseconds(1000);
             serialPort.BaudRate = 9600;
             serialPort.Parity = SerialParity.None;
             serialPort.StopBits = SerialStopBitCount.One;
             serialPort.DataBits = 8;
             return await SendAsync("AT", "AT");
         }
     }
     return false;
 }
Esempio n. 60
0
        /// <summary>
        /// This functions initimlaize a serial port and pass it to the brick
        /// </summary>
        /// <returns></returns>
        private async Task InitSerial()
        {
            string aqs = SerialDevice.GetDeviceSelector();
            var dis = await DeviceInformation.FindAllAsync(aqs);

            for (int i = 0; i < dis.Count; i++)
            {
                Debug.WriteLine(string.Format("Serial device found: {0}", dis[i].Id));
                if (dis[i].Id.IndexOf("UART0") != -1)
                {
                    serialPort = await SerialDevice.FromIdAsync(dis[i].Id);
                }
            }
            if (serialPort != null)
            {
                Debug.WriteLine("Serial port initialiazed");
                brick = new Brick(serialPort);
                Debug.WriteLine("Brick initialiazed");
            }

        }