import sys
import click
import caspia
from caspia.node.cli import utils
@utils.component_group_command(caspia.node.components.sensors.MCP980XSensor)
def mcp980x(*args, **kwargs):
"""Communicate with a MCP980XSensor Component."""
[docs]def print_temperature(temp, error):
if error:
click.secho('Temperature sensor failure', fg='red', err=True)
sys.exit(1)
else:
click.secho(str(temp), fg='green')
@mcp980x.command()
@utils.with_group_component
async def measure(component):
"""Measure temperature and print."""
temp = await component.measure()
print_temperature(temp, temp is None)
@mcp980x.command('latest-measurement')
@utils.with_group_component
async def latest_measurement(component):
"""Print latest measurement."""
state = await component.load_state()
print_temperature(state.temperature, state.error)