-
- All Implemented Interfaces:
-
com.google.protobuf.MessageLiteOrBuilder
public interface TelemetryBatchOrBuilder implements MessageLiteOrBuilder
-
-
Method Summary
Modifier and Type Method Description abstract intgetFormatVersion()Format version carried in the payload (= 3 for this "v3" format). Distinct from the HTTP `X-DoorstepAI-Payload-Version` header (= 4); both are sent.uint32 format_version = 1;abstract longgetBatchId()Monotonic per-process batch id (never resets across restarts; seeded from wall-clock seconds), mirrors the DSDP v2 envelope `batch_id`.uint64 batch_id = 2;abstract ByteStringgetPrimarySessionUuid()Primary session UUID as 16 raw bytes in RFC 4122 (big-endian) order — the same byte order the server already accepts for DSDP.bytes primary_session_uuid = 3;abstract List<ByteString>getExtraSessionUuidsList()Additional concurrently-active session UUIDs (16 bytes each), for windows that fan out to more than one delivery.repeated bytes extra_session_uuids = 4;abstract intgetExtraSessionUuidsCount()Additional concurrently-active session UUIDs (16 bytes each), for windows that fan out to more than one delivery.repeated bytes extra_session_uuids = 4;abstract ByteStringgetExtraSessionUuids(int index)Additional concurrently-active session UUIDs (16 bytes each), for windows that fan out to more than one delivery.repeated bytes extra_session_uuids = 4;abstract longgetWallEpochMs()Batch anchor: min wall-clock across all streams, in epoch milliseconds.int64 wall_epoch_ms = 5;abstract List<StreamColumn>getStreamsList()Typed, columnar streams (see the stream/channel registry below).repeated .doorstepai.telemetry.v3.StreamColumn streams = 6;abstract StreamColumngetStreams(int index)Typed, columnar streams (see the stream/channel registry below).repeated .doorstepai.telemetry.v3.StreamColumn streams = 6;abstract intgetStreamsCount()Typed, columnar streams (see the stream/channel registry below).repeated .doorstepai.telemetry.v3.StreamColumn streams = 6;abstract ByteStringgetJsonRemainder()Streams not yet migrated to typed columns are carried here as the existing DataPushBody JSON with ONLY those streams populated (IMU/env/pressure/ altitude stripped out). The server parses this with its existing JSON path and merges the typed streams above — so v3 is zero-data-loss from day one, and streams migrate into typed columns over time (shrinking this toward empty). UTF-8 JSON bytes; the outer deflate compresses it.bytes json_remainder = 7;abstract List<Table>getTablesList()Ragged / string-heavy streams (WiFi scans, GNSS measurement/status, BLE) encoded as generic columnar Tables — the same quantize/delta/varint recipe plus string-dictionary dedup and a per-column null bitmap. As a stream moves from json_remainder into a Table here it drops ~3x (verified on real device data: gnss 3.5x, ble 3.4x, all fields equivalence-checked).repeated .doorstepai.telemetry.v3.Table tables = 8;abstract TablegetTables(int index)Ragged / string-heavy streams (WiFi scans, GNSS measurement/status, BLE) encoded as generic columnar Tables — the same quantize/delta/varint recipe plus string-dictionary dedup and a per-column null bitmap. As a stream moves from json_remainder into a Table here it drops ~3x (verified on real device data: gnss 3.5x, ble 3.4x, all fields equivalence-checked).repeated .doorstepai.telemetry.v3.Table tables = 8;abstract intgetTablesCount()Ragged / string-heavy streams (WiFi scans, GNSS measurement/status, BLE) encoded as generic columnar Tables — the same quantize/delta/varint recipe plus string-dictionary dedup and a per-column null bitmap. As a stream moves from json_remainder into a Table here it drops ~3x (verified on real device data: gnss 3.5x, ble 3.4x, all fields equivalence-checked).repeated .doorstepai.telemetry.v3.Table tables = 8;-
-
Method Detail
-
getFormatVersion
abstract int getFormatVersion()
Format version carried in the payload (= 3 for this "v3" format). Distinct from the HTTP `X-DoorstepAI-Payload-Version` header (= 4); both are sent.uint32 format_version = 1;
-
getBatchId
abstract long getBatchId()
Monotonic per-process batch id (never resets across restarts; seeded from wall-clock seconds), mirrors the DSDP v2 envelope `batch_id`.uint64 batch_id = 2;
-
getPrimarySessionUuid
abstract ByteString getPrimarySessionUuid()
Primary session UUID as 16 raw bytes in RFC 4122 (big-endian) order — the same byte order the server already accepts for DSDP.bytes primary_session_uuid = 3;
-
getExtraSessionUuidsList
abstract List<ByteString> getExtraSessionUuidsList()
Additional concurrently-active session UUIDs (16 bytes each), for windows that fan out to more than one delivery.repeated bytes extra_session_uuids = 4;
-
getExtraSessionUuidsCount
abstract int getExtraSessionUuidsCount()
Additional concurrently-active session UUIDs (16 bytes each), for windows that fan out to more than one delivery.repeated bytes extra_session_uuids = 4;
-
getExtraSessionUuids
abstract ByteString getExtraSessionUuids(int index)
Additional concurrently-active session UUIDs (16 bytes each), for windows that fan out to more than one delivery.repeated bytes extra_session_uuids = 4;- Parameters:
index- The index of the element to return.
-
getWallEpochMs
abstract long getWallEpochMs()
Batch anchor: min wall-clock across all streams, in epoch milliseconds.int64 wall_epoch_ms = 5;
-
getStreamsList
abstract List<StreamColumn> getStreamsList()
Typed, columnar streams (see the stream/channel registry below).repeated .doorstepai.telemetry.v3.StreamColumn streams = 6;
-
getStreams
abstract StreamColumn getStreams(int index)
Typed, columnar streams (see the stream/channel registry below).repeated .doorstepai.telemetry.v3.StreamColumn streams = 6;
-
getStreamsCount
abstract int getStreamsCount()
Typed, columnar streams (see the stream/channel registry below).repeated .doorstepai.telemetry.v3.StreamColumn streams = 6;
-
getJsonRemainder
abstract ByteString getJsonRemainder()
Streams not yet migrated to typed columns are carried here as the existing DataPushBody JSON with ONLY those streams populated (IMU/env/pressure/ altitude stripped out). The server parses this with its existing JSON path and merges the typed streams above — so v3 is zero-data-loss from day one, and streams migrate into typed columns over time (shrinking this toward empty). UTF-8 JSON bytes; the outer deflate compresses it.bytes json_remainder = 7;
-
getTablesList
abstract List<Table> getTablesList()
Ragged / string-heavy streams (WiFi scans, GNSS measurement/status, BLE) encoded as generic columnar Tables — the same quantize/delta/varint recipe plus string-dictionary dedup and a per-column null bitmap. As a stream moves from json_remainder into a Table here it drops ~3x (verified on real device data: gnss 3.5x, ble 3.4x, all fields equivalence-checked).repeated .doorstepai.telemetry.v3.Table tables = 8;
-
getTables
abstract Table getTables(int index)
Ragged / string-heavy streams (WiFi scans, GNSS measurement/status, BLE) encoded as generic columnar Tables — the same quantize/delta/varint recipe plus string-dictionary dedup and a per-column null bitmap. As a stream moves from json_remainder into a Table here it drops ~3x (verified on real device data: gnss 3.5x, ble 3.4x, all fields equivalence-checked).repeated .doorstepai.telemetry.v3.Table tables = 8;
-
getTablesCount
abstract int getTablesCount()
Ragged / string-heavy streams (WiFi scans, GNSS measurement/status, BLE) encoded as generic columnar Tables — the same quantize/delta/varint recipe plus string-dictionary dedup and a per-column null bitmap. As a stream moves from json_remainder into a Table here it drops ~3x (verified on real device data: gnss 3.5x, ble 3.4x, all fields equivalence-checked).repeated .doorstepai.telemetry.v3.Table tables = 8;
-
-
-
-