st.c: Send time delta packet before actual value

This commit fixes the order between timestamp deltas and value packets.
Before the timestamp is updated after a value packet,
which falsifies the timing.
This commit is contained in:
Dominic Höglinger 2025-05-18 21:34:39 +02:00
parent 85a628da2b
commit 5840f22d87

12
st.c
View File

@ -197,12 +197,6 @@ size_t render_macropacket_payload(char buffer[], const size_t buffer_size, size_
while ((s_tracebuffer_full || (s_tracebuffer_tail != s_tracebuffer_head)) && (i < n) && ((buffer_pos + max_render_size) < buffer_size))
{
payload_size = pack_frame(payload_buffer, &s_tracebuffer[s_tracebuffer_tail]);
encode_size = cobs_encode(&buffer[buffer_pos], buffer_size - buffer_pos, payload_buffer, payload_size, delimimter);
buffer_pos += encode_size;
buffer[buffer_pos] = delimimter;
buffer_pos++;
if (populate_time_delta_packet(s_tracebuffer[s_tracebuffer_tail].m_timestamp, &timestamp_pack))
{
@ -214,6 +208,12 @@ size_t render_macropacket_payload(char buffer[], const size_t buffer_size, size_
buffer_pos++;
}
payload_size = pack_frame(payload_buffer, &s_tracebuffer[s_tracebuffer_tail]);
encode_size = cobs_encode(&buffer[buffer_pos], buffer_size - buffer_pos, payload_buffer, payload_size, delimimter);
buffer_pos += encode_size;
buffer[buffer_pos] = delimimter;
buffer_pos++;
s_tracebuffer_tail = (s_tracebuffer_tail + 1) % s_tracebuffer_size;
s_tracebuffer_full = false;
s_tracebuffer_items = (s_tracebuffer_items > 0) ? (s_tracebuffer_items - 1) : 0;