2024-06-01 12:15:13 +02:00
|
|
|
# This is a basic telemetry plugin
|
2024-05-06 15:00:19 +02:00
|
|
|
# example that you can build upon to
|
|
|
|
# implement your own telemetry plugins.
|
|
|
|
|
2024-03-26 00:29:49 +01:00
|
|
|
import RNS
|
|
|
|
|
|
|
|
class BasicTelemetryPlugin(SidebandTelemetryPlugin):
|
|
|
|
plugin_name = "telemetry_example"
|
|
|
|
|
|
|
|
def start(self):
|
|
|
|
# Do any initialisation work here
|
|
|
|
RNS.log("Basic telemetry plugin example starting...")
|
|
|
|
|
|
|
|
# And finally call start on superclass
|
|
|
|
super().start()
|
|
|
|
|
|
|
|
def stop(self):
|
|
|
|
# Do any teardown work here
|
|
|
|
pass
|
|
|
|
|
|
|
|
# And finally call stop on superclass
|
|
|
|
super().stop()
|
|
|
|
|
|
|
|
def update_telemetry(self, telemeter):
|
|
|
|
if telemeter != None:
|
2024-06-01 12:15:13 +02:00
|
|
|
# Create power consumption sensors
|
2024-03-26 00:29:49 +01:00
|
|
|
telemeter.synthesize("power_consumption")
|
|
|
|
telemeter.sensors["power_consumption"].update_consumer(2163.15, type_label="Heater consumption")
|
|
|
|
telemeter.sensors["power_consumption"].update_consumer(12.7/1e6, type_label="Receiver consumption")
|
2024-06-01 12:15:13 +02:00
|
|
|
telemeter.sensors["power_consumption"].update_consumer(0.055, type_label="LED consumption", custom_icon="led-on")
|
2024-03-26 00:29:49 +01:00
|
|
|
telemeter.sensors["power_consumption"].update_consumer(982.22*1e9, type_label="Smelter consumption")
|
|
|
|
|
2024-06-01 12:15:13 +02:00
|
|
|
# Create power production sensor
|
2024-03-26 00:29:49 +01:00
|
|
|
telemeter.synthesize("power_production")
|
2024-06-01 12:15:13 +02:00
|
|
|
telemeter.sensors["power_production"].update_producer(5732.15, type_label="Solar production", custom_icon="solar-power-variant")
|
|
|
|
|
|
|
|
# Create storage sensor
|
|
|
|
telemeter.synthesize("nvm")
|
|
|
|
telemeter.sensors["nvm"].update_entry(capacity=256e9, used=38.48e9, type_label="SSD")
|
|
|
|
|
|
|
|
# Create RAM sensors
|
|
|
|
telemeter.synthesize("ram")
|
|
|
|
telemeter.sensors["ram"].update_entry(capacity=8e9, used=3.48e9, type_label="RAM")
|
|
|
|
telemeter.sensors["ram"].update_entry(capacity=16e9, used=0.72e9, type_label="Swap")
|
|
|
|
|
|
|
|
# Create CPU sensor
|
|
|
|
telemeter.synthesize("processor")
|
|
|
|
telemeter.sensors["processor"].update_entry(current_load=0.42, clock=2.45e9, load_avgs=[0.27, 0.43, 0.49], type_label="CPU")
|
|
|
|
|
|
|
|
# Create custom sensor
|
|
|
|
telemeter.synthesize("custom")
|
|
|
|
telemeter.sensors["custom"].update_entry("311 seconds", type_label="Specific impulse is", custom_icon="rocket-launch")
|
|
|
|
telemeter.sensors["custom"].update_entry("a lie", type_label="The cake is", custom_icon="cake-variant")
|
|
|
|
|
|
|
|
# Create tank sensors
|
|
|
|
telemeter.synthesize("tank")
|
|
|
|
telemeter.sensors["tank"].update_entry(capacity=1500, level=728, type_label="Fresh water", custom_icon="cup-water")
|
|
|
|
telemeter.sensors["tank"].update_entry(capacity=2000, level=122, unit="L", type_label="Waste tank")
|
|
|
|
|
|
|
|
# Create fuel sensor
|
|
|
|
telemeter.synthesize("fuel")
|
|
|
|
telemeter.sensors["fuel"].update_entry(capacity=75, level=61)
|
2024-03-26 00:29:49 +01:00
|
|
|
|
|
|
|
# Finally, tell Sideband what class in this
|
|
|
|
# file is the actual plugin class.
|
2024-06-01 12:15:13 +02:00
|
|
|
plugin_class = BasicTelemetryPlugin
|