class SpheroRequest
Attributes
checksum[RW]
cid[RW]
did[RW]
dlen[RW]
seq[RW]
sequence[RW]
sop1[RW]
sop2[RW]
Public Class Methods
new(type=:synchronous, debugval)
click to toggle source
# File lib/rubysphero.rb, line 514 def initialize(type=:synchronous, debugval) if type==:synchronous @sop1=0xFF @sop2=0xFF end # if @debug=debugval @packet_data=Array.new @payload_data=Array.new end
Public Instance Methods
build_packet()
click to toggle source
# File lib/rubysphero.rb, line 528 def build_packet packet_no_checksum=[@sop1, @sop2, @did, @cid, @seq, @dlen] packet_no_checksum.concat @payload_data packet_with_checksum=add_checksum(packet_no_checksum) packet_packed=packet_with_checksum.pack("C*") logd(print_format_bytes(packet_with_checksum)) @packet_data=packet_packed return @packet_data end
length()
click to toggle source
# File lib/rubysphero.rb, line 524 def length return @packet_data.length end
push_data(data_input, length=:a8bit)
click to toggle source
# File lib/rubysphero.rb, line 539 def push_data(data_input, length=:a8bit) # 8bit and 16bit numbers if data_input > 0xFF then logd("Greater than 255, splitting into MSB and LSB)}") logd("Masked: #{(data_input & 0b0000000100000000 ).to_s(2)}") data_input_msb = (data_input & 0b0000000100000000) >> 8 data_input_lsb = data_input & 0b0000000011111111 logd("data_input MSB #{data_input_msb.to_s(2)}") logd("data_input LSB #{data_input_lsb.to_s(2)}") @payload_data.push data_input_msb @payload_data.push data_input_lsb else if length==:a16bit @payload_data.push 0x00 end #if @payload_data.push data_input end # else end