Added CMD_CMD_SEND_PHYSICS_SIMULATION_PARAMETERS (set gravity as example) and CMD_INIT_POSE, not fully implemented yet.
59 lines
1.8 KiB
C++
59 lines
1.8 KiB
C++
#ifndef SHARED_MEMORY_INTERFACE_H
|
|
#define SHARED_MEMORY_INTERFACE_H
|
|
|
|
#define SHARED_MEMORY_KEY 12347
|
|
#define SHARED_MEMORY_MAGIC_NUMBER 64738
|
|
#define SHARED_MEMORY_MAX_COMMANDS 32
|
|
#define SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE (256*1024)
|
|
|
|
#include "SharedMemoryCommands.h"
|
|
|
|
struct SharedMemoryExampleData
|
|
{
|
|
int m_magicId;
|
|
SharedMemoryCommand m_clientCommands[SHARED_MEMORY_MAX_COMMANDS];
|
|
SharedMemoryStatus m_serverCommands[SHARED_MEMORY_MAX_COMMANDS];
|
|
|
|
int m_numClientCommands;
|
|
int m_numProcessedClientCommands;
|
|
|
|
int m_numServerCommands;
|
|
int m_numProcessedServerCommands;
|
|
|
|
//m_bulletStreamDataClientToServer is a way for the client to create collision shapes, rigid bodies and constraints
|
|
//the Bullet data structures are more general purpose than the capabilities of a URDF file.
|
|
char m_bulletStreamDataClientToServer[SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE];
|
|
|
|
//m_bulletStreamDataServerToClient is used to send (debug) data from server to client, for
|
|
//example to provide all details of a multibody including joint/link names, after loading a URDF file.
|
|
char m_bulletStreamDataServerToClient[SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE];
|
|
};
|
|
|
|
|
|
inline void InitSharedMemoryExampleData(SharedMemoryExampleData* sharedMemoryBlock)
|
|
{
|
|
sharedMemoryBlock->m_numClientCommands = 0;
|
|
sharedMemoryBlock->m_numServerCommands = 0;
|
|
sharedMemoryBlock->m_numProcessedClientCommands=0;
|
|
sharedMemoryBlock->m_numProcessedServerCommands=0;
|
|
sharedMemoryBlock->m_magicId = SHARED_MEMORY_MAGIC_NUMBER;
|
|
}
|
|
|
|
#define SHARED_MEMORY_SIZE sizeof(SharedMemoryExampleData)
|
|
|
|
|
|
|
|
|
|
class SharedMemoryInterface
|
|
{
|
|
public:
|
|
virtual ~SharedMemoryInterface()
|
|
{
|
|
}
|
|
|
|
virtual void* allocateSharedMemory(int key, int size, bool allowCreation) =0;
|
|
virtual void releaseSharedMemory(int key, int size) =0;
|
|
};
|
|
#endif
|
|
|