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