Following up on this I wrote the following. Starting with the packet classes
I got:
struct ClientRequestInitDataIDPacket : co::NodePacket
{
ClientRequestInitDataIDPacket();
uint32_t _uRequestID;
};
struct ClientInitDataIDPacket : co::NodePacket
{
ClientInitDataIDPacket();
eq::uint128_t _uInitDataID;
uint32_t _uRequestID;
};
ClientRequestInitDataIDPacket::ClientRequestInitDataIDPacket()
:
co::NodePacket()
{
command = eq::fabric::CMD_CLIENT_CUSTOM;
type = co::PACKETTYPE_CO_NODE;
size = sizeof(ClientRequestInitDataIDPacket);
}
ClientInitDataIDPacket::ClientInitDataIDPacket()
:
co::NodePacket()
{
command = eq::fabric::CMD_CLIENT_CUSTOM + 1;
type = co::PACKETTYPE_CO_NODE;
size = sizeof(ClientInitDataIDPacket);
}
Then in the QT side of the application, after connecting to collage I got
the following:
co::CommandQueue* pCommandQueue = getCommandThreadQueue();
co::CommandFunc<CommandClient> commandFunc(this,
&CommandClient::_handleClientCommand);
eq::uint128_t foo = eq::fabric::CMD_CLIENT_CUSTOM;
// we register the call back for whe we receive the request from the
application node
registerCommand(
eq::fabric::CMD_CLIENT_CUSTOM+1,
commandFunc,
pCommandQueue
);
ClientRequestInitDataIDPacket requestPacket;
requestPacket._uRequestID = registerRequest();
_spAppNode->send(requestPacket);
eq::uint128_t uInitDataID = 0;
if (!waitRequest(requestPacket._uRequestID, uInitDataID))
{
EQERROR << "Unable to receive ID for the initialization data
distributed object!" << std::endl;
return false;
}
EQINFO << "Received init data ID: " << uInitDataID << std::endl;
On the EQ side, inside the eq::client-derived at the beginning of the run()
function before the event loop I got the following:
co::CommandQueue* pCommandQueue = getCommandThreadQueue();
co::CommandFunc<GPixel> commandFunc(this,
&GPixel::_handleRequestInitDataID);
eq::uint128_t foo = eq::fabric::CMD_CLIENT_CUSTOM;
registerCommand(
eq::fabric::CMD_CLIENT_CUSTOM,
commandFunc,
pCommandQueue
);
(GPixel is the name of the eq::Client-derived class)
On rutime, I launch the EQ app, then the QT app. The QT app connects to the
application node on the collage side. However, after it sends the request
packet and hits *waitRequest(requestPacket._uRequestID, uInitDataID)* it
blocks. On the log, I see the following:
*##### Abort: Unknown packet type 129 for command< packet dt 129 cmd 47,
RP<node 8c3f7df974c7ae37:8c870a7752571eca connected,
TCPIP#102400#127.0.0.1##4743#default#>, r0 > #####*.
On the EQ side, the log shows this:
*18195 eq::server:
/Users/eile/Software/equalizergraphics.com/Equalizer-1.0.2/libs/server/server.cpp:327
12453 Handle release config packet dt 0 cmd 46 config
a663335a00000003:87ce8517461d4e34
18195 eq::server:
/Users/eile/Software/equalizergraphics.com/Equalizer-1.0.2/libs/server/server.cpp:344
12453 Release request for unknown config*
I've tried playing around with different types of packets but no relief
there. Any ideas Stefan?
--
View this message in context:
http://software.1713.n2.nabble.com/Affecting-Collage-objects-outside-an-Equalizer-application-tp7301888p7305760.html
Sent from the Equalizer - Parallel Rendering mailing list archive at Nabble.com.
_______________________________________________
eq-dev mailing list
[email protected]
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com