spw_usb_api.h
326 lines
| 16.4 KiB
| text/x-c
|
CLexer
r0 | /******************************************************************************/ | |||
/* */ | ||||
/* spw_usb_api.h */ | ||||
/* */ | ||||
/* Declaration of the functions provided by the SpaceWire USB API Library */ | ||||
/* for the SpaceWire USB devices. */ | ||||
/* */ | ||||
/* Version 2.61, September 21st 2012 */ | ||||
/* */ | ||||
/* Version 2.61, 21/09/12 */ | ||||
/* ====================== */ | ||||
/* Added support for STAR Fire and WBS II. */ | ||||
/* */ | ||||
/* Version 2.60, 04/01/12 */ | ||||
/* ====================== */ | ||||
/* Added support for EGSE and SPLT. */ | ||||
/* */ | ||||
/* Version 2.59, 15/08/11 */ | ||||
/* ====================== */ | ||||
/* Added support for RTC. */ | ||||
/* */ | ||||
/* Version 2.5, 12/10/10 */ | ||||
/* ===================== */ | ||||
/* Added support for Link Analyser Mk2. */ | ||||
/* */ | ||||
/* Version 1.5, 12/03/10 */ | ||||
/* ===================== */ | ||||
/* Added GetFirmwareVersionExtended and restored GetFirmwareVersion to */ | ||||
/* its original form. */ | ||||
/* */ | ||||
/* Version 1.4, 03/03/10 */ | ||||
/* ===================== */ | ||||
/* Fixed bug waiting on a receive to complete. */ | ||||
/* Added support for multiple send channels. */ | ||||
/* Added functions to get serial number and product ID. */ | ||||
/* */ | ||||
/* Version 1.3, 26/2/09 */ | ||||
/* ==================== */ | ||||
/* Updated the calling convention used in the function declaration to */ | ||||
/* __stdcall on Windows. */ | ||||
/* */ | ||||
/* Version 1.2, 21/1/09 */ | ||||
/* ==================== */ | ||||
/* Updated to compile on both Windows and Linux. */ | ||||
/* */ | ||||
/* Version 1.1, 8/10/06 */ | ||||
/* ==================== */ | ||||
/* Linux release. */ | ||||
/* */ | ||||
/* Version 1.0, 24/4/06 */ | ||||
/* ==================== */ | ||||
/* Initial version. */ | ||||
/* */ | ||||
/* Copyright (2012), STAR-Dundee Ltd., */ | ||||
/* STAR House, */ | ||||
/* 166 Nethergate, */ | ||||
/* Dundee, DD1 4EE, */ | ||||
/* Scotland, UK. */ | ||||
/* e-mail: support@star-dundee.com */ | ||||
/* */ | ||||
/******************************************************************************/ | ||||
#ifndef SPACEWIRE_USB_API_H | ||||
#define SPACEWIRE_USB_API_H | ||||
#ifdef __cplusplus | ||||
extern "C" { | ||||
#endif | ||||
#include "spacewire_usb.h" | ||||
#if defined(_WIN32) || defined(_WIN64) | ||||
/* Windows specifc functions and macros */ | ||||
#ifdef SPACEWIREUSBAPI_EXPORTS | ||||
#define SPACEWIREUSB_API __declspec(dllexport) | ||||
#else | ||||
#define SPACEWIREUSB_API __declspec(dllimport) | ||||
#endif | ||||
#ifdef _WIN64 | ||||
#define SPW_USB_API_CC | ||||
#else | ||||
#define SPW_USB_API_CC __stdcall | ||||
#endif /* WIN64 */ | ||||
#include "windows.h" | ||||
#else /* _WIN32 */ | ||||
/* Linux specific functions and macros */ | ||||
#define SPACEWIREUSB_API | ||||
#define SPW_USB_API_CC | ||||
#endif /* _WIN32 */ | ||||
/* Functions provided by the API */ | ||||
/* General functions */ | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_Open( | ||||
star_device_handle *phDevice, int nDeviceNum); | ||||
SPACEWIREUSB_API void SPW_USB_API_CC USBSpaceWire_Close( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API U8 SPW_USB_API_CC USBSpaceWire_CountDevices(); | ||||
SPACEWIREUSB_API U32 SPW_USB_API_CC USBSpaceWire_ListDevices(); | ||||
SPACEWIREUSB_API double SPW_USB_API_CC USBSpaceWire_GetDriverVersion(); | ||||
SPACEWIREUSB_API double SPW_USB_API_CC USBSpaceWire_GetIFVersion(); | ||||
SPACEWIREUSB_API double SPW_USB_API_CC USBSpaceWire_GetAPIVersion(); | ||||
SPACEWIREUSB_API void SPW_USB_API_CC USBSpaceWire_SetTimeout( | ||||
star_device_handle hDevice, double timeout); | ||||
SPACEWIREUSB_API double SPW_USB_API_CC USBSpaceWire_GetTimeout( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API U8 SPW_USB_API_CC USBSpaceWire_GetSpaceWireAddress( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API void SPW_USB_API_CC USBSpaceWire_SetSpaceWireAddress( | ||||
star_device_handle hDevice, U8 address); | ||||
SPACEWIREUSB_API U16 SPW_USB_API_CC USBSpaceWire_GetFirmwareVersion( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_GetFirmwareVersionExtended( | ||||
star_device_handle hDevice, SPACEWIRE_FIRMWARE_VERSION *pVersion); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_ClearEndpoints( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_ResetDevice( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API SPACEWIRE_DEVICE_TYPE SPW_USB_API_CC | ||||
USBSpaceWire_GetDeviceType(star_device_handle hDevice); | ||||
SPACEWIREUSB_API SPACEWIRE_DEVICE_TYPE SPW_USB_API_CC | ||||
USBSpaceWire_GetUnopenedDeviceType(int deviceNum); | ||||
SPACEWIREUSB_API U16 SPW_USB_API_CC USBSpaceWire_GetDeviceProductID( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API U16 SPW_USB_API_CC USBSpaceWire_GetUnopenedDeviceProductID( | ||||
int deviceNum); | ||||
SPACEWIREUSB_API void SPW_USB_API_CC USBSpaceWire_EnableHeaderMode( | ||||
star_device_handle hDevice, char enable); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_IsHeaderModeEnabled( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API void SPW_USB_API_CC USBSpaceWire_EnableNetworkMode( | ||||
star_device_handle hDevice, char enable); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_IsNetworkModeEnabled( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API double SPW_USB_API_CC USBSpaceWire_GetUSBVersion( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API void SPW_USB_API_CC USBSpaceWire_GetAPIString(char *str); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_GetSerialNumber( | ||||
star_device_handle hDevice, U8 pSerialNumber[11]); | ||||
/* Receive functions */ | ||||
SPACEWIREUSB_API unsigned long SPW_USB_API_CC | ||||
USBSpaceWire_GetDriverDroppedPackets(star_device_handle hDevice); | ||||
SPACEWIREUSB_API unsigned long SPW_USB_API_CC | ||||
USBSpaceWire_GetDriverDroppedBytes(star_device_handle hDevice); | ||||
SPACEWIREUSB_API unsigned long SPW_USB_API_CC USBSpaceWire_GetDroppedPackets( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API unsigned long SPW_USB_API_CC USBSpaceWire_GetDroppedBytes( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_RegisterReceiveOnPort( | ||||
star_device_handle hDevice, U8 port); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_UnregisterReceiveOnPort( | ||||
star_device_handle hDevice, U8 port); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_RegisterReceiveOnAllPorts( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_UnregisterReceiveOnAllPorts( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC USBSpaceWire_ReadPackets( | ||||
star_device_handle hDevice, void *pBuffer, U32 nBufferSize, | ||||
U32 nPacketNum, char bWait, PUSB_SPACEWIRE_PACKET_PROPERTIES properties, | ||||
USB_SPACEWIRE_ID *identifier); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_FreeRead( | ||||
star_device_handle hDevice, USB_SPACEWIRE_ID identifier); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_FreeAllReads( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC USBSpaceWire_GetReadStatus( | ||||
star_device_handle hDevice, USB_SPACEWIRE_ID identifier); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC | ||||
USBSpaceWire_WaitOnReadCompleting(star_device_handle hDevice, | ||||
USB_SPACEWIRE_ID identifier, char bWaitIndefinitely); | ||||
SPACEWIREUSB_API void SPW_USB_API_CC USBSpaceWire_EnableReadThrottling( | ||||
star_device_handle hDevice, char enable); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_IsReadThrottling( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API void SPW_USB_API_CC USBSpaceWire_SetDriverReadBufferSize( | ||||
star_device_handle hDevice, unsigned long nBufferSize); | ||||
SPACEWIREUSB_API unsigned long SPW_USB_API_CC | ||||
USBSpaceWire_GetDriverReadBufferSize(star_device_handle hDevice); | ||||
SPACEWIREUSB_API void SPW_USB_API_CC USBSpaceWire_SetDriverReadStructsNum( | ||||
star_device_handle hDevice, unsigned long nStructsNum); | ||||
SPACEWIREUSB_API unsigned long SPW_USB_API_CC | ||||
USBSpaceWire_GetDriverReadStructsNum(star_device_handle hDevice); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_WaitOnReadPacketAvailable( | ||||
star_device_handle hDevice, double timeout); | ||||
SPACEWIREUSB_API U32 SPW_USB_API_CC USBSpaceWire_GetReadLength( | ||||
PUSB_SPACEWIRE_PACKET_PROPERTIES pProperties, U32 nPacketNum); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_EOP_TYPE SPW_USB_API_CC | ||||
USBSpaceWire_GetReadEOPStatus(PUSB_SPACEWIRE_PACKET_PROPERTIES pProperties, | ||||
U32 nPacketNum); | ||||
SPACEWIREUSB_API SPACEWIRE_TRAFFIC_TYPE SPW_USB_API_CC | ||||
USBSpaceWire_GetReadTrafficType( | ||||
PUSB_SPACEWIRE_PACKET_PROPERTIES pProperties, U32 nPacketNum); | ||||
/* Send functions */ | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_GetNumberOfSendChannels( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC USBSpaceWire_SendPacketTo( | ||||
star_device_handle hDevice, void *pBuffer, U32 nBufferSize, | ||||
U8 *pAddress, U32 nAddressLen, char bWait, | ||||
USB_SPACEWIRE_ID *identifier); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC | ||||
USBSpaceWire_SendPacketToOverChannel(star_device_handle hDevice, U8 channel, | ||||
void *pBuffer, U32 nBufferSize, U8 *pAddress, U32 nAddressLen, | ||||
char bWait, USB_SPACEWIRE_ID *identifier); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC | ||||
USBSpaceWire_SendMultiplePacketsTo(star_device_handle hDevice, | ||||
void *pBuffer, U32 nPacketSize, U32 nBufferSize, U8 *pAddress, | ||||
U32 nAddressLen, char bWait, USB_SPACEWIRE_ID *identifier); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC | ||||
USBSpaceWire_SendMultiplePacketsToOverChannel(star_device_handle hDevice, | ||||
U8 channel, void *pBuffer, U32 nPacketSize, U32 nBufferSize, | ||||
U8 *pAddress, U32 nAddressLen, char bWait, | ||||
USB_SPACEWIRE_ID *identifier); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC | ||||
USBSpaceWire_SendMultiplePacketLengthsTo(star_device_handle hDevice, | ||||
void **pBuffers, U32 *pPacketSizes, U32 nNumberOfPackets, U8 *pAddress, | ||||
U32 nAddressLen, char bWait, USB_SPACEWIRE_ID *identifier); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC | ||||
USBSpaceWire_SendMultiplePacketLengthsToOverChannel( | ||||
star_device_handle hDevice, U8 channel, void **pBuffers, | ||||
U32 *pPacketSizes, U32 nNumberOfPackets, U8 *pAddress, U32 nAddressLen, | ||||
char bWait, USB_SPACEWIRE_ID *identifier); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC USBSpaceWire_SendPacket( | ||||
star_device_handle hDevice, void *pBuffer, U32 nBufferSize, char bWait, | ||||
USB_SPACEWIRE_ID *identifier); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC | ||||
USBSpaceWire_SendPacketOverChannel(star_device_handle hDevice, U8 channel, | ||||
void *pBuffer, U32 nBufferSize, char bWait, | ||||
USB_SPACEWIRE_ID *identifier); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC | ||||
USBSpaceWire_SendMultiplePackets(star_device_handle hDevice, void *pBuffer, | ||||
U32 nPacketSize, U32 nBufferSize, char bWait, | ||||
USB_SPACEWIRE_ID *identifier); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC | ||||
USBSpaceWire_SendMultiplePacketsOverChannel(star_device_handle hDevice, | ||||
U8 channel, void *pBuffer, U32 nPacketSize, U32 nBufferSize, char bWait, | ||||
USB_SPACEWIRE_ID *identifier); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC | ||||
USBSpaceWire_SendMultiplePacketLengths(star_device_handle hDevice, | ||||
void **pBuffers, U32 *pPacketSizes, U32 nNumberOfPackets, char bWait, | ||||
USB_SPACEWIRE_ID *identifier); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC | ||||
USBSpaceWire_SendMultiplePacketLengthsOverChannel( | ||||
star_device_handle hDevice, U8 channel, void **pBuffers, | ||||
U32 *pPacketSizes, U32 nNumberOfPackets, char bWait, | ||||
USB_SPACEWIRE_ID *identifier); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_FreeSend( | ||||
star_device_handle hDevice, USB_SPACEWIRE_ID identifier); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_FreeAllSends( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC USBSpaceWire_GetSendStatus( | ||||
star_device_handle hDevice, USB_SPACEWIRE_ID identifier); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC | ||||
USBSpaceWire_WaitOnSendCompleting(star_device_handle hDevice, | ||||
USB_SPACEWIRE_ID identifier, char bWaitIndefinitely); | ||||
SPACEWIREUSB_API U32 SPW_USB_API_CC USBSpaceWire_GetSendSize( | ||||
star_device_handle hDevice, USB_SPACEWIRE_ID identifier); | ||||
SPACEWIREUSB_API void SPW_USB_API_CC USBSpaceWire_SetDriverSendBufferSize( | ||||
star_device_handle hDevice, U32 nBufferSize); | ||||
SPACEWIREUSB_API U32 SPW_USB_API_CC USBSpaceWire_GetDriverSendBufferSize( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API void SPW_USB_API_CC USBSpaceWire_EnableSendEEPs( | ||||
star_device_handle hDevice, char enable); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_IsSendEEPsEnabled( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API USB_SPACEWIRE_STATUS SPW_USB_API_CC | ||||
USBSpaceWire_TunnelSendTraffic(star_device_handle hDevice, | ||||
SPACEWIRE_TRAFFIC_TYPE type, void *pBuffer, U32 nBufferSize, | ||||
USB_SPACEWIRE_EOP_TYPE eop, U8 port, char bWait, | ||||
USB_SPACEWIRE_ID *identifier); | ||||
/* Time-code functions */ | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_TC_PerformTickIn( | ||||
star_device_handle hDevice, U8 timein); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC | ||||
USBSpaceWire_TC_EnableExternalTimecodeSelection(star_device_handle hDevice, | ||||
char enable); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_TC_Reset( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_TC_EnableAutoTickIn( | ||||
star_device_handle hDevice, char enableAutoTickIns, char enableAllPorts); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_TC_SetAutoTickInFrequency( | ||||
star_device_handle hDevice, U32 frequency); | ||||
SPACEWIREUSB_API char SPW_USB_API_CC USBSpaceWire_TC_StartReadingTimecodes( | ||||
star_device_handle hDevice, void *arg, void (*callbackfunc)( | ||||
star_device_handle hDevice, U8 timecode, void *arg)); | ||||
SPACEWIREUSB_API void SPW_USB_API_CC USBSpaceWire_TC_StopReadingTimecodes( | ||||
star_device_handle hDevice); | ||||
SPACEWIREUSB_API U32 SPW_USB_API_CC USBSpaceWire_TC_GetClockFrequency( | ||||
star_device_handle hDevice); | ||||
#ifdef __cplusplus | ||||
} | ||||
#endif | ||||
#endif /* SPACEWIRE_USB_API_H */ | ||||