diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/barco@.service b/barco@.service new file mode 100644 index 0000000..2912c36 --- /dev/null +++ b/barco@.service @@ -0,0 +1,16 @@ +[Unit] +Description=Barco projector control +After=mqtt_init.service + + +[Service] +ExecStart=/usr/bin/python3 /home/rpi/barco_telnet_control.py %name +User=rpi +Group=rpi +Type=simple +Restart=always + + +[Install] +WantedBy=mqtt_init.service + diff --git a/barco_telnet/barco_telnet_control.py b/barco_telnet/barco_novi_telnet_control.py similarity index 83% rename from barco_telnet/barco_telnet_control.py rename to barco_telnet/barco_novi_telnet_control.py index b6e196f..e0fecf5 100644 --- a/barco_telnet/barco_telnet_control.py +++ b/barco_telnet/barco_novi_telnet_control.py @@ -4,6 +4,7 @@ import aiomqtt import telnetlib3 import toml from socket import gethostname +import sys mainBarcoIP = '192.168.192.12' sideBarcoIP = '192.168.192.13' @@ -83,22 +84,23 @@ async def barco_telnet_query_status(writer, select: str): # await asyncio.gather(task_status_query, task_status_reader, task_control) -async def main(): - #conf = toml.load('config.toml') +async def main(mqttIP=localhost, barcoIP=localhost, mqttPort=1883, telnetPort=3023): + conf = toml.load('config.toml') + barco # mainBarcoIP = conf[gethostname()]['projektor_glavni'] # sideBarcoIP = conf[gethostname()]['projektor_stranski'] - mainReader, mainWriter = await telnetlib3.open_connection('localhost', 3023) - sideReader, sideWriter = await telnetlib3.open_connection('localhost', 3024) - async with aiomqtt.Client('localhost', 1883) as client: + mainReader, mainWriter = await telnetlib3.open_connection(barcoIP, telnetPort) + #sideReader, sideWriter = await telnetlib3.open_connection('localhost', 3024) + async with aiomqtt.Client(mqttIP, mqttPort) as client: task_status_query_main = asyncio.create_task(barco_telnet_query_status(mainWriter, 'glavni')) task_status_reader_main = asyncio.create_task(barco_telnet_read_status(client, mainReader, 'glavni')) task_control_main = asyncio.create_task(barco_telnet_command(client, mainWriter, 'glavni')) - task_status_query_side = asyncio.create_task(barco_telnet_query_status(sideWriter, 'stranski')) - task_status_reader_side = asyncio.create_task(barco_telnet_read_status(client, sideReader, 'stranski')) - task_control_side = asyncio.create_task(barco_telnet_command(client, sideWriter, 'stranski')) + #task_status_query_side = asyncio.create_task(barco_telnet_query_status(sideWriter, 'stranski')) + #task_status_reader_side = asyncio.create_task(barco_telnet_read_status(client, sideReader, 'stranski')) + #task_control_side = asyncio.create_task(barco_telnet_command(client, sideWriter, 'stranski')) - await asyncio.gather(task_status_query_main, task_status_reader_main, task_control_main, - task_status_query_side, task_status_reader_side, task_control_side) + await asyncio.gather(task_status_query_main, task_status_reader_main, task_control_main) + #task_status_query_side, task_status_reader_side, task_control_side) ### fuj to, ne tk delat @@ -112,4 +114,7 @@ async def main(): # reader, writer = loop.run_until_complete(coro) # loop.run_until_complete(writer.protocol.waiter_closed) +#mqttIP = sys.argv[1] +#barcoIP = sys.argv[2] + asyncio.run(main()) \ No newline at end of file diff --git a/generator_wrapper.sh b/generator_wrapper.sh new file mode 100644 index 0000000..ada62ff --- /dev/null +++ b/generator_wrapper.sh @@ -0,0 +1,4 @@ +#!/bin/sh + + +poetry run python3 ~/unit_generator.py \ No newline at end of file diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..fa49e9e --- /dev/null +++ b/install.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +poetry install +cp ./generator_wrapper.sh /usr/lib/systemd/systemd-generators + diff --git a/unit_generator.py b/unit_generator.py new file mode 100755 index 0000000..224da3e --- /dev/null +++ b/unit_generator.py @@ -0,0 +1,17 @@ +#!/bin/python3 + +import toml +import os + +conf: dict +conf = toml.load('./config.toml') +barcos: dict +barcos = conf.get('barco', None) + +noviBarcos = barcos.get('novi', None) +stariBarcos = barcos.get('stari', None) + +if noviBarcos: + for k,v in noviBarcos.items(): + print(f'barco_novi@{k}.service') #to rabjo bit symlinki + os.symlink('./barco@.service', f'./barco@{k}.service') \ No newline at end of file