-
        

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: Serielle schittstelle auslesen

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    26
    Beiträge
    607

    Serielle schittstelle auslesen

    Anzeige

    hallo leute, ich habe einen "asuro"-Roboter und möchte mir auf den pc von ihm aus daten über die serielle schnittstelle rübersenden, was auch klappt, wenn ich sie per hyper-terminal auslese.
    wie kann ich daten, die ich bekomme, auch direkt in ein anderes programm (in C) einlesen, um sie dort zu verwenden.
    ich hab mich durch google gelesen, und bin dann auf die funktionen CreateFile, WriteFile und ReadFile gekommen. das schreiben mit ReadFile funktioniert, wenn auch sehr unzuverlässig (bekomme manchmal irgend son scheiß rüber), aber readFile funzt kein bisschen.

    das ist der quelltext (währenddessen sende ich von meinem Roboter ununterbrochen "aaaaa..." aber er liest nix ein (read == 0)

    #include <windows.h>

    int main(int argc, char *argv[]){
    HANDLE m_hPort;
    DWORD read = 0;
    char abb[2];

    m_hPort = CreateFile( "COM1:", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, NULL);

    ReadFile(m_hPort, abb, 2, &read, NULL);

    printf("%i\n",read);
    printf("%s\n",abb);

    system("PAUSE");
    return 0;
    }

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    26
    Beiträge
    607
    ps. ich sende per infrarot an einen empfänger, der das dann weitersendet.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    32
    Beiträge
    1.957
    das problem ist, um in naturbelassenem C einen com port VERNÜNFTIG zu initialisieren benötigst du alleine schon rund 50 zeilen code, ich rate dir auf www.c-plusplus.de/forum zu gehen und doert im WINAPI forum mal nach einer fertigen c-bibo zu suchen, ich perönlich habe mit C# angefangen um es mir einfacher zu machen ... iss wirklich einfacher, fast wie C++ nur ohne pointer und alles ist in packages verpackt, erinnert stark an java ^^ syntax is stark c++ ähnlich

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    26
    Beiträge
    607
    thx, ich schau ma nach

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    26
    Beiträge
    607
    so, hab mich jez durchgeklick und bin schließlich auf diese seite gelangt: http://www.codeguru.com/cpp/i-n/netw...cle.php/c2503/
    hab mich dann auch mit dem c++ code ganz gut auseinandergesetzt (kann eig. nur ansi c), sehr viel gebracht hat es aber nicht, wieder habe ich es geschafft irgendwelchen schrott zu senden (es kam vllt nur jedes 10te zeichen an, und das war dann auch nicht das, was ich eig. gesendet habe).
    ich habe auch verschiedene frequenzen ausprobiert (sende beim hyperterminal mit 2400), hat aber nix geholfen =(
    lesen will er garnicht....

    das is der Quelltext meiner main:

    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include "Serial.h"


    using namespace std;

    int main(int argc, char *argv[]){

    CSerial serial;
    if (serial.Open(1, 2400))
    {
    printf("%i\n",serial.ReadDataWaiting());
    char lpBuffer[] = "aaaaaaaaaaaaaaa";
    int nBytesRead = serial.ReadData(lpBuffer, sizeof(lpBuffer));
    printf("%s", lpBuffer);
    }
    else
    printf("Failed to open port!");


    system("PAUSE");
    return EXIT_SUCCESS;
    }

    er gibt mir für das ReadDataWaiting() 0 raus, und danach eben den unveränderten string

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.12.2007
    Beiträge
    280
    Hallo yaro

    ich hab mir comport von winsoft.sk runtergeladen. Es ist zwar nur ne demoversion aber dafür ist es leicht zu bedienen!

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    26
    Beiträge
    607
    hab kein delphi, programmiere mit dev-cpp

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.12.2007
    Beiträge
    280
    Keine ahnung ob dein post auf Comport bezogen war oder nicht.

    Comport gibts jedenfalls auch für C++

    available for Delphi 5, 6, 7, 2005, 2006, 2007 and C++ Builder 4, 5, 6, 2006

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    26
    Beiträge
    607
    kann man damit live daten aus der schnittstelle rauslesen und in ein programm reintun?
    am besten wär sowas wie das hyperterminal, dass mir einfach die ankommenden daten in eine datei schreibt. hyperterminal kann das auch, aba eben nicht live, erst wenn die verbindung getrennt ist

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    32
    Beiträge
    1.957
    mit der cserial bibo biste eigentlich ganz gut bedient ... wie testest du was du sendest/empfängst ?

    EDIT: du solltest eine endlosschliefe machen, die regelmäßig prüft ob am port daten zur verfügung stehen ODER ob eine taste gedrückt wurde , damit könntest du erstmal eine echo eingabe simulieren indem du die sende und empfangsleitung vom com port verbindest

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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