From a985d441bd00b87aba1f7e9ad75fac828ecbfec7 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Mon, 4 Sep 2017 19:00:50 -0700 Subject: [PATCH 1/7] Re-enable Physics Server (Logging) and Physics Server (Replay Log) --- examples/ExampleBrowser/ExampleEntries.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/ExampleBrowser/ExampleEntries.cpp b/examples/ExampleBrowser/ExampleEntries.cpp index 01490fb18..34d123283 100644 --- a/examples/ExampleBrowser/ExampleEntries.cpp +++ b/examples/ExampleBrowser/ExampleEntries.cpp @@ -40,6 +40,7 @@ #include "../DynamicControlDemo/MotorDemo.h" #include "../RollingFrictionDemo/RollingFrictionDemo.h" #include "../SharedMemory/PhysicsServerExampleBullet2.h" +#include "../SharedMemory/PhysicsServerExample.h" #include "../SharedMemory/PhysicsClientExample.h" #include "../Constraints/TestHingeTorque.h" #include "../RenderingExamples/TimeSeriesExample.h" @@ -141,10 +142,10 @@ static ExampleEntry gDefaultExamples[]= PhysicsServerCreateFuncBullet2), ExampleEntry(1, "Physics Client (Shared Mem)", "Create a physics client that can communicate with a physics server over shared memory.", PhysicsClientCreateFunc), -// ExampleEntry(1,"Physics Server (Logging)", "Create a physics server that communicates with a physics client over shared memory. It will log all commands to a file.", -// PhysicsServerCreateFunc,PHYSICS_SERVER_ENABLE_COMMAND_LOGGING), -// ExampleEntry(1,"Physics Server (Replay Log)", "Create a physics server that replay a command log from disk.", -// PhysicsServerCreateFunc,PHYSICS_SERVER_REPLAY_FROM_COMMAND_LOG), + ExampleEntry(1,"Physics Server (Logging)", "Create a physics server that communicates with a physics client over shared memory. It will log all commands to a file.", + PhysicsServerCreateFuncBullet2,PHYSICS_SERVER_ENABLE_COMMAND_LOGGING), + ExampleEntry(1,"Physics Server (Replay Log)", "Create a physics server that replay a command log from disk.", + PhysicsServerCreateFuncBullet2,PHYSICS_SERVER_REPLAY_FROM_COMMAND_LOG), // // ExampleEntry(1, "Physics Client (Direct)", "Create a physics client that can communicate with a physics server directly in-process.", PhysicsClientCreateFunc,eCLIENTEXAMPLE_DIRECT), From ff0cd65346c3ed6cae1ce6da0b8fe7b7beb404c4 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Tue, 5 Sep 2017 21:47:35 -0700 Subject: [PATCH 2/7] fix __init__.py, add stadium without collision for testing --- .../pybullet_data/stadium_no_collision.sdf | 107 ++++++++++++++++++ .../pybullet/gym/pybullet_envs/__init__.py | 3 - 2 files changed, 107 insertions(+), 3 deletions(-) create mode 100644 examples/pybullet/gym/pybullet_data/stadium_no_collision.sdf diff --git a/examples/pybullet/gym/pybullet_data/stadium_no_collision.sdf b/examples/pybullet/gym/pybullet_data/stadium_no_collision.sdf new file mode 100644 index 000000000..585b4eb16 --- /dev/null +++ b/examples/pybullet/gym/pybullet_data/stadium_no_collision.sdf @@ -0,0 +1,107 @@ + + + 0 0 -9.8 + + 1 + 0 0 0 0 0 0 + + + 0 + + 0.166667 + 0 + 0 + 0.166667 + 0 + 0.166667 + + + + + + 1 1 1 + roboschool/models_outdoor/stadium/part0.obj + + + + 1 1 1 1 + 1.00000 1.00000 1.000000 1 + 0.1 .1 .1 1 + 0 0 0 0 + + + + + + 1 + 0 0 0 0 0 0 + + + 0 + + 0.166667 + 0 + 0 + 0.166667 + 0 + 0.166667 + + + + + + 0 0 1 + 100 100 + + + + + + + 1 1 1 + roboschool/models_outdoor/stadium/part1.obj + + + + 1 1 1 1 + 0.600000 0.400000 0.000000 1 + .5 .5 .5 1 + 0 0 0 0 + + + + + + 1 + 0 0 0 0 0 0 + + + 0 + + 0.166667 + 0 + 0 + 0.166667 + 0 + 0.166667 + + + + + + + 1 1 1 + roboschool/models_outdoor/stadium/part2.obj + + + + 1 0 0 1 + 0.000000 0.500000 0.000000 1 + 0.4 0.4 0.4 1 + 0 0 0 0 + + + + + + diff --git a/examples/pybullet/gym/pybullet_envs/__init__.py b/examples/pybullet/gym/pybullet_envs/__init__.py index 5999be072..93b55108d 100644 --- a/examples/pybullet/gym/pybullet_envs/__init__.py +++ b/examples/pybullet/gym/pybullet_envs/__init__.py @@ -133,6 +133,3 @@ register( reward_threshold=2500.0 ) -def getList(): - btenvs = ['- ' + spec.id for spec in gym.envs.registry.all() if spec.id.find('Bullet')>=0]) - return btenvs From adafcce8305b73e946ea8b8e40128db5256ce009 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Wed, 6 Sep 2017 10:39:45 -0700 Subject: [PATCH 3/7] compile fixes --- test/SharedMemory/test.c | 4 ++-- test/enet/chat/client/main.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/SharedMemory/test.c b/test/SharedMemory/test.c index 9dec36e92..e475a4705 100644 --- a/test/SharedMemory/test.c +++ b/test/SharedMemory/test.c @@ -335,9 +335,9 @@ int main(int argc, char* argv[]) #ifdef PHYSICS_IN_PROCESS_EXAMPLE_BROWSER #ifdef __APPLE__ - b3PhysicsClientHandle sm = b3CreateInProcessPhysicsServerAndConnectMainThread(argc,argv,1); + b3PhysicsClientHandle sm = b3CreateInProcessPhysicsServerAndConnectMainThread(argc,argv); #else - b3PhysicsClientHandle sm = b3CreateInProcessPhysicsServerAndConnect(argc,argv,1); + b3PhysicsClientHandle sm = b3CreateInProcessPhysicsServerAndConnect(argc,argv); #endif //__APPLE__ #endif diff --git a/test/enet/chat/client/main.cpp b/test/enet/chat/client/main.cpp index 8f4a9ea99..8aff0f699 100644 --- a/test/enet/chat/client/main.cpp +++ b/test/enet/chat/client/main.cpp @@ -122,7 +122,7 @@ int main(int argc, char* argv[]) { #ifdef _WIN32 gets_s(message, 1024); #else - gets(message); + fgets(message,1024,stdin); #endif if (strcmp(message, "exit") == 0 || strcmp(message, "quit") == 0) { From 7878f7ace9e008c1b76f6db2df0d1bf8caac0ef6 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Wed, 6 Sep 2017 13:18:39 -0700 Subject: [PATCH 4/7] Add Extras/BulletRobotics, will be installed as 'Extra Libs' using CMake Reduce size of command-logfile (used in PhysicsServer (Logging) and PhysicsServer (Log Replay)) Make Bullet3Common and BulletInverseDynamics part of core Bullet libraries (not optional) --- CMakeLists.txt | 8 +- Extras/BulletRobotics/CMakeLists.txt | 188 +++++++++++++ Extras/CMakeLists.txt | 6 +- ...visual_studio_vr_pybullet_double_cmake.bat | 2 +- examples/SharedMemory/CMakeLists.txt | 2 +- examples/SharedMemory/PhysicsClientC_API.h | 8 + .../PhysicsServerCommandProcessor.cpp | 253 ++++++++++++++++-- src/CMakeLists.txt | 6 +- 8 files changed, 439 insertions(+), 34 deletions(-) create mode 100644 Extras/BulletRobotics/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 65859e663..6bf1bcf71 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -392,7 +392,6 @@ IF(BUILD_EXTRAS) ENDIF(BUILD_EXTRAS) -#Maya Dynamica plugin is moved to http://dynamica.googlecode.com SUBDIRS(src) @@ -425,7 +424,7 @@ ENDIF(INSTALL_LIBS) #INSTALL of other files requires CMake 2.6 IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) - OPTION(INSTALL_EXTRA_LIBS "Set when you want extra libraries installed" OFF) + OPTION(INSTALL_EXTRA_LIBS "Set when you want extra libraries installed" ON) ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) OPTION(BUILD_UNIT_TESTS "Build Unit Tests" ON) @@ -437,9 +436,8 @@ ENDIF() set (BULLET_CONFIG_CMAKE_PATH lib${LIB_SUFFIX}/cmake/bullet ) list (APPEND BULLET_LIBRARIES LinearMath) -IF(BUILD_BULLET3) - list (APPEND BULLET_LIBRARIES BulletInverseDynamics) -ENDIF(BUILD_BULLET3) +list (APPEND BULLET_LIBRARIES Bullet3Common) +list (APPEND BULLET_LIBRARIES BulletInverseDynamics) list (APPEND BULLET_LIBRARIES BulletCollision) list (APPEND BULLET_LIBRARIES BulletDynamics) list (APPEND BULLET_LIBRARIES BulletSoftBody) diff --git a/Extras/BulletRobotics/CMakeLists.txt b/Extras/BulletRobotics/CMakeLists.txt new file mode 100644 index 000000000..a8d238197 --- /dev/null +++ b/Extras/BulletRobotics/CMakeLists.txt @@ -0,0 +1,188 @@ + +INCLUDE_DIRECTORIES( + ${BULLET_PHYSICS_SOURCE_DIR}/src + ${BULLET_PHYSICS_SOURCE_DIR}/examples + ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs + ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/enet/include + ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/clsocket/src +) + +SET(BulletRobotics_SRCS + ../../examples/SharedMemory/IKTrajectoryHelper.cpp + ../../examples/SharedMemory/IKTrajectoryHelper.h + ../../examples/SharedMemory/TinyRendererVisualShapeConverter.cpp + ../../examples/SharedMemory/TinyRendererVisualShapeConverter.h + ../../examples/OpenGLWindow/SimpleCamera.cpp + ../../examples/OpenGLWindow/SimpleCamera.h + ../../examples/TinyRenderer/geometry.cpp + ../../examples/TinyRenderer/model.cpp + ../../examples/TinyRenderer/tgaimage.cpp + ../../examples/TinyRenderer/our_gl.cpp + ../../examples/TinyRenderer/TinyRenderer.cpp + ../../examples/SharedMemory/InProcessMemory.cpp + ../../examples/SharedMemory/PhysicsClient.cpp + ../../examples/SharedMemory/PhysicsClient.h + ../../examples/SharedMemory/PhysicsServer.cpp + ../../examples/SharedMemory/PhysicsServer.h + ../../examples/SharedMemory/PhysicsServerSharedMemory.cpp + ../../examples/SharedMemory/PhysicsServerSharedMemory.h + ../../examples/SharedMemory/PhysicsDirect.cpp + ../../examples/SharedMemory/PhysicsDirect.h + ../../examples/SharedMemory/PhysicsDirectC_API.cpp + ../../examples/SharedMemory/PhysicsDirectC_API.h + ../../examples/SharedMemory/PhysicsServerCommandProcessor.cpp + ../../examples/SharedMemory/PhysicsServerCommandProcessor.h + ../../examples/SharedMemory/PhysicsClientSharedMemory.cpp + ../../examples/SharedMemory/PhysicsClientSharedMemory.h + ../../examples/SharedMemory/PhysicsClientSharedMemory_C_API.cpp + ../../examples/SharedMemory/PhysicsClientSharedMemory_C_API.h + ../../examples/SharedMemory/PhysicsClientC_API.cpp + + ../../examples/SharedMemory/PhysicsClientC_API.h + ../../examples/SharedMemory/SharedMemoryPublic.h + + ../../examples/SharedMemory/Win32SharedMemory.cpp + ../../examples/SharedMemory/Win32SharedMemory.h + ../../examples/SharedMemory/PosixSharedMemory.cpp + ../../examples/SharedMemory/PosixSharedMemory.h + + ../../examples/Utils/b3ResourcePath.cpp + ../../examples/Utils/b3ResourcePath.h + ../../examples/Utils/RobotLoggingUtil.cpp + ../../examples/Utils/RobotLoggingUtil.h + ../../examples/Utils/b3Clock.cpp + ../../examples/Utils/b3ResourcePath.cpp + ../../examples/Utils/b3ERPCFMHelper.hpp + ../../examples/Utils/b3ReferenceFrameHelper.hpp + ../../examples/Utils/ChromeTraceUtil.cpp + + ../../examples/ThirdPartyLibs/tinyxml/tinystr.cpp + ../../examples/ThirdPartyLibs/tinyxml/tinyxml.cpp + ../../examples/ThirdPartyLibs/tinyxml/tinyxmlerror.cpp + ../../examples/ThirdPartyLibs/tinyxml/tinyxmlparser.cpp + + ../../examples/ThirdPartyLibs/Wavefront/tiny_obj_loader.cpp + ../../examples/ThirdPartyLibs/Wavefront/tiny_obj_loader.h + + ../../examples/ThirdPartyLibs/stb_image/stb_image.cpp + + ../../examples/ThirdPartyLibs/BussIK/Jacobian.cpp + ../../examples/ThirdPartyLibs/BussIK/LinearR2.cpp + ../../examples/ThirdPartyLibs/BussIK/LinearR3.cpp + ../../examples/ThirdPartyLibs/BussIK/LinearR4.cpp + ../../examples/ThirdPartyLibs/BussIK/MatrixRmn.cpp + ../../examples/ThirdPartyLibs/BussIK/Misc.cpp + ../../examples/ThirdPartyLibs/BussIK/Node.cpp + ../../examples/ThirdPartyLibs/BussIK/Tree.cpp + ../../examples/ThirdPartyLibs/BussIK/VectorRn.cpp + + ../../examples/Importers/ImportColladaDemo/LoadMeshFromCollada.cpp + ../../examples/Importers/ImportObjDemo/LoadMeshFromObj.cpp + ../../examples/Importers/ImportObjDemo/Wavefront2GLInstanceGraphicsShape.cpp + ../../examples/Importers/ImportMJCFDemo/BulletMJCFImporter.cpp + ../../examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp + ../../examples/Importers/ImportURDFDemo/MyMultiBodyCreator.cpp + ../../examples/Importers/ImportURDFDemo/URDF2Bullet.cpp + ../../examples/Importers/ImportURDFDemo/UrdfParser.cpp + ../../examples/Importers/ImportURDFDemo/urdfStringSplit.cpp + ../../examples/Importers/ImportMeshUtility/b3ImportMeshUtility.cpp + + ../../examples/MultiThreading/b3PosixThreadSupport.cpp + ../../examples/MultiThreading/b3Win32ThreadSupport.cpp + ../../examples/MultiThreading/b3ThreadSupportInterface.cpp + + +) + +IF(BUILD_CLSOCKET) + ADD_DEFINITIONS(-DBT_ENABLE_CLSOCKET) +ENDIF(BUILD_CLSOCKET) + +IF(WIN32) + LINK_LIBRARIES( + ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} + ) + IF(BUILD_ENET) + ADD_DEFINITIONS(-DWIN32 -DBT_ENABLE_ENET) + ENDIF(BUILD_ENET) + IF(BUILD_CLSOCKET) + ADD_DEFINITIONS(-DWIN32) + ENDIF(BUILD_CLSOCKET) + +ELSE(WIN32) + IF(BUILD_ENET) + ADD_DEFINITIONS(-DHAS_SOCKLEN_T -DBT_ENABLE_ENET) + ENDIF(BUILD_ENET) + + IF(BUILD_CLSOCKET) + ADD_DEFINITIONS(${OSDEF}) + ENDIF(BUILD_CLSOCKET) +ENDIF(WIN32) + +IF(BUILD_ENET) + set(BulletRobotics_SRCS ${BulletRobotics_SRCS} + ../../examples/SharedMemory/PhysicsClientUDP.cpp + ../../examples/SharedMemory/PhysicsClientUDP_C_API.cpp + ../../examples/SharedMemory/PhysicsClientUDP.h + ../../examples/SharedMemory/PhysicsClientUDP_C_API.h + ../../examples/ThirdPartyLibs/enet/win32.c + ../../examples/ThirdPartyLibs/enet/unix.c + ../../examples/ThirdPartyLibs/enet/callbacks.c + ../../examples/ThirdPartyLibs/enet/compress.c + ../../examples/ThirdPartyLibs/enet/host.c + ../../examples/ThirdPartyLibs/enet/list.c + ../../examples/ThirdPartyLibs/enet/packet.c + ../../examples/ThirdPartyLibs/enet/peer.c + ../../examples/ThirdPartyLibs/enet/protocol.c + ) + +ENDIF(BUILD_ENET) + +IF(BUILD_CLSOCKET) + set(BulletRobotics_SRCS ${BulletRobotics_SRCS} + ../../examples/SharedMemory/PhysicsClientTCP.cpp + ../../examples/SharedMemory/PhysicsClientTCP.h + ../../examples/SharedMemory/PhysicsClientTCP_C_API.cpp + ../../examples/SharedMemory/PhysicsClientTCP_C_API.h + ../../examples/ThirdPartyLibs/clsocket/src/SimpleSocket.cpp + ../../examples/ThirdPartyLibs/clsocket/src/ActiveSocket.cpp + ../../examples/ThirdPartyLibs/clsocket/src/PassiveSocket.cpp + ) +ENDIF() + +ADD_DEFINITIONS(-DPHYSICS_SERVER_DIRECT) + + +ADD_LIBRARY(BulletRobotics ${BulletRobotics_SRCS}) + +SET_TARGET_PROPERTIES(BulletRobotics PROPERTIES VERSION ${BULLET_VERSION}) +SET_TARGET_PROPERTIES(BulletRobotics PROPERTIES SOVERSION ${BULLET_VERSION}) + +IF (BUILD_SHARED_LIBS) + TARGET_LINK_LIBRARIES(BulletRobotics BulletInverseDynamicsUtils BulletWorldImporter BulletFileLoader BulletSoftBody BulletDynamics BulletCollision BulletInverseDynamics LinearMath Bullet3Common) +ENDIF (BUILD_SHARED_LIBS) + +IF (INSTALL_EXTRA_LIBS) + INSTALL(FILES + ../../examples/SharedMemory/PhysicsClientC_API.h + ../../examples/SharedMemory/PhysicsClientSharedMemory_C_API.h + ../../examples/SharedMemory/PhysicsClientSharedMemory2_C_API.h + ../../examples/SharedMemory/PhysicsDirectC_API.h + ../../examples/SharedMemory/PhysicsClientUDP_C_API.h + ../../examples/SharedMemory/PhysicsClientTCP_C_API.h + ../../examples/SharedMemory/SharedMemoryInProcessPhysicsC_API.h + ../../examples/SharedMemory/SharedMemoryPublic.h + DESTINATION include/bullet + ) + INSTALL(TARGETS + BulletRobotics + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX} + ) + + IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + SET_TARGET_PROPERTIES(BulletRobotics PROPERTIES FRAMEWORK true) + SET_TARGET_PROPERTIES(BulletRobotics PROPERTIES PUBLIC_HEADER "PhysicsClientC_API.h" ) + ENDIF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + +ENDIF (INSTALL_EXTRA_LIBS) diff --git a/Extras/CMakeLists.txt b/Extras/CMakeLists.txt index 99026b4a5..6b35357a3 100644 --- a/Extras/CMakeLists.txt +++ b/Extras/CMakeLists.txt @@ -1,8 +1,6 @@ -SUBDIRS( obj2sdf Serialize ConvexDecomposition HACD GIMPACTUtils ) +SUBDIRS( InverseDynamics BulletRobotics obj2sdf Serialize ConvexDecomposition HACD GIMPACTUtils ) + -IF(BUILD_BULLET3) - SUBDIRS( InverseDynamics) -ENDIF() #Maya Dynamica plugin is moved to http://dynamica.googlecode.com diff --git a/build_visual_studio_vr_pybullet_double_cmake.bat b/build_visual_studio_vr_pybullet_double_cmake.bat index 2d3cd1a4b..ea53e6c6a 100644 --- a/build_visual_studio_vr_pybullet_double_cmake.bat +++ b/build_visual_studio_vr_pybullet_double_cmake.bat @@ -1,4 +1,4 @@ mkdir build_cmake cd build_cmake -cmake -DBUILD_PYBULLET=ON -DUSE_DOUBLE_PRECISION=ON -DCMAKE_BUILD_TYPE=Release -DPYTHON_INCLUDE_DIR=c:\python-3.5.2\include -DPYTHON_LIBRARY=c:\python-3.5.2\libs\python35.lib -DPYTHON_DEBUG_LIBRARY=c:\python-3.5.2\libs\python35_d.lib -G "Visual Studio 14 2015" .. +cmake -DBUILD_PYBULLET=ON -DUSE_DOUBLE_PRECISION=ON -DCMAKE_BUILD_TYPE=Release -DPYTHON_INCLUDE_DIR=c:\python-3.5.3.amd64\include -DPYTHON_LIBRARY=c:\python-3.5.3.amd64\libs\python35.lib -DPYTHON_DEBUG_LIBRARY=c:\python-3.5.3.amd64\libs\python35_d.lib -G "Visual Studio 14 2015 Win64" .. start . diff --git a/examples/SharedMemory/CMakeLists.txt b/examples/SharedMemory/CMakeLists.txt index dd10c5ff8..a369eafa9 100644 --- a/examples/SharedMemory/CMakeLists.txt +++ b/examples/SharedMemory/CMakeLists.txt @@ -324,4 +324,4 @@ IF (INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES) SET_TARGET_PROPERTIES(App_PhysicsServer_SharedMemory_VR PROPERTIES RELWITHDEBINFO_POSTFIX "_RelWithDebugInfo") ENDIF(INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES) -ENDIF(WIN32) +ENDIF(WIN32 OR APPLE) diff --git a/examples/SharedMemory/PhysicsClientC_API.h b/examples/SharedMemory/PhysicsClientC_API.h index 03869e314..04105e701 100644 --- a/examples/SharedMemory/PhysicsClientC_API.h +++ b/examples/SharedMemory/PhysicsClientC_API.h @@ -15,7 +15,15 @@ B3_DECLARE_HANDLE(b3SharedMemoryStatusHandle); #include "PhysicsClientSharedMemory_C_API.h" #include "PhysicsClientSharedMemory2_C_API.h" #include "PhysicsDirectC_API.h" + +#ifdef BT_ENABLE_ENET #include "PhysicsClientUDP_C_API.h" +#endif + +#ifdef BT_ENABLE_CLSOCKET +#include "PhysicsClientTCP_C_API.h" +#endif + #include "SharedMemoryInProcessPhysicsC_API.h" #ifdef __cplusplus diff --git a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp index 4877ff95b..747500bc1 100644 --- a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp +++ b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp @@ -293,29 +293,108 @@ struct CommandLogger void logCommand(const SharedMemoryCommand& command) { - btCommandChunk chunk; - chunk.m_chunkCode = command.m_type; - chunk.m_oldPtr = 0; - chunk.m_dna_nr = 0; - chunk.m_length = sizeof(SharedMemoryCommand); - chunk.m_number = 1; - fwrite((const char*)&chunk,sizeof(btCommandChunk), 1,m_file); - fwrite((const char*)&command,sizeof(SharedMemoryCommand),1,m_file); + if (m_file) + { + btCommandChunk chunk; + chunk.m_chunkCode = command.m_type; + chunk.m_oldPtr = 0; + chunk.m_dna_nr = 0; + chunk.m_length = sizeof(SharedMemoryCommand); + chunk.m_number = 1; + fwrite((const char*)&chunk,sizeof(btCommandChunk), 1,m_file); + + switch (command.m_type) + { + + case CMD_LOAD_MJCF: + { + fwrite((const char*)&command.m_updateFlags,sizeof(int), 1,m_file); + fwrite((const char*)&command.m_mjcfArguments , sizeof(MjcfArgs),1,m_file); + break; + } + case CMD_REQUEST_BODY_INFO: + { + fwrite((const char*)&command.m_updateFlags,sizeof(int), 1,m_file); + fwrite((const char*)&command.m_sdfRequestInfoArgs, sizeof(SdfRequestInfoArgs),1,m_file); + break; + } + case CMD_REQUEST_VISUAL_SHAPE_INFO: + { + fwrite((const char*)&command.m_updateFlags,sizeof(int), 1,m_file); + fwrite((const char*)&command.m_requestVisualShapeDataArguments, sizeof(RequestVisualShapeDataArgs),1,m_file); + break; + } + case CMD_LOAD_URDF: + { + fwrite((const char*)&command.m_updateFlags,sizeof(int), 1,m_file); + fwrite((const char*)&command.m_urdfArguments, sizeof(UrdfArgs),1,m_file); + break; + } + case CMD_INIT_POSE: + { + fwrite((const char*)&command.m_updateFlags,sizeof(int), 1,m_file); + fwrite((const char*)&command.m_initPoseArgs,sizeof(InitPoseArgs),1,m_file); + break; + }; + case CMD_REQUEST_ACTUAL_STATE: + { + fwrite((const char*)&command.m_updateFlags,sizeof(int), 1,m_file); + fwrite((const char*)&command.m_requestActualStateInformationCommandArgument, + sizeof(RequestActualStateArgs),1,m_file); + break; + }; + case CMD_SEND_DESIRED_STATE: + { + fwrite((const char*)&command.m_updateFlags,sizeof(int), 1,m_file); + fwrite((const char*)&command.m_sendDesiredStateCommandArgument,sizeof(SendDesiredStateArgs),1,m_file); + break; + } + case CMD_SEND_PHYSICS_SIMULATION_PARAMETERS: + { + fwrite((const char*)&command.m_updateFlags,sizeof(int), 1,m_file); + fwrite((const char*)&command.m_physSimParamArgs, sizeof(SendPhysicsSimulationParameters), 1,m_file); + break; + } + case CMD_REQUEST_CONTACT_POINT_INFORMATION: + { + fwrite((const char*)&command.m_updateFlags,sizeof(int), 1,m_file); + fwrite((const char*)&command.m_requestContactPointArguments,sizeof(RequestContactDataArgs),1,m_file); + break; + } + case CMD_STEP_FORWARD_SIMULATION: + case CMD_RESET_SIMULATION: + case CMD_REQUEST_INTERNAL_DATA: + { + break; + }; + default: + { + fwrite((const char*)&command,sizeof(SharedMemoryCommand),1,m_file); + } + + }; + } } CommandLogger(const char* fileName) { m_file = fopen(fileName,"wb"); - unsigned char buf[15]; - buf[12] = 12; - buf[13] = 13; - buf[14] = 14; - writeHeader(buf); - fwrite(buf,12,1,m_file); + if (m_file) + { + unsigned char buf[15]; + buf[12] = 12; + buf[13] = 13; + buf[14] = 14; + writeHeader(buf); + fwrite(buf,12,1,m_file); + } } virtual ~CommandLogger() { - fclose(m_file); + if (m_file) + { + fclose(m_file); + } } }; @@ -355,28 +434,162 @@ struct CommandLogPlayback } bool processNextCommand(SharedMemoryCommand* cmd) { +//for a little while, keep this flag to be able to read 'old' log files +//#define BACKWARD_COMPAT +#if BACKWARD_COMPAT + SharedMemoryCommand unused; +#endif//BACKWARD_COMPAT + bool result = false; + if (m_file) { size_t s = 0; - + int commandType = -1; if (m_fileIs64bit) { bCommandChunkPtr8 chunk8; s = fread((void*)&chunk8,sizeof(bCommandChunkPtr8),1,m_file); + commandType = chunk8.code; } else { bCommandChunkPtr4 chunk4; s = fread((void*)&chunk4,sizeof(bCommandChunkPtr4),1,m_file); + commandType = chunk4.code; } if (s==1) { - s = fread(cmd,sizeof(SharedMemoryCommand),1,m_file); - return (s==1); + memset(cmd,0,sizeof(SharedMemoryCommand)); + cmd->m_type = commandType; + +#ifdef BACKWARD_COMPAT + s = fread(&unused,sizeof(SharedMemoryCommand),1,m_file); + cmd->m_updateFlags = unused.m_updateFlags; +#endif + + + switch (commandType) + { + case CMD_LOAD_MJCF: + { +#ifdef BACKWARD_COMPAT + cmd->m_mjcfArguments = unused.m_mjcfArguments; +#else + fread(&cmd->m_updateFlags,sizeof(int),1,m_file); + fread(&cmd->m_mjcfArguments,sizeof(MjcfArgs),1,m_file); +#endif + result=true; + break; + } + case CMD_REQUEST_BODY_INFO: + { +#ifdef BACKWARD_COMPAT + cmd->m_sdfRequestInfoArgs = unused.m_sdfRequestInfoArgs; +#else + fread(&cmd->m_updateFlags,sizeof(int),1,m_file); + fread(&cmd->m_sdfRequestInfoArgs,sizeof(SdfRequestInfoArgs),1,m_file); +#endif + result=true; + break; + } + case CMD_REQUEST_VISUAL_SHAPE_INFO: + { +#ifdef BACKWARD_COMPAT + cmd->m_requestVisualShapeDataArguments = unused.m_requestVisualShapeDataArguments; +#else + fread(&cmd->m_updateFlags,sizeof(int),1,m_file); + fread(&cmd->m_requestVisualShapeDataArguments,sizeof(RequestVisualShapeDataArgs),1,m_file); +#endif + result=true; + break; + } + case CMD_LOAD_URDF: + { +#ifdef BACKWARD_COMPAT + cmd->m_urdfArguments = unused.m_urdfArguments; +#else + fread(&cmd->m_updateFlags,sizeof(int),1,m_file); + fread(&cmd->m_urdfArguments,sizeof(UrdfArgs),1,m_file); +#endif + result=true; + break; + } + case CMD_INIT_POSE: + { +#ifdef BACKWARD_COMPAT + cmd->m_initPoseArgs = unused.m_initPoseArgs; +#else + fread(&cmd->m_updateFlags,sizeof(int),1,m_file); + fread(&cmd->m_initPoseArgs,sizeof(InitPoseArgs),1,m_file); + +#endif + result=true; + break; + }; + case CMD_REQUEST_ACTUAL_STATE: + { +#ifdef BACKWARD_COMPAT + cmd->m_requestActualStateInformationCommandArgument = unused.m_requestActualStateInformationCommandArgument; +#else + fread(&cmd->m_updateFlags,sizeof(int),1,m_file); + fread(&cmd->m_requestActualStateInformationCommandArgument,sizeof(RequestActualStateArgs),1,m_file); +#endif + result=true; + break; + }; + case CMD_SEND_DESIRED_STATE: + { +#ifdef BACKWARD_COMPAT + cmd->m_sendDesiredStateCommandArgument = unused.m_sendDesiredStateCommandArgument; +#else + fread(&cmd->m_updateFlags,sizeof(int),1,m_file); + fread(&cmd->m_sendDesiredStateCommandArgument ,sizeof(SendDesiredStateArgs),1,m_file); + +#endif + result = true; + break; + } + case CMD_SEND_PHYSICS_SIMULATION_PARAMETERS: + { +#ifdef BACKWARD_COMPAT + cmd->m_physSimParamArgs = unused.m_physSimParamArgs; + #else + fread(&cmd->m_updateFlags,sizeof(int),1,m_file); + fread(&cmd->m_physSimParamArgs ,sizeof(SendPhysicsSimulationParameters),1,m_file); + + #endif + result = true; + break; + } + case CMD_REQUEST_CONTACT_POINT_INFORMATION: + { +#ifdef BACKWARD_COMPAT + cmd->m_requestContactPointArguments = unused.m_requestContactPointArguments; + #else + fread(&cmd->m_updateFlags,sizeof(int),1,m_file); + fread(&cmd->m_requestContactPointArguments ,sizeof(RequestContactDataArgs),1,m_file); + + #endif + result = true; + break; + } + case CMD_STEP_FORWARD_SIMULATION: + case CMD_RESET_SIMULATION: + case CMD_REQUEST_INTERNAL_DATA: + { + result=true; + break; + } + default: + { + s = fread(cmd,sizeof(SharedMemoryCommand),1,m_file); + result=(s==1); + } + }; } } - return false; + return result; } }; @@ -3458,7 +3671,7 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm serverStatusOut.m_dataStreamArguments.m_bodyUniqueId = sdfInfoArgs.m_bodyUniqueId; serverStatusOut.m_dataStreamArguments.m_bodyName[0] = 0; - InternalBodyHandle* bodyHandle = m_data->m_bodyHandles.getHandle(clientCmd.m_calculateJacobianArguments.m_bodyUniqueId); + InternalBodyHandle* bodyHandle = m_data->m_bodyHandles.getHandle(sdfInfoArgs.m_bodyUniqueId); if (bodyHandle) { strcpy(serverStatusOut.m_dataStreamArguments.m_bodyName,bodyHandle->m_bodyName.c_str()); diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bbeabafbb..c30125c53 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,10 +1,10 @@ IF(BUILD_BULLET3) - SUBDIRS( Bullet3OpenCL Bullet3Serialize/Bullet2FileLoader Bullet3Dynamics Bullet3Collision Bullet3Geometry Bullet3Common ) - SUBDIRS( BulletInverseDynamics ) + SUBDIRS( Bullet3OpenCL Bullet3Serialize/Bullet2FileLoader Bullet3Dynamics Bullet3Collision Bullet3Geometry ) ENDIF(BUILD_BULLET3) -SUBDIRS( BulletSoftBody BulletCollision BulletDynamics LinearMath ) + +SUBDIRS( BulletInverseDynamics BulletSoftBody BulletCollision BulletDynamics LinearMath Bullet3Common) IF(INSTALL_LIBS) From c82131d16e0efded12ac646c661813189306406f Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Wed, 6 Sep 2017 14:18:35 -0700 Subject: [PATCH 5/7] cmake fixes --- CMakeLists.txt | 14 ++++++++++++++ Extras/ConvexDecomposition/CMakeLists.txt | 5 ++++- Extras/GIMPACTUtils/CMakeLists.txt | 5 ++++- Extras/HACD/CMakeLists.txt | 6 +++++- Extras/InverseDynamics/CMakeLists.txt | 5 ++++- Extras/Serialize/BulletFileLoader/CMakeLists.txt | 5 ++++- .../Serialize/BulletWorldImporter/CMakeLists.txt | 5 ++++- .../BulletXmlWorldImporter/CMakeLists.txt | 6 +++++- examples/CMakeLists.txt | 11 ----------- 9 files changed, 44 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6bf1bcf71..bab4aa4af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,6 +38,20 @@ IF (BULLET2_USE_THREAD_LOCKS) ENDIF (MSVC) ENDIF (BULLET2_USE_THREAD_LOCKS) +IF(NOT WIN32) + SET(DL dl) + IF(CMAKE_SYSTEM_NAME MATCHES "Linux") + SET(OSDEF -D_LINUX) + ELSE(CMAKE_SYSTEM_NAME MATCHES "Linux") + IF(APPLE) + SET(OSDEF -D_DARWIN) + ELSE(APPLE) + SET(OSDEF -D_BSD) + SET(DL "") + ENDIF(APPLE) + ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux") +ENDIF(NOT WIN32) + OPTION(USE_MSVC_INCREMENTAL_LINKING "Use MSVC Incremental Linking" OFF) OPTION(USE_CUSTOM_VECTOR_MATH "Use custom vectormath library" OFF) diff --git a/Extras/ConvexDecomposition/CMakeLists.txt b/Extras/ConvexDecomposition/CMakeLists.txt index 693e9d26a..132a336fa 100644 --- a/Extras/ConvexDecomposition/CMakeLists.txt +++ b/Extras/ConvexDecomposition/CMakeLists.txt @@ -49,7 +49,10 @@ IF (INSTALL_EXTRA_LIBS) IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS ConvexDecomposition DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) - INSTALL(TARGETS ConvexDecomposition DESTINATION lib${LIB_SUFFIX}) + INSTALL(TARGETS ConvexDecomposition + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX}) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${INCLUDE_INSTALL_DIR} FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE PATTERN "CMakeFiles" EXCLUDE) diff --git a/Extras/GIMPACTUtils/CMakeLists.txt b/Extras/GIMPACTUtils/CMakeLists.txt index 5c9480a97..c32a885df 100644 --- a/Extras/GIMPACTUtils/CMakeLists.txt +++ b/Extras/GIMPACTUtils/CMakeLists.txt @@ -22,7 +22,10 @@ IF (INSTALL_EXTRA_LIBS) IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS GIMPACTUtils DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) - INSTALL(TARGETS GIMPACTUtils DESTINATION lib${LIB_SUFFIX}) + INSTALL(TARGETS GIMPACTUtils + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX}) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${INCLUDE_INSTALL_DIR} FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE PATTERN "CMakeFiles" EXCLUDE) diff --git a/Extras/HACD/CMakeLists.txt b/Extras/HACD/CMakeLists.txt index 664a51a5c..a91d1173c 100644 --- a/Extras/HACD/CMakeLists.txt +++ b/Extras/HACD/CMakeLists.txt @@ -36,7 +36,11 @@ IF (INSTALL_EXTRA_LIBS) IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS HACD DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) - INSTALL(TARGETS HACD DESTINATION lib${LIB_SUFFIX}) + INSTALL(TARGETS HACD + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX}) + INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${INCLUDE_INSTALL_DIR} FILES_MATCHING PATTERN "*.h" PATTERN "*.inl" PATTERN ".svn" EXCLUDE PATTERN "CMakeFiles" EXCLUDE) diff --git a/Extras/InverseDynamics/CMakeLists.txt b/Extras/InverseDynamics/CMakeLists.txt index 1e2031fcb..22e953a44 100644 --- a/Extras/InverseDynamics/CMakeLists.txt +++ b/Extras/InverseDynamics/CMakeLists.txt @@ -32,7 +32,10 @@ IF (INSTALL_EXTRA_LIBS) IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS BulletInverseDynamicsUtils DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) - INSTALL(TARGETS BulletInverseDynamicsUtils DESTINATION lib${LIB_SUFFIX}) + INSTALL(TARGETS BulletInverseDynamicsUtils + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX}) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${INCLUDE_INSTALL_DIR} FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE PATTERN "CMakeFiles" EXCLUDE) diff --git a/Extras/Serialize/BulletFileLoader/CMakeLists.txt b/Extras/Serialize/BulletFileLoader/CMakeLists.txt index e88720ad3..9b5dce7ea 100644 --- a/Extras/Serialize/BulletFileLoader/CMakeLists.txt +++ b/Extras/Serialize/BulletFileLoader/CMakeLists.txt @@ -34,7 +34,10 @@ IF (INSTALL_EXTRA_LIBS) IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS BulletFileLoader DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) - INSTALL(TARGETS BulletFileLoader DESTINATION lib${LIB_SUFFIX}) + INSTALL(TARGETS BulletFileLoader + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX}) INSTALL( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${INCLUDE_INSTALL_DIR} FILES_MATCHING PATTERN "*.h" PATTERN diff --git a/Extras/Serialize/BulletWorldImporter/CMakeLists.txt b/Extras/Serialize/BulletWorldImporter/CMakeLists.txt index 599625183..3e6f00f10 100644 --- a/Extras/Serialize/BulletWorldImporter/CMakeLists.txt +++ b/Extras/Serialize/BulletWorldImporter/CMakeLists.txt @@ -25,7 +25,10 @@ IF (INSTALL_EXTRA_LIBS) IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS BulletWorldImporter DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) - INSTALL(TARGETS BulletWorldImporter DESTINATION lib${LIB_SUFFIX}) + INSTALL(TARGETS BulletWorldImporter + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX}) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${INCLUDE_INSTALL_DIR} FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE PATTERN "CMakeFiles" EXCLUDE) diff --git a/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt b/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt index f45342101..3a9606288 100644 --- a/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt +++ b/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt @@ -32,7 +32,11 @@ IF (INSTALL_EXTRA_LIBS) IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS BulletXmlWorldImporter DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) - INSTALL(TARGETS BulletXmlWorldImporter DESTINATION lib${LIB_SUFFIX}) + INSTALL(TARGETS BulletXmlWorldImporter + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX}) + INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${INCLUDE_INSTALL_DIR} FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE PATTERN "CMakeFiles" EXCLUDE) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index d5cb18207..8f2f9503d 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,16 +1,5 @@ SUBDIRS( HelloWorld BasicDemo ) IF(BUILD_BULLET3) - SET(DL dl) - IF(CMAKE_SYSTEM_NAME MATCHES "Linux") - SET(OSDEF -D_LINUX) - ELSE(CMAKE_SYSTEM_NAME MATCHES "Linux") - IF(APPLE) - SET(OSDEF -D_DARWIN) - ELSE(APPLE) - SET(OSDEF -D_BSD) - SET(DL "") - ENDIF(APPLE) - ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux") SUBDIRS( ExampleBrowser RobotSimulator SharedMemory ThirdPartyLibs/Gwen ThirdPartyLibs/BussIK ThirdPartyLibs/clsocket OpenGLWindow ) ENDIF() IF(BUILD_PYBULLET) From cfc07565ac3069b4318396c5a54afc97c823e782 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Wed, 6 Sep 2017 14:34:10 -0700 Subject: [PATCH 6/7] fix dumpLog.py --- examples/pybullet/examples/dumpLog.py | 52 +++++++++++++++------------ 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/examples/pybullet/examples/dumpLog.py b/examples/pybullet/examples/dumpLog.py index 8cec0af5b..1c73dfd63 100644 --- a/examples/pybullet/examples/dumpLog.py +++ b/examples/pybullet/examples/dumpLog.py @@ -31,29 +31,35 @@ def readLogFile(filename, verbose = True): print('Columns:'), print(ncols) - # Read data - wholeFile = f.read() - # split by alignment word - chunks = wholeFile.split(b'\xaa\xbb') + lenChunk = sz log = list() - if verbose: - print("num chunks:") - print(len(chunks)) chunkIndex = 0 - for chunk in chunks: - print("len(chunk)=",len(chunk)," sz = ", sz) - if len(chunk) == sz: - print("chunk #",chunkIndex) - chunkIndex=chunkIndex+1 - values = struct.unpack(fmt, chunk) - record = list() - for i in range(ncols): - record.append(values[i]) - if verbose: - print(" ",keys[i],"=",values[i]) - - log.append(record) - + while (lenChunk): + check = f.read(2) + lenChunk = 0 + if (check == b'\xaa\xbb'): + mychunk = f.read(sz) + lenChunk = len(mychunk) + chunks = [mychunk] + if verbose: + print("num chunks:") + print(len(chunks)) + + for chunk in chunks: + print("len(chunk)=",len(chunk)," sz = ", sz) + if len(chunk) == sz: + print("chunk #",chunkIndex) + chunkIndex=chunkIndex+1 + values = struct.unpack(fmt, chunk) + record = list() + for i in range(ncols): + record.append(values[i]) + if verbose: + print(" ",keys[i],"=",values[i]) + + log.append(record) + else: + print("Error, expected aabb terminal") return log @@ -64,11 +70,11 @@ print ('Argument List:', str(sys.argv)) fileName = "log.bin" if (numArgs>1): - fileName = sys.argv[1] + fileName = sys.argv[1] print("filename=") print(fileName) verbose = True - + readLogFile(fileName,verbose) From 7a2de3ea08f095e80b3a6da9b0a6aab2ba13dc2f Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Wed, 6 Sep 2017 15:59:34 -0700 Subject: [PATCH 7/7] fix cmake logic for BUILD_EXTRA_LIBS --- CMakeLists.txt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bab4aa4af..0937ea1aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -420,7 +420,15 @@ ELSE() ENDIF() ENDIF() + IF(INSTALL_LIBS) + #INSTALL of other files requires CMake 2.6 + IF(BUILD_EXTRAS) + IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) + OPTION(INSTALL_EXTRA_LIBS "Set when you want extra libraries installed" ON) + ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) + ENDIF(BUILD_EXTRAS) + SET (LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" ) SET (LIB_DESTINATION "lib${LIB_SUFFIX}" CACHE STRING "Library directory name") ## the following are directories where stuff will be installed to @@ -434,12 +442,8 @@ IF(INSTALL_LIBS) DESTINATION ${PKGCONFIG_INSTALL_PREFIX}) ENDIF(NOT MSVC) -ENDIF(INSTALL_LIBS) +ENDIF() -#INSTALL of other files requires CMake 2.6 -IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) - OPTION(INSTALL_EXTRA_LIBS "Set when you want extra libraries installed" ON) -ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) OPTION(BUILD_UNIT_TESTS "Build Unit Tests" ON)