@@ -94,13 +94,14 @@ function wave_add_generic(self::Pi, pulses)
9494 # # extension ##
9595 # III on/off/delay * pulses
9696 if length (pulses)
97- ext = bytearray ()
97+ io = IOBuffer ()
9898 for p in pulses
99- ext. extend (pack (" III" , p. gpio_on, p. gpio_off, p. delay))
99+ # python's struct.pack("III",...) use 3 C unsigned int (normally 4-bytes)
100+ write (io,Cuint .((p. gpio_on, p. gpio_off, p. delay))... )
100101 end
101- extents = [ext]
102+ extents = take! (io)
102103 return _u2i (_pigpio_command_ext (
103- self. sl, _PI_CMD_WVAG, 0 , 0 , length (pulses)* 12 , extents))
104+ self. sl, _PI_CMD_WVAG, 0 , 0 , length (pulses)* 3 * 4 , extents))
104105 else
105106 return 0
106107 end
@@ -147,9 +148,13 @@ wave_add_serial(pi, 17, 38400, [23, 128, 234], 5000)
147148function wave_add_serial (
148149 self:: Pi , user_gpio, baud, data, offset= 0 , bb_bits= 8 , bb_stop= 2 )
149150 if length (data)
150- extents = [pack (" III" , bb_bits, bb_stop, offset), data]
151+ io = IOBuffer ()
152+ write (io,Cuint .((bb_bits, bb_stop, offset))... )
153+ write (io,data)
154+
155+ extents = take! (io)
151156 return _u2i (_pigpio_command_ext (
152- self. sl, _PI_CMD_WVAS, user_gpio, baud, length (data)+ 12 , extents))
157+ self. sl, _PI_CMD_WVAS, user_gpio, baud, length (data)+ 3 * 4 , extents))
153158 else
154159 return 0
155160 end
0 commit comments