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