Module: UR::Serialize

Defined in:
lib/serialize.rb

Defined Under Namespace

Modules: ControlHeader, ControlVersion, Message, ReturnValue Classes: DataConfig, DataObject

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.get_item_size(data_type) ⇒ Object



43
44
45
46
47
48
49
50
51
# File 'lib/serialize.rb', line 43

def self.get_item_size(data_type)
  if data_type.start_with? 'VECTOR6'
    6
  elsif data_type.start_with? 'VECTOR3'
    3
  else
    1
  end
end

.unpack_field(data, offset, data_type) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/serialize.rb', line 53

def self.unpack_field(data, offset, data_type)
  size = self.get_item_size(data_type)
  if data_type == 'VECTOR6D' or data_type == 'VECTOR3D'
    data[offset...offset+size].map(&:to_f)
  elsif data_type == 'VECTOR6UINT32'
    data[offset...offset+size].map(&:to_i)
  elsif data_type == 'DOUBLE'
    data[offset].to_f
  elsif data_type == 'UINT32' or data_type == 'UINT64'
    data[offset].to_i
  elsif data_type == 'VECTOR6INT32'
    data[offset...offset+size].map(&:to_i)
  elsif data_type == 'INT32' or data_type == 'UINT8'
    data[offset].to_i
  elsif data_type == 'BOOL'
    data[offset].to_i > 0 ? true : false
  else
    raise TypeError.new('unpack_field: unknown data type: ' + data_type)
  end
end

Instance Method Details

#[](item) ⇒ Object



73
74
75
# File 'lib/serialize.rb', line 73

def [](item)
  @values[item]
end