class Rplidar::ScanDataResponse
Data response for one scan measurement
Public Instance Methods
angle()
click to toggle source
# File lib/rplidar/scan_data_response.rb, line 35 def angle ((raw_response[2] << 7) + (raw_response[1] >> 1)) / 64.0 end
check_header()
click to toggle source
# File lib/rplidar/scan_data_response.rb, line 4 def check_header unless correct_start_bit? raise 'Inversed start bit of the data response ' \ 'is not inverse of the start bit' end raise 'Check bit of the data response is not equal to 1' \ unless correct_check_bit? end
correct_check_bit?()
click to toggle source
# File lib/rplidar/scan_data_response.rb, line 23 def correct_check_bit? raw_response[1][0] == 1 end
correct_start_bit?()
click to toggle source
# File lib/rplidar/scan_data_response.rb, line 14 def correct_start_bit? # start bit start = raw_response[0][0] # inversed start bit inversed = raw_response[0][1] (start == 1 && inversed.zero?) || (start.zero? && inversed == 1) end
distance()
click to toggle source
# File lib/rplidar/scan_data_response.rb, line 39 def distance ((raw_response[4] << 8) + raw_response[3]) / 4.0 end
quality()
click to toggle source
# File lib/rplidar/scan_data_response.rb, line 31 def quality raw_response[0] >> 2 end
response()
click to toggle source
# File lib/rplidar/scan_data_response.rb, line 43 def response { start: start?, quality: quality, angle: angle, distance: distance } end
start?()
click to toggle source
# File lib/rplidar/scan_data_response.rb, line 27 def start? raw_response[0][0] == 1 end