scan_beacon 0.5.9 → 0.5.10

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
  SHA1:
3
- metadata.gz: b1305ae5fb7f7a3a8ef43f37c649c09eaf6040ef
4
- data.tar.gz: 1fa26061dfbe8c64cafd7df2dde2b8cc210aaa25
3
+ metadata.gz: 838d6c716e2a552286f23328ddbf3df125d42b91
4
+ data.tar.gz: 03f63cc6ced4d549618d7d93cdef6bd2bbee6779
5
5
  SHA512:
6
- metadata.gz: 9e27d5b0549fedd16ca3119d42a5b81fce2548861c0d361fe855b616bbc8677564c31078241b3b1efc437534e6ed7fd1ae2d70b8cb777d8054b36c82b1260374
7
- data.tar.gz: 01a639e0615596304a83e65286f6f5990b5cb36fad3735315a2b074e7ded5c08a50daf0984e5cda3f722441b37870d0860cec1e9b33a50557b0e144a5b4024eb
6
+ metadata.gz: ca02db0c9420967326b7977e7bc130e2447549c369d29a688dbf898f47298081124c443cfe1a624e553972e2dd05d4717e3b764c99b9ae91c86e5ad0ced780d2
7
+ data.tar.gz: ee3eb6dd03090eca7fe8ac1f48ca699b65a8f76ed716eeeb62a9bdc89a94ec4050c8d8d974dd0810be462258057d8739872fa3afecd21d2fda746b565eccb27f
@@ -12,6 +12,7 @@ module ScanBeacon
12
12
  BG_RESET = 0
13
13
  BG_DISCONNECT = 0
14
14
  BG_SET_MODE = 1
15
+ BG_GET_ADDRESS = 2
15
16
  BG_GAP_SET_PRIVACY_FLAGS = 0
16
17
  BG_GAP_SET_ADV_PARAM = 8
17
18
  BG_GAP_SET_ADV_DATA = 9
@@ -26,17 +27,27 @@ module ScanBeacon
26
27
  BG_GAP_USER_DATA = 4
27
28
  BG_GAP_CONNECTABLE = 2
28
29
 
30
+ def self.find_all
31
+ devices = Dir.glob("/dev/{cu.usbmodem,ttyACM}*")
32
+ devices.select {|device_path|
33
+ device = self.new(device_path)
34
+ device.open{ device.get_addr } != nil
35
+ }
36
+ end
37
+
29
38
  def initialize(port=nil)
30
- @port = port || Dir.glob("/dev/{cu.usbmodem,ttyACM}*")[0]
39
+ @port = port || BLE112Device.find_all.first
31
40
  end
32
41
 
33
42
  def open
43
+ response = nil
34
44
  configure_port
35
45
  File.open(@port, 'r+b') do |file|
36
46
  @file = file
37
- yield self
47
+ response = yield(self)
38
48
  end
39
49
  @file = nil
50
+ return response
40
51
  end
41
52
 
42
53
  def configure_port
@@ -45,6 +56,11 @@ module ScanBeacon
45
56
  end
46
57
  end
47
58
 
59
+ def get_addr
60
+ response = bg_command(@file, BG_MSG_CLASS_SYSTEM, BG_GET_ADDRESS)
61
+ response[4..-1].reverse.unpack("H2:H2:H2:H2:H2:H2").join(":") if response.length == 10
62
+ end
63
+
48
64
  def start_scan
49
65
  # disconnect any connections
50
66
  bg_command(@file, BG_MSG_CLASS_CONNECTION, BG_DISCONNECT,0)
@@ -1,9 +1,12 @@
1
1
  module ScanBeacon
2
2
  class BLE112Scanner < GenericScanner
3
3
 
4
+ attr_reader :device_addr
5
+
4
6
  def initialize(opts = {})
5
7
  super
6
8
  @device = BLE112Device.new opts[:port]
9
+ @device_addr = @device.open{ @device.get_addr }
7
10
  end
8
11
 
9
12
  def each_advertisement
@@ -1,3 +1,3 @@
1
1
  module ScanBeacon
2
- VERSION = "0.5.9"
2
+ VERSION = "0.5.10"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scan_beacon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.9
4
+ version: 0.5.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Radius Networks