class WINC – WiFi-lisäkortin ajuri¶
WINC-luokka ohjaa Atmel WINC1500 802.11 b/g/n -WiFi-moduulia OpenMV WiFi -lisäkortilla. Saatavilla OpenMV Cam M4:llä, M7:llä, H7:llä, H7 Plus:lla ja Pure Thermalilla (STM32-kortit, joille WiFi-lisäkortti suunniteltiin). Korteilla, joissa on sisäänrakennettu WiFi (OpenMV Cam N6, OpenMV Cam RT1062, Arduino Giga), käytä sen sijaan luokkaa WLAN.
Esimerkki – yhdistä tukiasemaan ja tulosta osoite:
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())
Esimerkki – nosta avoin tukiasema ja odota asiakasta:
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))
Konstruktorit¶
- class network.WINC(mode: int = WINC.MODE_STA) None¶
Luo
WINC-ajuriolio ja nostaa WiFi-lisäkortin ylös.modevalitsee toimintatilan, jossa moduuli käynnistyy:WINC.MODE_STA– asema / asiakas. Yhdistä tukiasemaan metodillaconnect(). Tämä on oletus.WINC.MODE_AP– tukiasema. Määritä AP metodillastart_ap(), ja hyväksy sitten asiakasyhteyksiä.WINC.MODE_P2P– WiFi Direct.WINC.MODE_BSP– nostaa vain BSP:n ylös (ei radiota).WINC.MODE_FIRMWARE– laiteohjelmiston päivitystila; vaaditaan metodeillefw_dump()jafw_update().
Muista
AP-tilassa WINC1500:lla on laitteistorajoitteita:
Vain yksi asiakas voi yhdistää kerrallaan.
Vain
OPEN- tai WEP-suojaus on tuettu.WiFi-moduulin laiteohjelmiston vika aiheuttaa sen, että kaikki sidotut soketit lakkaavat toimimasta, kun asiakas katkaisee yhteyden. Aseta palvelinsoketille aikakatkaisu, jotta se nostaa poikkeuksen, jota voit käyttää sen avaamiseen uudelleen.
Metodit¶
- active(is_active: bool | None = None) bool¶
Käynnistää tai sammuttaa WiFi-lisäkortin.
Ilman argumenttia palauttaa nykyisen tilan –
True, kun lisäkortti on alustettu ja radio on ylhäällä, muutenFalse.active(True)suorittaa WINC1500:n laiteohjelmiston kättelyn SPI:n yli ja nostaa radion ylös määritetyssämode-tilassa. Se on tyhjätoiminto, jos rajapinta on jo aktiivinen.connect()kutsuu tätä automaattisesti, jos sitä ei ole vielä kutsuttu; minkä tahansa muun metodin (scan(),rssi(),netinfo(), …) osalta sinun on kutsuttavaactive(True)ensin.active(False)sammuttaa radion takaisin (WINC putoaa pelkkään BSP-tilaan) ja vapauttaa SPI-nastat.
- connect(ssid: str, key: str | None = None, *, security: int = WINC.WPA_PSK, channel: int = 1) None¶
Liittyy WiFi-verkkoon
ssidkäyttäen salasanaakey, suojaustilaasecurity(yksi seuraavista:OPEN,WPA_PSKtai 802.1X-vakio) radiokanavallachannel.securityjachannelannetaan vain avainsanoina.Yhdistämisen jälkeen käytä
socket-moduulia avataksesi TCP/UDP-portteja.Tämä metodi estyy, kunnes liittyminen valmistuu tai epäonnistuu.
- config(ssid: str, key: str | None = None, *, security: int = WINC.WPA_PSK, channel: int = 1) None¶
Aliasnimi metodille
connect(). Tarjottu yhteensopivuuden vuoksi koodille, joka kutsuuconfig-metodia muillanetwork-rajapinnoilla.
- start_ap(ssid: str, key: str | None = None, *, security: int = WINC.OPEN, channel: int = 1) None¶
Aliasnimi metodille
connect(), jota käytetään olion luomisen jälkeen argumentillamode=MODE_APtukiaseman määrittämiseen ja käynnistämiseen. AP tukee vainOPEN- tai WEP-suojausta; jos käytetään WEP:tä,keyvaaditaan.
- disconnect() None¶
STA-tilassa irrottaa yhteyden tällä hetkellä liitettyyn tukiasemaan. Lisäkortti pysyy aktiivisena; kutsu
connect()liittyäksesi uudelleen. Tyhjätoiminto, kun yhteyttä ei ole tällä hetkellä.
- isconnected() bool¶
STA-tilassa palauttaa
True, kun on liitytty tukiasemaan ja IPv4-osoite on saatu (DHCP:n taiifconfig()-metodin kautta). PalauttaaFalse, kun ollaan vielä todentamis- / liittymis- / DHCP-vaiheessa.
- connected_sta() List[str]¶
AP-tilassa palauttaa listan, joka sisältää tällä hetkellä yhdistetyn asiakkaan IP-osoitteen (tai tyhjän listan, jos asiakasta ei ole yhdistetty).
- wait_for_sta(timeout: int | None) List[str]¶
AP-tilassa estyy, kunnes asiakas yhdistää, ja palauttaa listan, joka sisältää asiakkaan IP-osoitteen.
timeouton enimmäisodotusaika millisekunteina; annaNoneodottaaksesi loputtomiin.
- ifconfig(config: Tuple[str, str, str, str] | None = None) Tuple[str, str, str, str]¶
Hakee tai asettaa IPv4-rajapinnan parametrit. 4-monikko sisältää
(ip, subnet, gateway, dns)pisteneliömuotoisina merkkijonoina.Kutsuttuna ilman argumenttia: palauttaa nykyisen kokoonpanon.
Kutsuttuna 4-monikolla: asettaa staattisen IP-kokoonpanon DHCP:llä hankitun tilalle.
Esimerkki – kiinnitä staattinen IP ennen yhdistämistä:
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)
Muista
WINCei toteuta nykyaikaistaAbstractNIC.ipconfig()-rajapintaa; käytä tässäifconfig()-metodia.
- netinfo() Tuple[int, int, str, str, str]¶
Palauttaa 5-monikon, joka kuvaa nykyistä liittymää:
[0]RSSI kokonaislukuna (dBm).[1]Suojaustila – yksi suojausvakioista.[2]SSID-merkkijono.[3]BSSID muodossa"XX:XX:XX:XX:XX:XX"MAC-merkkijonona.[4]IPv4-osoite pisteneliömuotoisena merkkijonona.
- scan() List[Tuple[str, str, int, int, int, int]]¶
Skannaa läheisiä tukiasemia. Palauttaa listan 6-monikoista:
[0]SSID-merkkijono.[1]BSSID muodossa"XX:XX:XX:XX:XX:XX"MAC-merkkijonona.[2]Kanavanumero.[3]RSSI yksikössä dBm.[4]Suojaustila – yksi suojausvakioista.[5]Varattu (aina1).
Voidaan kutsua ilman, että ensin liitytään verkkoon.
- rssi() int¶
Palauttaa tällä hetkellä liitetyn tukiaseman RSSI:n yksikössä dBm. Karkeasti:
-30on erinomainen,-67on OK suoratoistoon,-80on rajatapaus,-90ja sitä alempi on käyttökelvoton. Merkityksellinen vain STA-tilassa, kunisconnected()onTrue.
- fw_version() Tuple[int, int, int, int, int, int, int]¶
Palauttaa 7-monikon, joka kuvaa WINC1500:n laiteohjelmiston ja ajurin versiot:
[0]Laiteohjelmiston pääversio.[1]Laiteohjelmiston aliversio.[2]Laiteohjelmiston korjausversio.[3]Ajurin pääversio.[4]Ajurin aliversio.[5]Ajurin korjausversio.[6]Sirun laitteistoversio.
- fw_dump(path: str) None¶
Lukee WINC1500:n sisäisen flash-muistin ja kirjoittaa tuloksena syntyvän laiteohjelmistovedoksen tiedostoon polussa
pathOpenMV:n tiedostojärjestelmässä. Käytä tätä varmuuskopioidaksesi tällä hetkellä asennetun vedoksen ennen metodinfw_update()kutsumista.Vaatii, että moduuli on luotu argumentilla
mode=MODE_FIRMWARE.
- fw_update(path: str) None¶
Tyhjentää WINC1500:n sisäisen flash-muistin ja ohjelmoi siihen binäärivedoksen polussa
path. Vedoksen on vastattava OpenMV-laiteohjelmiston odottamaa rakennetta (tyypillisesti Atmelin / Microchipin toimittama WINC SDK:n mukana).Kutsu estyy useita sekunteja, kun flash-muistia ohjelmoidaan ja varmennetaan. Kytke OpenMV Cam:in virta uudelleen päälle kutsun palattua, jotta WINC1500 käynnistyy uudesta vedoksesta.
Vaatii, että moduuli on luotu argumentilla
mode=MODE_FIRMWARE.
Vakiot¶
- OPEN: int¶
Suojausarvo salaamattomalle verkolle. Anna metodin
connect()/start_ap()security-argumentille.
Muista
Olemassa on myös WPA/WPA2 Enterprise (802.1X) -suojausarvo. Laiteohjelmisto tarjoaa sen nimellä
802_1X, joka ei ole kelvollinen Python-tunniste – käytä sitä funktiollagetattr(network.WINC, "802_1X").- MODE_BSP: int¶
Alustaa vain WINC-kortin tukipaketin (BSP) – radiota ei nosteta ylös. Käytetään laiteohjelmiston päivitysvuossa.
- MODE_FIRMWARE: int¶
Laiteohjelmiston päivitystila. Vaaditaan metodeille
fw_dump()jafw_update().