class UR::Serialize::DataConfig
Public Class Methods
unpack_recipe(buf)
click to toggle source
# File lib/serialize.rb, line 131 def self.unpack_recipe(buf) rmd = DataConfig.new rmd.id = buf.unpack('C')[0] rmd.types = buf[1..-1].split(',') rmd.fmt = 'C' rmd.types.each do |i| if i == 'INT32' rmd.fmt += 'i>' elsif i == 'UINT32' rmd.fmt += 'I>' elsif i == 'VECTOR6D' rmd.fmt += 'G'*6 elsif i == 'VECTOR3D' rmd.fmt += 'G'*3 elsif i == 'VECTOR6INT32' rmd.fmt += 'i>'*6 elsif i == 'VECTOR6UINT32' rmd.fmt += 'I>'*6 elsif i == 'DOUBLE' rmd.fmt += 'G' elsif i == 'UINT64' rmd.fmt += 'Q>' elsif i == 'UINT8' rmd.fmt += 'C' elsif i == 'BOOL' rmd.fmt += 'c' elsif i == 'IN_USE' raise 'An input parameter is already in use.' else raise 'Unknown data type: ' + i end end rmd end
Public Instance Methods
pack(state)
click to toggle source
# File lib/serialize.rb, line 166 def pack(state) l = state.pack(self.names, self.types) l.pack(self.fmt) end
unpack(data)
click to toggle source
# File lib/serialize.rb, line 171 def unpack(data) li = data.unpack(self.fmt) DataObject.unpack(li, self.names, self.types) end