jueves, 27 de marzo de 2008

Documentación pyton-cwiid

A raíz de las notas que he tomado y las pruebas realizadas he escrito una breve documentación de la biblioteca cwiid para python. No está completa y seguramente contenga errores y equivocaciones, por lo que si veis alguna cosa rara o tenéis alguna sugerencia no dudéis en comentarlo.

(revisión 1.0)

cwiid.__doc__
CWiid Wiimote Interface

cwiid.__file__
/var/lib/python-support/python2.5/cwiid.so

cwiid.__name__
cwiid

Constantes

BATTERY_MAX
Indica el nivel máximo de batería, se utiliza para determinar el nivel actual de batería

BTN_UP
BTN_DOWN
BTN_LEFT
BTN_RIGHT
BTN_A
BTN_B
BTN_1
BTN_2
BTN_MINUS
BTN_PLUS
BTN_HOME
Botones del Wiimote

CLASSIC_BTN_A
CLASSIC_BTN_B
CLASSIC_BTN_DOWN
CLASSIC_BTN_HOME
CLASSIC_BTN_L
CLASSIC_BTN_LEFT
CLASSIC_BTN_MINUS
CLASSIC_BTN_PLUS
CLASSIC_BTN_R
CLASSIC_BTN_RIGHT
CLASSIC_BTN_UP
CLASSIC_BTN_X
CLASSIC_BTN_Y
CLASSIC_BTN_ZL
CLASSIC_BTN_ZR
CLASSIC_LR_MAX
CLASSIC_L_STICK_MAX
CLASSIC_R_STICK_MAX
Botones del mando clásico

CMD_LED
CMD_RPT_HOME
CMD_RUMBLE
CMD_STATUS
En la biblioteca de Python no tienen aplicación

ERROR_COMM
ERROR_DISCONNECT
Tipos de error

EXT_NONE
EXT_NUNCHUK
EXT_CLASSIC
EXT_UNKNOWN
Las distintas extensiones que soporta el mando

FLAG_CONTINUOUS
Habilita informes continuos del Wiimote

FLAG_MESG_IFC
Habilita el interfaz basado en mensajes (a través de callback)

FLAG_NONBLOCK
Provoca que get_mesg() se falle en lugar de bloquearse esperando un mensaje si la cola está vacia

FLAG_REPEAT_BTN
Se envía un mensaje por cada botón pulsado, aunque este no haya cambiado de estado

IR_SRC_COUNT
IR_X_MAX
IR_Y_MAX
Definiciones para el IR

LED1_ON
LED2_ON
LED3_ON
LED4_ON
Valores para encender/apagar los led

MAX_READ_LEN
Longitus máxima que puede leerse

MESG_ACC
MESG_BTN
MESG_CLASSIC
MESG_ERROR
MESG_IR
MESG_NUNCHUK
MESG_STATUS
MESG_UNKNOWN
Tipos de mensaje recibidos

NUNCHUK_BTN_C
NUNCHUK_BTN_Z
Botones del Nunchuk

RPT_ACC
RPT_BTN
RPT_CLASSIC
RPT_EXT
RPT_IR
RPT_NUNCHUK
RPT_STATUS
Establecen los distintos tipos de informe (reporting mode) del wiimote. Cada uno determina que dispositivo está activo y que datos deben ser enviados al host. Cada flag especifica un bit, por lo que deben establecerse por medio de funciones OR

RW_DECODE
RW_EEPROM
RW_REG
Flags para los registros del wiimote

X
Y
Z
Identificadores de los distintos ejes del wiimote

Métodos

Wiimote(bt_addrs)
Parámetros
bt_addrs: Dirección Bluetooth del wiimote

Descripción
Conecta con el Wiimote especificado o con el primero que encuentre si no se especifica mando

Valor de retorno
Un objeto Wiimote si la conexión ha tenido éxito

Class Wiimote()
Una vez creado un objeto de tipo Wiimote a través de cwiid.Wiimote() disponemos de los siguientes atributos y métodos para esta clase


Atributos
state
Diccionario con el estado actual del mando

mesg_callback
Función para tratar los mensajes enviados por el wiimote. Una vez se pone a funcionar el mando en un modo RPT_XXX este envía mensajes cada vez que sucede un evento. Estos mensajes son tratados con la función indicada en este atributo (La función debe haber sido declarada anteriormente)

rpt_mode
Modo de informes del mando: RPT_ACC, RPT_BTN, RPT_CLASSIC, RPT_IR, RPT_EXT, RPT_NUNCHUK, RPT_STATUS

led
Atributo para activar/desactivar los led
Ej: wiimote.led = cwiid.LED1_ON
wiimote.led = not cwiid.LED1_ON

rumble
Atributo para activar/desactivar la vibración
Ej: wiimote.rumble = 1

Métodos

close()
Descripción
Cierra la conexión con un objeto Wiimote

enable(flags)
Parámetros
FLAG_CONTINUOUS, FLAG_MESG_IFC, FLAG_NONBLOCK, FLAG_REPEAT_BTN

Descripción
Habilita los flags indicados

disable(flags)
Parámetros
FLAG_CONTINUOUS, FLAG_MESG_IFC, FLAG_NONBLOCK, FLAG_REPEAT_BTN

Descripción
Deshabilita los flags indicados

get_acc_cal(extension)
Parámetros
EXT_NONE, EXT_NUNCHUK, EXT_CLASSIC, EXT_UNKNOWN

Descripción
Devuelve una tupla ( (X,Y,Z) , (X,Y,Z) ) con la información sobre la calibración del acelerómetro

Valor de retorno
Tupla ( (X,Y,Z) , (X,Y,Z) )

get_mesg()
Descripción
Devuelve un mensaje de la cola, estos mensajes se recuperan por medio de "callback" o de esta función

Valor de retorno
Mensaje mas antiguo de la cola

read(flags, offset, lenght)
Parámetros
flags: RW_EEPROM, RW_REG, RW_DECODE
offset: Dirección de inicio
lenght: Longitud

Descripción
Lee datos desde el Wiimote, utiliza los flags RW_EEPROM, RW_REG (mutuamente exclusivos)para leer desde la memoria EEPROM o desde el registro. El flag RW_DECODE realiza cualquier decodificación de los datos leídos si es necesario.

Valor de retorno
Los datos leídos

write(flags, offset, buffer)
Parámetros
flags: RW_EEPROM, RW_REG, RW_DECODE
offset: Dirección de inicio
buffer: Información a escribir

Descripción
Escribe datos en el Wiimote, utiliza los flags RW_EEPROM, RW_REG (mutuamente exclusivos)para leer desde la memoria EEPROM o desde el registro. El flag RW_DECODE es ignorado.


request_status()
??


Referencia
http://abstrakraft.org/cwiid/wiki/libcwiid



No hay comentarios: