An open API service indexing awesome lists of open source software.

https://github.com/lipp/lualibusb

the unmodified lualibusb 1.0 brought to github with rockspec
https://github.com/lipp/lualibusb

Last synced: 6 months ago
JSON representation

the unmodified lualibusb 1.0 brought to github with rockspec

Awesome Lists containing this project

README

          

Lua-libusb Binding.

Authors
=======

Jorge Visca
Andres Aguirre

Copyright 2008 MINA Group, Facultad de Ingenieria, Universidad de la
Republica, Uruguay.

See LICENSE

Installation
============

sudo luarocks install https://github.com/lipp/lualibusb/raw/master/rockspecs/lualibusb-scm-1.rockspec


Intro
=====

For sample usage, see test.lua
Tested on Linux, with libusb 0.1.12

Functions
==========

The following correspond to functions in libusb.h . For reference,
see http://libusb.sourceforge.net/doc/functions.html

find_busses()
Returns a number

find_devices(bus)
Returns a number

get_busses()
Returns a dirname->bus_handler map

get_devices(bus_handler)
Returns a filename->device map

open(device)
Returns a dev_handle

close(dev_handle)
Returns true if success. In case of failure returns nil followed by error code.

set_configuration(dev_handle, configuration)
configuration is a number
Returns true if success. In case of failure returns nil followed by error code.

set_altinterface(dev_handle, alternative)
configuration is a number
Returns true if success. In case of failure returns nil followed by error code.

clear_halt(dev_handle, ep)
ep is a number
Returns true if success. In case of failure returns nil followed by error code.

reset(dev_handle)
Returns true if success. In case of failure returns nil followed by error code.

claim_interface(dev_handle, interface)
interface is a number
Returns true if success. In case of failure returns nil followed by error code.

release_interface(dev_handle, interface)
interface is a number
Returns true if success. In case of failure returns nil followed by error code.

control_msg(dev_handle,requesttype,request,value,index,bytes,timeout)
requesttype,request,value,index and timeout are numbers
bytes is a string
Returns a number if success. In case of failure returns nil followed by error code.

get_string_simple(dev_handle,index,buflen)
index is a number
buflen is a number, if missing or 0 defaults to 255
Returns a string. In case of failure returns nil followed by error code.

TODO: usb_get_string

get_descriptor(dev_handle,type,index,size)
type and index are numbers (0..255)
size is a number, if missing or 0 defaults to 255
Returns a string. In case of failure returns nil followed by error code.

get_descriptor_by_endpoint(dev_handle,ep,type,index,size)
type and index are numbers (0..255)
ep is a numbers
size is a number, if missing or 0 defaults to 255
Returns a string. In case of failure returns nil followed by error code.

bulk_write(dev_handle,ep,bytes,timeout)
ep and timeout are numbers
bytes is a string
Returns a number. In case of failure returns nil followed by error code.

bulk_read(dev_handle,ep,size,timeout)
ep, size and timeout are numbers
Returns a string. In case of failure returns nil followed by error code.

interrupt_write(dev_handle,ep,bytes,timeout)
ep and timeout are numbers
bytes is a string
Returns a number. In case of failure returns nil followed by error code.

interrupt_read(dev_handle,ep,size,timeout)
ep, size and timeout are numbers
Returns a string. In case of failure returns nil followed by error code.


Data
====

The following functions access data in libusb.h structs. For reference,
see http://libusb.sourceforge.net/api-1.0/annotated.html .
device_descriptor,
device_config and endpoint_descriptor return a table that maps the name of the
attribute to it's value.
interface_alt_settings returns an array of tables (a table for each alternative),
where each table maps the name of the attribute to it's value.
Most of these values are numbers, except the "extra"'s, which are strings, and
"endpoint" and "interface" which are handlers.

device_descriptor(device)

device_config(device)

interface_alt_settings(interface)

endpoint_descriptor(endpoint_handler)

Constants
=========

The library exports the #defined constants from libusb.h . For your convenience.

===
END