Цитата(mempfis_ @ Apr 16 2007, 16:41)

Привет всем!!!
Помогите разобраться пожалуйста.
Есть у меня hid-устройство с таким вот hid-report
//Дескриптор репорта
flash struct st_usb_hidreport_descriptor usb_hidreport_descriptor=
{
0x06, 0x00, 0xff, //(Generic Desktop)0x06 0x00 0xff
0x09, 0x01, //(Vendor Usage 1)0x09 0x01
0xa1, 0x01, //(Aplication) 0xa1 0x01
0x19, 0x01, //(Vendor Usage 1) 0x19 0x01
0x29, 0x01, //(Vendor Usage 1) 0x29 0x01
0x15, 0x00, //(0) 0x15 0x00 logical minimum
0x26, 0xff, 0x00, //(255) 0x26 0xff 0x00 logical maximum
0x75, hidreport_size, //(8) 0x75 0x08 report size
0x95, hidreport_count, //(16) 0x95 0x10 report count
0x81, 0x02, //(Data, Var, Abs) 0x81 0x02 feature
0xc0 //0xc0
} ;
расчитано оно на одно конечную точку типа in размером в 64 байта
Подскажите мне пожалуйста как изменить этот дескриптор, чтобы ввести
вторую конечную точку типа out с такимиже параметрами как и in

я разобрался во всех дескрипторах но вот hid-report даётся с большим трудом
надеюсь на вашу помощь и огромное спасибо всем откликнувшимся
Страшно читать ваш репорт. Вот мой, и с INPUT, и с OUTPUT, и даже с FEATURE
Код
/* HID Report Descriptor */
const portCHAR pxReportDescriptor[] = {
HID_GLOBAL_USAGE_PAGE+1, HID_USAGE_PAGE_GENERIC_DESKTOP, // USAGE_PAGE (Generic Desktop)
HID_LOCAL_USAGE+1, HID_USAGE_JOYSTICK, // USAGE (Joystick)
HID_MAIN_COLLECTION+1, HID_COLLECTION_APPLICATION, // COLLECTION (Application)
HID_GLOBAL_USAGE_PAGE+1, HID_USAGE_PAGE_GENERIC_DESKTOP, // USAGE_PAGE (Generic Desktop)
HID_LOCAL_USAGE+1, HID_USAGE_POINTER, // USAGE (Pointer)
HID_MAIN_COLLECTION+1, HID_COLLECTION_PHYSICAL, // COLLECTION (Physical)
HID_LOCAL_USAGE+1, HID_USAGE_X, // USAGE (X)
HID_LOCAL_USAGE+1, HID_USAGE_Y, // USAGE (Y)
HID_LOCAL_USAGE+1, HID_USAGE_Z, // USAGE (Z)
HID_LOCAL_USAGE+1, HID_USAGE_RX, // USAGE (Rx)
HID_LOCAL_USAGE+1, HID_USAGE_RY, // USAGE (Ry)
HID_LOCAL_USAGE+1, HID_USAGE_RZ, // USAGE (Rz)
HID_LOCAL_USAGE+1, HID_USAGE_SLIDER, // USAGE (Slider)
HID_LOCAL_USAGE+1, HID_USAGE_DIAL, // USAGE (Dial)
HID_GLOBAL_LOGICAL_MINIMUM+2, 0x00,0x02, // 0x0200 == -512 in 10-bit word
HID_GLOBAL_LOGICAL_MAXIMUM+2, 0xff,0x01, // 0x01ff == +511 in 10-bit word
HID_GLOBAL_REPORT_SIZE+1, 0x0A, // REPORT_SIZE (8)
HID_GLOBAL_REPORT_COUNT+1, 0x08, // REPORT_COUNT (8)
HID_MAIN_INPUT+1, 0x02, // INPUT (Data,Var,Abs)
HID_MAIN_ENDCOLLECTION, // END_COLLECTION
HID_GLOBAL_LOGICAL_MINIMUM+1, 0x00, // LOGICAL_MINIMUM (0)
HID_GLOBAL_USAGE_PAGE+1, HID_USAGE_PAGE_BUTTON, // USAGE_PAGE (Button)
HID_LOCAL_USAGE_MINIMUM+2, 0x01,0x00, // USAGE_MINIMUM (Button 1)
HID_LOCAL_USAGE_MAXIMUM+2, 0x80,0x00, // USAGE_MAXIMUM (Button 191)
HID_GLOBAL_LOGICAL_MINIMUM+1, 0x00, // LOGICAL_MINIMUM (0)
HID_GLOBAL_LOGICAL_MAXIMUM+1, 0x01, // LOGICAL_MAXIMUM (1)
HID_GLOBAL_REPORT_SIZE+1, 0x01, // REPORT_SIZE (1)
HID_GLOBAL_REPORT_COUNT+1, 0x80, // REPORT_COUNT (192)
HID_GLOBAL_UNIT_EXPONENT+1, 0x00, // UNIT_EXPONENT (0)
HID_GLOBAL_UNIT+1, 0x00, // UNIT (None)
HID_MAIN_INPUT+1, 0x02, // INPUT (Data,Var,Abs)
HID_LOCAL_USAGE+1, 0xff, // USAGE (Vendor defined)
HID_GLOBAL_LOGICAL_MINIMUM+1, (unsigned char) -128,
HID_GLOBAL_LOGICAL_MAXIMUM+1, (unsigned char) 127,
HID_GLOBAL_REPORT_COUNT+1, 0x40, // REPORT_COUNT (64)
HID_GLOBAL_REPORT_SIZE+1, 0x08, // REPORT_SIZE (8)
HID_MAIN_OUTPUT+1, 0x02, // OUTPUT (Data,Var,Abs)
HID_GLOBAL_USAGE_PAGE+2, 0xff,0xff,
HID_LOCAL_USAGE+1, 0xff, // USAGE (Vendor defined)
HID_GLOBAL_LOGICAL_MINIMUM+1, (unsigned char) -128,
HID_GLOBAL_LOGICAL_MAXIMUM+1, (unsigned char) 127,
HID_GLOBAL_REPORT_COUNT+1, 0x08, // REPORT_COUNT (8)
HID_GLOBAL_REPORT_SIZE+1, 0x08, // REPORT_SIZE (8)
HID_MAIN_FEATURE+1, 0x02, // FEATURE (Data,Var,Abs)
HID_MAIN_ENDCOLLECTION // END_COLLECTION
};