Ross Ridge  wrote:
>I don't think you can do anything faster with standard modules, although
>it might not be efficient if you're only working with a single byte.

Hendrik van Rooyen <[EMAIL PROTECTED]> wrote:
>Thanks I was not aware of binascii module this looks powerful.

Not really.  It's just used as part of a trick to quickly convert a byte
string in to a bit string (a byte string with just 0s and 1s).

Unfortunately fromr you other posts you do seem to be working on
a single byte a time, so my technique probably won't be efficient.
You probably want just want to be using constants and bit masking.
Something like:

        
        PAC_EMERGENCY_STOP   = 0x01  # bit #0 on output port 0
        PAC_OUTPUT_0_1       = 0x02  # replace with names for other functions
        PAC_OUTPUT_0_2       = 0x04
        PAC_PNEUMATIC_PUSHER = 0x08  # bit #3 on output port 0
        ...

        def gpio_bit_on(port, bit):
                r = gpio_in(port)
                r |= bit
                r = gpio_out(port)
                
        def gpio_bit_off(port, bit):
                r = gpio_in(port)
                r &= ~bit
                r = gpio_out(port)
                
        class pac(object):
                def everything_off(self):
                        gpio_out(PAC_OUTPUT_PORT_0, 0)
                        gpio_out(PAC_OUTPUT_PORT_1, 0)
                        gpio_out(PAC_OUTPUT_PORT_2, 0)
                        ...
                        gpio_out(PAC_OUTPUT_PORT_7, 0)

                def emergency_stop(self):
                        gpio_bit_on(PAC_OUTPUT_PORT_0, PAC_EMERGENCY_STOP)

                def pusher_on(self):
                        gpio_bit_on(PAC_OUTPUT_PORT_0, PAC_PNEUMATIC_PUSHER)

                def pusher_off(self):
                        gpio_bit_off(PAC_OUTPUT_PORT_0, PAC_PNEUMATIC_PUSHER)


Bit twiddling like this is pretty basic.

                                Ross Ridge

-- 
 l/  //   Ross Ridge -- The Great HTMU
[oo][oo]  [EMAIL PROTECTED]
-()-/()/  http://www.csclub.uwaterloo.ca/~rridge/ 
 db  //   
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to