Exemplo n.º 1
0
        public void SendBytes(byte[] bytes)
        {
            if (!(comPort.IsOpen == true))
            {
                OpenPort();
            }
            if (comPort.IsOpen && (bytes.Length > 0))
            {
                bool threadLocked = commLock.WaitOne(100);
                if (threadLocked)
                {
                    comPort.Write(bytes, 0, bytes.Length);
                    commLock.Release();
                }
                else
                {
                    throw new Exception("Failed to lock SendBytes");
                }

                //DisplayData("Sent: " + CMTools.BytesToHex(bytes) + "\n");
            }
            else
            {
                DisplayData("Error: Failed to send bytes - [" +
                            CMTools.BytesToHex(bytes) + "]\n");
            }
            //comPort.Close();
        }
Exemplo n.º 2
0
        /// <summary>
        /// method that will be called when there is data waiting in the buffer.
        ///
        /// THIS WILL BE CALLED ASYNCHRONOSLY.  WATCH FOR RACES.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            int bytes = comPort.BytesToRead;

            byte[] comBuffer = new byte[bytes];
            comPort.Read(comBuffer, 0, bytes);

            DisplayData("Received: " + CMTools.BytesToHex(comBuffer) + "\n");
            //handleData(comBuffer);
            //DisplayDataQueue();
        }