|
In lugnet.robotics.rcx.legos, Eddie C. Dost writes:
> > My code (removing some CORBA detail) looks like this:
> > I have a class "nanOrbDemo_i" which has the following
> > constructor:
> >
> > inline nanOrbDemo_i(){
> >
> > if ( lnp_init(0,0,0,0,0) ){
> > cout << "LNP Init() Failed" <<endl;
> > }
> > else cout << "LNP Initialised" << endl;
> > };
> >
> > Then in a particular method of this class, for debugging pusposes,
> > I have added the following simple code:
> >
> > //DEBUGGING ....
> >
> > char* testbuffer;
> > unsigned char testlen;
> > unsigned char testport;
> > unsigned char testhost;
> > unsigned char testaddress;
> >
> > testbuffer = "GIOP";
> > testlen = 4;
> > testport = 1;
> > testhost = 0;
> > testaddress = (testhost << 4 | testport);
> >
> > cout << "DEBUG: step 1 reached" << endl;
> >
> > result = lnp_addressing_write(testbuffer, testlen ,testaddress, 8);
> >
> > cout << "DEBUG: step 2 reached" << endl;
> >
> > switch (result){
> >
> > case TX_SUCCESS:
> > cout << "Transmitted" << endl;
> > case TX_FAILURE:
> > cout << "Collision" << endl;
> > default:
> > cout << "Error" <<endl;
> > }
> >
> > cout << "DEBUG: step 3 reached" << endl;
> > //END DEBUGGING
> > cout << "\nExiting method " << endl;
> >
> >
> >
> > My code never reaches "debugging step 2". When I compile and run this, the
> > data is successfully recieved by the RCX, but the lnp_addressing_write(..)
> > call never returns .....
> >
> > Does anyone have any ideas, please? It's driving me mad,
>
> From the statement "data is received by the RCX" I assume you have this
> problem on the host system. What OS are you using? Also, how does your
> lnp_logical_write() routine look like?
Yes, the problem is on the host PC (running Red Hat 6.2). What I cant figure
out is how identical code works fine if I instantiate the wrapper class
in a simple demo app, but once I try calling it form within my CORBA server,
it blocks on sending the data??
I'm using OmniOrb 3.0 from AT&T Labs, and all my code is C++, compiled with:
$ g++ -v
> Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
> gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
The lnp_integrity_write(..) functionality is the same (I'm assuming you meant
'lnp_integrity_write' and not 'lnp_logical_write', is this correct). It too is
failing in the CORBA server.
Thanks,
Colin
|
|
Message has 1 Reply: | | Re: Blockin LNP calls
|
| (...) No, I meant lnp_logical_write, which is called from lnp_addressing_write. lnp_logical_write is not within the file lnp.c, which I guess you link into your app. This function is supposed to actually write to the serial device communicating with (...) (24 years ago, 28-Aug-00, to lugnet.robotics.rcx.legos)
|
Message is in Reply To:
| | Re: Blockin LNP calls
|
| (...) From the statement "data is received by the RCX" I assume you have this problem on the host system. What OS are you using? Also, how does your lnp_logical_write() routine look like? Eddie C. Dost ecd@skynet.be (24 years ago, 27-Aug-00, to lugnet.robotics.rcx.legos)
|
8 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|