Skip to content

Commit 849f3aa

Browse files
avoid pack("I",...)
1 parent 17efccc commit 849f3aa

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

src/i2c.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,11 @@ function i2c_open(self::Pi, i2c_bus, i2c_address, i2c_flags=0)
4141
# I p3 4
4242
## extension ##
4343
# I i2c_flags
44-
extents = [pack("I", i2c_flags)]
44+
45+
io = IOBuffer()
46+
write(io,Int32(i2c_flags))
47+
extents = take!(io)
48+
4549
return _u2i(_pigpio_command_ext(
4650
self.sl, _PI_CMD_I2CO, i2c_bus, i2c_address, 4, extents))
4751
end

src/wave.jl

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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)
147148
function 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

Comments
 (0)