class Samsung::Protocol::Frame
Attributes
data[RW]
Public Class Methods
new(data = '')
click to toggle source
# File lib/samsung/protocol/frame.rb, line 8 def initialize data = '' @data = data end
Public Instance Methods
hex()
click to toggle source
# File lib/samsung/protocol/frame.rb, line 16 def hex data.split('').map do |c| "0x%.2x" % c.ord end.join(' ') end
pop_frame()
click to toggle source
# File lib/samsung/protocol/frame.rb, line 82 def pop_frame frame_size = pop_int16 Frame.new(data.slice!(0..frame_size-1)) end
pop_int16()
click to toggle source
# File lib/samsung/protocol/frame.rb, line 61 def pop_int16 data.slice!(0..1).unpack('S<').first end
pop_int32()
click to toggle source
# File lib/samsung/protocol/frame.rb, line 71 def pop_int32 data.slice!(0..1).unpack('L<').first end
pop_int8()
click to toggle source
# File lib/samsung/protocol/frame.rb, line 51 def pop_int8 data.slice!(0).unpack('C').first end
pop_string()
click to toggle source
# File lib/samsung/protocol/frame.rb, line 29 def pop_string len = pop_int16 data.slice!(0..len-1) end
pop_string64()
click to toggle source
# File lib/samsung/protocol/frame.rb, line 40 def pop_string64 len = pop_int16 Base64.decode64(data.slice!(0..len-1)) end
push_frame(frame)
click to toggle source
Frames
# File lib/samsung/protocol/frame.rb, line 77 def push_frame(frame) push_int16(frame.size) self.data += frame.data end
push_int16(v)
click to toggle source
16-bit integer
# File lib/samsung/protocol/frame.rb, line 57 def push_int16(v) self.data += [v].pack('S<') end
push_int32(v)
click to toggle source
32-bit integer
# File lib/samsung/protocol/frame.rb, line 67 def push_int32(v) self.data += [v].pack('L<') end
push_int8(v)
click to toggle source
8-bit integer
# File lib/samsung/protocol/frame.rb, line 47 def push_int8(v) self.data += [v].pack('C') end
push_string(s)
click to toggle source
String
# File lib/samsung/protocol/frame.rb, line 24 def push_string(s) push_int16(s.size) self.data += s end
push_string64(s)
click to toggle source
Base64 string
# File lib/samsung/protocol/frame.rb, line 36 def push_string64(s) push_string(Base64.encode64(s)) end
size()
click to toggle source
# File lib/samsung/protocol/frame.rb, line 12 def size @data.size end