Software |
DMX4Linux Driver Suite for Linux |
csv2iif.pl suite convert PayPal transactions to IIF, OFX, QIF |
Hardware |
DMX30 Interface 128Ch SPP |
DMX43 Interface 2out 2in EPP |
LED Hardware for Linux and Windows |
EPROM Sampler for 8 bits of sound |
Misc |
CatWeasel Linux drivers for MK3/4 PCI |
pg_trompe PostgreSQL replication |
trycatch C exception/signal handling lib |
Patches to various software |
Tools and small scripts |
Docs misc documents |
Links to lighting stuff |
Preview of dmx4linux v3We collect some ideas for the big rewrite of dmx4linux on this page. Please tell Dirk Jagdmann <doj@cubic.org> about your ideas. The 3.x versions of dmx4linux will run only on linux >= 2.6 kernels and thus can use features present in the new kernels. DriversRedo the complete backend of the drivers. Dump all family/property system into trash. The backend needs to deal solely with mapping multiple dmx interface drivers into a single universe and multiplex the user code fops onto the drivers fops. Decide which device semantics the output and input drivers should have. The output drivers can be used as a block device, thus allowing random access to an internal buffer. For input drivers we could use a character device, which just emits a stream of received/altered channels. An interface drivers registers itself to the backend with a single
call to
Each driver has a module parameter which indicates the desired universe number (for all kernel based drivers). If the desired number is already in use the next available is choosen by the driver backend. This allows the user to configure different interface types consistently regardless of module initialisation/load order. orEach hardware driver just uses /dev/dmx[0..255] and /dev/dmxin[0..255] for each universe. The universes are not combined into a single big universe in the driver level. You can use ioctl on each dev to get/set hardware information. TODOHow to deal with IRQs and usb poll threads? How to do RDM? User spaceRemove all /proc stuff and use the new /sys instead. IOCTLAll existing ioctls are removed. They are not needed. The following new calls are added.
User libUser applications should use our provided dmx4linux lib. This lib will provide a generic API to different kinds of interfaces. This will allow us to create drivers for rs232 and network interfaces with user code, which is included in the user lib. usb, firewire, parport, pci, isa interfaces are accessed with the kernel drivers. A configuration file in /etc will configure which interfaces to map to which universes. Functions provided by lib: int DMXinit(); dmx_t DMXget(int slot); int DMXfd(); int DMXgetn(dmx_t *buf, int start, int len); int DMXset(int slot, dmx_t val); int DMXsetn(dmx_t *buf, int start, int len); TODOHow to handle RDM?Configuration fileThe configuration file (presumably [order] kernel rs232 network |