##// END OF EJS Templates
changes on the gresb class, object ready for usage in the rmapplugin
changes on the gresb class, object ready for usage in the rmapplugin

File last commit:

r0:081a6eb3cced default
r7:7c1589fec151 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 */