Задать вопрос
@lonely_rocker

В чем ошибка в написании драйвера?

Добрый вечер. есть такой набросок драйвера для вр который просто переводит шлем в нужный режим но он не работает. - 0 байт отсылается... где может быть я ошиблась?
#ifdef GAME_H
#include "game.h"
#endif
 
#include <stdio.h>
#include <stdlib.h>
#include <libusb-1.0/libusb.h>
 
#define VENDOR_ID 0x054c  /* Sony corp. */
#define PRODUCT_ID 0x09AF /* PS VR */
#define USB_INTERFACE 0 
#define ENDPOINT_OUT 0x01
 
bool init_psvr(){
 
}
 
bool start_psvr(){
        libusb_device_handle *handle = NULL;
        int r = libusb_init(NULL);
        if(r < 0){
                return false;
        }else{
                handle = libusb_open_device_with_vid_pid(NULL, VENDOR_ID, PRODUCT_ID);
 
                if(!handle){
                        libusb_exit(NULL);
                        return false;
                }else{
 
                        libusb_claim_interface(handle, 0);
                        unsigned char data[4] = {0x01, 0x00, 0x00, 0x00};
                        int transferred;
                        libusb_bulk_transfer(handle, 0x00, data, sizeof(data), &transferred, 1000);
 
                        printf("%d", transferred);
                        
                        libusb_release_interface(handle, 0);
                        libusb_close(handle);   
                        libusb_exit(NULL);
                                        
                        return true;
                }       
        }
}
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
15432
@15432
Системный программист ^_^
Вы на endpoint 0 отправляете bulk данные, это странно, обычно endpoint bulk типа имеет ненулевой идентификатор

Возможно, вам нужен control transfer. Или указать другой номер endpoint
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы