public void TwoContactsToBytes() { MultiTouchReport report = new MultiTouchReport(2, true); Point point = HidContactInfo.GetPoint(new Point(2,3)); report.Contacts.Add(CreateContact(HidContactState.Updated, 1, 2, 3, 4, 5)); report.Contacts.Add(CreateContact(HidContactState.Updated, 2, 2, 3, 4, 5)); const int expectedPresure = 4 * 5; report.ToBytes(); byte[] data = report.Data; BinaryReader reader = new BinaryReader(new MemoryStream(data)); Assert.AreEqual(3, reader.ReadByte()); //tip, inrange Assert.AreEqual(0, reader.ReadByte()); // Assert.AreEqual(Convert.ToUInt16(point.X), reader.ReadUInt16()); // x Assert.AreEqual(Convert.ToUInt16(point.Y), reader.ReadUInt16()); // y Assert.AreEqual(expectedPresure, reader.ReadUInt16()); // pressure Assert.AreEqual(4, reader.ReadUInt16()); // width Assert.AreEqual(5, reader.ReadUInt16()); // height Assert.AreEqual(1, reader.ReadUInt16()); // id Assert.AreEqual(3, reader.ReadByte()); //tip, inrange Assert.AreEqual(0, reader.ReadByte()); // Assert.AreEqual(Convert.ToUInt16(point.X), reader.ReadUInt16()); // x Assert.AreEqual(Convert.ToUInt16(point.Y), reader.ReadUInt16()); // y Assert.AreEqual(expectedPresure, reader.ReadUInt16()); // pressure Assert.AreEqual(4, reader.ReadUInt16()); // width Assert.AreEqual(5, reader.ReadUInt16()); // height Assert.AreEqual(2, reader.ReadUInt16()); // id Assert.AreEqual(2, reader.ReadByte()); }
private void SendContacts(ICollection<HidContactInfo> contactsToSend) { MultiTouchReport report = new MultiTouchReport((byte) contactsToSend.Count, true); int index = 0; foreach (HidContactInfo contactInfo in contactsToSend) { contactInfo.Timestamp = DateTime.Now; report.Contacts.Add(contactInfo); index++; if (contactsToSend.Count - index == 0) SendReport(report); else if (index % MultiTouchReport.MaxContactsPerReport == 0) { SendReport(report); report = new MultiTouchReport((byte) contactsToSend.Count, false); } } }
private void SendContacts(ICollection <HidContactInfo> contactsToSend) { MultiTouchReport report = new MultiTouchReport((byte)contactsToSend.Count, true); int index = 0; foreach (HidContactInfo contactInfo in contactsToSend) { contactInfo.Timestamp = DateTime.Now; report.Contacts.Add(contactInfo); index++; if (contactsToSend.Count - index == 0) { SendReport(report); } else if (index % MultiTouchReport.MaxContactsPerReport == 0) { SendReport(report); report = new MultiTouchReport((byte)contactsToSend.Count, false); } } }
private void SendReport(MultiTouchReport report) { report.ToBytes(); device.WriteReport(report); }