From f4ed8aa368cc7ac2e7cf9346619dcd0581fb95b2 Mon Sep 17 00:00:00 2001
From: Valentin Ochs
Date: Wed, 11 Aug 2021 07:19:37 +0200
Subject: [PATCH 1/3] Move source file
---
door.py => door_pi_control/__init__.py | 69 ++++++++++++++------------
1 file changed, 36 insertions(+), 33 deletions(-)
rename door.py => door_pi_control/__init__.py (91%)
diff --git a/door.py b/door_pi_control/__init__.py
similarity index 91%
rename from door.py
rename to door_pi_control/__init__.py
index b33478b..c720e9c 100644
--- a/door.py
+++ b/door_pi_control/__init__.py
@@ -12,19 +12,6 @@ OPEN_THRESHOLD = 190
CLOSED_THRESHOLD = 160
CLOSED_WANT = 40
-parser = argparse.ArgumentParser()
-parser.add_argument("--serial_port", default="/dev/serial/by-id/usb-Imaginaerraum.de_DoorControl_43363220195053573A002C0-if01")
-parser.add_argument("--nfc_fifo", default="/tmp/nfc_fifo")
-parser.add_argument("--control_socket", default="/tmp/nfc.sock")
-parser.add_argument("--valid_tokens", default="/etc/door_tokens")
-parser.add_argument("--log_file", default="/tmp/nfc.log")
-parser.add_argument("--state_timeout", type=float, default=10)
-parser.add_argument("--state_timeout_speed", type=float, default=3)
-parser.add_argument("--repeat_time", type=float, default=5)
-parser.add_argument("--mqtt_host", default="10.10.21.2")
-
-config = parser.parse_args()
-
def timestamp():
return datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
@@ -433,26 +420,42 @@ class DoorControl:
DoorControl.action_names[self.action()],
(datetime.datetime.now() - self.start_time).total_seconds()))
+def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--serial_port", default="/dev/serial/by-id/usb-Imaginaerraum.de_DoorControl_43363220195053573A002C0-if01")
+ parser.add_argument("--nfc_fifo", default="/tmp/nfc_fifo")
+ parser.add_argument("--control_socket", default="/tmp/nfc.sock")
+ parser.add_argument("--valid_tokens", default="/etc/door_tokens")
+ parser.add_argument("--log_file", default="/tmp/nfc.log")
+ parser.add_argument("--state_timeout", type=float, default=10)
+ parser.add_argument("--state_timeout_speed", type=float, default=3)
+ parser.add_argument("--repeat_time", type=float, default=5)
+ parser.add_argument("--mqtt_host", default="10.10.21.2")
+
+ config = parser.parse_args()
-dc = DoorControl(config)
+ dc = DoorControl(config)
-buffers = {}
-while True:
- readable = select.select([ dc.serial_port.fileno(), dc.nfc_fifo, dc.control_socket ] + dc.comm_channels, [], [], 1 / UPDATE_RATE)[0]
+ buffers = {}
+ while True:
+ readable = select.select([ dc.serial_port.fileno(), dc.nfc_fifo, dc.control_socket ] + dc.comm_channels, [], [], 1 / UPDATE_RATE)[0]
+
+ for c in readable:
+ if c == dc.serial_port.fileno():
+ dc.handle_door_line()
+ elif c == dc.nfc_fifo:
+ dc.handle_nfc_token()
+ elif c == dc.control_socket:
+ dc.logger.info("Got connection")
+ sock = dc.control_socket.accept()[0]
+ buffers[sock] = dc.LineBuffer(sock, dc.handle_cmd)
+ dc.comm_channels += [sock]
+ else:
+ if not buffers[c].update():
+ dc.logger.info("Lost connection")
+ del buffers[c]
+ dc.comm_channels.remove(c)
+ dc.handle_door_state()
- for c in readable:
- if c == dc.serial_port.fileno():
- dc.handle_door_line()
- elif c == dc.nfc_fifo:
- dc.handle_nfc_token()
- elif c == dc.control_socket:
- dc.logger.info("Got connection")
- sock = dc.control_socket.accept()[0]
- buffers[sock] = dc.LineBuffer(sock, dc.handle_cmd)
- dc.comm_channels += [sock]
- else:
- if not buffers[c].update():
- dc.logger.info("Lost connection")
- del buffers[c]
- dc.comm_channels.remove(c)
- dc.handle_door_state()
+if __name__ == '__main__':
+ main()
From 0f4060c99d22f3c81b798c10986b0380296ba37c Mon Sep 17 00:00:00 2001
From: Valentin Ochs
Date: Wed, 11 Aug 2021 07:29:19 +0200
Subject: [PATCH 2/3] Clean up imports
---
door_pi_control/__init__.py | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/door_pi_control/__init__.py b/door_pi_control/__init__.py
index c720e9c..0437767 100644
--- a/door_pi_control/__init__.py
+++ b/door_pi_control/__init__.py
@@ -1,8 +1,13 @@
#!/usr/bin/python
-import os, serial, socket, select, datetime
-import paho.mqtt.client as mqcl
import argparse
+import datetime
import logging
+import os
+import select
+import socket
+
+import paho.mqtt.client as mqcl
+import serial
UPDATE_RATE = 2
MAX_UPDATE_RATE = 20
From 41e6f786f090f76f88b340a58b8c661a7ddcc7a4 Mon Sep 17 00:00:00 2001
From: Valentin Ochs
Date: Wed, 11 Aug 2021 07:37:06 +0200
Subject: [PATCH 3/3] Initial setuptools config
---
pyproject.toml | 3 +++
setup.cfg | 13 +++++++++++++
2 files changed, 16 insertions(+)
create mode 100644 pyproject.toml
create mode 100644 setup.cfg
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..9787c3b
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["setuptools", "wheel"]
+build-backend = "setuptools.build_meta"
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..b2326b8
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,13 @@
+[metadata]
+name = door_pi_control
+version = 0.0.1
+
+[options]
+packages = door_pi_control
+install_requires =
+ paho-mqtt
+ serial
+
+[options.entry_points]
+console_scripts =
+ door.py = door_pi_control:main