Adds parent ID to LedPump

Introduces a `parent_organ_id` field to the `LedPump` struct and updates its constructor. This establishes a clear hierarchical link, allowing a `LedPump` instance to identify its containing organ.

Additionally, changes the `last_beat` field type from `u128` to `u64` for optimized storage of beat tracking data.
This commit is contained in:
Russell Gilbert 2026-03-26 14:22:13 +00:00
parent d5ad70666e
commit ef10ab5998
2 changed files with 6 additions and 5 deletions

View file

@ -4,7 +4,8 @@ use crate::protocols::{OrganCommand, OrganCommandEnvelope, OrganResponse};
pub struct LedPump { pub struct LedPump {
id: u32, id: u32,
last_beat: u128, parent_organ_id: u32,
last_beat: u64,
} }
impl_identifiable!(LedPump, { impl_identifiable!(LedPump, {
@ -19,9 +20,10 @@ impl_identifiable!(LedPump, {
}); });
impl LedPump { impl LedPump {
pub fn new(id: u32) -> Self { pub fn new(id: u32, parent_organ_id: u32) -> Self {
Self { Self {
id, id,
parent_organ_id,
last_beat: 0 last_beat: 0
} }
} }

View file

@ -56,10 +56,9 @@ impl OrganFactory {
brain_command_to_organ_rx, brain_command_to_organ_rx,
feedback_to_brain_tx feedback_to_brain_tx
); );
let last_parenchyma_id = organ_id; let last_parenchyma_id = organ_id;
let led_pump = LedPump::new(OrganFactory::next_parenchyma_id(last_parenchyma_id)); let led_pump = LedPump::new(OrganFactory::next_parenchyma_id(last_parenchyma_id), organ_id);
heart.add_parenchyma(Box::new(led_pump)); heart.add_parenchyma(Box::new(led_pump));
heart.start(); heart.start();
}); });