ant-wireless 0.1.0.pre.20210617213631
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 +7 -0
- data/History.md +5 -0
- data/LICENSE.txt +20 -0
- data/README.md +79 -0
- data/ext/ant_ext/ant_ext.c +791 -0
- data/ext/ant_ext/ant_ext.h +101 -0
- data/ext/ant_ext/antdefines.h +355 -0
- data/ext/ant_ext/antmessage.h +445 -0
- data/ext/ant_ext/build_version.h +18 -0
- data/ext/ant_ext/callbacks.c +233 -0
- data/ext/ant_ext/channel.c +524 -0
- data/ext/ant_ext/defines.h +40 -0
- data/ext/ant_ext/extconf.rb +22 -0
- data/ext/ant_ext/message.c +377 -0
- data/ext/ant_ext/types.h +202 -0
- data/ext/ant_ext/version.h +41 -0
- data/lib/ant.rb +138 -0
- data/lib/ant/channel.rb +66 -0
- data/lib/ant/channel/event_callbacks.rb +207 -0
- data/lib/ant/message.rb +10 -0
- data/lib/ant/mixins.rb +34 -0
- data/lib/ant/response_callbacks.rb +528 -0
- data/lib/ant/wireless.rb +5 -0
- data/spec/ant_spec.rb +88 -0
- data/spec/spec_helper.rb +37 -0
- metadata +131 -0
data/lib/ant/wireless.rb
ADDED
data/spec/ant_spec.rb
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require_relative 'spec_helper'
|
5
|
+
|
6
|
+
require 'securerandom'
|
7
|
+
require 'rspec'
|
8
|
+
require 'ant'
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
RSpec.describe( Ant ) do
|
13
|
+
|
14
|
+
after( :each ) do
|
15
|
+
described_class.close
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
it "knows what the version of the underlying library is" do
|
20
|
+
expect( described_class.lib_version ).to match( /ALU\d+\.\d+/ )
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
it "exposes relevant constants to Ruby" do
|
25
|
+
expect( described_class::EVENT_CLK_ERROR ).to eq( 0x36 )
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
it "raises when initialized with an invalid serial port", :hardware do
|
30
|
+
expect {
|
31
|
+
described_class.init( 0xFF )
|
32
|
+
}.to raise_error( RuntimeError, /no ant device present/i )
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
it "can validate a device number" do
|
37
|
+
expect( described_class.validate_device_number(111) ).to eq( 111 )
|
38
|
+
expect {
|
39
|
+
described_class.validate_device_number( 65540 )
|
40
|
+
}.to raise_error( RangeError, /invalid device number/i )
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
it "can validate a device type" do
|
45
|
+
expect( described_class.validate_device_type(34) ).to eq( 34 )
|
46
|
+
expect {
|
47
|
+
described_class.validate_device_type( 400 )
|
48
|
+
}.to raise_error( RangeError, /invalid device type/i )
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
it "can validate a channel period" do
|
53
|
+
expect( described_class.validate_channel_period(8192) ).to eq( 8192 )
|
54
|
+
expect {
|
55
|
+
described_class.validate_channel_period( 70000 )
|
56
|
+
}.to raise_error( RangeError, /invalid channel period/i )
|
57
|
+
end
|
58
|
+
|
59
|
+
|
60
|
+
it "can validate an ANT network number" do
|
61
|
+
expect( described_class.validate_network_number(0) ).to eq( 0 )
|
62
|
+
expect {
|
63
|
+
described_class.validate_network_number( 260 )
|
64
|
+
}.to raise_error( RangeError, /invalid network number/i )
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
it "can validate an ANT network key" do
|
69
|
+
valid_key = SecureRandom.bytes( 8 )
|
70
|
+
expect( described_class.validate_network_key(valid_key) ).
|
71
|
+
to eq( valid_key )
|
72
|
+
|
73
|
+
invalid_key = SecureRandom.bytes( 11 )
|
74
|
+
expect {
|
75
|
+
described_class.validate_network_key( invalid_key )
|
76
|
+
}.to raise_error( RangeError, /invalid network key/i )
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
it "can validate an RF frequency value" do
|
81
|
+
expect( described_class.validate_rf_frequency(112) ).to eq( 112 )
|
82
|
+
expect {
|
83
|
+
described_class.validate_rf_frequency( 200 )
|
84
|
+
}.to raise_error( RangeError, /invalid rf frequency/i )
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'simplecov' if ENV['COVERAGE']
|
5
|
+
|
6
|
+
require 'rspec'
|
7
|
+
|
8
|
+
require 'ant'
|
9
|
+
require 'loggability/spechelpers'
|
10
|
+
|
11
|
+
|
12
|
+
### Mock with RSpec
|
13
|
+
RSpec.configure do |config|
|
14
|
+
config.mock_with( :rspec ) do |mock|
|
15
|
+
mock.syntax = :expect
|
16
|
+
end
|
17
|
+
|
18
|
+
begin
|
19
|
+
Ant.close
|
20
|
+
Ant.init
|
21
|
+
Ant.close
|
22
|
+
rescue => err
|
23
|
+
config.filter_run_excluding( :hardware )
|
24
|
+
end
|
25
|
+
|
26
|
+
config.disable_monkey_patching!
|
27
|
+
config.example_status_persistence_file_path = "spec/.status"
|
28
|
+
config.filter_run :focus
|
29
|
+
config.filter_run_when_matching :focus
|
30
|
+
config.order = :random
|
31
|
+
config.profile_examples = 5
|
32
|
+
config.run_all_when_everything_filtered = true
|
33
|
+
config.shared_context_metadata_behavior = :apply_to_host_groups
|
34
|
+
# config.warnings = true
|
35
|
+
end
|
36
|
+
|
37
|
+
|
metadata
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ant-wireless
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0.pre.20210617213631
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Michael Granger
|
8
|
+
- Mahlon E. Smith
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain:
|
12
|
+
- |
|
13
|
+
-----BEGIN CERTIFICATE-----
|
14
|
+
MIID+DCCAmCgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
|
15
|
+
REM9RmFlcmllTVVEL0RDPW9yZzAeFw0yMDEyMjQyMDU1MjlaFw0yMTEyMjQyMDU1
|
16
|
+
MjlaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
|
17
|
+
hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvyVhkRzvlEs0fe7145BYLfN6njX9ih5H
|
18
|
+
L60U0p0euIurpv84op9CNKF9tx+1WKwyQvQP7qFGuZxkSUuWcP/sFhDXL1lWUuIl
|
19
|
+
M4uHbGCRmOshDrF4dgnBeOvkHr1fIhPlJm5FO+Vew8tSQmlDsosxLUx+VB7DrVFO
|
20
|
+
5PU2AEbf04GGSrmqADGWXeaslaoRdb1fu/0M5qfPTRn5V39sWD9umuDAF9qqil/x
|
21
|
+
Sl6phTvgBrG8GExHbNZpLARd3xrBYLEFsX7RvBn2UPfgsrtvpdXjsHGfpT3IPN+B
|
22
|
+
vQ66lts4alKC69TE5cuKasWBm+16A4aEe3XdZBRNmtOu/g81gvwA7fkJHKllJuaI
|
23
|
+
dXzdHqq+zbGZVSQ7pRYHYomD0IiDe1DbIouFnPWmagaBnGHwXkDT2bKKP+s2v21m
|
24
|
+
ozilJg4aar2okb/RA6VS87o+d7g6LpDDMMQjH4G9OPnJENLdhu8KnPw/ivSVvQw7
|
25
|
+
N2I4L/ZOIe2DIVuYH7aLHfjZDQv/mNgpAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYD
|
26
|
+
VR0PBAQDAgSwMB0GA1UdDgQWBBRyjf55EbrHagiRLqt5YAd3yb8k4DANBgkqhkiG
|
27
|
+
9w0BAQsFAAOCAYEAMYegZanJi8zq7QKPT7wqXefX4C88I5JWeBHR3PvvWK0CwyMV
|
28
|
+
peyiu5I13w/lYX+HUZjE4qsSpJMJFXWl4WZCOo+AMprOcf0PxfuJpxCej5D4tavf
|
29
|
+
vRfhahSw7XJrcZih/3J+/UgoH7R05MJ+8LTcy3HGrB3a0vTafjm8OY7Xpa0LJDoN
|
30
|
+
JDqxK321VIHyTibbKeA1hWSE6ljlQDvFbTqiCj3Ulp1jTv3TOlvRl8fqcfhxUJI0
|
31
|
+
+5Q82jJODjEN+GaWs0V+NlrbU94cXwS2PH5dXogftB5YYA5Ex8A0ikZ73xns4Hdo
|
32
|
+
XxdLdd92F5ovxA23j/rKe/IDwqr6FpDkU3nPXH/Qp0TVGv9zZnVJc/Z6ChkuWj8z
|
33
|
+
pW7JAyyiiHZgKKDReDrA2LA7Zs3o/7KA6UtUH0FHf8LYhcK+pfHk6RtjRe65ffw+
|
34
|
+
MCh97sQ/Z/MOusb5+QddBmB+k8EicXyGNl4b5L4XpL7fIQu+Y96TB3JEJlShxFD9
|
35
|
+
k9FjI4d9EP54gS/4
|
36
|
+
-----END CERTIFICATE-----
|
37
|
+
date: 2021-06-17 00:00:00.000000000 Z
|
38
|
+
dependencies:
|
39
|
+
- !ruby/object:Gem::Dependency
|
40
|
+
name: rake-compiler
|
41
|
+
requirement: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - "~>"
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '1.1'
|
46
|
+
type: :runtime
|
47
|
+
prerelease: false
|
48
|
+
version_requirements: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '1.1'
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: rake-deveiate
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0.10'
|
60
|
+
type: :development
|
61
|
+
prerelease: false
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0.10'
|
67
|
+
description: A binding for the ANT ultra-low power wireless protocol via the Garmin
|
68
|
+
USB ANT Stick. ANT can be used to send information wirelessly from one device to
|
69
|
+
another device, in a robust and flexible manner.
|
70
|
+
email:
|
71
|
+
- ged@FaerieMUD.org
|
72
|
+
- mahlon@martini.nu
|
73
|
+
executables: []
|
74
|
+
extensions:
|
75
|
+
- ext/ant_ext/extconf.rb
|
76
|
+
extra_rdoc_files: []
|
77
|
+
files:
|
78
|
+
- History.md
|
79
|
+
- LICENSE.txt
|
80
|
+
- README.md
|
81
|
+
- ext/ant_ext/ant_ext.c
|
82
|
+
- ext/ant_ext/ant_ext.h
|
83
|
+
- ext/ant_ext/antdefines.h
|
84
|
+
- ext/ant_ext/antmessage.h
|
85
|
+
- ext/ant_ext/build_version.h
|
86
|
+
- ext/ant_ext/callbacks.c
|
87
|
+
- ext/ant_ext/channel.c
|
88
|
+
- ext/ant_ext/defines.h
|
89
|
+
- ext/ant_ext/extconf.rb
|
90
|
+
- ext/ant_ext/message.c
|
91
|
+
- ext/ant_ext/types.h
|
92
|
+
- ext/ant_ext/version.h
|
93
|
+
- lib/ant.rb
|
94
|
+
- lib/ant/channel.rb
|
95
|
+
- lib/ant/channel/event_callbacks.rb
|
96
|
+
- lib/ant/message.rb
|
97
|
+
- lib/ant/mixins.rb
|
98
|
+
- lib/ant/response_callbacks.rb
|
99
|
+
- lib/ant/wireless.rb
|
100
|
+
- spec/ant_spec.rb
|
101
|
+
- spec/spec_helper.rb
|
102
|
+
homepage: https://sr.ht/~ged/ruby-ant-wireless/
|
103
|
+
licenses:
|
104
|
+
- BSD-3-Clause
|
105
|
+
metadata:
|
106
|
+
bug_tracker_uri: https://todo.sr.ht/~ged/ruby-ant-wireless
|
107
|
+
changelog_uri: https://deveiate.org/code/ant-wireless/History_md.html
|
108
|
+
documentation_uri: https://deveiate.org/code/ant-wireless
|
109
|
+
homepage_uri: https://sr.ht/~ged/ruby-ant-wireless/
|
110
|
+
source_uri: https://hg.sr.ht/~ged/ruby-ant-wireless
|
111
|
+
post_install_message:
|
112
|
+
rdoc_options: []
|
113
|
+
require_paths:
|
114
|
+
- lib
|
115
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
120
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 1.3.1
|
125
|
+
requirements: []
|
126
|
+
rubygems_version: 3.1.6
|
127
|
+
signing_key:
|
128
|
+
specification_version: 4
|
129
|
+
summary: A binding for the ANT ultra-low power wireless protocol via the Garmin USB
|
130
|
+
ANT Stick.
|
131
|
+
test_files: []
|