use grpc port -1 by default in PyBullet. add grpcClient.py and grpcServer.py

This commit is contained in:
erwincoumans
2018-09-20 09:07:47 -07:00
parent 3de295ca41
commit 616192f80a
5 changed files with 61 additions and 3 deletions

View File

@@ -67,7 +67,11 @@ struct GRPCNetworkedInternalData
{ {
if (m_isConnected) if (m_isConnected)
return true; return true;
std::string hostport = m_hostName + ':' + std::to_string(m_port); std::string hostport = m_hostName;
if (m_port >= 0)
{
hostport += ':' + std::to_string(m_port);
}
m_grpcChannel = grpc::CreateChannel( m_grpcChannel = grpc::CreateChannel(
hostport, grpc::InsecureChannelCredentials()); hostport, grpc::InsecureChannelCredentials());

View File

@@ -255,7 +255,11 @@ int main(int argc, char** argv)
int port = 6667; int port = 6667;
parseArgs.GetCmdLineArgument("port", port); parseArgs.GetCmdLineArgument("port", port);
std::string hostName = "localhost"; std::string hostName = "localhost";
std::string hostNamePort = hostName + ":" + std::to_string(port); std::string hostNamePort = hostName;
if (port>=0)
{
hostNamePort += ":" + std::to_string(port);
}
gVerboseNetworkMessagesServer = parseArgs.CheckCmdLineFlag("verbose"); gVerboseNetworkMessagesServer = parseArgs.CheckCmdLineFlag("verbose");

View File

@@ -0,0 +1,19 @@
import pybullet as p
usePort = True
if (usePort):
id = p.connect(p.GRPC,"localhost:12345")
else:
id = p.connect(p.GRPC,"localhost")
print("id=",id)
if (id<0):
print("Cannot connect to GRPC server")
exit(0)
print ("Connected to GRPC")
r2d2 = p.loadURDF("r2d2.urdf")
print("numJoints = ", p.getNumJoints(r2d2))

View File

@@ -0,0 +1,29 @@
import pybullet as p
import time
useDirect = False
usePort = True
p.connect(p.GUI)
id = p.loadPlugin("grpcPlugin")
#dynamically loading the plugin
#id = p.loadPlugin("E:/develop/bullet3/bin/pybullet_grpcPlugin_vs2010_x64_debug.dll", postFix="_grpcPlugin")
#start the GRPC server at hostname, port
if (id<0):
print("Cannot load grpcPlugin")
exit(0)
if usePort:
p.executePluginCommand(id, "localhost:12345")
else:
p.executePluginCommand(id, "localhost")
while p.isConnected():
if (useDirect):
#Only in DIRECT mode, since there is no 'ping' you need to manually call to handle RCPs:
numRPC = 10
p.executePluginCommand(id, intArgs=[numRPC])
else:
dt = 1./240.
time.sleep(dt)

View File

@@ -330,6 +330,7 @@ static PyObject* pybullet_connectPhysicsServer(PyObject* self, PyObject* args, P
int key = SHARED_MEMORY_KEY; int key = SHARED_MEMORY_KEY;
int udpPort = 1234; int udpPort = 1234;
int tcpPort = 6667; int tcpPort = 6667;
int grpcPort = -1;
int argc = 0; int argc = 0;
char** argv=0; char** argv=0;
@@ -352,6 +353,7 @@ static PyObject* pybullet_connectPhysicsServer(PyObject* self, PyObject* args, P
{ {
udpPort = port; udpPort = port;
tcpPort = port; tcpPort = port;
grpcPort = port;
} }
} }
} }
@@ -437,7 +439,7 @@ static PyObject* pybullet_connectPhysicsServer(PyObject* self, PyObject* args, P
case eCONNECT_GRPC: case eCONNECT_GRPC:
{ {
#ifdef BT_ENABLE_GRPC #ifdef BT_ENABLE_GRPC
sm = b3ConnectPhysicsGRPC(hostName, tcpPort); sm = b3ConnectPhysicsGRPC(hostName, grpcPort);
#else #else
PyErr_SetString(SpamError, "GRPC is not enabled in this pybullet build"); PyErr_SetString(SpamError, "GRPC is not enabled in this pybullet build");
#endif #endif