Skip to content

Commit

Permalink
support cycle time with BufferedPacketLogWriter
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanmelt committed Mar 10, 2024
1 parent 1992388 commit 6b9e120
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
5 changes: 5 additions & 0 deletions openc3/lib/openc3/logs/buffered_packet_log_writer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,11 @@ def initialize(
def buffered_write(entry_type, cmd_or_tlm, target_name, packet_name, time_nsec_since_epoch, stored, data, id = nil, redis_topic = nil, redis_offset = '0-0', received_time_nsec_since_epoch: nil, extra: nil)
case entry_type
when :RAW_PACKET, :JSON_PACKET
# If we have data in the buffer, a file should always be open so that cycle time logic will run
unless @file
@mutex.synchronize { start_new_file() }
end

@buffer << [entry_type, cmd_or_tlm, target_name, packet_name, time_nsec_since_epoch, stored, data, id, redis_topic, redis_offset, received_time_nsec_since_epoch, extra]
@buffer.sort! {|entry1, entry2| entry1[4] <=> entry2[4] }
if @buffer.length >= @buffer_depth
Expand Down
6 changes: 3 additions & 3 deletions openc3/spec/logs/buffered_packet_log_writer_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,13 @@ module OpenC3
expect(bplw.instance_variable_get(:@file_size)).to eq 0
expect(bplw.buffered_first_time_nsec).to be_nil
bplw.buffered_write(:RAW_PACKET, :TLM, 'TGT1', 'PKT1', time1, false, "\x01\x02", nil, '0-0')
expect(bplw.instance_variable_get(:@file_size)).to eq 0
expect(bplw.instance_variable_get(:@file_size)).to eq 8
expect(bplw.buffered_first_time_nsec).to eq time1
bplw.buffered_write(:RAW_PACKET, :TLM, 'TGT2', 'PKT2', time2, false, "\x03\x04", nil, '0-0')
expect(bplw.instance_variable_get(:@file_size)).to eq 0
expect(bplw.instance_variable_get(:@file_size)).to eq 8
expect(bplw.buffered_first_time_nsec).to eq time1
bplw.buffered_write(:RAW_PACKET, :TLM, 'TGT2', 'PKT2', time3, false, "\x05\x06", nil, '0-0')
expect(bplw.instance_variable_get(:@file_size)).to_not eq 0
expect(bplw.instance_variable_get(:@file_size)).to_not eq 8
expect(bplw.buffered_first_time_nsec).to eq time1
bplw.shutdown
sleep 0.1 # Allow for shutdown thread "copy" to S3
Expand Down

0 comments on commit 6b9e120

Please sign in to comment.