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

Software RKS+CAN: App personalizzata

 
Nuovo argomento Rispondi 🔗 🖨 CANhack.de - Indice » Sistema CAN-USB CANhack.de: RKS+CAN
Autore Messaggio
Bollwing



Iscritto il: 10/08/2013
Messaggi: 8
Karma: +0 / -0   Grazie, mi piace!


Supporto Premium

Messaggio13-12-2014, 10:38    Oggetto: Software RKS+CAN: App personalizzata Cita

Ciao,

Sono interessato all'adattatore RKS+CAN e avrei alcune domande a riguardo.

Con quale software, oltre al KCAN Monitor, posso utilizzare questo cavo?

Vorrei utilizzare il cavo per una mia applicazione specifica.
Com'è esattamente strutturata la DLL? Quali funzioni API sono disponibili?
È possibile assegnare un indirizzo personalizzato alla "porta" nella DLL, in modo che funzioni come un dispositivo di controllo porte sviluppato internamente e invii messaggi con il suo identificativo?

ciao
Gerald.


Tradotto il 09-08-2026, 19:38.
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



Messaggio13-12-2014, 12:41    Oggetto: Software RKS+CAN: App personalizzata Cita

Ciao Gerald,

Ci sono diversi programmi che possono essere accessibili tramite l'interfaccia seriale virtuale; per maggiori dettagli, contattatemi in privato.
Attualmente, i programmi specifici per l'interfaccia sono KCANMonitor e KOBD2Check.

L'hardware offre due interfacce tramite USB:
- Interfaccia seriale virtuale con set di comandi ASCII - Libreria DLL per interfaccia USB, utilizzabile sia con il set di comandi ASCII che con qualsiasi linguaggio di programmazione che possa includere e utilizzare le DLL.

Con quale linguaggio di programmazione e/o IDE intendi realizzare esattamente cosa?

Alla fine di http://www.canhack.de/it/viewtopic.php?t=137 troverai un'applicazione di esempio realizzata con Visual C++ (Example.rar).
In questo caso, un software collegato all'interfaccia potrebbe svolgere le funzioni del tuo dispositivo di controllo della porta.

L'API dell'interfaccia ha questa struttura:
Citazione:
// RKS-USB.h : file di intestazione principale per la DLL RKS-USB.
//

#pragma once

#ifndef __AFXWIN_H__
#error "Includere 'stdafx.h' prima di includere questo file per la compilazione precompilata."
#endif


// Tipi di frame CAN
#define FRAME_TYPE_NORMAL 0x1
#define FRAME_TYPE_RTR 0x2
#define FRAME_TYPE_NORMAL_EXT 0x3
#define FRAME_TYPE_RTR_EXT 0x4
#define FRAME_TYPE_ERR 0x5

// Struttura dati CAN
typedef struct
}
DWORD dwID;
BYTE di DLC;
BYTE abyData[8]; // massimo 8 byte di dati.
} can_data_t;

// Struttura delle informazioni sugli errori CAN.
typedef struct
}
BYTE errore;
} can_err_t;

// Struttura delle informazioni CAN.
typedef union
}
can_data_t sData;
`can_err_t sErr;`
} can_union_t;

// La struttura finale del frame CAN utilizzata per la trasmissione/ricezione.
typedef struct
}
BYTE byType;
DWORD dwTimeStamp;
`can_union_t uFrm;`
} can_msg_t;

// Esportazioni della DLL

// Inizializza il driver USB, apri la connessione all'hardware RKS+CAN. Restituisce TRUE in caso di successo.
// Questo comando deve essere eseguito una sola volta prima di chiamare qualsiasi altra funzione di RKS..., ad eccezione di...
// Dispositivo RKSDevice connesso.
cpp
extern "C" __declspec(dllexport) BOOL RKSInitialize(void);

// Driver USB gratuito e hardware RKS+CAN. Deve essere chiamato per rilasciare l'interfaccia/il driver.
cpp
extern "C" __declspec(dllexport) void RKSFree(void);

// Verifica se l'RKS+CAN è connesso al computer. Restituisce TRUE in caso di successo. pcBufIfGUID può essere NULL.
// Se pcBufIfGUID non è NULL, copia il DeviceInterfaceGUID dell'hardware RKS+CAN in esso.
// Se si verifica semplicemente se RKS+CAN è connesso, è consigliabile chiamare la funzione passando pcBufIfGUID = NULL.
cpp
extern "C" __declspec(dllexport) BOOL RKSDeviceConnected(LPSTR pcBufIfGUID, DWORD dwBufSize);

// Imposta i timeout per la lettura/scrittura dei dati sull'interfaccia RKS+CAN. Il software attende al massimo...
// valori specifici per il completamento delle operazioni di lettura/scrittura. Restituisce TRUE in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSSetTimeouts(DWORD dwMsTimeoutRead, DWORD dwMsTimeoutWrite);

// Lettura diretta dai canali USB dell'hardware (livello basso). Non consigliato per l'uso nelle applicazioni se non si sa cosa si sta facendo.
cpp
extern "C" __declspec(dllexport) BOOL RKSReadPipe(PUCHAR pucBuffer, DWORD dwBufferLength, DWORD* pdwLengthTransferred, LPOVERLAPPED pOverlapped);

// Scrittura diretta sui canali USB dell'hardware (livello basso). Non consigliato per l'uso nelle applicazioni se non si sa cosa si sta facendo.
cpp
extern "C" __declspec(dllexport) BOOL RKSWritePipe(PUCHAR pucBuffer, DWORD dwBufferLength, DWORD* pdwLengthTransferred, LPOVERLAPPED pOverlapped);

// Legge i dati dall'hardware utilizzando il valore di timeout specificato come tempo massimo per completare l'operazione. Restituisce VERO in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSRead(PUCHAR pucBuffer, DWORD dwBufferLength, DWORD* pdwLengthTransferred);

// Scrive sui dispositivi hardware utilizzando il valore di timeout specificato come tempo massimo per completare l'operazione. Restituisce TRUE in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSWrite(PUCHAR pucBuffer, DWORD dwBufferLength, DWORD* pdwLengthTransferred);

// Ottiene la versione dell'hardware RKS+CAN. Restituisce TRUE in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSGetVersion(PUCHAR pucBuffer, DWORD dwBufferLength);

// Ottiene il numero di serie dell'hardware RKS+CAN (stampato sul corpo del cavo). Restituisce TRUE in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSGetSerial(PUCHAR pucBuffer, DWORD dwBufferLength);

// Restituisce il tempo trascorso dall'inizializzazione del driver RKS-USB. `bReInit` può essere utilizzato per resettare il tempo a zero.
// Può essere utilizzato per ottenere informazioni temporali relativamente precise; il tempo viene restituito in secondi.
cpp
extern "C" __declspec(dllexport) double RKSGetTimeSinceInit(BOOL bReInit = FALSE);

// Ottiene lo stato di errore dell'interfaccia RKS+CAN e lo memorizza in pbyStatus. Restituisce TRUE in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSCANGetLastStatus(BYTE* pbyStatus);

// Imposta l'hardware RKS+CAN in modalità di ascolto. Restituisce TRUE in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSCANSetListenOnly(BOOL bEnabled);

// Set time stamp mode of the RKS+CAN hardware. Esempio: 0, 1 o 2.
// Per i possibili valori, consultare la descrizione dell'interfaccia ASCII. Restituisce TRUE in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSCANSetTimeStamp(BYTE byMode);

// Ottiene la modalità timestamp. Restituisce TRUE in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSCANGetTimeStamp(BYTE* pbyMode);

// Ottiene la tensione di alimentazione dell'hardware RKS+CAN. Restituisce TRUE in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSCANGetUb(DWORD* pdwVoltage_mV);

// Imposta il filtraggio hardware CAN dell'hardware RKS+CAN. Restituisce TRUE in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSCANSetFilter(DWORD dwCode, DWORD dwMask);

// Apre il bus CAN con la velocità di trasmissione desiderata. Restituisce TRUE in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSCANOpen(DWORD dwBitrate);

// Chiude il bus CAN. Restituisce TRUE in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSCANClose(void);

// Ottieni un messaggio CAN dalla coda di ricezione. La funzione RKSCANOpen(...) deve essere stata chiamata in precedenza.
// Chiamata precedentemente. Restituisce TRUE in caso di successo.
cpp
extern "C" __declspec(dllexport) BOOL RKSCANRx(can_msg_t* pMsg);

// Aggiungi un messaggio CAN alla coda di trasmissione; RKSCANOpen(...) deve...
// Chiamata precedentemente. Restituisce TRUE in caso di successo.
extern "C" __declspec(dllexport) BOOL RKSCANTx(can_msg_t* pMsg);


L'esecuzione autonoma di programmi memorizzati sul RKS+CAN è prevista, ma al momento non è pienamente realizzabile a causa della mancanza di pin di input/output, poiché tutti gli input dovrebbero provenire tramite CAN o USB.

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


Tradotto il 05-09-2026, 3:41.
Torna su Profilo MP WWW
Bollwing



Iscritto il: 10/08/2013
Messaggi: 8
Karma: +0 / -0   Grazie, mi piace!


Supporto Premium

Messaggio13-12-2014, 15:58    Oggetto: Software RKS+CAN: App personalizzata Cita

Ciao Rainer,

Grazie per la tua risposta dettagliata.

Quale linguaggio di programmazione o ambiente di sviluppo integrato (IDE) intendi utilizzare per realizzare cosa esattamente?
Non è ancora definitivo. Si prevede di utilizzare Microsoft Visual Studio con C o C++.

In ogni caso, vorrei utilizzare l'hardware per due scopi diversi:
* Registrare i messaggi CAN con il software KCANMonitor e crearne di propri.
* Applicazione propria per PC.
- Simulazione di un dispositivo di controllo (ad esempio, in futuro per un progetto universitario: sblocco delle porte tramite il bus CAN).
- Sviluppo di centraline personalizzate. La funzionalità principale, a livello di comunicazione, dovrebbe essere prima implementata comodamente in linguaggio C. Successivamente, la funzionalità così ottenuta deve essere trasferita su un microcontrollore.

L'esecuzione autonoma di programmi memorizzati sul dispositivo RKS+CAN è prevista, ma al momento non è pienamente realizzabile a causa della mancanza di pin di input/output, poiché tutti gli ingressi dovrebbero provenire tramite CAN o USB.
Potrebbe avere senso, ad esempio, per salvare una sequenza di messaggi da inviare al sistema RKS+CAN a intervalli regolari (ad esempio, ogni 100 ms).
Allora, non sarebbe più necessario preoccuparsi del rispetto degli intervalli all'interno della propria applicazione. Su un sistema RKS+CAN, questo non sarebbe un problema (a condizione di avere ancora abbastanza timer disponibili icon_razz.gif).

ciao
Gerald.


Tradotto il 09-08-2026, 20:11.
Torna su Profilo MP

Valutazioni - Software RKS+CAN: App personalizzata

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
Articoli e argomenti simili
Argomento Forum
Nessun nuovo messaggio Testi personalizzati Audi A3 8PA FIS 2011 Hardware specifica del veicolo e assegnazione pin
Nessun nuovo messaggio Menu personalizzati per strumentazione W211 Classe E CAN Abitacolo / Comfort
Nessun nuovo messaggio Software per CAN Bus CAN Smalltalk, CAN News, Smalltalk
Vai a:  
Non puoi scrivere nuovi argomenti in questo forum.