C/C++ Com schnittstelle Ansprechen



  • Hallo zusammen,

    bin noch etwas unerfahren was das programmeren in c bzw c++ angeht.

    Ich möchte jedoch ein kleine programm schreiben welches den com port (RS232) ausließt und danach in ein PDF formular oder änliches einsetzt.

    kann mir jemand helfen?

    Danke



  • Wenn du konkrete Frage stellst gibts bestimmt jemanden.



  • Also ich habe ein messgerät was über RS232 angeschlossen werden kann, mit Hyperterminal können die Messwerte ausgelesen werden und in .txt abgespeichert werden.

    Ich möchte aber gerne die werte mit einem Programm auslesen und danach in ein Pdf formular einfügen, bzw exportieren.

    dabei handel es sich immer so um 22 werte die an eine bestimmte stelle im formular ein gegeben werden sollen.

    Leider hab ich kein plan wie man die RS232 in C anspricht und auslesen kann so das man die werte exportieren kann.



  • derJorg schrieb:

    Leider hab ich kein plan wie man die RS232 in C anspricht und auslesen kann...

    probier mal damit: http://www.leapsecond.com/tools/comlib.c
    🙂



  • welche header datei muss ich denn da anhängen, weil mein compeiler spinnt da

    [C++ Error] Unit1.cpp(35): E2268 Call to undefined function 'sprintf'
    [C++ Error] Unit1.cpp(35): E2451 Undefined symbol 'Port'
    [C++ Error] Unit1.cpp(36): E2268 Call to undefined function 'fprintf'
    [C++ Error] Unit1.cpp(36): E2451 Undefined symbol 'stderr'
    [C++ Error] Unit1.cpp(36): E2451 Undefined symbol 'Baud'
    [C++ Error] Unit1.cpp(62): E2451 Undefined symbol 'Parity'
    [C++ Error] Unit1.cpp(88): E2451 Undefined symbol 'Flow'
    [C++ Warning] Unit1.cpp(93): W8008 Condition is always false
    [C++ Warning] Unit1.cpp(93): W8066 Unreachable code
    [C++ Error] Unit1.cpp(93): E2268 Call to undefined function 'CommShowDcb'
    [C++ Error] Unit1.cpp(95): E2268 Call to undefined function 'CommTimeout'
    [C++ Warning] Unit1.cpp(97): W8008 Condition is always false
    [C++ Warning] Unit1.cpp(97): W8066 Unreachable code
    [C++ Error] Unit1.cpp(97): E2268 Call to undefined function 'CommShowStatus'
    [C++ Error] Unit1.cpp(99): E2292 Function should return a value
    [C++ Error] Unit1.cpp(103): E2141 Declaration syntax error

    wie gesagt ich bin noch ziemlich unerfahren was das programmieren an geht...



  • ganz oben muss rein:

    #define _CRT_SECURE_NO_WARNINGS
    #include <windows.h>
    #include <stdio.h>
    void CommTimeout (DWORD Interval, DWORD Multiplier, DWORD Constant);
    void CommShowStatus (void);
    void CommShowDcb (DCB *Dcb);
    

    und ganz unten (zum testen, lesen von der RS232 und anzeigen der bytes):

    int main()
    {
      char buff[2048];
      CommOpen (1, 115200, 0, 0);  // <-- eventuell andere baudrate us. einstellen
    
      for (;;)
      {
        DWORD s;
        DWORD count = CommRead (buff, sizeof(buff));
        for (s=0; s<count; s++)
        {
          putchar (buff[s]);
        }
      }
    }
    

    🙂



  • Super das klappt schon mal echt gut vielen dank schon mal.

    Der öffnet dann ein dos fenster und gibt die daten ein, seh die daten dann auch wie bekomm ich denn jetzt diese daten z.B. in ein pdf formular ??

    also aus dem dos fesnter exportieren in das formular.



  • willste PDFs selbst erzeugen? dann vielleicht damit: http://libharu.org/wiki/Main_Page
    (ich weiss aber nicht, ob diese lib was taugt. ich benutze iText, aber das gibts nicht für C)
    🙂



  • nicht ganz ich habe schon ein pdf formular, möchte nun die daten die ich erhalten habe (nach der messung) in die felder vom formular senden. muss ich da vll ein makro schreiben oder so was.



  • ^^ du willst ein pdf manipulieren, das sich in einem pdf-editor (acrobat, foxit oder sowas) befindet? dann musste mal rausfinden, wie sich diese software fernsteuern lässt (unter windows oft über dieses super-fricklige 'COM', aber vielleicht geht's auch einfacher).
    🙂



  • Ne ich möchte einfach die daten die ich von der rs232 bekomme in ein formular einfügen automatisch (wie z.B. in excel in einen zeile einfügen)

    oder geht das anders das ich die ganze sache in c++ programmiere und dann drucken sage und das ich in die pdf vorlage die ich habe die daten einfügen kann.

    (Also Messdaten vorlage wo nur die daten von der rs232 eingefügt werden sollen... )



  • derJorg schrieb:

    Ne ich möchte einfach die daten die ich von der rs232 bekomme in ein formular einfügen automatisch (wie z.B. in excel in einen zeile einfügen)

    ^^wie gesagt, dazu musste rauskriegen, wie du den pdf-editor von aussen steuern kannst. ansonsten erzeugste eben ein neues pdf (mit irgendeiner .pdf-library) und baust die werte da ein. oder wenn du einen .pdf-druckertreiber hast, dann kannste es auch als pdf in eine datei 'drucken'. <-- diese möglichkeiten gibts, mehr fällt mir auch nicht ein.
    🙂


Log in to reply