Class: ScanBeacon::BLE112Device::BLE112Response

Inherits:
Object
  • Object
show all
Defined in:
lib/scan_beacon/ble112_device.rb

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ BLE112Response



148
149
150
151
# File 'lib/scan_beacon/ble112_device.rb', line 148

def initialize(data)
  data ||= ""
  @data = data.force_encoding("ASCII-8BIT")
end

Instance Method Details

#advertisement?Boolean



173
174
175
# File 'lib/scan_beacon/ble112_device.rb', line 173

def advertisement?
  event? && gap_scan? && (manufacturer_ad? || service_ad?)
end


181
182
183
# File 'lib/scan_beacon/ble112_device.rb', line 181

def advertisement_data
  @advertisement_data ||= @data[20..-1]
end


177
178
179
# File 'lib/scan_beacon/ble112_device.rb', line 177

def advertisement_type
  @data[19].unpack('C')[0]
end

#event?Boolean



157
158
159
# File 'lib/scan_beacon/ble112_device.rb', line 157

def event?
  @data[0].unpack('C')[0] == BG_EVENT
end

#gap_scan?Boolean



161
162
163
# File 'lib/scan_beacon/ble112_device.rb', line 161

def gap_scan?
  @data[2..3].unpack('CC') == [BG_MSG_CLASS_GAP, 0]
end

#macObject



185
186
187
# File 'lib/scan_beacon/ble112_device.rb', line 185

def mac
  @data[6..11].unpack('H2 H2 H2 H2 H2 H2').join(":")
end

#manufacturer_ad?Boolean



165
166
167
# File 'lib/scan_beacon/ble112_device.rb', line 165

def manufacturer_ad?
  size > 20 && advertisement_type == 0xFF
end

#rssiObject



189
190
191
# File 'lib/scan_beacon/ble112_device.rb', line 189

def rssi
  @data[4].unpack('c')[0]
end

#service_ad?Boolean



169
170
171
# File 'lib/scan_beacon/ble112_device.rb', line 169

def service_ad?
  size > 20 && advertisement_type ==0x03
end

#sizeObject



153
154
155
# File 'lib/scan_beacon/ble112_device.rb', line 153

def size
  @data.size
end