firmware_telemetry
Firmware Telemetry Models.
This module provides models for parsing generic telemetry data received from the robot's MCU firmware via Protobuf messages using FNV-1a key hashes.
TelemetryData
#
Bases: BaseModel
Generic telemetry data point with key hash, timestamp, and value.
Attributes:
| Name | Type | Description |
|---|---|---|
key_hash |
int
|
FNV-1a hash of the telemetry key. |
timestamp_ms |
int
|
Timestamp in milliseconds when the data was captured. |
value |
TelemetryValue
|
The telemetry value (float or int depending on type). |
Source code in cogip/models/firmware_telemetry.py
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | |
from_protobuf(message)
classmethod
#
Parse a TelemetryData from a PB_TelemetryData protobuf message.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
message
|
PB_TelemetryData
|
The PB_TelemetryData protobuf message. |
required |
Returns:
| Type | Description |
|---|---|
TelemetryData
|
TelemetryData instance with parsed values. |
Source code in cogip/models/firmware_telemetry.py
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | |
TelemetryDict
#
Dict-like store for telemetry data points indexed by key hash.
This class collects telemetry data and provides access by key name.
Source code in cogip/models/firmware_telemetry.py
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | |
__bool__()
#
Return True if the store contains any data.
Source code in cogip/models/firmware_telemetry.py
122 123 124 | |
__contains__(key)
#
Check if a key exists in the store.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
The telemetry key name to check. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if the key exists, False otherwise. |
Source code in cogip/models/firmware_telemetry.py
106 107 108 109 110 111 112 113 114 115 116 | |
__getitem__(key)
#
Get telemetry value by key name. Raises KeyError if not found.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
The telemetry key name to look up. |
required |
Returns:
| Type | Description |
|---|---|
TelemetryValue
|
The telemetry value for the key. |
Raises:
| Type | Description |
|---|---|
KeyError
|
If the key is not found in the store. |
Source code in cogip/models/firmware_telemetry.py
91 92 93 94 95 96 97 98 99 100 101 102 103 104 | |
__len__()
#
Return the number of telemetry entries.
Source code in cogip/models/firmware_telemetry.py
118 119 120 | |
get_model(key)
#
Get telemetry data model by key name.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
The telemetry key name to look up. |
required |
Returns:
| Type | Description |
|---|---|
TelemetryData
|
TelemetryData for the key. |
Raises:
| Type | Description |
|---|---|
KeyError
|
If the key is not found in the store. |
Source code in cogip/models/firmware_telemetry.py
76 77 78 79 80 81 82 83 84 85 86 87 88 89 | |
items()
#
Iterate over (key_hash, TelemetryData) tuples.
Source code in cogip/models/firmware_telemetry.py
126 127 128 | |
update(data)
#
Update the store with a new telemetry data point.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
TelemetryData
|
The telemetry data point to store. |
required |
Source code in cogip/models/firmware_telemetry.py
67 68 69 70 71 72 73 74 | |
values()
#
Iterate over TelemetryData values.
Source code in cogip/models/firmware_telemetry.py
130 131 132 | |