Initial leyk remote client

This commit is contained in:
Dirk Alders 2020-01-26 21:50:14 +01:00
parent 374f09a88a
commit 933e90e189
11 changed files with 119 additions and 0 deletions

4
.gitignore vendored
View File

@ -1,3 +1,7 @@
config.py
*.warn
*.log
# ---> Python # ---> Python
# Byte-compiled / optimized / DLL files # Byte-compiled / optimized / DLL files
__pycache__/ __pycache__/

18
.gitmodules vendored Normal file
View File

@ -0,0 +1,18 @@
[submodule "protocol"]
path = protocol
url = https://git.mount-mockery.de/application/leyk_protocol
[submodule "report"]
path = report
url = https://git.mount-mockery.de/pylib/report.git
[submodule "socket_protocol"]
path = socket_protocol
url = https://git.mount-mockery.de/pylib/socket_protocol.git
[submodule "stringtools"]
path = stringtools
url = https://git.mount-mockery.de/pylib/stringtools.git
[submodule "task"]
path = task
url = https://git.mount-mockery.de/pylib/task.git
[submodule "tcp_socket"]
path = tcp_socket
url = https://git.mount-mockery.de/pylib/tcp_socket.git

17
.project Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>leyk</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.python.pydev.PyDevBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.python.pydev.pythonNature</nature>
</natures>
</projectDescription>

8
.pydevproject Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?eclipse-pydev version="1.0"?><pydev_project>
<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
<path>/${PROJECT_DIR_NAME}</path>
</pydev_pathproperty>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python interpreter</pydev_property>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
</pydev_project>

1
protocol Submodule

@ -0,0 +1 @@
Subproject commit 6ac1b584fb53aeb58c1b9809fff306a56dd32400

1
report Submodule

@ -0,0 +1 @@
Subproject commit 98fea3a4d45ba906d08a8ebc90525fb3592f06be

1
socket_protocol Submodule

@ -0,0 +1 @@
Subproject commit 127ef51719f2fdbc6699f7e0751f9d92f6773f0f

1
stringtools Submodule

@ -0,0 +1 @@
Subproject commit b86248c1a3a3456e489e007857271106e1ecf090

1
task Submodule

@ -0,0 +1 @@
Subproject commit d3fbc5934051ab165723ca37e8f02596329f174a

66
tcp_client.py Normal file
View File

@ -0,0 +1,66 @@
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import config
import os
import protocol
import report
import sys
import tcp_socket
def help_msg():
print(""""Possible commands are:
* q[uit]
* auto[matic]
* man[ual]
* mode
* state
* get [all,bakehose,bakery,mill,reesehouse,ploenlein]
* set [all,bakehose,bakery,mill,reesehouse,ploenlein] [on,off]""")
if __name__ == '__main__':
report.appLoggingConfigure(os.path.dirname(__file__), 'logfile', config.loggers)
c = tcp_socket.tcp_client_stp(config.server_ip, config.server_port)
prot = protocol.my_client_protocol(c, secret=config.secret)
target_dict = {
'bakehouse': [prot.DID_BAKE_HOUSE, ],
'bakery': [prot.DID_BAKERY, ],
'mill': [prot.DID_MILL, ],
'ploenlein': [prot.DID_PLOENLEIN, ],
'reesehouse': [prot.DID_REESE_HOUSE, ],
'all': [prot.DID_BAKE_HOUSE, prot.DID_BAKERY, prot.DID_MILL, prot.DID_PLOENLEIN, prot.DID_REESE_HOUSE]
}
if prot.authentificate():
help_msg()
cmd = None
while cmd not in ["q", "quit"]:
cmd = sys.stdin.readline()
cmd = cmd.lower().strip('\n')
if cmd == 'help':
help_msg()
elif cmd in ["auto", "automatic"]:
prot.send(prot.SID_EXECUTE_REQUEST, prot.DID_MODE, 'automatic')
elif cmd in ["man", "manual"]:
prot.send(prot.SID_EXECUTE_REQUEST, prot.DID_MODE, 'manual')
elif cmd == "mode":
prot.send(prot.SID_READ_REQUEST, prot.DID_MODE, None)
elif cmd == "state":
prot.send(prot.SID_READ_REQUEST, prot.DID_STATE, None)
elif cmd.startswith('get '):
target = target_dict.get(cmd.split(' ')[1])
if target is not None:
for t in target:
prot.send(prot.SID_READ_REQUEST, t, None)
elif cmd.startswith('set '):
target = target_dict.get(cmd.split(' ')[1])
try:
state = {'on': True, 'off': False}.get(cmd.split(' ')[2])
except IndexError:
state = None
if target is not None and state is not None:
for t in target:
prot.send(prot.SID_EXECUTE_REQUEST, t, state)
c.close()

1
tcp_socket Submodule

@ -0,0 +1 @@
Subproject commit 62f13e2d878b09b81d094c2f77dbd830d72be2c7