use grpc port -1 by default in PyBullet. add grpcClient.py and grpcServer.py
This commit is contained in:
@@ -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());
|
||||||
|
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|
||||||
|
|||||||
19
examples/pybullet/examples/grpcClient.py
Normal file
19
examples/pybullet/examples/grpcClient.py
Normal 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))
|
||||||
|
|
||||||
29
examples/pybullet/examples/grpcServer.py
Normal file
29
examples/pybullet/examples/grpcServer.py
Normal 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)
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user