--- 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"):