Files
@ 48af0ea86ff4
Branch filter:
Location: light9/dmx_usb_module/dmx.pyx - annotation
48af0ea86ff4
722 B
text/x-cython
bcf2000: forget last slider values on reopen
4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 4e60444605f6 | 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 __new__(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
res = write(self.fd, cbuf, 513)
if res < 0:
raise OSError("write failed")
|