class PiGPIO::GPIO
Constants
- MODES
- MODE_CODES
- MODE_VALUES
Attributes
g[R]
invert_logic[RW]
Public Class Methods
new(pigpio, g)
click to toggle source
# File lib/pi_gpio/gpio.rb, line 31 def initialize(pigpio, g) # rubocop:disable Naming/MethodParameterName @pigpio = pigpio @g = g @invert_logic = false end
Public Instance Methods
inspect()
click to toggle source
# File lib/pi_gpio/gpio.rb, line 37 def inspect vals = { g: g, invert_logic: invert_logic, mode: @mode }.compact "#<PiGPIO::GPIO #{vals.map { |k, v| "#{k}=#{v.inspect}" }.join(" ")}>" end
level()
click to toggle source
# File lib/pi_gpio/gpio.rb, line 63 def level result = !command("r #{g}").zero? result = !result if invert_logic result end
level=(value)
click to toggle source
# File lib/pi_gpio/gpio.rb, line 69 def level=(value) raise ArgumentError, "Invalid level #{value.inspect}" unless [true, false].include?(value) value = !value if invert_logic command("w #{g} #{value ? 1 : 0}") end
mode()
click to toggle source
# File lib/pi_gpio/gpio.rb, line 46 def mode @mode ||= MODE_VALUES[command("mg #{g}")] end
mode=(value)
click to toggle source
# File lib/pi_gpio/gpio.rb, line 50 def mode=(value) raise ArgumentError, "Invalid mode #{value.inspect}" unless MODE_CODES.key?(value) @mode = nil command("m #{g} #{MODE_CODES[value]}") end
pull_up_down=(value)
click to toggle source
# File lib/pi_gpio/gpio.rb, line 57 def pull_up_down=(value) raise ArgumentError, "Invalid setting #{value.inspect}" unless %i[up down off].include?(value) command("pud #{g} #{value.to_s.first}") end
Private Instance Methods
command(command)
click to toggle source
# File lib/pi_gpio/gpio.rb, line 78 def command(command) @pigpio.send(:command, command) end