CANhack.de CAN interfaccia RKS+CAN
Hardware CAN, Software CAN, Protocolli CAN - Forum CAN-Bus per il tuo progetto CAN-Bus.

Esempio C#: Guida e Tutorial

 
Nuovo argomento Rispondi 🔗 🖨 CANhack.de - Indice » Sistema CAN-USB CANhack.de: 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 ]
Voti totali : 2

Autore Messaggio
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

Iscritto il: 07/06/2011
Messaggi: 573
Karma: +29 / -0   Grazie, mi piace!
Località: Ländle



Messaggio05-04-2017, 17:55    Oggetto: Esempio C#: Guida e Tutorial Cita

Non è ancora completamente pronto, ma in linea di principio la libreria DLL C++ può essere utilizzata per sfruttare l'interfaccia RKS+CAN.
Certo, si può programmare in modo più elegante e l'interfaccia mostra solo il numero di serie e le informazioni sulla versione.

Se qualcuno è esperto di C#, vi prego di contattarmi per eventuali suggerimenti e miglioramenti. Sarebbe utile creare un file C# separato da includere, che incapsuli l'API della DLL. Non si tratta di qualcosa di particolarmente complesso.

Cordiali saluti, Rainer.



Example-Net.rar
 Descrizione:
 Beispiel, verbesserte Versionen siehe im Laufe des Themas.
Beispiel, verbesserte Versionen siehe im Laufe des Themas.
Scarica
 Nome file:  Example-Net.rar
 Dimensione file:  500.96 KB
 Scaricato:  1136 volte
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded Software Freelancer
System RKS+CAN: CANHack.de CAN-Bus Interface


Tradotto il 07-08-2026, 1:42.
Torna su Profilo MP WWW
dunt
Hacker
Hacker


Iscritto il: 06/11/2015
Messaggi: 11
Karma: +0 / -0   Grazie, mi piace!


Supporto Premium

Messaggio11-06-2017, 12:29    Oggetto: Esempio C#: Guida e Tutorial Cita

Qualcuno ha già qualcosa a riguardo? Ho ampliato il progetto includendo elementi di Ub, e finora sembra funzionare.

Adesso ho un problema con la ricezione dei messaggi CAN.

Codice:
if(RKSCANRx(&sRx))
- esattamente qui, come devo importare questi elementi dalla DLL?

Viene visualizzato il seguente errore: "Informazioni aggiuntive: "il parametro #1" non può essere convertito: i puntatori non possono fare riferimento a strutture convertite. Utilizzare invece ByRef."


forse qualcuno può aiutarmi icon_wink.gif



2017-06-06_RKS CAN USB.rar
 Descrizione:
 Esempio C#: Guida e Tutorial
Esempio C#: Guida e Tutorial
Scarica
 Nome file:  2017-06-06_RKS CAN USB.rar
 Dimensione file:  988.74 KB
 Scaricato:  1408 volte


Tradotto il 07-08-2026, 1:44.
Torna su Profilo MP
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

Iscritto il: 07/06/2011
Messaggi: 573
Karma: +29 / -0   Grazie, mi piace!
Località: Ländle



Messaggio16-06-2017, 13:37    Oggetto: Esempio C#: Guida e Tutorial Cita

Gnarf... un programmatore C# riluttante. La vita potrebbe essere così semplice, ci sto lavorando e presto sarò di nuovo pronto per le vacanze.

Ecco spiegato come fare:
http://andyrushton.co.uk/csharp-calling-c-functions-marshalling-structs/
https://docs.microsoft.com/en-us/dotnet/framework/interop/passing-structures

Invece di "impacchettare" in modo complicato ogni singola chiamata di funzione della DLL C/C++, sarebbe probabilmente più utile estendere la classe C# RKS-USB con funzioni wrapper che si possono chiamare direttamente. In questo modo, si evita di dover ripetere lo stesso lavoro più volte.

Cordiali saluti, Rainer.
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded Software Freelancer
System RKS+CAN: CANHack.de CAN-Bus Interface


Tradotto il 07-08-2026, 1:45.
Torna su Profilo MP WWW
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

Iscritto il: 07/06/2011
Messaggi: 573
Karma: +29 / -0   Grazie, mi piace!
Località: Ländle



Messaggio10-01-2018, 20:58    Oggetto: Esempio C#: Guida e Tutorial Traduzione in corso...

[Traduzione in corso...]

Codice:
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 Software Freelancer
System RKS+CAN: CANHack.de CAN-Bus Interface
Torna su Profilo MP WWW
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

Iscritto il: 07/06/2011
Messaggi: 573
Karma: +29 / -0   Grazie, mi piace!
Località: Ländle



Messaggio27-04-2018, 13:15    Oggetto: Esempio C#: Guida e Tutorial Cita

Wrapper C# di Alexander Schmidt su Github:
https://www.canhack.de/it/viewtopic.php?t=2400
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded Software Freelancer
System RKS+CAN: CANHack.de CAN-Bus Interface


Tradotto il 07-08-2026, 1:45.
Torna su Profilo MP WWW

Valutazioni - Esempio C#: Guida e Tutorial

Valutazione media: 0,00 - valutazione peggiore: 0 - valutazione migliore: 0 - numero di valutazioni: 0 - Visualizza valutazioni

Non sei autorizzato a valutare questo argomento. Danke sagen
Nuovo argomento Rispondi 🔗 🖨 CANhack.de - Indice » Sistema CAN-USB CANhack.de: RKS+CAN
Vai a:  
Non puoi scrivere nuovi argomenti in questo forum.