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.

C# Beispiel


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

Wie wichtig ist euch ein C# API (Programmierschnittstelle) für das CAN-Interface?
Unwichtig, ich programmiere in C oder C++
0%
 0%  [ 0 ]
Ich finde C# super und will so etwas!
100%
 100%  [ 2 ]
Unwichtig, ich nutze nur KCANMonitor.
0%
 0%  [ 0 ]
Stimmen insgesamt : 2

Autor Nachricht
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

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



Beitrag05-04-2017, 17:55    Titel: C# Beispiel Antworten mit Zitat

Noch nicht ganz fertig, prinzipiell geht die C++ DLL zur Nutzung des RKS+CAN Interface so zu nutzen.
Kann man natürlich noch schöner programmieren und es wird auch nur Seriennummer und Versionsinfo vom Interface dargestellt.

Wenn jemand ein C# Crack ist, bitte bezüglich Verbesserungen bei mir melden. Sinnvoll wäre eine eigene C# Datei zum Einbinden, welche die DLL-API kapselt. Alles kein Hexenwerk.

Viele Grüsse, Rainer



Example-Net.rar
 Beschreibung:
 Beispiel, verbesserte Versionen siehe im Laufe des Themas.
Beispiel, verbesserte Versionen siehe im Laufe des Themas.
Download
 Dateiname:  Example-Net.rar
 Dateigröße:  500,96 KB
 Heruntergeladen:  917 mal
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded @ Kaufmann Automotive GmbH
CANhack.de System RKS+CAN: CAN-Bus Interface


Zuletzt bearbeitet am 27-04-2018, 13:05, insgesamt 9-mal bearbeitet.
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dunt
Hacker
Hacker


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


Premium Support

Beitrag11-06-2017, 12:29    Titel: C# Beispiel Antworten mit Zitat

Hat diesbezüglich schon jemand etwas? Habe das Projekt mal um Ub erweitert was auch soweit funktioniert hat.

Hänge jetzt aber beim empfange der CAN Messages.

Code:
if(RKSCANRx(&sRx))
- genau hier wie muss ich diese von der DLL übernehmen.

es wird folgender fehler angezeigt "Zusätzliche Informationen: "parameter #1" kann nicht gemarshallt werden: Zeiger dürfen nicht auf gemarshallte Strukturen verweisen. Verwenden Sie stattdessen ByRef.."


evtl. kann mir jemand helfen icon_wink.gif



2017-06-06_RKS CAN USB.rar
 Beschreibung:
 C# Beispiel
C# Beispiel
Download
 Dateiname:  2017-06-06_RKS CAN USB.rar
 Dateigröße:  988,74 KB
 Heruntergeladen:  1182 mal
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden Gehe in Dein Profil um mehr über die Verlinkung Deiner Webseite zu erfahren.
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

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



Beitrag16-06-2017, 13:37    Titel: C# Beispiel Antworten mit Zitat

Gnarf... zum C# Hacker wider Willen. Das Leben könnte so einfach sein, bin dran und bald wieder urlaubsreif.

Hier ist erklärt wie es geht:
http://andyrushton.co.uk/csharp-calling-c-functions-marshalling-structs/
https://docs.microsoft.com/en-us/dotnet/framework/interop/passing-structures

Anstatt jeden einzelnen Funktionsaufruf der C/C++-DLL kompliziert zu verpacken, wäre es wohl sinnvoll die C# RKS-USB Klasse um Wrapperfunktionen zu erweitern, die man stattdessen aufruft. So hat man den Aufwand nur einmal.

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


Zuletzt bearbeitet am 09-12-2017, 13:17, insgesamt 5-mal bearbeitet.
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden Website dieses Benutzers besuchen
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

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



Beitrag10-01-2018, 20:58    Titel: C# Beispiel Antworten mit Zitat

Code:
using System.Runtime.InteropServices;

// CAN frame types

// CAN data structure
public class can_data_t
{
  public uint dwID;
  public byte byDLC;
  public byte[] abyData = new byte[8]; // max 8 data bytes
}

// CAN error information structure
public class can_err_t
{
  public byte byError;
}

// CAN information structure
//C++ TO C# CONVERTER TODO TASK: Unions are not supported in C#, but the following union can be replicated with the StructLayout and FieldOffset attributes:
//ORIGINAL LINE: union can_union_t
[StructLayout(LayoutKind.Explicit)]
public struct can_union_t
{
  [FieldOffset(0)]
  public can_data_t sData;
  [FieldOffset(0)]
  public can_err_t sErr;
}

// The final CAN frame structure used for send/receive
public class can_msg_t
{
  public byte byType;
  public uint dwTimeStamp;
  public can_union_t uFrm = new can_union_t();
}


internal static class DefineConstants
{
   public const int FRAME_TYPE_NORMAL = 0x1;
   public const int FRAME_TYPE_RTR = 0x2;
   public const int FRAME_TYPE_NORMAL_EXT = 0x3;
   public const int FRAME_TYPE_RTR_EXT = 0x4;
   public const int FRAME_TYPE_ERR = 0x5;
}
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded @ Kaufmann Automotive GmbH
CANhack.de System RKS+CAN: CAN-Bus Interface
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden Website dieses Benutzers besuchen
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

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



Beitrag27-04-2018, 13:15    Titel: C# Beispiel Antworten mit Zitat

C# Wrapper von Alexander Schmidt auf Github:
https://www.canhack.de/viewtopic.php?t=2400
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded @ Kaufmann Automotive GmbH
CANhack.de System RKS+CAN: CAN-Bus Interface
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Bewertungen - C# Beispiel

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
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.