RKS+CAN Adapter für CAN-Bus Sniffing
CAN-Interface
CAN Hardware, CAN Software, CAN Protokolle - CAN-Bus Forum für Dein CAN-Bus Projekt. CAN-Bus und Elektronik.

RKS+CAN Treiber / API / Doku


 
Neues Thema beginnen Auf Beitrag antworten Weitergeben, Thema teilen Lesezeichen setzen Druckansicht CANhack.de - Übersicht » CANhack.de CAN-USB System: RKS+CAN
Autor Nachricht
Bollwing



CAN Hacker seit: 10.08.2013
Beiträge: 8
Karma: +0 / -0   Danke, gefällt mir!


Premium Support

Beitrag19-12-2014, 12:41    Titel: RKS+CAN Treiber / API / Doku Antworten mit Zitat

Hallo,

Ich habe nun den RKS+CAN bei euch bestellt und erhalten. Danke für die wirklich schnelle Abwicklung und Lieferung!

* Ich habe KCANMonitor bereits im voraus installiert
* Habe gestern die Treiber dazuinstalliert (RKS+CAN-zadig.cfg für das richtige Gerät eingestellt).
* Ich habe es auch mit den Windows-Treibern probiert

Im Gerätemanager heißt das Kabel beim mir "RKS VCP" amstatt "Kaufmann RKS+CAN VCP" entsprechend eurer Screenshots.
Ich kann im Gerätemanager den Port beim Gerät Kabel nicht einstellen.

Ich nutze Windows 8.1 Professional 64 Bit.

Was kann ich nun in weiterer Folge noch probieren?

lg
Gerald
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden  
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

CAN Hacker seit: 07.06.2011
Beiträge: 550
Karma: +27 / -0   Danke, gefällt mir!
Wohnort: Ländle



Beitrag19-12-2014, 13:12    Titel: RKS+CAN Treiber / API / Doku Antworten mit Zitat

Hallo Gerald,

Windows 8.1 unterstützt keine virtuellen seriellen Ports ohne Microsoft Zertifikat (letzte Windows Version wo dies ging war Windows 7). Der Eintrag im Gerätemanager kann daher ignoriert werden.
Für die Funktion hat dies keinerlei Einfluss. Die Hardware stellt 2 Schnittstellen zur Verfügung, ein "virtueller serieller Port" und eine z.B. mit WinUSB bzw. der Teiber-DLL nutzbare Schnittstelle.

KCANMonitor oder KOBD2Check nutzen alle das WinUSB Interface per DLL. Die virtuelle serielle Schnittstelle ist lediglich für Linux bzw. die Apple Betriebssysteme angedacht.
Zukünftig wird die virtuelle serielle Schnittstelle daher eine konfigurierbare Zusatzoption werden und standardmässig ausgeschaltet sein.

Mit dem WinUSB Treiber kannst Du alles machen was Du willst und das sogar viel besser.

Für eigene Applikationen ist sowieso die Nutzung der bereitgestellten DLL (siehe auch "Example" Beispielprogramm) zu empfehlen, als zu versuchen das Rad neu zu erfinden.

Im Beispielprogramm kannst Du ja schon direkt Nachrichten vom CAN Bus lesen bzw. senden, ohne Dir über irgendwelche COM-Ports die auf jedem Rechner anders sein können Gedanken machen zu müssen: Siehe Funktion void CExampleDlg::OnBnClickedButtonCan() in ExampleDlg.cpp

Code:
if(RKSInitialize())
  {
    RKSSetTimeouts(200, 1000);

    if(RKSCANOpen(m_iBitRate))
    {
      int i, j;
      CString strTmp, strData;
      can_msg_t sRx;
      can_msg_t sTx;

      m_strOutput += "\r\nOpened CAN...\r\n";
      UpdateData(FALSE);

      for(i = 0; i < 20; i++)
      {
        if(RKSCANRx(&sRx))
        {
          // Build data byte string
          strData.Empty();
          for(j = 0; j < sRx.uFrm.sData.byDLC; j++)
          {
            strTmp.Format(" %02x", sRx.uFrm.sData.abyData[j]);
            strData += strTmp;
          }

          // Build rest of can string
          strTmp.Format("Reading ID: 0x%x, length: %d, data:%s\r\n", sRx.uFrm.sData.dwID, sRx.uFrm.sData.byDLC, strData);
          m_strOutput += strTmp;
          UpdateData(FALSE);
        }

        // else ... (Read queue was empty)

      }

      /* Example
         DO NOT SEND NONSENSE TO CAN SYSTEMS OR YOU MAY GET UNEXPECTED RESULTS!

      sTx.byType = FRAME_TYPE_NORMAL;
      sTx.uFrm.sData.dwID = 0x333;
      sTx.uFrm.sData.byDLC = 4;
      memcpy(&sTx.uFrm.sData.abyData[0], "abcdefgh", 4);
     
      if(RKSCANTx(&sTx)) */
      if(1)
      {
        m_strOutput += "\r\nOne frame NOT sent (for safety reasons, check code)!\r\n";
        UpdateData(FALSE);
      }

      RKSCANClose();
      m_strOutput += "\r\nClosed CAN bus.\r\n";
      UpdateData(FALSE);           
    }
  }
  RKSFree();


Das Wesentliche daran ist folgender Ablauf:
Code:

RKSInitialize();
RKSCANOpen(gewünschte Bitrate);
solange etwas gemacht werden soll...
{
  RKSCANRx(Pointer auf CAN-Frame Variable); bzw. RKSCANTx(Pointer auf CAN-Frame Variable);
  ... was auch immer empfangen/gesendet oder mit dem Nachrichteninhalt gemacht werden soll...
}
RKSCANClose();


Viele Grüsse, Rainer
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded @ Kaufmann Automotive GmbH
CANhack.de System RKS+CAN: CAN-Bus Interface


Zuletzt bearbeitet am 03-01-2015, 15:57, insgesamt 6-mal bearbeitet.
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Bewertungen - RKS+CAN Treiber / API / Doku

Durchschnittsbewertung: 0,00 - schlechteste Bewertung: 0 - beste Bewertung: 0 - Anzahl der Bewertungen: 0 - Bewertungen ansehen

Du bist nicht dazu autorisiert dieses Thema zu bewerten. Danke sagen
Neues Thema beginnen Auf Beitrag antworten Weitergeben, Thema teilen Lesezeichen setzen Druckansicht CANhack.de - Übersicht » CANhack.de CAN-USB System: RKS+CAN
Ähnliche Fachartikel und Themen
Thema Community Bereich
Keine neuen Beiträge Treiber gesucht!! CANhack.de CAN-USB System: RKS+CAN
Keine neuen Beiträge Gesucht: Linux-Treiber für ARM Prozessor CANhack.de CAN-USB System: RKS+CAN
Keine neuen Beiträge D2XX-Treiber selfmade Software CANhack.de CAN-USB System: RKS+CAN
Keine neuen Beiträge Wichtig: CAN zu USB Interface RKS+CAN, Entwickler Info & Treiber CANhack.de CAN-USB System: RKS+CAN
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.