123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #ifndef SHARED_MEMORY_BLOCK_H
- #define SHARED_MEMORY_BLOCK_H
- #define SHARED_MEMORY_MAGIC_NUMBER 64738
- #define SHARED_MEMORY_MAX_COMMANDS 4
- #include "SharedMemoryCommands.h"
- struct SharedMemoryBlock
- {
- int m_magicId;
- struct SharedMemoryCommand m_clientCommands[SHARED_MEMORY_MAX_COMMANDS];
- struct 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_bulletStreamDataServerToClientRefactor[SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE];
- };
- //http://stackoverflow.com/questions/24736304/unable-to-use-inline-in-declaration-get-error-c2054
- #ifdef _WIN32
- __inline
- #else
- inline
- #endif
- void InitSharedMemoryBlock(struct SharedMemoryBlock* 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(SharedMemoryBlock)
- #endif //SHARED_MEMORY_BLOCK_H
|