A Dijous 12 Abril 2007 00:56, Jan Kiszka va escriure:
> Leopold Palomo-Avellaneda wrote:
> > A Dijous 05 Abril 2007 19:30, Jan Kiszka va escriure:
> >> Leopold Palomo-Avellaneda wrote:
> >>> Hi,
> >>>
> >>> probably I'm doing some big mistake but I'm a bit lost in a trouble
> >>> with rtnet. I have rtnet compiled, installed and running without
> >>> rtmac/tdma.
> >>>
> >>> I have configured the interface and the routes:
> >>>
> >>> $:~/robotica/orocos/rtnet-proves$ sudo /usr/local/rtnet/sbin/rtifconfig
> >>> rteth0    Medium: Ethernet  Hardware address: 00:A0:C9:1D:52:B9
> >>>           IP address: 192.168.1.3  Broadcast address: 192.168.1.255
> >>>           UP BROADCAST RUNNING  MTU: 1500
> >>>
> >>> rtlo      Medium: Local Loopback
> >>>           IP address: 127.0.0.1
> >>>           UP LOOPBACK RUNNING  MTU: 1500
> >>>
> >>> $:~/robotica/orocos/rtnet-proves$ sudo /usr/local/rtnet/sbin/rtroute
> >>> Host Routing Table
> >>> Hash    Destination     HW Address              Device
> >>> 00      0.0.0.0         00:00:00:00:00:00       rtlo
> >>> 01      127.0.0.1       00:00:00:00:00:00       rtlo
> >>> 03      192.168.1.3     00:00:00:00:00:00       rtlo
> >>> 3F      192.168.1.255   FF:FF:FF:FF:FF:FF       rteth0
> >>>
> >>>
> >>> I can do a ping to my rteth0:
> >>> $:~/robotica/orocos/rtnet-proves$ sudo /usr/local/rtnet/sbin/rtping
> >>> 192.168.1.3
> >>> Real-time PING 192.168.1.3 56(84) bytes of data.
> >>> 64 bytes from 127.0.0.1: icmp_seq=1 time=22.9 us
> >>> 64 bytes from 127.0.0.1: icmp_seq=2 time=14.0 us
> >>> .....
> >>>
> >>> if I run the examples of the rtai directory, both run. However I don't
> >>> see the expected result because the server run:
> >>> $:~/robotica/orocos$ sudo /usr/local/rtnet/examples/rtai/simpleserver
> >>> 5000 RTnet, simpleserver for LXRT
> >>>
> >>> and the client runs:
> >>> $:~/robotica/orocos/rtnet-proves$
> >>> sudo /usr/local/rtnet/examples/rtai/simpleclient 5001 192.168.1.3 5000
> >>> RTnet, simpleclient for LXRT
> >>>
> >>> and exit and no message is printed in the server side.
> >>>
> >>> Someone could tell me how can I test what is wrong or what I'm doing
> >>> bad?
> >>
> >> Not immediately. I must admit, the RTAI examples are in bad shape. I
> >> would start checking the return codes of all involved RTnet service
> >> requests. One of them should/must fail. Maybe the information which one
> >> and with what code will help.
> >
> > ok, I had done it in a modified version of the examples. In the server
> > program, I added some printf to the return values of the functions, and
> > so, the important parts:
> >
> > .....
> >
> >     char *a1;
> >     a1= inet_ntoa(local_addr.sin_addr);
> >     printf("Running the server in the ip: %s\n", a1 );
> > .....
> > this print:
> > Running the server in the ip: 0.0.0.0
> >
> > ..............
> >     /* Switch over to hard realtime mode. */
> >     rt_make_hard_real_time();
> >
> >     printf("Ret after the rt = %d \n", ret );
> > .........
> > this print:
> > Ret after the rt = 0
> >
> > ..........
> >     /* Bind socket to local address specified as parameter. */
> >     ret = rt_dev_bind(sockfd, (struct sockaddr *) &local_addr,
> >                       sizeof(struct sockaddr_in));
> >
> >     printf("Ret = %d \n", ret );
> > ...........
> > here, the print:
> > Ret = 0
> >
> > so, I understand that open the socket without any problem
> >
> > ............
> >     /* Block until packet is received. */
> >     ret = rt_dev_recv(sockfd, msg, sizeof(msg), 0);
> > ...............
> >
> > but the program is blocked here.
>
> "but"? Sorry, don't understand. Does the application block here as
> expected? But then it never returns from rt_dev_recv?

exactly, _never_ returns this function. The program is blocked here. I 
understand that is waiting to receive the packets.

> > In the client side:
> > sudo ./simpleclient 5001 127.0.0.1 5000
> > RTnet, simpleclient for LXRT
> >
> > The connection says : 0
> >
> >
> > .............
> >     /* Bind socket to local address specified as parameter. */
> >     ret = rt_dev_bind(sockfd, (struct sockaddr *) &local_addr,
> >                       sizeof(struct sockaddr_in));
> >   printf("Ret after the rt_dev_bind = %d \n", ret );
> > ...........
> >
> > print:
> > Ret after the rt_dev_bind = 0
> > ......................
> >     /* Specify destination address for socket; needed for
> > rt_socket_send(). */ int value = rt_dev_connect(sockfd, (struct sockaddr
> > *) &server_addr, sizeof(struct sockaddr_in));
> >     printf("The connection says : %i\n", value);
> > ..................
> > The connection says : 0
> >
> >
> > really I'm blocked now ....
>
> ???
>
> What does rt_dev_send return?

The send command says : 40

> Additionally, you could attach RTcap to the loopback device in sniff if
> there is something on the "virtual" wire, and how that frame precisely
> look like.

Ok, I will try....

> >> BTW, I'm always open to apply cleanup patches for the RTAI examples, or
> >> new and better ones. But I depend on RTAI users here, I don't have that
> >> test environment anymore.
> >
> > Ok, I take note.
> >
> > regards,
> >
> > Leo
>
> Jan

Thank's for all.

Leo

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
RTnet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/rtnet-users

Reply via email to