2013-01-24 12 views
5

Sto codificando in C++ su Linux (in particolare Ubuntu 12.04) e vorrei utilizzare il controller PlayStation SixAxis (il tipo fornito con la PS3) come dispositivo di input, idealmente su bluetooth.Accesso al controller Sony PlayStation SixAxis tramite C++ su Linux

La mia applicazione funzionerà senza testa. Non c'è un gestore di finestre in esecuzione sulla piattaforma di destinazione. L'obiettivo è un small robot che esegue Ubuntu Server 12.04, anche se sto sviluppando su un desktop.

Esistono librerie o tecniche per questo che potrei usare?

+0

Stai cercando una libreria simile al testo mousedev, ma per il controller PS3? C'è una libreria per lo spostamento - http://thp.io/2010/psmove/ che potrebbe aiutarti in qualche modo. La tua domanda è un po 'vaga, però. – Petesh

+0

@Petesh, è un po 'vago perché non sono completamente sicuro di cosa sto cercando. Il risultato finale è di campionare periodicamente lo stato del controller o di ricevere callback in risposta a cambiamenti di stato. O andrebbe bene. Questa libreria non sembra supportare il controller SixAxis sfortunatamente. Il più vicino che ho trovato finora è sixad, che è la libreria sottostante per QtSixA. Non sono ancora riuscito a farlo funzionare. –

+0

QtSixA inietta i messaggi in 'uinput' e legge dal dispositivo esposto/dev/input. Sarà guidato dagli eventi: riceverai i messaggi quando i dati cambiano. Il collegamento di libevent per l'elaborazione dei messaggi potrebbe rendere le cose più semplici da programmare. – Petesh

risposta

3

mia soluzione attuale comporta l'uso di questo PPA su Ubuntu 12,04

sudo apt-add-repository ppa:falk-t-j/qtsixa 
sudo apt-get update 
sudo apt-get install sixad -y 
# plug controller into machine (via wire) 
sudo sixpair 
# unplug controller 
sixad --start 
# hold PS button 

Poi ho trovato il vostro c++ library, e funziona benissimo. Ora ho robot a sei assi controllati!