Недавно я загрузил библиотеку wiiuse, и у меня проблемы с ее использованием. Я написал небольшой код, но удаленный отключается сразу после подключения. Даже код, присутствующий на веб-сайте , не работает; то же самое происходит, когда я пытаюсь использовать этот код. Я попробовал демонстрационное приложение, которое я получил в библиотеке, но это прекрасно работает.
Я использую Windows XP SP3 и MinGW (gcc 4.5.0) для компиляции кодов.
EDIT 1
Я пробовал то же самое с Linux. Там он не страдает проблемой разъединения, но у него проблемы с выбором правильных СОБЫТИЙ. Что бы я ни делал, он только испускает/улавливает WIIUSE_NONE
. WIIUSE_EVENT
никогда не выделяется/ломается.
Здесь мой код:
#include <stdio.h>
#include <stdlib.h>
#include "wiiuse.h"
#define NUMBER_OF_REMOTES 1
void handle_event(struct wiimote_t* rm){
if(IS_PRESSED(rm, WIIMOTE_BUTTON_UP)){
printf("\n - IR Activated - \n");
wiiuse_set_ir(rm,1);
}
else if(IS_PRESSED(rm, WIIMOTE_BUTTON_DOWN)){
printf("\n - IR Dectivated - \n");
wiiuse_set_ir(rm,0);
}
if(WIIUSE_USING_IR(rm)){
for(int i=0; i<4; i++){
if(rm->ir.dot[i].visible){
printf("IR source %i: (%u, %u)\n", i, rm->ir.dot[i].x, rm->ir.dot[i].y);
}
printf("IR cursor: (%u, %u)\n", rm->ir.x, rm->ir.y);
printf("IR z distance: %f\n", rm->ir.z);
}
}
}
void handle_disconnect(struct wiimote_t* rm){
printf("\n - DISCONNECTED - ID: %i\n\n", rm->unid);
}
int main()
{
wiimote** remote = wiiuse_init(NUMBER_OF_REMOTES);
printf("Searching...");
int found = wiiuse_find(remote, NUMBER_OF_REMOTES, 5000);
printf("Found %d devices\n", found);
int connected = wiiuse_connect(remote, found);
if(!connected){
printf("Failed to connect\n");
return 0;
}
else{
printf("Connected\n");
wiiuse_rumble(remote[0],1);
Sleep(250);
wiiuse_rumble(remote[0],0);
while(1){
if (wiiuse_poll(remote, NUMBER_OF_REMOTES)) {
for(int i=0;i<NUMBER_OF_REMOTES; i++){
switch(remote[i]->event){
case WIIUSE_EVENT:
handle_event(remote[i]); break;
case WIIUSE_DISCONNECT:
case WIIUSE_UNEXPECTED_DISCONNECT:
handle_disconnect(remote[i]); break;
default: break;
}
}
}
}
wiiuse_cleanup(remote,NUMBER_OF_REMOTES);
}
}
Не может ли кто-нибудь что-нибудь сделать? Мне действительно нужно решить проблему как можно раньше.