denko 0.13.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d685b8963656392d25464b4728bf3ee2191409ac06001418cdddbd465536983d
4
- data.tar.gz: 19103a6a62a0399f27ca9d525c86c516448e853868d548afc3d6b21ba89e7cd3
3
+ metadata.gz: a8f92242ec380e61b3b9d8729c8268cd0384196a982b3546deea690449e1b969
4
+ data.tar.gz: f706c61a73d4ad2ea7ebc531454c79b1e45368f303b484189b8bf749d4845d52
5
5
  SHA512:
6
- metadata.gz: 61acf4aabaad137625f3ab32341a991f84b69321fc68db253026beae952e5d2bc69b8afa0126a407810860b69fec0ddbfca755171d02cf5b38a1b224d4c20c99
7
- data.tar.gz: f4f63fa0146b463483c95b4474a97dba6c07b77081dd6576bd7efc1d098431a8967e7b5051aaef0fca9cb4dba484e1c7c3cdb0e29b272158b7dfcfa1f93b8f6a
6
+ metadata.gz: f8d870fb998fe4694b6e18b3570f5caaaf965f4e54f8b6af609b6cdf27acae5be47482454b0c818bf3bd58e0d18d3548e8c18573bef3aef91054655c5120c411
7
+ data.tar.gz: 7d44fa1875dc2c023d4cbc664a5f8960bcaac9b3f32c44b41c366e9d9d8570f1d6d39850584be502c18e010c2d5d69aa2c786b85d504bb7bfda9064d0ba2c8a0
data/HARDWARE.md CHANGED
@@ -2,22 +2,29 @@
2
2
 
3
3
  :green_heart: Full support :yellow_heart: Partial support :heart: Planned. No support yet :question: Works in theory. Untested in real hardware.
4
4
 
5
- ### Microchip/Atmel Chips in Arduino Products (and Compatibles)
6
- [![AVR Build Status](https://github.com/denko-rb/denko/actions/workflows/build_avr.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_avr.yml) [![MegaAVR Build Status](https://github.com/denko-rb/denko/actions/workflows/build_megaavr.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_megaavr.yml) [![SAM3X Build Satus](https://github.com/denko-rb/denko/actions/workflows/build_sam3x.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_sam3x.yml) [![SAMD Build Satus](https://github.com/denko-rb/denko/actions/workflows/build_samd.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_samd.yml)
5
+ ### AVR/MegaAVR Based in Arduino Products (and Clones)
6
+ [![AVR Build Status](https://github.com/denko-rb/denko/actions/workflows/build_avr.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_avr.yml) [![MegaAVR Build Status](https://github.com/denko-rb/denko/actions/workflows/build_megaavr.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_megaavr.yml)
7
7
 
8
8
  | Chip | Status | Products | Notes |
9
9
  | :-------- | :------: | :--------------- |------ |
10
10
  | ATmega168 | :green_heart: | Duemilanove, Diecimila, Pro | Features omitted to save memory. `denko targets` for more info.
11
- | ATmega328 | :green_heart: | Uno, Nano, Fio, Pro |
11
+ | ATmega328 | :green_heart: | Uno R3, Uno WiFi, Nano, Fio, Pro |
12
12
  | ATmega32u4 | :green_heart: | Leonardo, Micro, Leonardo ETH, Esplora, LilyPad USB |
13
13
  | ATmega1280 | :green_heart: | Mega |
14
14
  | ATmega2560 | :green_heart: | Mega2560, Arduino Mega ADK |
15
15
  | ATmega4809 | :question: | Nano Every, Uno WiFi Rev2 | No hardware to test, but should work
16
- | ATSAM3X8E | :yellow_heart: | Due | Native USB port. Tone, and IR Out don't work.
17
- | ATSAMD21 | :green_heart: | Zero, M0, M0 Pro | Native USB port. I2C seems stuck on 100 kHz.
18
16
 
19
17
  **Note:** Only USB boards listed. Any board with a supported chip should work, once you can flash it and connect to serial.
20
18
 
19
+ ### ARM Based Arduino Products (and Clones)
20
+ [![SAM3X Build Satus](https://github.com/denko-rb/denko/actions/workflows/build_sam3x.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_sam3x.yml) [![SAMD Build Satus](https://github.com/denko-rb/denko/actions/workflows/build_samd.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_samd.yml)
21
+
22
+ | Chip | Status | Products | Notes |
23
+ | :-------- | :------: | :--------------- |------ |
24
+ | ATSAM3X8E | :yellow_heart: | Due | Native USB port. Tone, and IR Out don't work.
25
+ | ATSAMD21 | :green_heart: | Zero, M0, M0 Pro | Native USB port. I2C seems stuck on 100 kHz.
26
+ | RA4M1 | :heart: | Uno R4 Minima, Uno R4 WiFi |
27
+
21
28
  ### Arduino Accessories
22
29
 
23
30
  | Chip | Status | Product | Notes |
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  ### Ruby Meets Microcontrollers
3
3
  Denko gives you a high-level Ruby interface to low-level hardware, without writing microcontroller code. Use LEDs, buttons, sensors and more, just as easily as any Ruby object:
4
4
 
5
- ````ruby
5
+ ```ruby
6
6
  led.blink 0.5
7
7
 
8
8
  lcd.print "Hello World!"
@@ -12,9 +12,9 @@ reading = sensor.read
12
12
  button.down do
13
13
  puts "Button pressed!"
14
14
  end
15
- ````
15
+ ```
16
16
 
17
- Denko doesn't run Ruby on the microcontroller (see the [mruby-dino](#mruby) project). It runs a C++ firmware that exposes as much low-level I/O as possible, so we can use it in Ruby. It becomes a peripheral for your computer.
17
+ Denko doesn't run Ruby on the microcontroller (see [mruby-denko](#mruby-denko) for that). It runs C++ firmware that exposes as much low-level I/O as possible, so we can use it in Ruby. It becomes a peripheral for your computer.
18
18
 
19
19
  High-level abstraction in Ruby makes hardware classes easy to implement, with intuitive interfaces. They multitask a single core microcontroller, with thread-safe state, and callbacks for inputs, but no "task" priority. If you need more I/O, integration is seamless. Connect another board and instantiate it in Ruby.
20
20
 
@@ -22,7 +22,15 @@ Each peripheral connected to your microcontroller(s) maps to a Ruby object you c
22
22
 
23
23
  ### Supported Hardware
24
24
 
25
- See a full list of supported mircocontroller platforms, interfaces, and peripherals [here](HARDWARE.md).
25
+ Full list of supported mircocontroller platforms, interfaces, and peripherals is located [here](HARDWARE.md).
26
+
27
+ ##### denko-piboard
28
+ There's an add-on for this gem in development, [denko-piboard](https://github.com/denko-rb/denko-piboard), which supports the Raspberry Pi's built in GPIO pins, as `Denko::PiBoard`, class-compatible with `Denko::Board`. Connect peripherals directly to the Pi, with no microcontroller between, then use the same peripheral classes from this gem.
29
+
30
+ ##### mruby-denko
31
+ A solo Raspberry Pi (or other small SBC + microcontroller) is a great standalone setup if your project needs the compute power anyway, but what if you don't? Why not run Ruby on the microcontroller itself?
32
+
33
+ That's the goal of [mruby-denko](https://github.com/denko-rb/mruby-denko). Write mruby on the ESP32, using peripheral classes as close to this gem as possible. Still early in development, and limited features, but already working.
26
34
 
27
35
  ## Getting Started
28
36
 
@@ -33,17 +41,17 @@ See a full list of supported mircocontroller platforms, interfaces, and peripher
33
41
  gem install denko
34
42
  ```
35
43
 
36
- Before using the microcontroller in Ruby, we need to flash it with the denko firmware (or "sketch" in Arduino lingo). This is needed **once** for each board, but future denko versions may need reflashing to add functionality.
44
+ Before using the microcontroller in Ruby, we need to flash it with the denko firmware (or "sketch" in Arduino lingo). This is needed **once** for each board, but future versions may need reflashing to add functionality.
37
45
 
38
46
  #### 2. Install the Arduino IDE OR CLI
39
47
 
40
48
  Get the Arduino IDE [here](http://arduino.cc/en/Main/Software) for a graphical interface (recommended for Windows), or use the command line interface from [here](https://github.com/arduino/arduino-cli/releases), or Homebrew.
41
49
 
42
50
  **CLI Installation with Homebrew on Mac or Linux:**
43
- ````shell
51
+ ```shell
44
52
  brew update
45
53
  brew install arduino-cli
46
- ````
54
+ ```
47
55
 
48
56
  #### 3. Install Arduino Dependencies
49
57
  Denko uses Arduino cores, which add support for microcontrollers, and a few libraries. Install only the ones for your microcontroller, or install everything. There are no conflcits. Instructions for supported microcontrollers:
@@ -56,22 +64,22 @@ The `denko` command is included with the gem. It will make the Arduino sketch fo
56
64
  **For ATmega boards, Serial over USB:** (Arduino Uno, Nano, Mega, Leonardo, Micro)
57
65
  ```shell
58
66
  denko sketch serial
59
- ````
67
+ ```
60
68
 
61
69
  **For ESP8266, Serial over USB:**
62
70
  ```shell
63
71
  denko sketch serial --target esp8266
64
- ````
72
+ ```
65
73
 
66
74
  **For ESP8266 or ESP32 over WiFi (2.4Ghz and DHCP Only):**
67
75
  ```shell
68
76
  denko sketch wifi --target esp8266 --ssid YOUR_SSID --password YOUR_PASSWORD
69
77
  denko sketch wifi --target esp32 --ssid YOUR_SSID --password YOUR_PASSWORD
70
- ````
78
+ ```
71
79
 
72
- **Note:** [This example](examples/connection/tcp.rb) shows how to connect to a board with a TCP socket, but the WiFi & Ethernet sketches fall back to the serial interface when no TCP client is connected.
80
+ **Note:** [This example](examples/connection/tcp.rb) shows how to connect to a board with a TCP socket, but the WiFi & Ethernet sketches fall back to the Serial interface when no TCP client is connected.
73
81
 
74
- #### 5a) IDE Flashing
82
+ #### 5a. IDE Flashing
75
83
 
76
84
  * Connect the board to your computer with a USB cable.
77
85
  * Open the .ino file inside your sketch folder with the IDE.
@@ -82,45 +90,45 @@ denko sketch wifi --target esp32 --ssid YOUR_SSID --password YOUR_PASSWORD
82
90
  * If your serial port is in the list, but the board is wrong, select the serial port anyway, then you will be asked to manually select a board.
83
91
  * If your board doesn't show up at all, make sure it is connected properly. Try disconnecting and reconnecting, use a different USB port or cable, or press the reset button after plugging it in.
84
92
 
85
- #### 5b) CLI Flashing
93
+ #### 5b. CLI Flashing
86
94
 
87
95
  * The path output by `denko sketch` earlier is your sketch folder. Keep it handy.
88
96
  * Connect the board to your computer with a USB cable.
89
97
  * Check if the CLI recognizes it:
90
98
 
91
- ````shell
99
+ ```shell
92
100
  arduino-cli board list
93
- ````
101
+ ```
94
102
 
95
103
  * Using the Port and FQBN (Fully Qualified Board Name) shown, compile and upload the sketch:
96
- ````shell
104
+ ```shell
97
105
  arduino-cli compile -b YOUR_FQBN YOUR_SKETCH_FOLDER
98
106
  arduino-cli upload -v -p YOUR_PORT -b YOUR_FQBN YOUR_SKETCH_FOLDER
99
- ````
107
+ ```
100
108
 
101
109
  **Troubleshooting:**
102
110
  * Follow the same steps as the IDE method above. List all FQBNs using:
103
- ````shell
111
+ ```shell
104
112
  arduino-cli board listall
105
- ````
113
+ ```
106
114
 
107
- #### 6) Test It
115
+ #### 6. Test It
108
116
 
109
- Most boards have a regular LED on-board. Test it with the [blink](examples/led/builtin_blink.rb) example. If you have an on-board WS2812 LED, use the [WS2812 blink](examples/led/ws2812_builtin_blink.rb) example instead. If it starts blinking, you're ready for Ruby!
117
+ Most boards have a regular LED on-board. Test it with the [blink](examples/led/builtin_blink.rb) example. If you have an on-board WS2812 LED (Neopixel), use the [WS2812 blink](examples/led/ws2812_builtin_blink.rb) example instead. If it starts blinking, you're ready for Ruby!
110
118
 
111
119
  ## Examples and Tutorials
112
120
 
113
121
  #### Tutorial
114
122
 
115
123
  - [Here](tutorial) you will find a beginner-friendly tutorial, that goes through the basics, using commented examples and diagrams. Read the comments and try modifying the code. You will need the following:
116
- * 1 compatible microcontroller (see [supported hardware](HARDWARE.md))
117
- * 1 button or momentary switch
118
- * 1 potentiometer (any value)
119
- * 1 external RGB LED (4 legs common cathode, not a Neopixel or individually addressable)
120
- * 1 external LED (any color, or use one color from the RGB LED)
121
- * Current limiting resistors for LEDs
122
- * Breadboard
123
- * Jumper wires
124
+ - 1 compatible microcontroller (see [supported hardware](HARDWARE.md))
125
+ - 1 button or momentary switch
126
+ - 1 potentiometer (any value)
127
+ - 1 external RGB LED (4 legs common cathode, not a Neopixel or individually addressable)
128
+ - 1 external LED (any color, or use one color from the RGB LED)
129
+ - Current limiting resistors for LEDs
130
+ - Breadboard
131
+ - Jumper wires
124
132
 
125
133
  **Tip:** Kits are a cost-effective way to get started. They will almost certainly include these parts, plus more, getting you well beyond the tutorial.
126
134
 
@@ -140,13 +148,3 @@ Most boards have a regular LED on-board. Test it with the [blink](examples/led/b
140
148
  - "Arduino the Ruby Way" at RubyConf 2012
141
149
  - [Video by ConFreaks](https://www.youtube.com/watch?v=oUIor6GK-qA)
142
150
  - [Slides on SpeakerDeck](https://speakerdeck.com/austinbv/arduino-the-ruby-way)
143
-
144
- ## mruby Port
145
-
146
- A single-board computer plus microcontroller can be a great standalone solution, especially if your project needs the computer anyway. For example, a Raspberry Pi Zero and Arduino Nano combo, running CRuby, Denko and other software.
147
-
148
- But what if you want to be _really_ small? Building on the [mruby-esp32](https://github.com/mruby-esp32/mruby-esp32) project, Denko is being ported to run directly on the ESP32 here: [mruby-dino-template](https://github.com/denko-rb/mruby-dino-template).
149
-
150
- ## denko-piboard
151
-
152
- There's an add-on for this gem, [denko-piboard](https://github.com/denko-rb/denko-piboard), in early development, which adds support for the Raspberry Pi's built in GPIO interface as a class-compatible "board". This allows you to connect peripherals directly to the Pi, without a microcontroller, and use the denko peripherals classes as-is.
@@ -5,7 +5,7 @@ require 'bundler/setup'
5
5
  require 'denko'
6
6
 
7
7
  board = Denko::Board.new(Denko::Connection::Serial.new)
8
- bus = Denko::I2C::Bus.new(board: board, pin: :SDA0)
8
+ bus = Denko::I2C::Bus.new(board: board, pin: :SDA)
9
9
  aht20 = Denko::Sensor::AHT20.new(bus: bus)
10
10
 
11
11
  aht20.poll(2) do |reading|
@@ -4,7 +4,7 @@ module Denko
4
4
  include Denko::Behaviors::BusPeripheral
5
5
 
6
6
  def before_initialize(options={})
7
- # Aallow @address override in options, even if peripheral sets default.
7
+ # Allow @address override in options, even if peripheral sets a default.
8
8
  @address = options[:address] if options[:address]
9
9
 
10
10
  raise ArgumentError, "missing address for #{self}. Try Bus#search first" unless @address
@@ -33,7 +33,7 @@ module Denko
33
33
  board.remove_component(self)
34
34
  end
35
35
 
36
- # Setup::Base only requires a board.
36
+ # Behaviors::Component only requires a board.
37
37
  # Include modules from Setup or override this to use pins.
38
38
  #
39
39
  def before_initialize(options={}); end
@@ -12,9 +12,12 @@ module Denko
12
12
  def initialize_pins(options={})
13
13
  super(options)
14
14
 
15
+ # Assume input direction, and look for pull mode in options.
15
16
  initial_mode = :input
16
17
  initial_mode = :input_pullup if options[:pullup]
17
18
  initial_mode = :input_pulldown if options[:pulldown]
19
+
20
+ # If user was explicit about mode, just use that.
18
21
  initial_mode = options[:mode] if options[:mode]
19
22
 
20
23
  self.mode = initial_mode
@@ -11,15 +11,13 @@ module Denko
11
11
 
12
12
  protected
13
13
 
14
- attr_writer :pin
15
-
16
14
  def convert_pins(options={})
17
15
  raise ArgumentError, 'a pin is required for this component' unless options[:pin]
18
16
  options[:pin] = board.convert_pin(options[:pin])
19
17
  end
20
18
 
21
19
  def initialize_pins(options={})
22
- self.pin = options[:pin]
20
+ @pin = options[:pin]
23
21
  end
24
22
  end
25
23
  end
@@ -2,6 +2,7 @@ module Denko
2
2
  module Behaviors
3
3
  module State
4
4
  def initialize(options={})
5
+ # Component includes State, so no need to call super here.
5
6
  @state_mutex = Mutex.new
6
7
  @state = nil
7
8
  end
@@ -4,7 +4,7 @@ module Denko
4
4
  include Behaviors::SinglePin
5
5
  include Behaviors::BusControllerAddressed
6
6
  include Behaviors::Reader
7
- include BusEnumeration
7
+ include BusEnumerator
8
8
  include Constants
9
9
 
10
10
  attr_reader :parasite_power
@@ -1,6 +1,8 @@
1
1
  module Denko
2
2
  module OneWire
3
- module BusEnumeration
3
+ module BusEnumerator
4
+ include Constants
5
+
4
6
  def _search(branch_mask)
5
7
  reset
6
8
  write(SEARCH_ROM)
@@ -42,12 +44,12 @@ module Denko
42
44
  def parse_search_result(result)
43
45
  address, complement = split_search_result(result)
44
46
 
45
- raise "CRC error during OneWire search" unless Helper.crc_check(address)
46
-
47
47
  if (address & complement) > 0
48
48
  raise "OneWire device not connected or disconnected during search"
49
49
  end
50
50
 
51
+ raise "CRC error during OneWire search" unless Helper.crc(address)
52
+
51
53
  # Gives 0 at every discrepancy we didn't write 1 for on this search.
52
54
  new_discrepancies = address ^ complement
53
55
 
@@ -73,12 +75,18 @@ module Denko
73
75
  [address, complement]
74
76
  end
75
77
 
76
- # Set FAMILY_CODE in peripheral class to get it identified during search.
78
+ #
79
+ # Set FAMILY_CODE in peripheral class, and add the class to this array
80
+ # for the class to be identified during search.
81
+ #
82
+ PERIPHERAL_CLASSES = [
83
+ Sensor::DS18B20,
84
+ ]
85
+
77
86
  def family_lookup(family_code)
78
- OneWire.constants.each do |const|
79
- obj = OneWire.const_get(const)
80
- if (obj.is_a? Class) && (obj.const_defined? "FAMILY_CODE")
81
- return obj if obj::FAMILY_CODE == family_code
87
+ PERIPHERAL_CLASSES.each do |klass|
88
+ if (klass.const_defined? "FAMILY_CODE")
89
+ return klass if klass::FAMILY_CODE == family_code
82
90
  end
83
91
  end
84
92
  return nil
@@ -5,7 +5,7 @@ module Denko
5
5
  [address].pack('Q<').split("").map(&:ord)
6
6
  end
7
7
 
8
- def self.crc_check(data)
8
+ def self.crc(data)
9
9
  calculated, received = self.calculate_crc(data)
10
10
  calculated == received
11
11
  end
@@ -2,7 +2,7 @@ module Denko
2
2
  module OneWire
3
3
  autoload :Constants, "#{__dir__}/one_wire/constants"
4
4
  autoload :Helper, "#{__dir__}/one_wire/helper"
5
- autoload :BusEnumeration, "#{__dir__}/one_wire/bus_enumeration"
5
+ autoload :BusEnumerator, "#{__dir__}/one_wire/bus_enumerator"
6
6
  autoload :Bus, "#{__dir__}/one_wire/bus"
7
7
  autoload :Peripheral, "#{__dir__}/one_wire/peripheral"
8
8
  end
@@ -47,7 +47,7 @@ module Denko
47
47
  end
48
48
 
49
49
  def pre_callback_filter(bytes)
50
- return { crc_error: true } unless Helper.crc_check(bytes)
50
+ return { crc_error: true } unless OneWire::Helper.crc(bytes)
51
51
  @resolution = decode_resolution(bytes)
52
52
 
53
53
  decode_temperature(bytes).merge(raw: bytes)
data/lib/denko/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Denko
2
- VERSION = "0.13.0"
2
+ VERSION = "0.13.1"
3
3
  end
@@ -131,4 +131,8 @@ class OneWireEnumeratorTest < Minitest::Test
131
131
  found_addresses = bus.found_devices.map { |d| d[:address] }
132
132
  assert_equal found_addresses.sort, bus_sim.addresses.sort
133
133
  end
134
+
135
+ def test_includes_constants
136
+ assert Denko::OneWire::BusEnumerator.ancestors.include?(Denko::OneWire::Constants)
137
+ end
134
138
  end
@@ -3,16 +3,16 @@ require_relative '../test_helper'
3
3
  class OneWireHelper < Minitest::Test
4
4
 
5
5
  def test_with_valid_crc
6
- assert Denko::OneWire::Helper.crc_check(18086456125349333800)
7
- assert Denko::OneWire::Helper.crc_check([121, 117, 144, 185, 6, 165, 43, 26])
6
+ assert Denko::OneWire::Helper.crc(18086456125349333800)
7
+ assert Denko::OneWire::Helper.crc([121, 117, 144, 185, 6, 165, 43, 26])
8
8
  end
9
9
 
10
10
  def test_with_invalid_crc
11
- refute Denko::OneWire::Helper.crc_check(18086456125349333801)
11
+ refute Denko::OneWire::Helper.crc(18086456125349333801)
12
12
  end
13
13
 
14
14
  def test_arbitrary_length_read
15
- assert Denko::OneWire::Helper.crc_check([181, 1, 75, 70, 127, 255, 11, 16, 163])
16
- refute Denko::OneWire::Helper.crc_check([181, 1, 75, 70, 127, 255, 11, 16, 164])
15
+ assert Denko::OneWire::Helper.crc([181, 1, 75, 70, 127, 255, 11, 16, 163])
16
+ refute Denko::OneWire::Helper.crc([181, 1, 75, 70, 127, 255, 11, 16, 164])
17
17
  end
18
18
  end
@@ -43,6 +43,16 @@ class DS18B20Test < MiniTest::Test
43
43
  assert_equal 0.75, part.instance_variable_get(:@convert_time)
44
44
  end
45
45
 
46
+ def test_pre_callback_filter_does_crc_and_returns_error_on_fail
47
+ raw_bytes = [239, 1, 75, 70, 127, 255, 1, 16, 245]
48
+ mock = MiniTest::Mock.new.expect(:call, false, [raw_bytes])
49
+
50
+ Denko::OneWire::Helper.stub(:crc, mock) do
51
+ assert_equal({crc_error: true}, part.pre_callback_filter(raw_bytes))
52
+ end
53
+ mock.verify
54
+ end
55
+
46
56
  # test resolution=
47
57
 
48
58
  def test_convert_is_atomic
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: denko
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.13.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - vickash, Austinbv
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-20 00:00:00.000000000 Z
11
+ date: 2023-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyserial
@@ -229,7 +229,7 @@ files:
229
229
  - lib/denko/motor/stepper.rb
230
230
  - lib/denko/one_wire.rb
231
231
  - lib/denko/one_wire/bus.rb
232
- - lib/denko/one_wire/bus_enumeration.rb
232
+ - lib/denko/one_wire/bus_enumerator.rb
233
233
  - lib/denko/one_wire/constants.rb
234
234
  - lib/denko/one_wire/helper.rb
235
235
  - lib/denko/one_wire/peripheral.rb