Fix SVGHMI exception when running on Windows, missing ENODATA in errno.
authorEdouard Tisserant <edouard.tisserant@gmail.com>
Thu, 09 Sep 2021 21:52:27 +0200
changeset 3346 3b920d1fe81b
parent 3345 574782d2be1d
child 3347 f31f062703a2
Fix SVGHMI exception when running on Windows, missing ENODATA in errno.
svghmi/svghmi_server.py
--- a/svghmi/svghmi_server.py	Tue Sep 07 09:08:40 2021 +0200
+++ b/svghmi/svghmi_server.py	Thu Sep 09 21:52:27 2021 +0200
@@ -241,6 +241,9 @@
 svghmi_servers = {}
 svghmi_send_thread = None
 
+# python's errno on windows seems to have no ENODATA
+ENODATA = errno.ENODATA if hasattr(errno,"ENODATA") else None
+
 def SendThreadProc():
     global svghmi_session_manager
     size = ctypes.c_uint32()
@@ -255,7 +258,7 @@
             if res == 0:
                 svghmi_session.sendMessage(
                     ctypes.string_at(ptr.value,size.value))
-            elif res == errno.ENODATA:
+            elif res == ENODATA:
                 # this happens when there is no data after wakeup
                 # because of hmi data refresh period longer than
                 # PLC common ticktime