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)
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(
hostport, grpc::InsecureChannelCredentials());

View File

@@ -255,7 +255,11 @@ int main(int argc, char** argv)
int port = 6667;
parseArgs.GetCmdLineArgument("port", port);
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");

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