114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
# File 'lib/openc3/accessors/binary_accessor.rb', line 114
def handle_read_variable_bit_size(item, _buffer)
length_value = @packet.read(item.variable_bit_size['length_item_name'], :CONVERTED)
if item.array_size
item.array_size = (length_value * item.variable_bit_size['length_bits_per_count']) + item.variable_bit_size['length_value_bit_offset']
else
if item.data_type == :INT or item.data_type == :UINT
case length_value
when 0
item.bit_size = 6
when 1
item.bit_size = 14
when 2
item.bit_size = 30
else
item.bit_size = 62
end
else
item.bit_size = (length_value * item.variable_bit_size['length_bits_per_count']) + item.variable_bit_size['length_value_bit_offset']
end
end
end
|