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; } } }
} = 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; }
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); } }