- LiTime Speicher und Akkus         
Ergebnis 1 bis 6 von 6

Thema: unterschiedliche Print-Daten in einer Sub ausgeben

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    49
    Beiträge
    381

    unterschiedliche Print-Daten in einer Sub ausgeben

    Anzeige

    Praxistest und DIY Projekte
    Hallo Kollegen,

    ich bin gerade dabei mir eine Motorradalarmanlage über GPS & GSM zu bauen. Dabei stehe ich gerade vor dem Problem wie ich in einer Sub unterschiedliche Texte per SMS sende.
    Das heißt, dass bei unterschiedlichen Aktionen eine SMS-sende-Sub angesprungen werden soll und in dieser soll dann per RS232 Festtexte oder variable Texte (Längen- und Breitengrade...) übertragen werden soll. Nun kann ich für jede mögliche Sendung eine SUB erstellen oder eine generelle SUB basteln und dann die entsprechenden Daten an diese Übergeben. Aber wie kann ich dies machen? Einige Bsp.:

    Festwert: Print #2 , "Alarm Standortwechsel"
    Variabler Wert: Print #2 , "Latitude= " ; Nmea_latitude_grad ; " " ; Nmea_n_s ; " " ; Nmea_latitude_min_sec

    Hätte jemand eine Idee dazu? Vielleicht eine SUB mit parameterübergabe mit byref?

    Vielen DAnk für Eure Hilfe!

    Gruß MAT

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Für Programmstrukturen gibt's kaum allgemein und immer gültige regeln.
    Mal einfach vor mich hingeplappert:
    Jedes SMS braucht 3 Steps, die man als Sub ausführen kann:
    1) SMS-Init /Header etc.
    Das sind hauptsächlich feste werte, wie TelNr etc.
    2) SMS-Nutzdaten
    Das ist die eigentliche Nachricht, bestehend aus Festwerten und Variablen.
    3) SMS-Close & Abschicken

    1) u. 3) können vermutl. mit GOSUB ausgeführt werden, das sie kaum durch Argumente variierbar sind (denk' ich)

    Am unterschiedlichsten wird die Sache wohl bei 2) sein
    Glaube aber, dass es ein durchaus überschaubares Repertoire an "message-Typen" gibt, die weitgehend, auch ohne viel parameter, wissen, was sie brauchen. Die könnte man als SUB ausführen
    z.B "SEND_STANDORTWECHSEL:"
    könnte mir vorstellen, dass bestenfalls die latitude-werte selbst als Parameter benötigt werden, die Texte wüsste die Funktion wohl selbst. Und wenn diese PositionsWerte eigentlich im Programm als "globale" werte geDIMt sind, wären auch die nicht wirklich notwendig.


    Zusammenfassend:
    Im Hauptprogramm könnten immer 3 gogubs stehen:
    GOSUB SMS_HEADER
    GOSUB SEND_STANDORTWECHSEL
    GOSUB SMS_SEND
    oder z.B.
    GOSUB SMS_HEADER
    GOSUB SEND_UHRZEIT
    GOSUB SMS_SEND

    Mal so dahingeschwätzt
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    49
    Beiträge
    381
    Hallo PicNick,

    hmmmm.... interessant was Du schreibst. Bin mir noch sicher wie ich weiter machen werde.
    Werde mir das mal durch den Kopf gehen lassen...

    Danke für Deine Antwort
    MAT

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von PicNick Beitrag anzeigen
    Für Programmstrukturen gibt's kaum allgemein und immer gültige regeln.
    Mal einfach vor mich hingeplappert:
    Jedes SMS braucht 3 Steps, die man als Sub ausführen kann:
    1) SMS-Init /Header etc.
    Das sind hauptsächlich feste werte, wie TelNr etc.
    2) SMS-Nutzdaten
    Das ist die eigentliche Nachricht, bestehend aus Festwerten und Variablen.
    3) SMS-Close & Abschicken

    1) u. 3) können vermutl. mit GOSUB ausgeführt werden, das sie kaum durch Argumente variierbar sind (denk' ich)

    Am unterschiedlichsten wird die Sache wohl bei 2) sein
    Glaube aber, dass es ein durchaus überschaubares Repertoire an "message-Typen" gibt, die weitgehend, auch ohne viel parameter, wissen, was sie brauchen. Die könnte man als SUB ausführen
    z.B "SEND_STANDORTWECHSEL:"
    könnte mir vorstellen, dass bestenfalls die latitude-werte selbst als Parameter benötigt werden, die Texte wüsste die Funktion wohl selbst. Und wenn diese PositionsWerte eigentlich im Programm als "globale" werte geDIMt sind, wären auch die nicht wirklich notwendig.
    Hmm, 1 und 3 werden doch bei jeder Nachricht benötigt? Einzig 2 hat unterschiedlichen Inhalt. Also würde ich die Nema Auswertung in der Hauptschleife machen und bei erkannten Standortwechsel ein call Subraoutine_Senden machen. Alle Konstanten und auch wechselnden Variablen schon im Header als Global deklarieren.
    1 und 3 dann fest in der Sub einbinden da sie bei jeder Sendung gebraucht werden. So bleibt für die Hauptschleife halt "nur" die Entscheidung Standort_ALT = Standort_NEU ? mit einer gewissen zugelassener Differenz. Fragt sich wie oft gesendet werden soll wenn das geklaute Objekt sich in Bewegung befindet oder nur einmal beim Start und dann wieder nach xyz Zeit mit Stillstand = neue ( End ) Position...

    Gruß Richard

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Wie von mir vorausgeschickt, fix ist nix.
    Bei jedem Senden werden 1) u. 3) einmal aufgerufen, so oder so. Natürlich kann man es auch so machen, wie du sagst.
    Meine motovation geht dahin, dass 2) eigentlich weniger SMS-spezifisch ist, sondern eigentlich nix als eine Stríng-Konstruktion, die man genauso auch für ein LCD-oder terminal Display verwenden kann (zwecks Testen z.B). Da käme mir eine fixe Bindung an SMS-Spezifika in die Quere.
    Aber ---> siehe oben
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    49
    Beiträge
    381
    Hi,

    im Moment lasse ich eine SMS so senden:
    Code:
    Sub Send_sms
    
    Print #2 , "at+cmgs=+49150000000" : At_ok = 4                                                                             
    Call Gsm_ok(at_ok)
    Print #2 , "Alarm Standortwechsel"
     Print #2 , "Latitude= " ; Nmea_latitude_grad ; " " ; Nmea_n_s ; " " ; Nmea_latitude_min_sec
     Print #2 , "Longitude= " ; Nmea_longitude_grad ; " " ; Nmea_e_w ; " " ; Nmea_longitude_min_sec
     Print #2 , "Speed= " ; Nmea_speed
     Print #2 , Chr(26) : At_ok = 19
    Call Gsm_ok(at_ok)
    Stop Timer0
    Disable Timer0
     Byte_in_count = 0
     Timer_count = 0
    End Sub
    ich habe mir überlegt, dass ich eine Weitere Sub schreibe, in der dann Festdaten übertragen werden. Die Festdaten werden dann von mir dann festgelegt und mit einer SUB übergeben.
    Die Auswertung und das senden einer SMS beim Standortwechsel funktioniert schon. Ich wollte mir nur eine allgemeine SUB basteln in die ich dann die zu sendenden Daten übergeben kann.
    Aber ich denke mal wie ich es jetzt so mache ist es am einfachsten.

    Grüße Mat

Ähnliche Themen

  1. Shift-Daten an Fremdpin ausgeben
    Von hardware.bas im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 22.02.2011, 20:16
  2. SQL: Daten einer Tab. in Abhängigkeit einer weiteren wählen
    Von Jaecko im Forum Software, Algorithmen und KI
    Antworten: 10
    Letzter Beitrag: 27.07.2010, 00:13
  3. Mega 16 - unterschiedliche Frequenzen ausgeben
    Von Omnikron im Forum AVR Hardwarethemen
    Antworten: 11
    Letzter Beitrag: 27.08.2004, 20:45
  4. [ERLEDIGT] Daten bit für bit ausgeben, nur wie?
    Von im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 7
    Letzter Beitrag: 16.08.2004, 12:34
  5. RC - Car Tacho und Daten lesen und ausgeben
    Von Neon im Forum Sensoren / Sensorik
    Antworten: 7
    Letzter Beitrag: 06.08.2004, 13:39

Berechtigungen

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

LiFePO4 Speicher Test