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)
|
||||
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());
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
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 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
|
||||
|
||||
Reference in New Issue
Block a user