Method: OpenC3::CrcProtocol#write_data

Defined in:
lib/openc3/interfaces/protocols/crc_protocol.rb

#write_data(data) ⇒ Object



180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# File 'lib/openc3/interfaces/protocols/crc_protocol.rb', line 180

def write_data(data)
  unless @write_item_name
    if @bit_size == 64
      crc = @crc.calc(data)
      data << ("\x00" * 8)
      BinaryAccessor.write((crc >> 32), -64, 32, :UINT, data, @endianness, :ERROR)
      BinaryAccessor.write((crc & 0xFFFFFFFF), -32, 32, :UINT, data, @endianness, :ERROR)
    else
      crc = @crc.calc(data)
      data << ("\x00" * (@bit_size / 8))
      BinaryAccessor.write(crc, -@bit_size, @bit_size, :UINT, data, @endianness, :ERROR)
    end
  end
  data
end