denko 0.13.0 → 0.13.1

Sign up to get free protection for your applications and to get access to all the features.
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