class WINC – WiFi shield illesztőprogram¶
A WINC osztály az OpenMV WiFi Shieldön lévő Atmel WINC1500 802.11 b/g/n WiFi modult vezérli. Elérhető az OpenMV Cam M4, M7, H7, H7 Plus és Pure Thermal kártyákon (azok az STM32 kártyák, amelyekhez a WiFi shieldet tervezték). A beépített WiFi-vel rendelkező kártyákhoz (OpenMV Cam N6, OpenMV Cam RT1062, Arduino Giga) használd helyette a WLAN osztályt.
Példa – csatlakozás egy hozzáférési ponthoz és a cím kiírása:
import network
wlan = network.WINC()
wlan.connect("SSID", "KEY", security=network.WINC.WPA_PSK)
print("status: ", "connected" if wlan.isconnected() else "off")
print("rssi: ", wlan.rssi(), "dBm")
print("interface: ", wlan.ifconfig())
print("netinfo: ", wlan.netinfo())
Példa – egy nyitott hozzáférési pont felhozása és várakozás egy kliensre:
import network
wlan = network.WINC(mode=network.WINC.MODE_AP)
wlan.start_ap("OpenMV-Cam", security=network.WINC.OPEN, channel=6)
print("waiting for a station to associate...")
print(wlan.wait_for_sta(timeout=None))
Konstruktorok¶
- class network.WINC(mode: int = WINC.MODE_STA) None¶
Egy
WINCillesztőprogram-objektum létrehozása és a WiFi shield felhozása.A
modeválasztja ki azt az üzemmódot, amelyben a modul elindul:WINC.MODE_STA– állomás / kliens. Csatlakozz egy hozzáférési ponthoz aconnect()metódussal. Ez az alapértelmezett.WINC.MODE_AP– hozzáférési pont. Konfiguráld az AP-t astart_ap()metódussal, majd fogadj klienskapcsolatokat.WINC.MODE_P2P– WiFi Direct.WINC.MODE_BSP– csak a BSP felhozása (rádió nélkül).WINC.MODE_FIRMWARE– firmware-frissítési mód; azfw_dump()és azfw_update()metódusokhoz szükséges.
Megjegyzés
AP módban a WINC1500-nak hardveres korlátai vannak:
Egyszerre csak egy kliens csatlakozhat.
Csak az
OPENvagy a WEP biztonsági mód támogatott.A WiFi-modul firmware-ének egy hibája miatt a kötött socketek leállnak, amikor a kliens lecsatlakozik. Állíts be időtúllépést a kiszolgáló socketjén, hogy az olyan kivételt dobjon, amelyet a socket újranyitására használhatsz.
Metódusok¶
- active(is_active: bool | None = None) bool¶
A WiFi shield be- vagy kikapcsolása.
Argumentum nélkül visszaadja az aktuális állapotot –
True, amíg a shield inicializált és a rádió fent van, egyébkéntFalse.Az
active(True)elvégzi a WINC1500 firmware-kézfogását SPI-n keresztül, és a rádiót a konfiguráltmodeüzemmódban hozza fel. Üres művelet, ha az interfész már aktív. Aconnect()automatikusan meghívja ezt, ha még nem hívták meg; bármely más metódushoz (scan(),rssi(),netinfo(), …) először azactive(True)metódust kell meghívnod.Az
active(False)visszakapcsolja a rádiót (a WINC csak BSP módba esik vissza), és felszabadítja az SPI lábakat.
- connect(ssid: str, key: str | None = None, *, security: int = WINC.WPA_PSK, channel: int = 1) None¶
Társulás a
ssidWiFi-hálózathoz akeyjelszó, asecuritybiztonsági mód (azOPEN, aWPA_PSKvagy a 802.1X konstans egyike) használatával achannelrádiócsatornán. Asecurityés achannelcsak kulcsszavas.Csatlakozás után használd a
socketmodult a TCP/UDP portok megnyitásához.Ez a metódus blokkol, amíg a társulás be nem fejeződik vagy meg nem hiúsul.
- config(ssid: str, key: str | None = None, *, security: int = WINC.WPA_PSK, channel: int = 1) None¶
A
connect()aliasa. A másnetworkinterfészekenconfigmetódust hívó kóddal való kompatibilitás miatt biztosítjuk.
- start_ap(ssid: str, key: str | None = None, *, security: int = WINC.OPEN, channel: int = 1) None¶
A
connect()aliasa, amelyet az objektummode=MODE_APparaméterrel való létrehozása után használunk a hozzáférési pont konfigurálásához és elindításához. Az AP csak azOPENvagy a WEP biztonsági módot támogatja; ha WEP-et használsz, akeykötelező.
- disconnect() None¶
STA módban szétkapcsolódik a jelenleg társult hozzáférési ponttól. A shield aktív marad; hívd meg a
connect()metódust az újratársuláshoz. Üres művelet, ha jelenleg nincs társulás.
- isconnected() bool¶
STA módban
Trueértéket ad vissza, amikor egy hozzáférési ponthoz társult és IPv4-címet kapott (DHCP-n vagy azifconfig()metóduson keresztül).Falseértéket ad vissza, amíg még a hitelesítési / társulási / DHCP fázisban van.
- connected_sta() List[str]¶
AP módban visszaad egy listát, amely a jelenleg csatlakozott kliens IP-címét tartalmazza (vagy egy üres listát, ha nincs csatlakozott kliens).
- wait_for_sta(timeout: int | None) List[str]¶
AP módban blokkol, amíg egy kliens nem csatlakozik, majd visszaad egy listát, amely a kliens IP-címét tartalmazza. A
timeouta maximális várakozás ezredmásodpercben; add át aNoneértéket a határozatlan ideig tartó várakozáshoz.
- ifconfig(config: Tuple[str, str, str, str] | None = None) Tuple[str, str, str, str]¶
Az IPv4 interfészparaméterek lekérése vagy beállítása. A négyelemű rendezett n-es az
(ip, subnet, gateway, dns)értékeket tartalmazza pontozott négyesként.Argumentum nélkül hívva: visszaadja az aktuális konfigurációt.
Négyelemű rendezett n-essel hívva: statikus IP-konfigurációt állít be a DHCP-vel megszerzett helyett.
Példa – statikus IP rögzítése csatlakozás előtt:
wlan = network.WINC() wlan.ifconfig(("192.168.1.100", "255.255.255.0", "192.168.1.1", "192.168.1.1")) wlan.connect(SSID, key=KEY, security=network.WINC.WPA_PSK)
Megjegyzés
A
WINCnem valósítja meg a modernAbstractNIC.ipconfig()API-t; itt azifconfig()metódust használd.
- netinfo() Tuple[int, int, str, str, str]¶
Visszaad egy ötelemű rendezett n-est, amely az aktuális társulást írja le:
[0]RSSI egészként (dBm).[1]Biztonsági mód – a biztonsági konstansok egyike.[2]SSID karakterlánc.[3]BSSID egy"XX:XX:XX:XX:XX:XX"MAC-karakterláncként.[4]IPv4-cím pontozott négyesként.
- scan() List[Tuple[str, str, int, int, int, int]]¶
Közeli hozzáférési pontok keresése. Hatelemű rendezett n-esek listáját adja vissza:
[0]SSID karakterlánc.[1]BSSID egy"XX:XX:XX:XX:XX:XX"MAC-karakterláncként.[2]Csatornaszám.[3]RSSI dBm-ben.[4]Biztonsági mód – a biztonsági konstansok egyike.[5]Fenntartva (mindig1).
Meghívható anélkül, hogy előtte egy hálózathoz társulnánk.
- rssi() int¶
Visszaadja a jelenleg társult hozzáférési pont RSSI-jét dBm-ben. Nagyjából: a
-30kiváló, a-67megfelelő a folyamatos átvitelhez, a-80éppen elfogadható, a-90és az alatti használhatatlan. Csak STA módban értelmes, amíg azisconnected()értékeTrue.
- fw_version() Tuple[int, int, int, int, int, int, int]¶
Visszaad egy hételemű rendezett n-est, amely a WINC1500 firmware- és illesztőprogram-verzióit írja le:
[0]Firmware főverzió.[1]Firmware alverzió.[2]Firmware javítás.[3]Illesztőprogram főverzió.[4]Illesztőprogram alverzió.[5]Illesztőprogram javítás.[6]Csip hardveres revíziója.
- fw_dump(path: str) None¶
Beolvassa a WINC1500 belső flash memóriáját, és a kapott firmware-képet a
pathelérési úton lévő fájlba írja az OpenMV fájlrendszerén. Ezzel készíthetsz biztonsági mentést a jelenleg telepített képről azfw_update()hívása előtt.Megköveteli, hogy a modul
mode=MODE_FIRMWAREparaméterrel legyen létrehozva.
- fw_update(path: str) None¶
Törli a WINC1500 belső flash memóriáját, és a
pathelérési úton lévő bináris képpel programozza fel. A képnek meg kell felelnie az OpenMV firmware által elvárt elrendezésnek (általában az Atmel / Microchip biztosítja a WINC SDK-val).A hívás több másodpercig blokkol, amíg a flash memóriát programozza és ellenőrzi. A hívás visszatérése után indítsd újra az OpenMV Cam tápellátását, hogy a WINC1500 az új képről induljon.
Megköveteli, hogy a modul
mode=MODE_FIRMWAREparaméterrel legyen létrehozva.
Konstansok¶
- OPEN: int¶
Biztonsági érték titkosítatlan hálózathoz. Add át a
connect()/start_ap()securityargumentumának.
Megjegyzés
Létezik egy WPA/WPA2 Enterprise (802.1X) biztonsági érték is. A firmware
802_1Xnéven teszi elérhetővé, ami nem érvényes Python azonosító – agetattr(network.WINC, "802_1X")hívással férhetsz hozzá.- MODE_STA: int¶
Állomás mód – csatlakozás egy hozzáférési ponthoz kliensként. Az alapértelmezett konstruktormód.
- MODE_BSP: int¶
Csak a WINC board-support package inicializálása – a rádió nem kerül felhozásra. A firmware-frissítési folyamat használja.
- MODE_FIRMWARE: int¶
Firmware-frissítési mód. Az
fw_dump()és azfw_update()metódusokhoz szükséges.