add mi control cli

This commit is contained in:
flandre 2025-05-13 16:51:52 +08:00
parent c926bc0072
commit a7b4cf1d72

View File

@ -17,6 +17,8 @@ from flandre.BusClient import BusClient
from flandre.kde_pyqt6_mainui import kde_pyqt6_mainui
from flandre.nodes.Broker import Broker
from flandre.utils.Msg import KillMsg, NodeOnlineMsg, Msg1, Msg2
from flandre.utils.mi import c1_connect, c2_connect, c1_disconnect, c2_disconnect, c1_connected, c1_power, c2_connected
class LaunchComponent(Enum):
MainUI = auto()
@ -93,21 +95,24 @@ def launch_from_file(file: Path):
launch(arg_d)
@click.command()
@click.option('--data_folder', default=None)
@click.option('--generate_pyqt', default=True)
@click.group()
@click.option('--dev/--no-dev', default=True)
@click.option('-p', '--path', type=str,
default=platformdirs.user_config_path('Flandre', 'Scarlet') / 'launch.toml',
help='Path to launch.toml'
)
def entrypoint(data_folder, generate_pyqt, dev, path):
def entrypoint(dev):
if dev:
C.config_folder = P.DEV_PROJECT_FOLDER / 'config'
C.log_folder = P.DEV_PROJECT_FOLDER / 'log'
else:
C.read_config(C.software_config_file)
@entrypoint.command()
@click.option('--data_folder', default=None)
@click.option('--generate_pyqt', default=True)
@click.option('-p', '--path', type=str,
default=platformdirs.user_config_path('Flandre', 'Scarlet') / 'launch.toml',
help='Path to launch.toml'
)
def gui(data_folder, generate_pyqt, path):
if (pyuic6 := shutil.which('pyuic6')) is None:
print('pyuic6 is not installed')
return
@ -125,5 +130,38 @@ def entrypoint(data_folder, generate_pyqt, dev, path):
launch_from_file(path)
@entrypoint.group()
def mi():
pass
@mi.command()
@click.argument('name')
def on(name):
if name == 'c1':
c1_connect()
if name == 'c2':
c2_connect()
@mi.command()
@click.argument('name')
def off(name):
if name == 'c1':
c1_disconnect()
if name == 'c2':
c2_disconnect()
@mi.command()
@click.argument('name')
def status(name):
if name == 'c1':
print(c1_connected())
print(c1_power())
if name == 'c2':
print(c2_connected())
if __name__ == '__main__':
entrypoint()