421 lines
20 KiB
C
421 lines
20 KiB
C
#ifndef __CAN_DRV_EX_H__
|
|
#define __CAN_DRV_EX_H__
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define ERR_NO_CAN_DRIVER_LOAD -1000000
|
|
|
|
|
|
#define DEV_LIST_SHOW_TCAN_ONLY 0x01
|
|
#define DEV_LIST_SHOW_UNCONNECT 0x02
|
|
|
|
/***************************************************************/
|
|
/* Define Makros */
|
|
/***************************************************************/
|
|
#define CAN_FEATURE_LOM 0x0001 // Silent Mode (LOM = Listen only Mode)
|
|
#define CAN_FEATURE_ARD 0x0002 // Automatic Retransmission disable
|
|
#define CAN_FEATURE_TX_ACK 0x0004 // TX ACK (Gesendete Nachrichten bestätigen)
|
|
#define CAN_FEATURE_ERROR_MSGS 0x0008 // Error Messages Support
|
|
#define CAN_FEATURE_FD_HARDWARE 0x0010 // CAN-FD Hardware
|
|
#define CAN_FEATURE_FIFO_OV_MODE 0x0020 // FIFO OV Mode (Auto Clear, OV CAN Messages)
|
|
#define CAN_FEATURE_ECU_FLASH 0x0040 // Hardware beschleunigung für ISO-TP ECU-Flash programmierung
|
|
#define CAN_FEATURE_CAN_TEST 0x4000 // Tiny-CAN Tester Firmware
|
|
#define CAN_FEATURE_HW_TIMESTAMP 0x8000 // Hardware Time Stamp
|
|
|
|
// (V)alue (T)ype
|
|
#define VT_BYTE 0x01
|
|
#define VT_UBYTE 0x02
|
|
#define VT_WORD 0x03
|
|
#define VT_UWORD 0x04
|
|
#define VT_LONG 0x05
|
|
#define VT_ULONG 0x06
|
|
|
|
#define VT_BYTE_ARRAY 0x07
|
|
#define VT_UBYTE_ARRAY 0x08
|
|
#define VT_WORD_ARRAY 0x09
|
|
#define VT_UWORD_ARRAY 0x0A
|
|
#define VT_LONG_ARRAY 0x0B
|
|
#define VT_ULONG_ARRAY 0x0C
|
|
|
|
#define VT_BYTE_RANGE_ARRAY 0x0D
|
|
#define VT_UBYTE_RANGE_ARRAY 0x0E
|
|
#define VT_WORD_RANGE_ARRAY 0x0F
|
|
#define VT_UWORD_RANGE_ARRAY 0x10
|
|
#define VT_LONG_RANGE_ARRAY 0x11
|
|
#define VT_ULONG_RANGE_ARRAY 0x12
|
|
|
|
#define VT_HBYTE 0x40
|
|
#define VT_HWORD 0x41
|
|
#define VT_HLONG 0x42
|
|
|
|
#define VT_STREAM 0x80
|
|
#define VT_STRING 0x81
|
|
#define VT_POINTER 0x82
|
|
#define VT_REVISION 0x83
|
|
#define VT_DATE 0x84
|
|
|
|
// MHS (EV)ent (S)ource
|
|
#define MHS_EVS_STATUS 1
|
|
#define MHS_EVS_PNP 2
|
|
#define MHS_EVS_OBJECT 3
|
|
|
|
#define MHS_EVS_DIN 4
|
|
#define MHS_EVS_ENC 5
|
|
#define MHS_EVS_KEY 6
|
|
|
|
|
|
#define MHS_TERMINATE 0x80000000
|
|
|
|
|
|
// <*> neu
|
|
#define CAN_DATA_ST_IDLE 0
|
|
#define CAN_DATA_ST_RUN 1
|
|
#define CAN_DATA_ST_FINISH 2
|
|
#define CAN_DATA_ST_ERR_ACK_TIMEOUT -1
|
|
#define CAN_DATA_ST_ERR_NACK -2
|
|
#define CAN_DATA_ST_ERR_OVERFLOW -3
|
|
#define CAN_DATA_ST_ERR_ISOTP -4
|
|
|
|
// ISO-TP Flags
|
|
#define CAN_DATA_ISOTP_29BIT_ID 0x01
|
|
#define CAN_DATA_ISOTP_EXTEND_ADDR 0x02
|
|
#define CAN_DATA_ISOTP_TX_PADDING 0x04
|
|
#define CAN_DATA_ISOTP_LISTEN_MODE 0x08
|
|
|
|
|
|
// <*> neu
|
|
#define TCAN_INFO_KEY_HW_SNR 0x00000000 // Hardware Snr
|
|
#define TCAN_INFO_KEY_HW_ID_STR 0x00000001 // Hardware ID String
|
|
#define TCAN_INFO_KEY_HW_BIOS_STR 0x00000002 // Bios ID String
|
|
#define TCAN_INFO_KEY_HW_REVISION 0x00000003 // Hardware Revision
|
|
#define TCAN_INFO_KEY_HW_DATE 0x00000004 // Fertigungsdatum
|
|
#define TCAN_INFO_KEY_HW_VARIANT_STR 0x00000005 // Hardware Variante
|
|
|
|
#define TCAN_INFO_KEY_HW_CAN_COUNT 0x00008000 // Anzahl CAN Interfaces
|
|
#define TCAN_INFO_KEY_HW_CAN_DRV 0x00008010 // Treiber
|
|
#define TCAN_INFO_KEY_HW_CAN_OPTO 0x00008020 // Opto
|
|
#define TCAN_INFO_KEY_HW_CAN_TERM 0x00008030 // Term
|
|
#define TCAN_INFO_KEY_HW_CAN_HS 0x00008040 // HighSpeed
|
|
#define TCAN_INFO_KEY_HW_I2C_CNT 0x00008100 // Anzahl I2C Interfaces
|
|
#define TCAN_INFO_KEY_HW_SPI_CNT 0x00008200 // Anzahl SPI Interfaces
|
|
|
|
#define TCAN_INFO_KEY_FW_ID 0x00001000 // ID
|
|
#define TCAN_INFO_KEY_FW_ID_STR 0x00001001 // ID String
|
|
#define TCAN_INFO_KEY_FW_VERSION 0x00001002 // Version
|
|
#define TCAN_INFO_KEY_FW_VERSION_STR 0x00001003 // Version String
|
|
#define TCAN_INFO_KEY_FW_AUTOR 0x00001004 // Autor
|
|
#define TCAN_INFO_KEY_FW_OPTIOS 0x00001005 // Optionen
|
|
#define TCAN_INFO_KEY_FW_SNR 0x00001006 // Snr
|
|
|
|
#define TCAN_INFO_KEY_FW_CAN_FLAGS 0x00008001 // CAN Features Flags
|
|
#define TCAN_INFO_KEY_FW_CAN_FLAGS2 0x00008002 // CAN Features Flags2 // <*>
|
|
#define TCAN_INFO_KEY_FW_CAN_CLOCK1 0x00008003
|
|
#define TCAN_INFO_KEY_FW_CAN_CLOCK2 0x00008004
|
|
#define TCAN_INFO_KEY_FW_CAN_CLOCK3 0x00008005
|
|
#define TCAN_INFO_KEY_FW_CAN_CLOCK4 0x00008006
|
|
#define TCAN_INFO_KEY_FW_CAN_CLOCK5 0x00008007
|
|
#define TCAN_INFO_KEY_FW_CAN_CLOCK6 0x00008008
|
|
#define TCAN_INFO_KEY_FW_PUFFER_CNT 0x00008050 // Anzahl Interval Puffer
|
|
#define TCAN_INFO_KEY_FW_FILTER_CNT 0x00008060 // Anzahl Filter
|
|
|
|
#define TCAN_INFO_KEY_OPEN_INDEX 0x01000001
|
|
#define TCAN_INFO_KEY_HARDWARE_ID 0x01000002
|
|
#define TCAN_INFO_KEY_HARDWARE 0x01000003
|
|
#define TCAN_INFO_KEY_VENDOR 0x01000004
|
|
|
|
#define TCAN_INFO_KEY_DEVICE_NAME 0x01000005
|
|
#define TCAN_INFO_KEY_SERIAL_NUMBER 0x01000006
|
|
|
|
#define TCAN_INFO_KEY_CAN_FEATURES 0x01000007
|
|
#define TCAN_INFO_KEY_CAN_CHANNELS 0x01000008
|
|
#define TCAN_INFO_KEY_RX_FILTER_CNT 0x01000009
|
|
#define TCAN_INFO_KEY_TX_BUFFER_CNT 0x0100000A
|
|
#define TCAN_INFO_KEY_CAN_CLOCKS 0x0100000B
|
|
#define TCAN_INFO_KEY_CAN_CLOCK1 0x0100000C
|
|
#define TCAN_INFO_KEY_CAN_CLOCK2 0x0100000D
|
|
#define TCAN_INFO_KEY_CAN_CLOCK3 0x0100000E
|
|
#define TCAN_INFO_KEY_CAN_CLOCK4 0x0100000F
|
|
#define TCAN_INFO_KEY_CAN_CLOCK5 0x01000010
|
|
#define TCAN_INFO_KEY_CAN_CLOCK6 0x01000011
|
|
|
|
|
|
#define TCAN_INFO_KEY_API_VERSION 0x02000001
|
|
#define TCAN_INFO_KEY_DLL 0x02000002
|
|
#define TCAN_INFO_KEY_CFG_APP 0x02000003
|
|
|
|
/***************************************************************/
|
|
/* Typen */
|
|
/***************************************************************/
|
|
#pragma pack(push, 1)
|
|
struct TModulFeatures
|
|
{
|
|
uint32_t CanClock; // Clock-Frequenz des CAN-Controllers, muss nicht mit
|
|
// der Clock-Frequenz des Mikrocontrollers übereinstimmen
|
|
uint32_t Flags; // Unterstützte Features des Moduls:
|
|
// Bit 0 -> Silent Mode (LOM = Listen only Mode)
|
|
// 1 -> Automatic Retransmission disable
|
|
// 2 -> TX ACK (Gesendete Nachrichten bestätigen)
|
|
// 15 -> Hardware Time Stamp
|
|
uint32_t CanChannelsCount; // Anzahl der CAN Schnittstellen, reserviert für
|
|
// zukünftige Module mit mehr als einer Schnittstelle
|
|
uint32_t HwRxFilterCount; // Anzahl der zur Verfügung stehenden Receive-Filter
|
|
uint32_t HwTxPufferCount; // Anzahl der zur Verfügung stehenden Transmit Puffer mit Timer
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
#pragma pack(push, 1)
|
|
struct TCanDevicesList
|
|
{
|
|
uint32_t TCanIdx; // Ist das Device geöffnet ist der Wert auf dem Device-Index
|
|
// gesetzt, ansonsten ist der Wert auf "INDEX_INVALID" gesetzt.
|
|
uint32_t HwId; // Ein 32 Bit Schlüssel der die Hardware eindeutig Identifiziert.
|
|
// Manche Module müssen erst geöffnet werden damit dieser Wert
|
|
// gesetzt wird
|
|
char DeviceName[255]; // Nur Linux: entspricht den Device Namen des USB-Devices,
|
|
// z.B. /dev/ttyUSB0
|
|
char SerialNumber[16]; // Seriennummer des Moduls
|
|
char Description[64]; // Modul Bezeichnung, z.B. "Tiny-CAN IV-XL",
|
|
// muss in den USB-Controller programmiert sein,
|
|
// was zur Zeit nur bei den Modulen Tiny-CAN II-XL,
|
|
// IV-XL u. M1 der Fall ist.
|
|
struct TModulFeatures ModulFeatures; // Unterstützte Features des Moduls, nur gültig
|
|
// wenn HwId > 0
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
#pragma pack(push, 1)
|
|
struct TCanDeviceInfo
|
|
{
|
|
uint32_t HwId; // Ein 32 Bit Schlüssel der die Hardware eindeutig Identifiziert.
|
|
uint32_t FirmwareVersion; // Version der Firmware des Tiny-CAN Moduls
|
|
uint32_t FirmwareInfo; // Informationen zum Stand der Firmware Version
|
|
// 0 = Unbekannt
|
|
// 1 = Firmware veraltet, Device kann nicht geöffnet werden
|
|
// 2 = Firmware veraltet, Funktionsumfang eingeschränkt
|
|
// 3 = Firmware veraltet, keine Einschränkungen
|
|
// 4 = Firmware auf Stand
|
|
// 5 = Firmware neuer als Erwartet
|
|
char SerialNumber[16]; // Seriennummer des Moduls
|
|
char Description[64]; // Modul Bezeichnung, z.B. "Tiny-CAN IV-XL"
|
|
struct TModulFeatures ModulFeatures; // Unterstützte Features des Moduls
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
|
|
#pragma pack(push, 1)
|
|
struct TCanInfoVar // <*> geändert von TInfoVar in TCanInfoVar
|
|
{
|
|
uint32_t Key; // Variablen Schlüssel
|
|
uint32_t Type; // Variablen Type
|
|
uint32_t Size; // (Max)Größe der Variable in Byte
|
|
char Data[255]; // Wert der Variable
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
#pragma pack(push, 1)
|
|
struct TCanInfoVarList
|
|
{
|
|
uint32_t Size;
|
|
struct TCanInfoVar *List;
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
typedef struct _TMhsEvent TMhsEvent;
|
|
|
|
#pragma pack(push, 1)
|
|
struct _TMhsEvent
|
|
{
|
|
volatile uint32_t Events;
|
|
volatile uint32_t EventsMask;
|
|
volatile int32_t Waiting;
|
|
#ifdef __WIN32__
|
|
// ****** Windows
|
|
uint32_t WinEventCount;
|
|
HANDLE WinEvent[3];
|
|
CRITICAL_SECTION EventLock;
|
|
#else
|
|
// ****** Linux
|
|
pthread_cond_t Cond;
|
|
pthread_mutex_t Mutex;
|
|
#endif
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
/***************************************************************/
|
|
/* Callback Funktionstypen */
|
|
/***************************************************************/
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanGetDataBlockCB)(uint8_t *tx_data, uint16_t tx_limit, void *user_data);
|
|
|
|
#ifdef CAN_API_TRUE_FUNC
|
|
|
|
int32_t CanExGetDeviceCount(int32_t flags);
|
|
int32_t CanExGetDeviceList(struct TCanDevicesList **devices_list, int32_t flags);
|
|
int32_t CanExGetDeviceListPerform(int32_t flags);
|
|
int32_t CanExGetDeviceListGet(struct TCanDevicesList *item);
|
|
|
|
int32_t CanExGetDeviceInfo(uint32_t index, struct TCanDeviceInfo *device_info,
|
|
struct TCanInfoVar **hw_info, uint32_t *hw_info_size);
|
|
int32_t CanExGetDeviceInfoPerform(uint32_t index, struct TCanDeviceInfo *device_info);
|
|
int32_t CanExGetDeviceInfoGet(struct TCanInfoVar *item);
|
|
void CanExDataFree(void **data);
|
|
int32_t CanExCreateDevice(uint32_t *index, char *options);
|
|
int32_t CanExDestroyDevice(uint32_t *index);
|
|
int32_t CanExCreateFifo(uint32_t index, uint32_t size, TMhsEvent *event_obj, uint32_t event, uint32_t channels);
|
|
int32_t CanExBindFifo(uint32_t fifo_index, uint32_t device_index, uint32_t bind);
|
|
TMhsEvent *CanExCreateEvent(void);
|
|
int32_t CanExSetObjEvent(uint32_t index, uint32_t source, TMhsEvent *event_obj, uint32_t event);
|
|
void CanExSetEvent(TMhsEvent *event_obj, uint32_t event);
|
|
void CanExSetEventAll(uint32_t event);
|
|
void CanExResetEvent(TMhsEvent *event_obj, uint32_t event);
|
|
uint32_t CanExWaitForEvent(TMhsEvent *event_obj, uint32_t timeout);
|
|
int32_t CanExInitDriver(char *options);
|
|
int32_t CanExSetOptions(uint32_t index, char *options);
|
|
int32_t CanExSetAsByte(uint32_t index, const char *name, char value);
|
|
int32_t CanExSetAsWord(uint32_t index, const char *name, int16_t value);
|
|
int32_t CanExSetAsLong(uint32_t index, const char *name, int32_t value);
|
|
int32_t CanExSetAsUByte(uint32_t index, const char *name, unsigned char value);
|
|
int32_t CanExSetAsUWord(uint32_t index, const char *name, uint16_t value);
|
|
int32_t CanExSetAsULong(uint32_t index, const char *name, uint32_t value);
|
|
int32_t CanExSetAsString(uint32_t index, const char *name, char *value);
|
|
int32_t CanExGetAsByte(uint32_t index, const char *name, char *value);
|
|
int32_t CanExGetAsWord(uint32_t index, const char *name, int16_t *value);
|
|
int32_t CanExGetAsLong(uint32_t index, const char *name, int32_t *value);
|
|
int32_t CanExGetAsUByte(uint32_t index, const char *name, unsigned char *value);
|
|
int32_t CanExGetAsUWord(uint32_t index, const char *name, uint16_t *value);
|
|
int32_t CanExGetAsULong(uint32_t index, const char *name, uint32_t *value);
|
|
int32_t CanExGetAsString(uint32_t index, const char *name, char **str);
|
|
int32_t CanExGetAsStringCopy(uint32_t index, const char *name, char *dest, uint32_t *dest_size);
|
|
// **** CAN-FD
|
|
int32_t CanFdTransmit(uint32_t index, struct TCanFdMsg *fd_msg, int32_t count);
|
|
int32_t CanFdReceive(uint32_t index, struct TCanFdMsg *fd_msg, int32_t count);
|
|
// *** <*> neu
|
|
int32_t CanExSetAsData(uint32_t index, const char *name, void *data, uint32_t size);
|
|
int32_t CanExSetDataPtr(uint32_t index, const char *name, void *data_ptr, uint32_t size);
|
|
int32_t CanExSetDataBlockCB(uint32_t index, TCanGetDataBlockCB func, void *user_data);
|
|
|
|
int32_t CanExGetInfoList(uint32_t dev_idx, const char *name, struct TCanInfoVarList **devices_info, int32_t flags); // <*> neu
|
|
int32_t CanExGetInfoListPerform(uint32_t dev_idx, const char *name, int32_t flags);
|
|
int32_t CanExGetInfoListGet(uint32_t list_idx, struct TCanInfoVar *item);
|
|
|
|
#endif
|
|
|
|
#if !(defined(CAN_API_TRUE_FUNC)) || defined(CAN_DRV_INCLUDE)
|
|
|
|
/***************************************************************/
|
|
/* Funktionstypen */
|
|
/***************************************************************/
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetDeviceCount)(int32_t flags);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetDeviceList)(struct TCanDevicesList **devices_list, int32_t flags);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetDeviceListPerform)(int32_t flags);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetDeviceListGet)(struct TCanDevicesList *item);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetDeviceInfo)(uint32_t index, struct TCanDeviceInfo *device_info,
|
|
struct TCanInfoVar **hw_info, uint32_t *hw_info_size);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetDeviceInfoPerform)(uint32_t index, struct TCanDeviceInfo *device_info);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetDeviceInfoGet)(struct TCanInfoVar *item);
|
|
typedef void (DRV_CALLBACK_TYPE *TCanExDataFree)(void **data);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExCreateDevice)(uint32_t *index, char *options);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExDestroyDevice)(uint32_t *index);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExCreateFifo)(uint32_t index, uint32_t size, TMhsEvent *event_obj,
|
|
uint32_t event, uint32_t channels);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExBindFifo)(uint32_t fifo_index, uint32_t device_index,
|
|
uint32_t bind);
|
|
typedef TMhsEvent * (DRV_CALLBACK_TYPE *TCanExCreateEvent)(void);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExSetObjEvent)(uint32_t index, uint32_t source, TMhsEvent *event_obj, uint32_t event);
|
|
typedef void (DRV_CALLBACK_TYPE *TCanExSetEvent)(TMhsEvent *event_obj, uint32_t event);
|
|
typedef void (DRV_CALLBACK_TYPE *TCanExSetEventAll)(uint32_t event);
|
|
typedef void (DRV_CALLBACK_TYPE *TCanExResetEvent)(TMhsEvent *event_obj, uint32_t event);
|
|
typedef uint32_t (DRV_CALLBACK_TYPE *TCanExWaitForEvent)(TMhsEvent *event_obj, uint32_t timeout);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExInitDriver)(char *options);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExSetOptions)(uint32_t index, const char *options);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExSetAsByte)(uint32_t index, const char *name, char value);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExSetAsWord)(uint32_t index, const char *name, int16_t value);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExSetAsLong)(uint32_t index, const char *name, int32_t value);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExSetAsUByte)(uint32_t index, const char *name, unsigned char value);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExSetAsUWord)(uint32_t index, const char *name, uint16_t value);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExSetAsULong)(uint32_t index, const char *name, uint32_t value);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExSetAsString)(uint32_t index, const char *name, char *value);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetAsByte)(uint32_t index, const char *name, char *value);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetAsWord)(uint32_t index, const char *name, int16_t *value);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetAsLong)(uint32_t index, const char *name, int32_t *value);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetAsUByte)(uint32_t index, const char *name, unsigned char *value);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetAsUWord)(uint32_t index, const char *name, uint16_t *value);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetAsULong)(uint32_t index, const char *name, uint32_t *value);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetAsString)(uint32_t index, const char *name, char **str);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetAsStringCopy)(uint32_t index, const char *name, char *dest, uint32_t *dest_size);
|
|
// ****** CAN-FD
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanFdTransmit)(uint32_t index, struct TCanFdMsg *fd_msg, int32_t count);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanFdReceive)(uint32_t index, struct TCanFdMsg *fd_msg, int32_t count);
|
|
// ***** <*>
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExSetAsData)(uint32_t index, const char *name, void *data, uint32_t size);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExSetDataPtr)(uint32_t index, const char *name, void *data_ptr, uint32_t size);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExSetDataBlockCB)(uint32_t index, TCanGetDataBlockCB func, void *user_data);
|
|
// ***** <*> neu 2
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetInfoList)(uint32_t dev_idx, const char *name, struct TCanInfoVarList **devices_info, int32_t flags); // <*> neu
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetInfoListPerform)(uint32_t dev_idx, const char *name, int32_t flags);
|
|
typedef int32_t (DRV_CALLBACK_TYPE *TCanExGetInfoListGet)(uint32_t list_idx, struct TCanInfoVar *item);
|
|
|
|
#endif
|
|
|
|
#ifndef CAN_API_TRUE_FUNC
|
|
/***************************************************************/
|
|
/* Tiny-CAN API Funktionen */
|
|
/***************************************************************/
|
|
extern TCanExGetDeviceCount CanExGetDeviceCount;
|
|
extern TCanExGetDeviceList CanExGetDeviceList;
|
|
extern TCanExGetDeviceListPerform CanExGetDeviceListPerform;
|
|
extern TCanExGetDeviceListGet CanExGetDeviceListGet;
|
|
extern TCanExGetDeviceInfo CanExGetDeviceInfo;
|
|
extern TCanExGetDeviceInfoPerform CanExGetDeviceInfoPerform;
|
|
extern TCanExGetDeviceInfoGet CanExGetDeviceInfoGet;
|
|
extern TCanExDataFree CanExDataFree;
|
|
extern TCanExCreateDevice CanExCreateDevice;
|
|
extern TCanExDestroyDevice CanExDestroyDevice;
|
|
extern TCanExCreateFifo CanExCreateFifo;
|
|
extern TCanExBindFifo CanExBindFifo;
|
|
extern TCanExCreateEvent CanExCreateEvent;
|
|
extern TCanExSetObjEvent CanExSetObjEvent;
|
|
extern TCanExSetEvent CanExSetEvent;
|
|
extern TCanExSetEventAll CanExSetEventAll;
|
|
extern TCanExResetEvent CanExResetEvent;
|
|
extern TCanExWaitForEvent CanExWaitForEvent;
|
|
extern TCanExInitDriver CanExInitDriver;
|
|
extern TCanExSetOptions CanExSetOptions;
|
|
extern TCanExSetAsByte CanExSetAsByte;
|
|
extern TCanExSetAsWord CanExSetAsWord;
|
|
extern TCanExSetAsLong CanExSetAsLong;
|
|
extern TCanExSetAsUByte CanExSetAsUByte;
|
|
extern TCanExSetAsUWord CanExSetAsUWord;
|
|
extern TCanExSetAsULong CanExSetAsULong;
|
|
extern TCanExSetAsString CanExSetAsString;
|
|
extern TCanExGetAsByte CanExGetAsByte;
|
|
extern TCanExGetAsWord CanExGetAsWord;
|
|
extern TCanExGetAsLong CanExGetAsLong;
|
|
extern TCanExGetAsUByte CanExGetAsUByte;
|
|
extern TCanExGetAsUWord CanExGetAsUWord;
|
|
extern TCanExGetAsULong CanExGetAsULong;
|
|
extern TCanExGetAsString CanExGetAsString;
|
|
extern TCanExGetAsStringCopy CanExGetAsStringCopy;
|
|
|
|
// ****** CAN-FD
|
|
extern TCanFdTransmit CanFdTransmit;
|
|
extern TCanFdReceive CanFdReceive;
|
|
// **** <*> neu
|
|
extern TCanExSetAsData CanExSetAsData;
|
|
extern TCanExSetDataPtr CanExSetDataPtr;
|
|
extern TCanExSetDataBlockCB CanExSetDataBlockCB;
|
|
|
|
extern TCanExGetInfoList CanExGetInfoList;
|
|
extern TCanExGetInfoListPerform CanExGetInfoListPerform;
|
|
extern TCanExGetInfoListGet CanExGetInfoListGet;
|
|
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|