private static void SendThread() { while (true) { lock (WriteQueue) { if (WriteQueue.Count != 0) { WriteQueueData wqd = WriteQueue.Dequeue(); int res = HIDapi.hid_write(wqd.pointer, wqd.data, new UIntPtr(Convert.ToUInt32(wqd.data.Length))); if (res == -1) Debug.LogError("HidAPI reports error " + res + " on write: " + Marshal.PtrToStringUni(HIDapi.hid_error(wqd.pointer))); else if (Debug_Messages) Debug.Log("Sent " + res + "b: [" + wqd.data[0].ToString("X").PadLeft(2, '0') + "] " + BitConverter.ToString(wqd.data, 1)); } } Thread.Sleep(MaxWriteFrequency); } }