Announcement

Collapse
No announcement yet.

Interface simulieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Interface simulieren

    Hallo alle zusammen,
    Ich habe ein prog was daten von einen Interface auswertet! Dieses Interface hatunter anderen einen 10Bit eingang der sein ergebnis uber die Com Schnitstelle zum Pc sendet. Ich habe nun ein VBA prog geschrieben womit ich dieses Interface simulieren kann. das klapt so weit auch alles wunderbar, bis auf eine kleinigkeit! Die werte von 10Bit eingang werden als Ascii zeichen gesendet, also der Wert 260 z.B. bekomme ich indem ich mit mein Simulationsprog sendesring = CHR(1) & CHR(5) sende (1*255 + 5 = 260) wenn ich aber nun einen wert unter 255 haben möchte mußte ich doch z.B. für 200 sendestring = CHR(0) & CHR(200) senden (0*255 + 200 = 200). doch leider erkennt das Interfaceprog den Wert so nicht!!! Benutzt man für CHR(0) irgend was anders???

    mfg
    Matthias

  • #2
    Die Frage ist, was dein Interface überhaupt für eine Anzahl von Bytes je Wert erwartet
    Christian

    Comment


    • #3
      Ich verstehe die frage nicht ganz! Habe mir eben nochmal den Datenstrom des Interfaces in Hex editor angeschaut 00 7A für Wert 122 wenn ich aber mit meinen Prog &h00 senden möchte macht der Hex editor kommische sachen es sicht so aus als wenn er an der stelle von &h00 die aufzeichnung abrechen würde!?!

      Comment


      • #4
        Du musst doch wissen wieiviel Byte je Wert übermittelt werden

        Warum gehst du davon aus, das 260 als 255+5 (HiByte/LowByte) übermittelt werden und die Daten nicht eben 255 und als zweites Byte 5 bedeuten?

        Wie werden Werte über 65535 übermittelt? Woran erkennst du das?
        Christian

        Comment


        • #5
          Ach so, (Danke erstmal das du mir antwortest)
          die werte weiß ich da ich die werte von Interface mitgeschrieben habe und ich durch das Interface Prog weiß welcher wert was bedeutet. Das die annahme ohben soweit richtig ist weiß ich durch mein selbst geschriebenes Prog was ja soweit geht nur eben nicht bei werten unter 255! laut Hex editor bedeuten 00 7A = 122! Wenn ich das jetzt mit vba senden möchte mit sendestring = CHR(&h0) & CHR(&h7A) gibt mein Hex editor nur 7A raus er reagiert garnicht auf CHR(&h0)!!! Laut ASCII-Code ist das ASCII-Zeichen für &h0 = NUL (Bedeutung= Null,Nichts) was sich ja irgendwie mit meinen beobachtungen deckt. Das bedeutet irgendwas sendet das interface als ASCII-Zeichen das mein Hex-editor 00 erkennt was sich aber von mein CHR(&h0) unterscheidet.

          Comment


          • #6
            ASCII 0 wäre richtig, warum das VBA nicht kann....
            Christian

            Comment


            • #7
              Originally posted by Christian Marquardt View Post
              ASCII 0 wäre richtig, warum das VBA nicht kann....
              VBA wird oft intern auf eine C/C++-Implementierung der Komponenten/Methoden zurückfallen und dort ist nunmal Chr(0) der Endekennzeichner eines Strings. Ich denke hier müssste mit Streams gearbeitet werden. Ob das jedoch in VBA möglich ist ohne sich permant "ins Knie schiessen" zu müssen möglich ist weiß ich nicht.

              Comment


              • #8
                Hmmmm nach

                sendestring = CHR(&h0) & CHR(&h7A) gibt mein Hex editor nur 7A raus
                dürfte das dann nicht die Ursache mit dem 0-Byte als Endekennzeichen sein, den dann dürfte er die 7a nicht mehr ausgeben?
                Christian

                Comment


                • #9
                  Originally posted by Christian Marquardt View Post
                  dürfte das dann nicht die Ursache mit dem 0-Byte als Endekennzeichen sein, den dann dürfte er die 7a nicht mehr ausgeben?
                  Direkt in VBA geht es scheinbar, aber hier wird über eine Serielle Schnittstellen-K0mponente gearbeitet. Und ob dort ein Chr(0) bei der verwendeten Komponentenmethode durchkommt ...

                  Comment


                  • #10
                    Hallo,
                    habe den Fehler gefunden!
                    habe die ganze zeit mit SENDSTRING gearbeitet, es gibt aber auch SENDBYTE und siehe da es Läuft

                    danke an alle

                    gruß
                    Matthias

                    Comment

                    Working...
                    X