Esempio n. 1
0
        public async Task InitializeVotumAsync()
        {
            WindowsHidDeviceFactory.Register(Logger, Tracer);

            var deviceDefinitions = new List <FilterDeviceDefinition>
            {
                new FilterDeviceDefinition {
                    DeviceType = DeviceType.Hid, VendorId = 0x1fc9, ProductId = 0x80a6, Label = "VOTUM RF-HID Receiver"
                },
            };

            var devices = await DeviceManager.Current.GetDevicesAsync(deviceDefinitions);

            Device = devices.FirstOrDefault();
            await Device.InitializeAsync();

            var writeBuffer = new byte[64];

            byte[] readBuffer;

            while (true)
            {
                readBuffer = await Device.WriteAndReadAsync(writeBuffer);

                if (readBuffer[8] > 0)
                {
                    var record = new PacketRecord(readBuffer);
                    var resp   = new Response(record);
                    await WriteAsync(resp);

                    continue;
                }
            }
        }
Esempio n. 2
0
        } = new byte[0];                                //Данные для пульта или параметры команды.
        //В поле PacketLength включать ФАКТИЧЕСКИЙ размер данного поля, для уменьшения загрузки радиоканала. TSendData = array[0..57] of Byte;

        public Response(PacketRecord record)
        {
            //ReceiverCommand = 1;
            PacketLength  = 0;
            ComplectId    = record.ReceiverId;
            RemoteId      = record.RemoteId;
            RemoteCommand = record.DataId;
        }
Esempio n. 3
0
 private static PacketRecord GetObject(byte[] dsBytes)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         BinaryFormatter bn = new BinaryFormatter();
         ms.Write(dsBytes, 0, dsBytes.Length);
         ms.Seek(0, SeekOrigin.Begin);
         PacketRecord obj = (PacketRecord)bn.Deserialize(ms);
         return(obj);
     }
 }