Seite 1 von 1
Fragen zur Spinn-Syntax
Verfasst: Mi 13. Jun 2012, 19:31
von PIC18F2550
1.
Was neues gefunden ---> [3]
Bedeutet das das dieses Codesegmend 3x eingebunden wird und trennt BST dann auch die Variabeln?
2.
Code: Alles auswählen
\sock[0].listen(80, @tcp_webrx1, rxlen, @tcp_webtx1, txlen)
Für was steht "\" ?
Re: Fragen zur Spinn-Syntax
Verfasst: Mi 13. Jun 2012, 21:48
von drohne235
Für was steht "\" ?
Steht für den Austrittspunkt bei einem Abort-Kommando.
Re: Fragen zur Spinn-Syntax
Verfasst: Do 14. Jun 2012, 00:13
von PIC18F2550
So langsam verstehe ich
"\" ist ein Merker und bei einem abort springt er über alle zwischenzeitlich Routinen bis zum "\" hinauf.
PUB sub
\sub1
... <----- Wiedereintritt nach Rücksprung
PUB sub1
sub2
PUB sub2
aport ---> Rücksprung
Re: Fragen zur Spinn-Syntax
Verfasst: Do 14. Jun 2012, 01:39
von kuroneko
PIC18F2550 hat geschrieben:Was neues gefunden ---> [3]
Bedeutet das das dieses Codesegmend 3x eingebunden wird und trennt BST dann auch die Variabeln?
Eingebunden wird es nur einmal aber Du bekommst drei Instanzen des Treibers (sock[0], sock[1], sock[2]). Ist nichts anderes als
Code: Alles auswählen
sock_1 : "api_telnet_serial"
sock_2 : "api_telnet_serial"
sock_3 : "api_telnet_serial"
Letzteres macht sich u.U. nicht so gut da Du Objekte immer mit Namen ansprechen musst, die erste Variante braucht nur den Index, e.g.
Code: Alles auswählen
sock_1.stop
sock_2.stop
sock_3.stop
' vs
repeat n from 0 to 2
sock[n].stop
Re: Fragen zur Spinn-Syntax
Verfasst: Do 14. Jun 2012, 08:35
von PIC18F2550
kuroneko hat geschrieben:Eingebunden wird es nur einmal aber Du bekommst drei Instanzen des Treibers (sock[0], sock[1], sock[2]). Ist nichts anderes als
Code:
sock_1 : "api_telnet_serial"
sock_2 : "api_telnet_serial"
sock_3 : "api_telnet_serial"
Das mit den Instanzen finde ich gut.
Was mir aber bei meinem QadrocopterProjekt auf gefallen ist das er die Variabeln von
Code: Alles auswählen
sock_1 : "api_telnet_serial"
sock_2 : "api_telnet_serial"
sock_3 : "api_telnet_serial"
durch die innere optimierung zusammengeworfen hatt.
Wenn z.B.: in sock_1 eine Variabel V1 im VAR Bereich definiert wurde so griffen sock_2 und sock_3 mit auf diese zu.
Obwohl sie ihre eigene V1 definieren.
Das [3] Trennt jetzt sauber auch diese Variaveln.
Wie sieht das mit dem PASM Code aus werden hier auch Instanzen gebildet?
Was mir aufgefallen ist das BST die Anzahl der instanzen mit den Aufruf parrameter nicht Überprüft.
Ich derfiniere 3 Instanzen kann aber z.B. 9 Instanzen im Programm Aufrufen
Da muss ich ja richtig Aufbassen.