Wlan


Der Luaplayer bietet über den Ir-Port hinaus noch Befehle für den WLAN-Port. Somit kann man auch auf das Internet zugreifen bzw. Online arbeiten. Das kann man z.B. für ein Multiplayergame ausnutzen. Ich werde nun die einzelnen Wlan- WLAN-Befehle nacheinander auflisten und erläutern. Das ganze natürlich in der Reihenfolge, wie sie in einem Script verwendet werden muss. Zu beachten ist wiederum, dass die Befehle je nach LuaPlayer unterschiedlich lauten. Dazu hilft dann auch die jeweilige readme.txt des Luaplayers weiter.

	Wlan.init()
	

Initialisiert das WLAN-Modul. Dieser Befehl wird immer vor Gebrauch weiterer WLAN-Befehle benötigt.

	Wlan.getConnectionConfigs()
	

Ermittelt alle verfügbaren Wifi-Verbindungskonfigurationen der PSP und speichert sie in einer table ab. Bsp.:

	verbindungen = Wlan.getConnectionConfigs()
	
...das ergebnis davon ist dann:
	verbindungen = {verbindung1,verbindung2,verbindung3}
	
Und wenn man dann alle Verbindungen auf dem Bildschirm anzeigen lassen will, und zusätzlich ein Auswahlmenü dazuhaben will, der darf sich folgendes Script anschauen (ist nicht so kompliziert wie es aussieht): http://www.bumuckl.com//index.php?option=com_content&task=view&id=257&Itemid=120

	Wlan.useConnectionConfig(1)
	

Dieser Befehl sagt dem Luaplayer, welche Verbindung er benutzen soll. In diesem Fall will er Verbindung 1 benutzen. Vorweg muss ich allerdings erwähnen, dass es in Firmwares ab 3.xx eine kleinen Bug mit dem Luaplayer gibt. Wenn man Verbindung 1 benutzen will, muss man 2 eingeben. Für Verbindung 2 dann 3. Das gilt aber nur für Firmwares ab 3.xx. In früheren Firmwares funktioniert es ganz normal.

	Wlan.getIPAddress()
	

Dieser Befehl ermittelt die IP-Adresse der PSP und speichert sie in einer Zeichenkette (String). Bsp.:

	ip = Wlan.getIPAddress()
	screen:print(0,0,ip,farbe)
	
Im Falle, dass die WLAN-Verbindung fehl schlägt, kann man es alle 100 ms nochmal probieren:
	if not Wlan.getIPAddress() then
		System.sleep(100)
	end
Dieser if-Block kommt nur dann in Funktion, falls der Luaplayer die IP-adresse nicht ermitteln kann.

	Socket.connect(host, port)
	

Erstellt eine neue Basis für Datenempfang und Versand mit einer direkten Verbindung zum Host über einen bestimmten Port. Der HTTP-Port, also für das WWW, läuft normalerweise über Port 80. Bsp.:

	neuersocket = Socket.connect("http://lua.bumuckl.com", 80)
	

	neuersocket:isConnected()
	

Dieser Befehl prüft, ob der Socket verbunden ist und kann genauso wie Wlan.getIPAddress() benutzt werden. Bsp.:

	if neuersocket:isConnected() == false then
		System.sleep(100)
	end
	

	neuersocket:recv()
	
Dieser Befehl liest die erhaltenen Daten des Sockets aus und speichert sie in einer Zeichenkette. Falls keine Daten vorhanden sind, ist auch die Zeichenkette leer.Bsp.:
	data = neuersocket:recv()
Achtung: Der Socket erhält nicht von selbst Daten. Er muss erst einer Adresse mitteilen, dass er Daten empfangen kann bzw will.

	neuersocket:send(zeichenkette)
	
Dieser Befehl sendet Daten an unseren Host. Diese Daten müssen dem Host allerdings mitteilen, dass er Daten zurücksenden soll. Bsp.:
	neuersocket:send("GET /index.html HTTP/1.0\r\n")
GET /index.html teilt dem Host mit, dass wir die index.html haben wollen. Das HTTP/1.0\r\n sagt dem Host, dass wirdas HTTP-Protokoll benutzen, also WWW.

	neuersocket:close()
Dieser Befehl schliesst einen Socket bzw beendet ihn und damit auch die Verbindung zum Host.

	Wlan.term()
	
Deaktiviert das WLAN-Modul und trennt somit alle WLAN-Verbindungen.