166 lines
7.8 KiB
C
166 lines
7.8 KiB
C
|
|
/**************************************************************************************
|
||
|
|
|
||
|
|
Copyright (c) Hilscher Gesellschaft fuer Systemautomation mbH. All Rights Reserved.
|
||
|
|
|
||
|
|
***************************************************************************************
|
||
|
|
|
||
|
|
$Id: cifXToolkit.h 14803 2023-05-10 09:50:40Z RMayer $:
|
||
|
|
|
||
|
|
Description:
|
||
|
|
cifX toolkit function declaration.
|
||
|
|
|
||
|
|
Changes:
|
||
|
|
Date Description
|
||
|
|
-----------------------------------------------------------------------------------
|
||
|
|
2023-04-26 - Moved DEV function definitions to cifXHWFunctions.h
|
||
|
|
- Check parameter macros from cifXFunctions.c moved here
|
||
|
|
2021-06-14 - Added new user function USER_GetCachedIOBufferMode()
|
||
|
|
2018-10-10 - Updated header and definitions to new Hilscher defines
|
||
|
|
- Added chip type definitions for netX90/netX4000 (eCHIP_TYPE_NETX90 / eCHIP_TYPE_NETX4000)
|
||
|
|
- Derived from cifX Toolkit V1.6.0.0
|
||
|
|
|
||
|
|
**************************************************************************************/
|
||
|
|
|
||
|
|
/*****************************************************************************/
|
||
|
|
/*! \file *
|
||
|
|
* cifX toolkit function declaration */
|
||
|
|
/*****************************************************************************/
|
||
|
|
|
||
|
|
#ifndef CIFX_TOOLKIT__H
|
||
|
|
#define CIFX_TOOLKIT__H
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
extern "C"
|
||
|
|
{
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#include "cifXHWFunctions.h"
|
||
|
|
#include "Hil_FileHeaderV3.h"
|
||
|
|
|
||
|
|
#ifndef min
|
||
|
|
#define min(a,b) ((a > b)? b : a)
|
||
|
|
#endif
|
||
|
|
|
||
|
|
/*****************************************************************************/
|
||
|
|
/*! \addtogroup CIFX_TK_GLOBAL_API Toolkit global API functions */
|
||
|
|
/*! \{ */
|
||
|
|
/*****************************************************************************/
|
||
|
|
|
||
|
|
#define TOOLKIT_VERSION "cifX Toolkit 2.8.0.1"
|
||
|
|
|
||
|
|
/* Toolkit Global Functions */
|
||
|
|
int32_t cifXTKitInit (void);
|
||
|
|
void cifXTKitDeinit (void);
|
||
|
|
int32_t cifXTKitAddDevice (PDEVICEINSTANCE ptDevInstance);
|
||
|
|
int32_t cifXTKitRemoveDevice (char* szBoard, int fForceRemove);
|
||
|
|
|
||
|
|
void cifXTKitDisableHWInterrupt(PDEVICEINSTANCE ptDevInstance);
|
||
|
|
void cifXTKitEnableHWInterrupt(PDEVICEINSTANCE ptDevInstance);
|
||
|
|
|
||
|
|
void cifXTKitCyclicTimer (void);
|
||
|
|
|
||
|
|
/*****************************************************************************/
|
||
|
|
/*! \} */
|
||
|
|
/*****************************************************************************/
|
||
|
|
|
||
|
|
/*****************************************************************************/
|
||
|
|
/*! \addtogroup CIFX_TK_STRUCTURE Toolkit Structure Definitions
|
||
|
|
* \{ */
|
||
|
|
/*****************************************************************************/
|
||
|
|
typedef struct DEVICE_CHANNEL_DATAtag
|
||
|
|
{
|
||
|
|
int fModuleLoaded; /* Module loaded */
|
||
|
|
int fCNFLoaded; /* CNF file loaded */
|
||
|
|
char szFileName[16]; /* Module short file name 8.3 */
|
||
|
|
uint32_t ulFileSize;
|
||
|
|
} DEVICE_CHANNEL_DATA;
|
||
|
|
|
||
|
|
typedef struct DEVICE_CHANNEL_CONFIGtag
|
||
|
|
{
|
||
|
|
int fFWLoaded; /* FW file loaded */
|
||
|
|
DEVICE_CHANNEL_DATA atChannelData[CIFX_MAX_NUMBER_OF_CHANNELS];
|
||
|
|
} DEVICE_CHANNEL_CONFIG, *PDEVICE_CHANNEL_CONFIG;
|
||
|
|
|
||
|
|
#define CIFXTKIT_DOWNLOAD_NONE 0x00 /*!< Set when file download was skipped. Only valid if CIFX_NO_ERROR is returned */
|
||
|
|
#define CIFXTKIT_DOWNLOAD_FIRMWARE 0x01 /*!< Successfully downloaded a firmware */
|
||
|
|
#define CIFXTKIT_DOWNLOAD_MODULE 0x02 /*!< Successfully downloaded a firmware */
|
||
|
|
#define CIFXTKIT_DOWNLOAD_EXECUTED 0x80 /*!< Download was executed */
|
||
|
|
|
||
|
|
/*****************************************************************************/
|
||
|
|
/*! Global driver information structure used internally in the toolkit */
|
||
|
|
/*****************************************************************************/
|
||
|
|
typedef struct TKIT_DRIVER_INFORMATIONtag
|
||
|
|
{
|
||
|
|
uint32_t ulOpenCount; /*!< Number of xDriverOpen calls */
|
||
|
|
int fInitialized; /*!< !=1 if the toolkit was initialized successfully */
|
||
|
|
|
||
|
|
} TKIT_DRIVER_INFORMATION;
|
||
|
|
|
||
|
|
/*****************************************************************************/
|
||
|
|
/*! Structure passed to USER implemented function, for reading device *
|
||
|
|
* specific configuration options */
|
||
|
|
/*****************************************************************************/
|
||
|
|
typedef struct CIFX_DEVICE_INFORMATIONtag
|
||
|
|
{
|
||
|
|
uint32_t ulDeviceNumber; /*!< Device number of the cifX card */
|
||
|
|
uint32_t ulSerialNumber; /*!< Serial number */
|
||
|
|
uint32_t ulChannel; /*!< Channel number (0..6) */
|
||
|
|
PDEVICEINSTANCE ptDeviceInstance; /*!< Pointer to device instance */
|
||
|
|
|
||
|
|
} CIFX_DEVICE_INFORMATION, *PCIFX_DEVICE_INFORMATION;
|
||
|
|
|
||
|
|
/*****************************************************************************/
|
||
|
|
/*! Structure passed to USER implemented function, for getting device *
|
||
|
|
* specific configuration files */
|
||
|
|
/*****************************************************************************/
|
||
|
|
typedef struct CIFX_FILE_INFORMATIONtag
|
||
|
|
{
|
||
|
|
char szShortFileName[16]; /*!< Short filename (8.3) of the file */
|
||
|
|
char szFullFileName[CIFX_MAX_FILE_NAME_LENGTH]; /*!< Full filename (including path) to file */
|
||
|
|
} CIFX_FILE_INFORMATION, *PCIFX_FILE_INFORMATION;
|
||
|
|
|
||
|
|
#ifdef CIFX_TOOLKIT_PARAMETER_CHECK
|
||
|
|
#define CHECK_POINTER(param) if ((void*)NULL == param) return CIFX_INVALID_POINTER;
|
||
|
|
#define CHECK_DRIVERHANDLE(handle) if (&g_tDriverInfo != handle) return CIFX_INVALID_HANDLE;
|
||
|
|
#define CHECK_SYSDEVICEHANDLE(handle) if (CIFX_NO_ERROR != CheckSysdeviceHandle(handle)) return CIFX_INVALID_HANDLE;
|
||
|
|
#define CHECK_CHANNELHANDLE(handle) if (CIFX_NO_ERROR != CheckChannelHandle(handle)) return CIFX_INVALID_HANDLE;
|
||
|
|
#else
|
||
|
|
#define CHECK_POINTER(param)
|
||
|
|
#define CHECK_DRIVERHANDLE(handle) UNREFERENCED_PARAMETER(handle)
|
||
|
|
#define CHECK_SYSDEVICEHANDLE(handle)
|
||
|
|
#define CHECK_CHANNELHANDLE(handle)
|
||
|
|
#endif
|
||
|
|
|
||
|
|
/*****************************************************************************/
|
||
|
|
/*! \} */
|
||
|
|
/*****************************************************************************/
|
||
|
|
|
||
|
|
/******************************************************************************
|
||
|
|
* Functions to be implemented by USER *
|
||
|
|
******************************************************************************/
|
||
|
|
|
||
|
|
void USER_GetBootloaderFile (PDEVICEINSTANCE ptDevInstance, PCIFX_FILE_INFORMATION ptFileInfo);
|
||
|
|
int USER_GetOSFile (PCIFX_DEVICE_INFORMATION ptDevInfo, PCIFX_FILE_INFORMATION ptFileInfo);
|
||
|
|
|
||
|
|
uint32_t USER_GetFirmwareFileCount (PCIFX_DEVICE_INFORMATION ptDevInfo);
|
||
|
|
int USER_GetFirmwareFile (PCIFX_DEVICE_INFORMATION ptDevInfo, uint32_t ulIdx, PCIFX_FILE_INFORMATION ptFileInfo);
|
||
|
|
uint32_t USER_GetConfigurationFileCount(PCIFX_DEVICE_INFORMATION ptDevInfo);
|
||
|
|
int USER_GetConfigurationFile (PCIFX_DEVICE_INFORMATION ptDevInfo, uint32_t ulIdx, PCIFX_FILE_INFORMATION ptFileInfo);
|
||
|
|
|
||
|
|
int USER_GetWarmstartParameters (PCIFX_DEVICE_INFORMATION ptDevInfo, CIFX_PACKET* ptPacket);
|
||
|
|
void USER_GetAliasName (PCIFX_DEVICE_INFORMATION ptDevInfo, uint32_t ulMaxLen, char* szAlias);
|
||
|
|
int USER_GetInterruptEnable (PCIFX_DEVICE_INFORMATION ptDevInfo);
|
||
|
|
int USER_GetDMAMode (PCIFX_DEVICE_INFORMATION ptDevInfo);
|
||
|
|
int USER_GetCachedIOBufferMode (PCIFX_DEVICE_INFORMATION ptDevInfo);
|
||
|
|
|
||
|
|
void USER_Trace (PDEVICEINSTANCE ptDevInstance, uint32_t ulTraceLevel, const char* szFormat, ...);
|
||
|
|
|
||
|
|
extern uint32_t g_ulTraceLevel;
|
||
|
|
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif /* CIFX_TOOLKIT__H */
|