##// END OF EJS Templates
Initial commit: rmapplugin fully operational with the GRESB Ethernet/SpaceWire bridge.
Initial commit: rmapplugin fully operational with the GRESB Ethernet/SpaceWire bridge.

File last commit:

r0:081a6eb3cced default
r0:081a6eb3cced default
Show More
spw_usb_api.h
326 lines | 16.4 KiB | text/x-c | CLexer
/******************************************************************************/
/* */
/* 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 */