| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using System;
- using System.Linq;
- using HidLibrary;
- namespace DreamCheeky
- {
- class Device : IDisposable
- {
- private readonly byte[] statusCommand = { 0, 0, 0, 0, 0, 0, 0, 0, 2 };
- private readonly int vendorId = 0x1D34;
- private readonly int productId = 0x000D;
- private readonly HidDevice device;
- public Device()
- {
- device = HidDevices.Enumerate(vendorId, productId).FirstOrDefault();
- if (device == null)
- throw new InvalidOperationException("Device not found");
- }
- public void Open()
- {
- device.OpenDevice();
- }
- public void Close()
- {
- device.CloseDevice();
- }
- public DeviceStatus GetStatus()
- {
- if (!device.Write(statusCommand, 100))
- {
- return DeviceStatus.Errored;
- }
- HidDeviceData data = device.Read(100);
- if (data.Status != HidDeviceData.ReadStatus.Success)
- {
- return DeviceStatus.Errored;
- }
- return (DeviceStatus)data.Data[1];
- }
- public void Dispose()
- {
- Close();
- }
- }
- }
|