scan_beacon 0.5.9 → 0.5.10

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
  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