CAN Schnittstelle

  • Hallo, (english see below)
    Ich muss die Register TSEG1 und TSEG2vom SJA1000 umprogrammieren.
    Leider ist zwar in dem Dokument WINCE_CAN_INTF_eng.pdf die Funktion IOCTL_CAN_WRITE_REGISTER aufgeführt, dummerweise gibt es aber keine Header-Datei, die diesen CTL_CODE auch definiert... :(
    Wie also kann ich das Time-Quantum umprogrammieren?


    Gruss
    - /dev/nul


    (English)
    Hi there,
    I need to repgrogram the TSEG1 and TSEG2 registers of the SJA1000. Unfortunately the Documentation WINCE_CAN_INTF_eng.pdf describes that there is an API called IOCTL_CAN_WRITE_REGISTER but i cannot find and CTL_CODE definition at all.
    Does anybody has an idea how to do it? Or has the CTL_CODE defines for it?


    regards
    - /dev/nul

  • Hello,


    thereby canbusio.h with the desired CTL_CODEs:


    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Many Thanks,
    Your version of canbusio.h contains 8 Lines more than mine...
    And that was exactly what i needed! :D


    Thanks again
    - /dev/nul

  • Hallo,
    ich habe den C# (.Net) Treiber


    Das Senden von CAN Nachrichten funktioniert prima.
    Jedoch beim Empfangen von CAN Nachrichten habe ich aber ein kleines Problem
    Kann ein Event vom CAN-Treiber erzeugt werden wenn eine CAN Nachricht empfangen wurde?
    Das pollen mit ReadEventData() über einen Timer ist bestimmt keine gute Lösung.


    Danke im vorraus
    Eric Boger

  • Das Lesen der Events sollte man in einen eigenen Thread auslagern. Der kann dann problemlos in der Leseroutine (ReadFile() bzw. IOCTL_CAN_READ_EVENT) oder in WaitCommEvent() blockiert werden, das Hauptprogramm läuft ja trotzdem weiter.


    Alternativ könnte man auch mit SetCommTimeouts() einen sehr kleinen Read-Timeout setzen. Wenn es einen Event gibt, bekommt man ihn, sonst kehrt die Lesefunktion eben mit Timeout-Fehler zurück. Dann muss man aber regelmäßig auf diese Weise pollen.


    Ich würde den eigenen Thread vorziehen, da er keine Rechenzeit braucht, solange keine Events vorliegen.


    Mit freundlichen Grüßen,


    H. Keller

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.