sensor_health_node:
  ros__parameters:
    # Publish rate for DiagnosticArray and JSON summary
    check_hz: 1.0

    # MQTT broker for saltybot/health topic
    mqtt_broker: "localhost"
    mqtt_port: 1883
    mqtt_topic: "saltybot/health"
    mqtt_enabled: true

# Per-sensor thresholds and configuration
# Each entry: topic, name, warn_s (WARN threshold), error_s (ERROR threshold), critical
#
# critical=true: system cannot operate without this sensor
# warn_s: topic age (s) that triggers WARN level
# error_s: topic age (s) that triggers ERROR level

sensors:
  - topic: "/camera/color/image_raw"
    name: "camera_color"
    warn_s: 1.0
    error_s: 3.0
    critical: true

  - topic: "/camera/depth/image_rect_raw"
    name: "camera_depth"
    warn_s: 1.0
    error_s: 3.0
    critical: true

  - topic: "/camera/color/camera_info"
    name: "camera_info"
    warn_s: 2.0
    error_s: 5.0
    critical: false

  - topic: "/scan"
    name: "lidar"
    warn_s: 1.0
    error_s: 3.0
    critical: true

  - topic: "/imu/data"
    name: "imu"
    warn_s: 0.5
    error_s: 2.0
    critical: true

  - topic: "/saltybot/uwb/range"
    name: "uwb"
    warn_s: 2.0
    error_s: 5.0
    critical: false

  - topic: "/saltybot/battery"
    name: "battery"
    warn_s: 3.0
    error_s: 8.0
    critical: false

  - topic: "/saltybot/motor_daemon/status"
    name: "motor_daemon"
    warn_s: 2.0
    error_s: 5.0
    critical: true
