<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://forums.obdev.at/app.php/feed/topic/6917" />

	<title>Objective Development Forums</title>
	
	<link href="https://forums.obdev.at/index.php" />
	<updated>2012-08-04T16:12:47+02:00</updated>

	<author><name><![CDATA[Objective Development Forums]]></name></author>
	<id>https://forums.obdev.at/app.php/feed/topic/6917</id>

		<entry>
		<author><name><![CDATA[ulao]]></name></author>
		<updated>2012-08-04T16:12:47+02:00</updated>

		<published>2012-08-04T16:12:47+02:00</published>
		<id>https://forums.obdev.at/viewtopic.php?t=6917&amp;p=22364#p22364</id>
		<link href="https://forums.obdev.at/viewtopic.php?t=6917&amp;p=22364#p22364"/>
		<title type="html"><![CDATA[Re: Problem in HID report structure]]></title>

		
		<content type="html" xml:base="https://forums.obdev.at/viewtopic.php?t=6917&amp;p=22364#p22364"><![CDATA[
I see, well its document out there in the waste lands... but the way I always did that was to send a unique report and then see what it effects. Obviously it have nothing to do with your struct but more so the data packet. For example here is a basic gamepad<br /><br />reportBuffer[1]=128;//X-Axis ( main stick )<br />reportBuffer[2]=128;//Y-Axis<br />reportBuffer[3]=128;//Z-Axis<br />reportBuffer[4]=128;//X-rotate<br />reportBuffer[5]=128;//Y-rotate<br />reportBuffer[6]=128;//Z-rotate<br />reportBuffer[7]=128;//slider( right trig )<br />reportBuffer[8]=128;//dial ( left trig )<br />reportBuffer[9] =0;//buttons 1<br />reportBuffer[10]=0;//buttons 2 <br />reportBuffer[11]=0;//buttons 3<br /><br /><br />Now to figure out what byte 6 was I'd do this reportBuffer[6]=0xff; then I watch my hid device on the PC end and look for ff. Then I can see that report 6 goes to Z-rotate.That the easy way IMO. The hard way is to look up the HID digitize on Microsoft knowledge base.<br /><br />I dont have any experience with digitizes but maybe this helps?<br /><!-- m --><a class="postlink" href="http://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=USB_Protocol">http://sourceforge.net/apps/mediawiki/l ... B_Protocol</a><!-- m --><p>Statistics: Posted by <a href="https://forums.obdev.at/memberlist.php?mode=viewprofile&amp;u=1281">ulao</a> — Sat Aug 04, 2012 4:12 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[sohrab]]></name></author>
		<updated>2012-08-04T15:57:23+02:00</updated>

		<published>2012-08-04T15:57:23+02:00</published>
		<id>https://forums.obdev.at/viewtopic.php?t=6917&amp;p=22363#p22363</id>
		<link href="https://forums.obdev.at/viewtopic.php?t=6917&amp;p=22363#p22363"/>
		<title type="html"><![CDATA[Re: Problem in HID report structure]]></title>

		
		<content type="html" xml:base="https://forums.obdev.at/viewtopic.php?t=6917&amp;p=22363#p22363"><![CDATA[
thanks fro reply, my  problem is about the structure that is used to send data to computer.<br />for example for an hid mouse we use sth like this:<br />typedef struct{<br />    uchar   buttonMask;<br />    char    dx;<br />    char    dy;<br />    char    dWheel;<br />}report_t;<br /><br />1 variable for buttons and 3 variables for dx,dy and wheel.<br /><br />and my question is what is the relation between report descriptor and report structure?<br />(i think we need a variable in structure  for every &quot;INPUT (Data,Var,...)&quot; in descriptor.)<br />and what will be the structure for digitizer?<p>Statistics: Posted by <a href="https://forums.obdev.at/memberlist.php?mode=viewprofile&amp;u=7121">sohrab</a> — Sat Aug 04, 2012 3:57 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[ulao]]></name></author>
		<updated>2012-08-04T14:25:17+02:00</updated>

		<published>2012-08-04T14:25:17+02:00</published>
		<id>https://forums.obdev.at/viewtopic.php?t=6917&amp;p=22361#p22361</id>
		<link href="https://forums.obdev.at/viewtopic.php?t=6917&amp;p=22361#p22361"/>
		<title type="html"><![CDATA[Re: Problem in HID report structure]]></title>

		
		<content type="html" xml:base="https://forums.obdev.at/viewtopic.php?t=6917&amp;p=22361#p22361"><![CDATA[
Get your self the HID Descriptor Tool...<br /><!-- m --><a class="postlink" href="http://www.usb.org/developers/hidpage#HID">http://www.usb.org/developers/hidpage#HID</a><!-- m --> Descriptor Tool<p>Statistics: Posted by <a href="https://forums.obdev.at/memberlist.php?mode=viewprofile&amp;u=1281">ulao</a> — Sat Aug 04, 2012 2:25 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[sohrab]]></name></author>
		<updated>2012-08-03T18:02:42+02:00</updated>

		<published>2012-08-03T18:02:42+02:00</published>
		<id>https://forums.obdev.at/viewtopic.php?t=6917&amp;p=22355#p22355</id>
		<link href="https://forums.obdev.at/viewtopic.php?t=6917&amp;p=22355#p22355"/>
		<title type="html"><![CDATA[Problem in HID report structure]]></title>

		
		<content type="html" xml:base="https://forums.obdev.at/viewtopic.php?t=6917&amp;p=22355#p22355"><![CDATA[
hi, <br />sorry for bad English, <br />i've run HID mouse successfully and i understand the structure that is used for sending data.(that consist 1 uchar for buttons and 3 char for dx , dy and wheel) <br />i'm trying to run an HID multitouch and i don't know how many variable i have to use in report structure. <br />Can somebody write the structure? <br />HID multitouch have a descriptor like this:(according to a document by microsoft) <br /><br />0x05, 0x0d, // USAGE_PAGE (Digitizers) <br />0x09, 0x04, // USAGE (Touch Screen) <br />0xa1, 0x01, // COLLECTION (Application) <br />0x85, REPORTID_MTOUCH, // REPORT_ID (Touch) <br />0x09, 0x22, // USAGE (Finger) <br />0xa1, 0x02, // COLLECTION (Logical) <br />0x09, 0x42, // USAGE (Tip Switch) <br />0x15, 0x00, // LOGICAL_MINIMUM (0) <br />0x25, 0x01, // LOGICAL_MAXIMUM (1) <br />0x75, 0x01, // REPORT_SIZE (1) <br />0x95, 0x01, // REPORT_COUNT (1) <br />0x81, 0x02, // INPUT (Data,Var,Abs) <br />0x09, 0x32, // USAGE (In Range) <br />0x81, 0x02, // INPUT (Data,Var,Abs) <br />0x09, 0x47, // USAGE (Touch Valid) <br />0x81, 0x02, // INPUT (Data,Var,Abs) <br />0x95, 0x05, // REPORT_COUNT (5) <br />0x81, 0x03, // INPUT (Cnst,Ary,Abs) <br />0x75, 0x08, // REPORT_SIZE ( <br />0x09, 0x51, // USAGE (Contact Identifier) <br />0x95, 0x01, // REPORT_COUNT (1) <br />0x81, 0x02, // INPUT (Data,Var,Abs) <br />0x05, 0x01, // USAGE_PAGE (Generic Desk.. <br />0x26, 0xff, 0x7f, // LOGICAL_MAXIMUM (32767) <br />0x75, 0x10, // REPORT_SIZE (16) <br />0x55, 0x00, // UNIT_EXPONENT (0) <br />0x65, 0x00, // UNIT (None) <br />0x09, 0x30, // USAGE (X) <br />0x35, 0x00, // PHYSICAL_MINIMUM (0) <br />0x46, 0x00, 0x00, // PHYSICAL_MAXIMUM (0) <br />0x81, 0x02, // INPUT (Data,Var,Abs) <br />0x09, 0x31, // USAGE (Y) <br />0x46, 0x00, 0x00, // PHYSICAL_MAXIMUM (0) <br />0x81, 0x02, // INPUT (Data,Var,Abs) <br />0xc0, // END_COLLECTION <br />0xa1, 0x02, // COLLECTION (Logical) <br />0x05, 0x0d, // USAGE_PAGE (Digitizers) <br />0x09, 0x42, // USAGE (Tip Switch) <br />0x15, 0x00, // LOGICAL_MINIMUM (0) <br />0x25, 0x01, // LOGICAL_MAXIMUM (1) <br />0x75, 0x01, // REPORT_SIZE (1) <br />0x95, 0x01, // REPORT_COUNT (1) <br />0x81, 0x02, // INPUT (Data,Var,Abs) <br />0x09, 0x32, // USAGE (In Range) <br />0x81, 0x02, // INPUT (Data,Var,Abs) <br />0x09, 0x47, // USAGE (Touch Valid) <br />0x81, 0x02, // INPUT (Data,Var,Abs) <br />0x95, 0x05, // REPORT_COUNT (5) <br />0x81, 0x03, // INPUT (Cnst,Ary,Abs) <br />0x75, 0x08, // REPORT_SIZE ( <br />0x09, 0x51, // USAGE ( Cotact Identifier) <br />0x95, 0x01, // REPORT_COUNT (1) <br />0x81, 0x02, // INPUT (Data,Var,Abs) <br />0x05, 0x01, // USAGE_PAGE (Generic Desk.. <br />0x26, 0xff, 0x7f, // LOGICAL_MAXIMUM (32767) <br />0x75, 0x10, // REPORT_SIZE (16) <br />0x55, 0x00, // UNIT_EXPONENT (0) <br />0x65, 0x00, // UNIT (None) <br />0x09, 0x30, // USAGE (X) <br />0x35, 0x00, // PHYSICAL_MINIMUM (0) <br />0x46, 0x00, 0x00, // PHYSICAL_MAXIMUM (0) <br />0x81, 0x02, // INPUT (Data,Var,Abs) <br />0x09, 0x31, // USAGE (Y) <br />0x46, 0x00, 0x00, // PHYSICAL_MAXIMUM (0) <br />0x81, 0x02, // INPUT (Data,Var,Abs) <br />0xc0, // END_COLLECTION <br />0x05, 0x0d, // USAGE_PAGE (Digitizers) <br />0x09, 0x54, // USAGE (Contact Count) <br />0x95, 0x01, // REPORT_COUNT (1) <br />0x75, 0x08, // REPORT_SIZE ( <br />0x15, 0x00, // LOGICAL_MINIMUM (0) <br />0x25, 0x08, // LOGICAL_MAXIMUM ( <br />0x81, 0x02, // INPUT (Data,Var,Abs) <br />0x09, 0x55, // USAGE(Contact Count Maximum) <br />0xb1, 0x02, // FEATURE (Data,Var,Abs) <br />0xc0, // END_COLLECTION<p>Statistics: Posted by <a href="https://forums.obdev.at/memberlist.php?mode=viewprofile&amp;u=7121">sohrab</a> — Fri Aug 03, 2012 6:02 pm</p><hr />
]]></content>
	</entry>
	</feed>
