class SpheroResponse
Attributes
calculated_checksum[RW]
data[RW]
echoed_seq[RW]
raw_checksum[RW]
raw_data[RW]
sop1[RW]
sop2[RW]
valid[RW]
Public Class Methods
new(raw_data, debugval)
click to toggle source
# File lib/rubysphero.rb, line 443 def initialize(raw_data, debugval) @debug=debugval @valid=false @raw_data=raw_data.dup @data=process_data(raw_data) end
Public Instance Methods
process_data(bytes)
click to toggle source
# File lib/rubysphero.rb, line 473 def process_data(bytes) if bytes.length == 0 logd "Response: None received" elsif bytes==nil logd "Response: Was nil" else logd "Response data raw: #{print_format_bytes(bytes)}" @sop1 = bytes.shift @sop2 = bytes.shift @raw_checksum=bytes.pop @calculated_checksum=do_checksum( bytes ) logd "Response checksum: #{@calculated_checksum.to_s(16)}" if @raw_checksum == @calculated_checksum then logd("Response Checksum is Valid") @valid=true logd("Response data:#{bytes}") @echoed_seq=bytes[1] @data=bytes else logd("Response Checksum is BAD") end # else end # else end
raw_length()
click to toggle source
# File lib/rubysphero.rb, line 465 def raw_length if @data==nil return 0 else @raw_data.length end # else end
synchronicity?()
click to toggle source
# File lib/rubysphero.rb, line 450 def synchronicity? logd("Synchronicity?") logd("#{@sop1}") logd("#{@sop2}") if (@sop1==0xFF) && (@sop2==0xFE) then return :asynchronous elsif (@sop1==0xFF) && (@sop2==0xFF) return :synchronous else return nil end # else end