-
        

Ergebnis 1 bis 4 von 4

Thema: Modulkommunikation.....Tipps geucht!

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    16.06.2004
    Alter
    30
    Beiträge
    77

    Modulkommunikation.....Tipps geucht!

    Anzeige

    Hallo,
    ich arbeite zur Zeit mal wieder an meinem Kettenroboter. Dieser besteht aus mehreren Hardwaremodulen, die über die RS485-Schnittstelle verbunden sind. Jedes Hardwaremodul besitzt einen ATMega8 als Steuereinhiet.
    Als Protokoll verwende ich das SNAP Protokoll.
    So jetzt meine Frage:

    Was ist am sinnvollsten, wenn ich zum Beispiel dem ACTOR-Modul (Steuerung der Aktoren sowie lowLevel-Sensoren [IS471]) sagen möchte, dass erst einmal gerade aus fahren soll (dabei auf hindernisse achten, schritte zählen usw.) und erst anhalten soll wenn hinderniss bzw. SChrittzahl erreicht wurde.
    ich habe mir das bis jetzt folgendermaßen überlegt. Ich lege auf jedem Modul ein Array aus 32 Bytes an. In diese werden dann alle wichtigen Informationen (schrittzahl usw. geschrieben). jetzt fragt der Master nur noch die Arrays ab bzw. schreibt ein komplettes Array neu. Das Modul muss dann lediglich die Daten aus dem eigenen RAM lesen und entsprechend umsetzen.
    Das 32. Byte ist das sogenannte EventHandlerByte und gibt an, ob ein Ereigniss (Hinderniss erkannt, SChrittzahl erreicht u.ä.) anliegt. Ist dies der Fall, wird entsprechend verfahren. Ist das EHB=0 wird der normale Ablauf beibehalten.

    Wie löst ihr das bei euren Robotern? Welche Befehle übergibt man allgemein an Module? Ich arbeite bisher immer mit bytes.

    Bin über jede Anregung dankbar

    Gruß
    BAui

    PS. Ich hoffe ich bin im richtigen Forum Abteil gelandet....

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Für philosophisch-religiöse Fundamentalfragen bist du hier allemal richtig.

    Viele Peripheriegeräte arbeiten nach der von dir genannten Methode. Ist ja irgendwie einleuchtend. NUR: Zwei Module müssen genau wissen, was diese 32 Byte im einzelnen zu bedeuten haben. Das ist spätestens dann unangenehm, wenn du ein Modul irgendwie erweitern oder verbessern willst. dann mußt du auch in alle anderen rein und denen das verklickern.
    Deswegen empfehle ich, ganz klassenmäßig, jedes Module stellt eine Einheit mit privaten Daten dar, und stellt nach außen eben ihre Methoden zur Verfügung, die sie im Netz durch "Messages" bekommt. Gewissermaßen ein "remote-procedure-call". Wie das Modul die Methode dann intern löst, ist seine Sache und kann unabhängig entwickelt werden.
    Es ist dein Geschick, die Art dieser Messages so zu designen, daß sie kombinierbar und nicht zu überkomplex sind, eben so, wie man eine Klasse definieren würde.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    16.06.2004
    Alter
    30
    Beiträge
    77
    hi picnick,
    oke dann werde ich mich mal ran machen
    philosophisch-religiöse(n) Fundamentalfragen
    versuchen zu lösen

    erstmal danke für deine schnelle antowrt. ich dnke ich werde dann mal einzelne aufrufe einführen und wie du beschrieben hast die module als klassen behandeln.


    gurß
    Baui

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Vielleicht sollten wir abwarten, bis wer kommt, der dir genau das Gegenteil erzählt
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

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