ant-wireless 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/History.md +8 -0
- data/ext/ant_ext/ant_ext.c +27 -0
- data/ext/ant_ext/channel.c +28 -0
- data/lib/ant/response_callbacks.rb +9 -0
- data/lib/ant.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b16333eed832c3068cd6e95d167bffe8132aaba7543ccabd773d809fac840199
|
4
|
+
data.tar.gz: 92d089d1bcf5121dd46477befeabc33e43abbac10de105d3d94d176b54c9af8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51dbc06b6c199f16404fb0d79fd78e10cf53c4ca68e221462d225e1dff171a51f5f1807da2ebe2719e45109e981ece26781090ebd583d4c8c01d6e1539c5e43a
|
7
|
+
data.tar.gz: da1492d614d52e83402c85bbeed0d45d03f7f101bd6b5036ae9bc7a488dfbd5df41ee5aa2a0a3b0a7b4e7019c4d95bc55d0167a3a6e77c1825565ca299ba492e
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/History.md
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
# Release History for ruby-ant
|
2
2
|
|
3
3
|
---
|
4
|
+
## v0.3.0 [2021-10-11] Michael Granger <ged@FaerieMUD.org>
|
5
|
+
|
6
|
+
Enhancements:
|
7
|
+
|
8
|
+
- Add frequency agility config to Channel
|
9
|
+
- Add tunable transmit power knob
|
10
|
+
|
11
|
+
|
4
12
|
## v0.2.1 [2021-09-30] Michael Granger <ged@FaerieMUD.org>
|
5
13
|
|
6
14
|
Bugfixes:
|
data/ext/ant_ext/ant_ext.c
CHANGED
@@ -309,6 +309,32 @@ rant_s_set_network_key( VALUE _module, VALUE network_number, VALUE key )
|
|
309
309
|
}
|
310
310
|
|
311
311
|
|
312
|
+
/*
|
313
|
+
* call-seq:
|
314
|
+
* Ant.transmit_power = 4
|
315
|
+
*
|
316
|
+
* Set the transmit power level for all channels. Valid values are 0-4; default
|
317
|
+
* is 3 = 0dBm.
|
318
|
+
*
|
319
|
+
* # Set transmit power to -5 dBm
|
320
|
+
* Ant.transmit_power = 2
|
321
|
+
*/
|
322
|
+
static VALUE
|
323
|
+
rant_s_transmit_power_eq( VALUE _module, VALUE power )
|
324
|
+
{
|
325
|
+
const unsigned char ucTransmitPower = NUM2CHR( power );
|
326
|
+
BOOL rval;
|
327
|
+
|
328
|
+
if ( ucTransmitPower < 0 || ucTransmitPower > 4 ) {
|
329
|
+
rb_raise( rb_eArgError, "expected a value between 0 and 4, got %d", ucTransmitPower );
|
330
|
+
}
|
331
|
+
|
332
|
+
rval = ANT_SetTransmitPower( ucTransmitPower );
|
333
|
+
|
334
|
+
return rval ? Qtrue : Qfalse;
|
335
|
+
}
|
336
|
+
|
337
|
+
|
312
338
|
/*
|
313
339
|
* call-seq:
|
314
340
|
* Ant.assign_channel( channel, channel_type, network_number=0, extended_options=0x0, timeout=0 ) -> channel
|
@@ -575,6 +601,7 @@ Init_ant_ext()
|
|
575
601
|
rb_define_singleton_method( rant_mAnt, "reset", rant_s_reset, 0 );
|
576
602
|
|
577
603
|
rb_define_singleton_method( rant_mAnt, "set_network_key", rant_s_set_network_key, 2 );
|
604
|
+
rb_define_singleton_method( rant_mAnt, "transmit_power=", rant_s_transmit_power_eq, 1 );
|
578
605
|
rb_define_singleton_method( rant_mAnt, "assign_channel", rant_s_assign_channel, -1 );
|
579
606
|
|
580
607
|
rb_define_singleton_method( rant_mAnt, "use_extended_messages=",
|
data/ext/ant_ext/channel.c
CHANGED
@@ -132,6 +132,7 @@ rant_channel_init( VALUE self, VALUE channel_number, VALUE channel_type, VALUE n
|
|
132
132
|
rb_iv_set( self, "@device_number", Qnil );
|
133
133
|
rb_iv_set( self, "@transmission_type", Qnil );
|
134
134
|
rb_iv_set( self, "@rf_frequency", Qnil );
|
135
|
+
rb_iv_set( self, "@agility_frequencies", Qnil );
|
135
136
|
|
136
137
|
rb_hash_aset( registry, channel_number, self );
|
137
138
|
|
@@ -299,6 +300,31 @@ rant_channel_set_channel_rf_freq( VALUE self, VALUE frequency )
|
|
299
300
|
}
|
300
301
|
|
301
302
|
|
303
|
+
static VALUE
|
304
|
+
rant_channet_set_frequency_agility( VALUE self, VALUE freq1, VALUE freq2, VALUE freq3 )
|
305
|
+
{
|
306
|
+
rant_channel_t *ptr = rant_get_channel( self );
|
307
|
+
unsigned char ucFreq1 = NUM2CHR( freq1 ),
|
308
|
+
ucFreq2 = NUM2CHR( freq2 ),
|
309
|
+
ucFreq3 = NUM2CHR( freq3 );
|
310
|
+
VALUE frequencies = rb_ary_new_from_args( 3, freq1, freq2, freq3 );
|
311
|
+
|
312
|
+
if ( ucFreq1 > 124 || ucFreq2 > 124 || ucFreq3 > 124 ) {
|
313
|
+
rb_raise( rb_eArgError, "frequencies must be between 0 and 124." );
|
314
|
+
}
|
315
|
+
|
316
|
+
rant_log_obj( self, "info",
|
317
|
+
"Configuring channel %d to use frequency agility on %d, %d, and %d MHz.",
|
318
|
+
ptr->channel_num, ucFreq1 + 2400, ucFreq2 + 2400, ucFreq3 + 2400 );
|
319
|
+
ANT_ConfigFrequencyAgility( ptr->channel_num, ucFreq1, ucFreq2, ucFreq3 );
|
320
|
+
|
321
|
+
rb_ary_freeze( frequencies );
|
322
|
+
rb_iv_set( self, "@agility_frequencies", frequencies );
|
323
|
+
|
324
|
+
return Qtrue;
|
325
|
+
}
|
326
|
+
|
327
|
+
|
302
328
|
|
303
329
|
|
304
330
|
/*
|
@@ -588,12 +614,14 @@ init_ant_channel()
|
|
588
614
|
rb_attr( rant_cAntChannel, rb_intern("device_type"), 1, 0, 0 );
|
589
615
|
rb_attr( rant_cAntChannel, rb_intern("transmission_type"), 1, 0, 0 );
|
590
616
|
rb_attr( rant_cAntChannel, rb_intern("rf_frequency"), 1, 0, 0 );
|
617
|
+
rb_attr( rant_cAntChannel, rb_intern("agility_frequencies"), 1, 0, 0 );
|
591
618
|
|
592
619
|
rb_define_method( rant_cAntChannel, "set_channel_id", rant_channel_set_channel_id, -1 );
|
593
620
|
rb_define_method( rant_cAntChannel, "set_channel_period", rant_channel_set_channel_period, -1 );
|
594
621
|
rb_define_method( rant_cAntChannel, "set_channel_search_timeout",
|
595
622
|
rant_channel_set_channel_search_timeout, -1 );
|
596
623
|
rb_define_method( rant_cAntChannel, "set_channel_rf_freq", rant_channel_set_channel_rf_freq, 1 );
|
624
|
+
rb_define_method( rant_cAntChannel, "set_frequency_agility", rant_channet_set_frequency_agility, 3 );
|
597
625
|
|
598
626
|
rb_define_method( rant_cAntChannel, "open", rant_channel_open, -1 );
|
599
627
|
rb_define_method( rant_cAntChannel, "close", rant_channel_close, -1 );
|
@@ -48,6 +48,8 @@ module Ant::ResponseCallbacks
|
|
48
48
|
|
49
49
|
Ant::Message::MESG_RADIO_TX_POWER_ID => :on_radio_tx_power,
|
50
50
|
|
51
|
+
Ant::Message::MESG_AUTO_FREQ_CONFIG_ID => :on_auto_freq_config,
|
52
|
+
|
51
53
|
# :TODO: There are many other MESG_ constants, but I think most or all of
|
52
54
|
# them are for the serial protocol.
|
53
55
|
}
|
@@ -227,6 +229,13 @@ module Ant::ResponseCallbacks
|
|
227
229
|
end
|
228
230
|
|
229
231
|
|
232
|
+
### Handle on_rx_ext_mesgs_enable response event.
|
233
|
+
def on_auto_freq_config( channel_num, data )
|
234
|
+
self.log_response_event( channel_num, data, "enabling frequency agility",
|
235
|
+
"Enabled frequency agility." )
|
236
|
+
end
|
237
|
+
|
238
|
+
|
230
239
|
### Handle capabilities response event.
|
231
240
|
def on_capabilities( channel_num, data )
|
232
241
|
std_opts = Ant::BitVector.new( data.bytes[2] )
|
data/lib/ant.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ant-wireless
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Granger
|
@@ -34,7 +34,7 @@ cert_chain:
|
|
34
34
|
MCh97sQ/Z/MOusb5+QddBmB+k8EicXyGNl4b5L4XpL7fIQu+Y96TB3JEJlShxFD9
|
35
35
|
k9FjI4d9EP54gS/4
|
36
36
|
-----END CERTIFICATE-----
|
37
|
-
date: 2021-
|
37
|
+
date: 2021-10-11 00:00:00.000000000 Z
|
38
38
|
dependencies:
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: rake-compiler
|
metadata.gz.sig
CHANGED
Binary file
|