> > >>> fd = open('/dev/ppi0','w') > >>> fcntl.ioctl(fd.fileno(),'PPISCTRL',10000000) > Traceback (most recent call last): > File "<stdin>", line 1, in ? > TypeError: an integer is required > > i guess i'm failing to properly define the int i need for the 8byte > value ineed to send the port to set pins high /low
Python doesn't know about PPISCTRL - it has no way of knowing all "secret", OS-specific constants for ioctl-calls. So, you need to figure out the numeric value of that constant .- look it up in the appropriate header-file. Then, you do have the next problem with passing that 10000000 value of yours. ioctl expects strings or buffers as parameters which contain a byte-representation of the value you want to set. This is an snippet I use to read the event device capabilities under linnux: buf = array.array('c', [' ' for i in xrange(EV_MAX / 8 + 1)]) fcntl.ioctl(self._fd, EVIOCGBIT(0, len(buf)), buf, True) caps = struct.unpack("I", buf)[0] HTH, Diez -- http://mail.python.org/mailman/listinfo/python-list