- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 6 von 6

Thema: Basic Programmierung

  1. #1

    Basic Programmierung

    Anzeige

    Powerstation Test
    Dieser Script ist in Basic programmiert.

    Ich habe da meine Probleme diesen Script zu verstehen. Meine Projektarbeit hängt deswegen. Dieses Programm wurde schon von dem Hersteller avisaro definiert. Aber leider gibt es dafür keine Kommentare.
    Ich bin Elektrotechniker und komme nicht klar.
    Kann jemand diesen Script verstehen. Was passiert hier abschnitt für abschnitt? Ich meine was das Skript abschnittsweise macht?

    Ich bitte um Hilfe ! Danke !

    Mfg
    Code:
    ' WLAN RS232 Device Server
    ' (c) Avisaro AG 18.03.2010
    ' Version 1.16
    
    Setleds 32 + 128
    
    Exec "stpseq +\097+v+i+s+"
    sleep 100
    Exec "prompt"
    sleep 100
    Exec "sched 0"
    sleep 100
    
    Let N = 0
    Rem Default-Werte ?
    If((keys & 1) = 1) Then
    For N = 0 To 100
    If((keys & 1) = 0) Then
    Goto Starting
    End If
    Setleds 255
    sleep 10
    Setleds 0 + 128
    sleep 10
    Next N
    Exec "restart clear"
    sleep 100
    Setleds 255
    Do
    sleep 1
    Loop
    End If
    Starting:
    
    sleep 400
    
    '
    
    
    Dim A(500)
    Dim B(0)
    Let N = 0
    Let T = Time
    Let F = 60
    Let M = 0
    Let U = 0
    Let Y = 0
    
    Rem INIT WEB
    
    Let X$ = "Connect to (IP, =0 for listen):"
    Put -100 , X$ , Len(x$)
    Let X$ = "Connect to / Listen (Port):"
    Put -102 , X$ , Len(x$)
    Let X$ = "Status (WR1 V14):"
    Put -104 , X$ , Len(x$)
    
    Load 0 , T$
    Put -101 , T$ , Len(t$)
    
    
    Load 25 , U
    If( -1 = U) Then
    Let U = 23
    Save 25 , U
    End If
    Let X$ = Str$(u)
    Put -103 , X$ , Len(x$)
    
    
    Try_connect:
    
    sleep 5
    
    ' RS232 leer lesen
    Inmode -3
    Input A
    
    
    If(t$ = Str$(0)) Then
    Let X$ = "listening"
    Else
    Let X$ = "try to connect"
    End If
    
    Gosub Load_web
    
    Let Y = Status(101)
    
    If(y = 0) Then
    If(t$ = Str$(0)) Then
    ' listen 101, u, 0
    Listen 101 , U , 20
    Setleds 32 + 128
    Else
    Let Y = Resolv(t$)
    sleep 500
    ' connect 101, y, u, 0
    Connect 101 , Y , U , 20
    Setleds 32 + 128
    End If
    End If
    
    Let Y = Status(101)
    
    
    If Y = 9 Then
    Let X$ = "Connected (Web locked)"
    Inmode 0
    Gosub Load_web
    Rem Connected
    Exec "stream 101"
    Goto Main
    End If
    
    
    Goto Try_connect
    
    
    
    Main:
    
    Setleds 48 + 128
    
    If((keys & 1) = 1) Then
    Close 101
    Setleds 32
    Gosub Load_web
    Goto Try_connect
    End If
    
    sleep 10
    
    Let Y = Status(101)
    If(y <> 9) Then
    Close 101
    Setleds 32
    Goto Try_connect
    End If
    
    
    Goto Main:
    
    Load_web:
    
    Put -105 , X$ , Len(x$)
    
    Rem ?nderung auf Webseite ?
    Get -103 , X$
    If Val(x$) <> U Then
    Let U = Val(x$)
    Save 25 , U
    Close 101
    End If
    
    Get -101 , X$
    If T$ <> X$ Then
    Let T$ = X$
    Save 0 , T$
    Close 101
    End If
    
    
    Return
    
    '+++
    'a+v+i+s
    Geändert von PicNick (02.11.2011 um 08:48 Uhr)

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    30
    Beiträge
    449
    Herzlich willkommen im Forum

    Paar Einrückungen können nicht schaden:
    Code:
    ' WLAN RS232 Device Server
    ' (c) Avisaro AG 18.03.2010
    ' Version 1.16
    
    
    Setleds 32 + 128
    
    
    Exec "stpseq +\097+v+i+s+"
    sleep 100
    Exec "prompt"
    sleep 100
    Exec "sched 0"
    sleep 100
    
    
    Let N = 0
    Rem Default-Werte ?
    If((keys & 1) = 1) Then
        For N = 0 To 100
            If((keys & 1) = 0) Then
                Goto Starting
            End If
            Setleds 255
            sleep 10
            Setleds 0 + 128
            sleep 10
        Next N
        Exec "restart clear"
        sleep 100
        Setleds 255
        Do
            sleep 1
        Loop
    End If
    
    
    Starting:
        sleep 400
        Dim A(500)
        Dim B(0)
        Let N = 0
        Let T = Time
        Let F = 60
        Let M = 0
        Let U = 0
        Let Y = 0
    
    
        Rem INIT WEB
    
    
        Let X$ = "Connect to (IP, =0 for listen):"
        Put -100 , X$ , Len(x$)
        Let X$ = "Connect to / Listen (Port):"
        Put -102 , X$ , Len(x$)
        Let X$ = "Status (WR1 V14):"
        Put -104 , X$ , Len(x$)
    
    
        Load 0 , T$
        Put -101 , T$ , Len(t$)
    
    
    
    
        Load 25 , U
        If( -1 = U) Then
            Let U = 23
            Save 25 , U
        End If
        Let X$ = Str$(u)
        Put -103 , X$ , Len(x$)
    
    
    
    
    Try_connect:
    
    
        sleep 5
    
    
        ' RS232 leer lesen
        Inmode -3
        Input A
    
    
    
    
        If(t$ = Str$(0)) Then
            Let X$ = "listening"
        Else
            Let X$ = "try to connect"
        End If
    
    
        Gosub Load_web
    
    
        Let Y = Status(101)
    
    
        If(y = 0) Then
            If(t$ = Str$(0)) Then
                ' listen 101, u, 0
                Listen 101 , U , 20
                Setleds 32 + 128
            Else
                Let Y = Resolv(t$)
                sleep 500
                ' connect 101, y, u, 0
                Connect 101 , Y , U , 20
                Setleds 32 + 128
            End If
        End If
    
    
        Let Y = Status(101)
    
    
    
    
        If Y = 9 Then
            Let X$ = "Connected (Web locked)"
            Inmode 0
            Gosub Load_web
            Rem Connected
            Exec "stream 101"
            Goto Main
        End If
    
    
    
    
        Goto Try_connect
    
    
    
    
    
    
    Main:
    
    
        Setleds 48 + 128
    
    
        If((keys & 1) = 1) Then
            Close 101
            Setleds 32
            Gosub Load_web
            Goto Try_connect
        End If
    
    
        sleep 10
    
    
        Let Y = Status(101)
        If(y <> 9) Then
            Close 101
            Setleds 32
            Goto Try_connect
        End If
    
    
        Goto Main:
    
    
    
    
    Load_web:
    
    
        Put -105 , X$ , Len(x$)
    
    
        Rem ?nderung auf Webseite ?
        Get -103 , X$
        If Val(x$) <> U Then
            Let U = Val(x$)
            Save 25 , U
            Close 101
        End If
    
    
        Get -101 , X$
        If T$ <> X$ Then
            Let T$ = X$
            Save 0 , T$
            Close 101
        End If
    
    
    
    
        Return
    
    
    '+++
    'a+v+i+s
    
    Das erleichtert das Lesen sehr, so kann man schon sehr leicht Unterprogramme/Was alles zu IF gehört/Was alles in der For-Schleife ausgeführt wird usw erkennen.
    Genau erläutern kann ichs dir aber nicht, hab mich dazu zu wenig mit Bascom auseinander gesetzt (z.B. is mir schleierhaft warum er manchmal REM und dann wieder ' verwendet)

    Gruß

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von -schumi- Beitrag anzeigen
    Paar Einrückungen können nicht schaden:
    Da kann er einrücken soviel er will, das wird deswegen immer noch kein Bascomcode.

    Besonders einfach hieran zu erkennen:
    Code:
    If((keys & 1) = 1) Then

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Wenn du das "Handbuch" liest, kannst du dir vielleicht zusammenreimen, was da da passiert und warum.

    http://www.avisaro.com/tl/dokumentation_wr1.html


    Soweit ich das im Groben verstehe, läuft der Code auch in der beschriebenen Folge ab.

    Sonst sind da leider ein paar "non-basic" Spezial-Befehle drin, die die Sache erschweren
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von PicNick Beitrag anzeigen
    Wenn du das "Handbuch" liest, kannst du dir vielleicht zusammenreimen, was da da passiert und warum.

    http://www.avisaro.com/tl/dokumentation_wr1.html


    Soweit ich das im Groben verstehe, läuft der Code auch in der beschriebenen Folge ab.

    Sonst sind da leider ein paar "non-basic" Spezial-Befehle drin, die die Sache erschweren
    na ja, Basic ist nicht gleich Basic da gibt es viele Arten mit eigenem Wortschatz, Bascom ist der hier verwendete Code jedenfalls nicht. Wenn man herausbekommt was das für eine Basic Version ist, kann man sicher auch den Quellcode überseten. Das 8051 Basic hat ähnliche Ausdrücke...Laut Handbuch ist dort anscheinend auch kein AVR verbaut.

    Gruß Richard
    Geändert von Richard (02.11.2011 um 15:28 Uhr)

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Wette, dass das überhaupt kein "richtiger" Basic ist, sondern ein spezielles Script im Basic-Style für eben dieses WLAN-Modul.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Ähnliche Themen

  1. PIC12C509 Basic Programmierung ??
    Von Alirobb im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 29.11.2005, 13:23
  2. problem bei programmierung crp5 in basic
    Von sidvicious im Forum Robby CCRP5
    Antworten: 0
    Letzter Beitrag: 18.09.2005, 23:09
  3. Visual Basic Programmierung...
    Von grind im Forum Software, Algorithmen und KI
    Antworten: 12
    Letzter Beitrag: 16.01.2005, 11:30
  4. Basic-Programmierung
    Von macropus1 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 12.09.2004, 00:41
  5. Basic programmierung
    Von fuuhsel im Forum Software, Algorithmen und KI
    Antworten: 3
    Letzter Beitrag: 16.08.2004, 10:34

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen