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 +4 -4
- data/HARDWARE.md +12 -5
- data/README.md +37 -39
- data/examples/sensor/aht20.rb +1 -1
- data/lib/denko/behaviors/bus_peripheral_addressed.rb +1 -1
- data/lib/denko/behaviors/component.rb +1 -1
- data/lib/denko/behaviors/input_pin.rb +3 -0
- data/lib/denko/behaviors/single_pin.rb +1 -3
- data/lib/denko/behaviors/state.rb +1 -0
- data/lib/denko/one_wire/bus.rb +1 -1
- data/lib/denko/one_wire/{bus_enumeration.rb → bus_enumerator.rb} +16 -8
- data/lib/denko/one_wire/helper.rb +1 -1
- data/lib/denko/one_wire.rb +1 -1
- data/lib/denko/sensor/ds18b20.rb +1 -1
- data/lib/denko/version.rb +1 -1
- data/test/one_wire/bus_enumerator_test.rb +4 -0
- data/test/one_wire/helper_test.rb +5 -5
- data/test/sensor/ds18b20_test.rb +10 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8f92242ec380e61b3b9d8729c8268cd0384196a982b3546deea690449e1b969
|
4
|
+
data.tar.gz: f706c61a73d4ad2ea7ebc531454c79b1e45368f303b484189b8bf749d4845d52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
###
|
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)
|
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
|
-
|
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
|
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
|
-
|
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
|
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
|
-
|
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
|
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
|
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
|
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
|
-
|
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
|
-
|
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
|
-
|
111
|
+
```shell
|
104
112
|
arduino-cli board listall
|
105
|
-
|
113
|
+
```
|
106
114
|
|
107
|
-
#### 6
|
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
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
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.
|
data/examples/sensor/aht20.rb
CHANGED
@@ -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: :
|
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
|
-
#
|
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
|
@@ -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
|
-
|
20
|
+
@pin = options[:pin]
|
23
21
|
end
|
24
22
|
end
|
25
23
|
end
|
data/lib/denko/one_wire/bus.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
module Denko
|
2
2
|
module OneWire
|
3
|
-
module
|
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
|
-
#
|
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
|
-
|
79
|
-
|
80
|
-
|
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
|
data/lib/denko/one_wire.rb
CHANGED
@@ -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 :
|
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
|
data/lib/denko/sensor/ds18b20.rb
CHANGED
@@ -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.
|
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
@@ -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.
|
7
|
-
assert Denko::OneWire::Helper.
|
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.
|
11
|
+
refute Denko::OneWire::Helper.crc(18086456125349333801)
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_arbitrary_length_read
|
15
|
-
assert Denko::OneWire::Helper.
|
16
|
-
refute Denko::OneWire::Helper.
|
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
|
data/test/sensor/ds18b20_test.rb
CHANGED
@@ -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.
|
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-
|
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/
|
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
|