Mercurial > code > home > repos > light9
view dmx_usb_module/dmx.pyx @ 772:c0977217a7da
attempt to receive a brand new submaster. doesn't work, this fix doesn't address the problem. But you can drag it in twice as a workaround
Ignore-this: feed1c3e69d0a50412fb6139e8c04ab0
author | drewp@bigasterisk.com |
---|---|
date | Sat, 16 Jun 2012 04:32:49 +0000 |
parents | 295e803f6a5e |
children |
line wrap: on
line source
cdef extern from "fcntl.h": int open(char *pathname, int flags) int O_WRONLY cdef extern from "unistd.h": int write(int fd, void *buf, int count) cdef extern from "string.h": char *strncpy(char *dest, char *src, int n) cdef extern from "Python.h": char* PyString_AsString(object string) cdef class Dmx: cdef int fd def __cinit__(self, port="/dev/dmx0"): self.fd = open(port, O_WRONLY) if self.fd < 0: raise OSError("open failed") def write(self, buf): cdef char *cbuf cbuf = PyString_AsString(buf) if cbuf == NULL: raise ValueError("string buffer conversion failed") res = write(self.fd, cbuf, 513) if res < 0: raise OSError("write failed")