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?
>
> 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?
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.
>
>> 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
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------- 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

