private static void GetSilabVersion(IntPtr m_hid)
        {
            byte[] buffer    = new byte[128];
            int    bytesRead = 0;

            byte[] command = RFIDCommands.PowerOn(false);

            if (!USBSocket.TransmitData(m_hid, command, command.Length))
            {
                Console.WriteLine("Device failed to transmit data.");
                return;
            }

            if (HID.IsOpened(m_hid))
            {
                if (USBSocket.ReceiveData(m_hid, ref buffer, buffer.Length, ref bytesRead, 1000))
                {
                }
            }
            else
            {
                Console.WriteLine("Device is not connected.");
            }

            command = SiliconLabCommands.GetVersion();

            if (!USBSocket.TransmitData(m_hid, command, command.Length))
            {
                Console.WriteLine("Device failed to transmit data.");
                return;
            }

            // Make sure that we are connected to a device
            if (HID.IsOpened(m_hid))
            {
                if (USBSocket.ReceiveData(m_hid, ref buffer, buffer.Length, ref bytesRead, 1000))
                {
                    if ((buffer[0] == Constants.PREFIX) && (bytesRead >= 13) &&
                        (buffer[8] == 0xB0) && (buffer[9] == 0x00))
                    {
                        string slabVersion = buffer[10].ToString() + "." +
                                             buffer[11].ToString() + "." +
                                             buffer[12].ToString();
                        Console.WriteLine("Silicon lab firmware version: " + slabVersion);
                    }
                    else
                    {
                        Console.WriteLine("Cannot get silicon lab firmware version.");
                    }
                }
            }
            else
            {
                Console.WriteLine("Device is not connected.");
            }
        }
        private static void GetBTVersion(IntPtr m_hid)
        {
            byte[] command = BluetoothCommands.GetVersion();

            if (!USBSocket.TransmitData(m_hid, command, command.Length))
            {
                Console.WriteLine("Device failed to transmit data.");
                return;
            }

            byte[] buffer    = new byte[128];
            int    bytesRead = 0;

            // Make sure that we are connected to a device
            if (HID.IsOpened(m_hid))
            {
                if (USBSocket.ReceiveData(m_hid, ref buffer, buffer.Length, ref bytesRead, 2000))
                {
                    if ((buffer[0] == Constants.PREFIX) && (bytesRead >= 13) &&
                        (buffer[8] == 0xC0) && (buffer[9] == 0x00))
                    {
                        uint crc = ((uint)buffer[6] << 8) | (uint)buffer[7];

                        if (crc != 0 && !CRC.CheckCRC(buffer, 0, 13, crc))
                        {
                            Console.WriteLine("Wrong CRC received.");
                            return;
                        }

                        string btVersion = buffer[10].ToString() + "." +
                                           buffer[11].ToString() + "." +
                                           buffer[12].ToString();
                        Console.WriteLine("Bbluetooth firmware version: " + btVersion);
                    }
                    else
                    {
                        Console.WriteLine("Cannot get bluetooth firmware version.");
                    }
                }
            }
            else
            {
                Console.WriteLine("Device is not connected.");
            }
        }
Beispiel #3
0
        // Fragment and transmit data by sending output reports over
        // the interrupt endpoint
        public static bool TransmitData(IntPtr hid, byte[] buffer, int bufferSize)
        {
            bool success = false;

            // Make sure that we are connected to a device
            if (HID.IsOpened(hid))
            {
                try
                {
                    success = HID.TransmitData(hid, buffer, bufferSize);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
            else
            {
                throw new Exception("Device is not connected.");
            }

            return(success);
        }