Commit 42df77bf authored by Dónal Murray's avatar Dónal Murray

Strip out unused mmap tooling

parent ce130a11
......@@ -38,13 +38,6 @@ logging.basicConfig(
level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"
)
# use /dev/shm (in memory tmpfs) to hold the data, should be stable over Flask shenanigans when restaring scripts
import mmap
import pickle
import os
mmFileName = "/dev/shm/HEVClient_lastData.mmap"
class HEVPacketError(Exception):
pass
......@@ -65,27 +58,10 @@ class HEVClient(object):
self._polling = polling # keep reading data into db
self._lock = threading.Lock() # lock for the database
self._mmFile = None
if os.access(mmFileName, os.F_OK):
self._mmFile = open(mmFileName, "a+b")
else:
self._mmFile = open(mmFileName, "x+b")
self._mmFile.write(b"0" * 10000) # ~10kb is enough I hope for one event
self._mmMap = mmap.mmap(self._mmFile.fileno(), 0) # Map to in memory object
self._mmMap.seek(0)
self._mmMap.write(
pickle.dumps("Data not yet set")
) # ensure no old or unset data in file
self._mmMap.flush()
# start polling in another thread unless told otherwise
if self._polling:
self.start_polling()
def __del__(self):
self._mmMap.close()
self._mmFile.close()
def start_polling(self):
"""start worker thread to update db in the background"""
worker = threading.Thread(target=self.start_client, daemon=True)
......@@ -114,9 +90,6 @@ class HEVClient(object):
elif payload["type"] == "DATA":
with self._lock:
self._fastdata = payload["DATA"]
self._mmMap.seek(0)
self._mmMap.write(pickle.dumps(self._fastdata))
self._mmMap.flush()
elif payload["type"] == "READBACK":
with self._lock:
self._readback = payload["READBACK"]
......@@ -245,17 +218,7 @@ class HEVClient(object):
def get_values(self) -> Dict:
# get sensor values from db
self._mmFile.seek(0)
try:
fastdata = pickle.load(self._mmFile)
except pickle.UnpicklingError as e:
logging.warning(f"Unpicking error {e}")
return None # Should return empty dict here?
if type(fastdata) is dict:
return fastdata
else:
logging.warning("Missing fastdata")
return None # Should return empty dict here?
return self._fastdata
def get_readback(self) -> Dict:
# get readback from db
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment