You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.3 KiB
120 lines
3.3 KiB
/**
|
|
* @file PXREARobotSDK.h
|
|
* @brief Robot SDK header file for client-side communication
|
|
*/
|
|
#ifndef PXREACLIENTSDK_H
|
|
#define PXREACLIENTSDK_H
|
|
#ifdef _WIN32
|
|
#if defined(PXREACLIENTSDK_LIBRARY)
|
|
# define PXREACLIENTSDK_EXPORT __declspec(dllexport)
|
|
#else
|
|
# define PXREACLIENTSDK_EXPORT __declspec(dllimport)
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef __linux__
|
|
#if defined(PXREACLIENTSDK_LIBRARY)
|
|
# define PXREACLIENTSDK_EXPORT __attribute__((visibility("default")))
|
|
#else
|
|
# define PXREACLIENTSDK_EXPORT __attribute__((visibility("default")))
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
enum PXREAClientCallbackType
|
|
{
|
|
/// @brief Server connected
|
|
PXREAServerConnect = 1<<2,
|
|
/// @brief Server disconnected
|
|
PXREAServerDisconnect = 1<<3,
|
|
/// @brief Device online
|
|
PXREADeviceFind = 1<<4,
|
|
/// @brief Device offline
|
|
PXREADeviceMissing = 1<<5,
|
|
/// @brief Device connected
|
|
PXREADeviceConnect = 1<<9,
|
|
/// @brief Device state in JSON format
|
|
PXREADeviceStateJson = 1<<25,
|
|
/// @brief Custom message
|
|
PXREADeviceCustomMessage = 1<<26,
|
|
/// @brief Mask for enabling all callbacks
|
|
PXREAFullMask = 0xffffffff
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// @brief Device state in JSON format
|
|
typedef struct {
|
|
/// @brief Device serial number
|
|
char devID[32];
|
|
/// @brief JSON string containing device state information
|
|
char stateJson[16352];
|
|
}PXREADevStateJson;
|
|
|
|
|
|
typedef struct {
|
|
/// @brief Device serial number
|
|
char devID[32];
|
|
/// @brief Data size
|
|
uint64_t dataSize;
|
|
/// @brief Data pointer, valid within callback
|
|
const char* dataPtr;
|
|
}PXREADevCustomMessage;
|
|
|
|
|
|
|
|
|
|
/**
|
|
* @brief Client callback for receiving server messages
|
|
* @param context Callback context, passed from #Init parameter 1 context
|
|
* @param type Callback type
|
|
* @param status Callback status code
|
|
* @param userData Callback data pointer, determined by parameter 2 type
|
|
*/
|
|
typedef void(*pfPXREAClientCallback)(void* context,PXREAClientCallbackType type,int status,void* userData);
|
|
|
|
/**
|
|
* @brief SDK initialization interface
|
|
* @details Connect to service and register callback
|
|
* @param context Callback context for passing user-defined data to callback function
|
|
* @param cliCallback Callback function pointer for listening to server messages
|
|
* @param mask Callback mask for filtering certain server messages
|
|
*/
|
|
PXREACLIENTSDK_EXPORT int PXREAInit(void* context,pfPXREAClientCallback cliCallback,unsigned mask);
|
|
/**
|
|
* @brief Termination interface
|
|
* @details Disconnect from service
|
|
*/
|
|
PXREACLIENTSDK_EXPORT int PXREADeinit();
|
|
|
|
/**
|
|
* @brief Send JSON format command to device
|
|
* @param devID Device serial number
|
|
* @param parameterJson Function and parameters in JSON format, refer to robot SDK documentation for specific usage
|
|
* @return 0 Success
|
|
* @return -1 Failure
|
|
*/
|
|
PXREACLIENTSDK_EXPORT int PXREADeviceControlJson(const char *devID,const char *parameterJson);
|
|
/**
|
|
* @brief Send byte stream to specified device
|
|
* @note This command is suitable for SDK caller's custom messages
|
|
* @param devID Device serial number
|
|
* @param data Starting address of byte stream
|
|
* @param len Length of byte stream
|
|
* @return 0 Success
|
|
* @return -1 Failure
|
|
*/
|
|
PXREACLIENTSDK_EXPORT int PXREASendBytesToDevice(const char* devID,const char* data,unsigned len);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // PXREACLIENTSDK_H
|