src/eric7/MicroPython/Devices/MCUScripts/picoWiznetConnectCpy7.py

Tue, 26 Nov 2024 19:46:36 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 26 Nov 2024 19:46:36 +0100
branch
eric7
changeset 11055
e68bcb2b5ec1
parent 10153
ffe7432f716b
permissions
-rw-r--r--

Improved the CircuitPython device class and fixed som issues in the MPy REPL and main widget.

9885
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 try:
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2 import wiznet_config
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 def connect_lan():
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5 from adafruit_wiznet5k import adafruit_wiznet5k
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 global nic
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9 try:
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 ifconfig = wiznet_config.ifconfig
10153
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9885
diff changeset
11 hostname = wiznet_config.hostname
9885
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 except AttributeError:
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 print("The network configuration in 'wiznet_config.py' is invalid.")
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 return None
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 try:
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 nic
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 except NameError:
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 nic = None
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 if nic is None:
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 import board
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 import busio
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 import digitalio
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 from adafruit_wiznet5k.adafruit_wiznet5k import WIZNET5K
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 SPI0_RX = board.GP16
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 SPI0_CSn = board.GP17
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 SPI0_SCK = board.GP18
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 SPI0_TX = board.GP19
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 W5x00_RSTn = board.GP20
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 ethernetRst = digitalio.DigitalInOut(W5x00_RSTn)
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 ethernetRst.direction = digitalio.Direction.OUTPUT
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 cs = digitalio.DigitalInOut(SPI0_CSn)
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 spi = busio.SPI(SPI0_SCK, MOSI=SPI0_TX, MISO=SPI0_RX)
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 nic = WIZNET5K(spi, cs, reset=ethernetRst, is_dhcp=False)
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 nic.mac_address = adafruit_wiznet5k._DEFAULT_MAC
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 if ifconfig == 'dhcp':
10153
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9885
diff changeset
43 nic.set_dhcp(hostname=hostname)
9885
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 else:
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 nic.ifconfig = (
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 nic.unpretty_ip(ifconfig[0]),
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 nic.unpretty_ip(ifconfig[1]),
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 nic.unpretty_ip(ifconfig[2]),
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 tuple(int(a) for a in ifconfig[3].split('.')),
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 )
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 return nic
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 except ImportError:
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 print(
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 "The network configuration is kept in 'wiznet_config.py'. Please add it there."
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 )
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 def connect_lan():
05cbf70e8f10 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 return None

eric ide

mercurial