src/eric7/MicroPython/Devices/CircuitPythonDevices.py

branch
eric7
changeset 10330
5ea038882dd6
parent 10329
a389b06170d2
child 10439
21c28b0f9e41
diff -r a389b06170d2 -r 5ea038882dd6 src/eric7/MicroPython/Devices/CircuitPythonDevices.py
--- a/src/eric7/MicroPython/Devices/CircuitPythonDevices.py	Mon Nov 20 18:26:36 2023 +0100
+++ b/src/eric7/MicroPython/Devices/CircuitPythonDevices.py	Tue Nov 21 11:42:45 2023 +0100
@@ -1956,22 +1956,35 @@
             #       calling get_time(). That causes follow-on calls to fail. We
             #       close the socket in our code as a workaround.
             command = """{0}
-def set_ntp_time(server, tz_offset):
+def set_ntp_time(server, tz_offset, timeout):
     import rtc
 
-    from adafruit_wiznet5k import adafruit_wiznet5k_ntp
+    try:
+        import adafruit_ntp
+        from adafruit_wiznet5k import adafruit_wiznet5k_socket as socket
 
-    w5x00_init()
+        w5x00_init()
 
-    server_ip = nic.pretty_ip(nic.get_host_by_name(server))
-    ntp = adafruit_wiznet5k_ntp.NTP(iface=nic, ntp_address=server_ip, utc=tz_offset)
-    rtc.RTC().datetime = ntp.get_time()
-    ntp._sock.close()
-    return True
+        socket.set_interface(nic)
+        ntp = adafruit_ntp.NTP(
+            socket, server=server, tz_offset=tz_offset, socket_timeout=timeout
+        )
+        rtc.RTC().datetime = ntp.datetime
+        return True
+    except ImportError:
+        from adafruit_wiznet5k import adafruit_wiznet5k_ntp
+
+        w5x00_init()
+
+        server_ip = nic.pretty_ip(nic.get_host_by_name(server))
+        ntp = adafruit_wiznet5k_ntp.NTP(iface=nic, ntp_address=server_ip, utc=tz_offset)
+        rtc.RTC().datetime = ntp.get_time()
+        ntp._sock.close()
+        return True
 
 try:
     print({{
-        'result': set_ntp_time({1}, {2}),
+        'result': set_ntp_time({1}, {2}, {3}),
         'error': '',
     }})
 except Exception as err:
@@ -1981,7 +1994,7 @@
     }})
 del set_ntp_time, w5x00_init
 """.format(
-                WiznetUtilities.cpyWiznetInit(), repr(server), tzOffset
+                WiznetUtilities.cpyWiznetInit(), repr(server), tzOffset, timeout
             )
 
         elif self.getDeviceData("wifi"):

eric ide

mercurial