An Motorkarte ein String übertragen?



  • Hallo , ist vielleicht ein bisschen zu speziell..

    Ich muss an eine Motorkarte die über ein USBkabel ein ACII String übertragen.
    zb "#1:CpatI_Analog\r"

    Vielleicht hat ja jemand ein tip wie ich anfangen muss, vielleicht mit.
    (Terminalprogramm)

    Gruß



  • Falls die Karte einfach an einem USB to Serial Adapter hängt, kannst Du z.B. mit der Klasse System::IO::SerialPort arbeiten.

    Falls die Kommunikation "echt" USB ist, brauchst Du einen Treiber, meistens vom Hersteller mitgeliefert.

    Simon



  • theta schrieb:

    Falls die Karte einfach an einem USB to Serial Adapter hängt, kannst Du z.B. mit der Klasse System::IO::SerialPort arbeiten.

    Falls die Kommunikation "echt" USB ist, brauchst Du einen Treiber, meistens vom Hersteller mitgeliefert.

    Simon

    Also der Treiber ist ja installiert , die Karte funktioniert soweit, nur es gibt zwei arten der Befehlübertragung, einmal mit einer Bibliothek , das geht , nur sind da nicht alle Funktionen bei.
    Ansonsten muss ein sereieller ACSII- Befehl gesendet werden.



  • Ja, dann verstehe ich die Frage nicht. Dann sende halt einfach den gewünschten String.



  • ja wie ??

    und den Namensraum System::IO::SerialPort gibs nicht.

    müsste wohl sein: System::IO::Ports::SerialPort::????



  • Torsten2009 schrieb:

    ja wie ??

    So wie in der Doku beschrieben ...

    http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx

    Du brauchst den Portnamen deiner Karte (notfalls im Gerätemanager schauen, welcher Comport hinzukommt, wenn man die Karte reinsteckt).

    Aus der Doku von deiner Karte brauchst du die Baudrate, Parityeintstellung, Daten- und Stoppbitanzahl und Handshakeeinstellungen.

    Wenn das alles stimmt und die Verbindung hergestellt ist, kannst du dann über die diversen Read- und Write- Methoden der Klasse Daten übertragen.



  • nn schrieb:

    Torsten2009 schrieb:

    ja wie ??

    So wie in der Doku beschrieben ...

    http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx

    Du brauchst den Portnamen deiner Karte (notfalls im Gerätemanager schauen, welcher Comport hinzukommt, wenn man die Karte reinsteckt).

    Aus der Doku von deiner Karte brauchst du die Baudrate, Parityeintstellung, Daten- und Stoppbitanzahl und Handshakeeinstellungen.

    Wenn das alles stimmt und die Verbindung hergestellt ist, kannst du dann über die diversen Read- und Write- Methoden der Klasse Daten übertragen.

    danke erstmal,
    die Einstellungen (comport,Baudrate...) kann ich ja über die bibliothek vornehmen, das ist ja soweit ok ; ich brauch nur ein befehl um ein String zu senden ??
    System::IO::PORT::serialport?????

    achso ich benutze .NET Framework 3.0 .

    Gruß



  • Torsten2009 schrieb:

    die Einstellungen (comport,Baudrate...) kann ich ja über die bibliothek vornehmen, das ist ja soweit ok ; ich brauch nur ein befehl um ein String zu senden ??

    Ach so, dann hat die Bibliothek also schon die Schnittstelle offen. Dann brauchst du nichts aus dem .net-Framework. Serielle Schnittstellen kann immer nur einer öffnen.

    Schau halt in die Doku von deiner Bibliothek, wie du damit den String senden musst.



  • nn schrieb:

    Torsten2009 schrieb:

    die Einstellungen (comport,Baudrate...) kann ich ja über die bibliothek vornehmen, das ist ja soweit ok ; ich brauch nur ein befehl um ein String zu senden ??

    Ach so, dann hat die Bibliothek also schon die Schnittstelle offen. Dann brauchst du nichts aus dem .net-Framework. Serielle Schnittstellen kann immer nur einer öffnen.

    Schau halt in die Doku von deiner Bibliothek, wie du damit den String senden musst.

    tja da gibs leider kein befehl dafür!!
    Muss man die Schnittstelle dann erst schließen ?

    Also die Funktionen aus der nanotechbibliothek sind so:
    cmd->Baudrate=115200;
    cmd->ComPort="COM2"

    cmd ist eigene Variable verweisst auf die Biblithek.

    Dort gibs aber nix wie cmd->SENDESTRING=""

    UND einige Sachen wie Analoge Eingänge abfragen geht nur über die Sende AsciiStringmethode !

    Vielleicht mit:
    System::IO::Ports::SerialPort::WriteLine="";
    ?????
    Gruß



  • Guck Dir das Bsp. an.
    http://msdn.microsoft.com/de-de/library/system.io.ports.serialport.aspx

    Ob Du Write(..) oder WriteLine(..) aufrufen musst, hängt von der Art der Kommunikation ab. Probiers am besten aus oder lies in der Doku nach.

    Simon


Anmelden zum Antworten