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

Reply via email to