From: Wolfgang Grandegger <wg@domain.hid>
To: quinty <webquinty2@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] Hello, doubts with RT-CAN
Date: Tue, 17 Jun 2008 10:29:57 +0200 [thread overview]
Message-ID: <48577605.4090801@domain.hid> (raw)
In-Reply-To: <2f7417810806170109j7b9e7b85hfbeaace299f67b3e@domain.hid>
quinty wrote:
>
>
> 2008/6/17 Wolfgang Grandegger <wg@domain.hid
> <mailto:wg@domain.hid>>:
>
> quinty wrote:
>
> Hello,
>
> I am testing RT-CAN with MPC5200 and linux 2.6.23.14
> <http://2.6.23.14> <http://2.6.23.14> , xenomai 2.4.2.
> <http://2.4.2.> <http://2.4.2.>
>
> Well I have some doubts:
> 1.- In kernel configuration, there is a parameter to change
> lenght of RX CAN buffer, 1024 by default.
> What units???, 1024 bytes, 1024 telegrams??'
>
>
> It is in bytes and must be 2^n.
>
>
> 2.- RT-CAN is a block or non-block??? in other words, when I use
> rtcanrecv examples, code wait in this line of code
>
> ret = rt_dev_recvfrom
> <http://www.xenomai.org/documentation/branches/v2.4.x/html/api/group__userapi.html#g0cc144457c649f197d485581686273dd>(s,
> (void *)&frame, sizeof(can_frame_t
> <http://www.xenomai.org/documentation/branches/v2.4.x/html/api/structcan__frame.html>),
> 0,(struct sockaddr *)&addr, &addrlen);, until driver recieve
> message.
>
>
> Yes, unless you have opened the socket with the non-blocking flag.
>
>
>
> 3.- Have RT-CAN TX buffer???
>
>
> No, Out-going messages are not queued.
>
> What is your problem?
>
> Wolfgang.
>
> Hello Wolfgang,
>
> well, in this moment I have not clear what is my problem. I have made
> some examples with my board to try understand rt-can.
>
> About non-block
>
> ret = rt_dev_recvfrom(can_fd, (void *)&frame, sizeof(can_frame_t),
> *MSG_DONTWAIT*,
> (struct sockaddr *)&addr, &addrlen);
>
> I have used this flag to not wait a message, but now, you told me that I
> must open the socket with the non-blocking flag.
I'm wrong and your are right.
>
> can_fd = rt_dev_socket(PF_CAN, SOCK_RAW, CAN_RAW);
> ret = rt_dev_ioctl(can_fd, SIOCGIFINDEX, &ifr);
>
> but in this lines, I do not known how to set non-blocking flag.
See above.
> I am going to explaind you my problem. I am connected a device with CAN.
> This device send message every 5ms with differents ID, for example,
> 0x136, 0x624, 0x664, etc etc, then I need to read this telegrams and the
> same time, I must calculate some values to send and check other process.
> If driver is block, I can not check other process.
You could use a multi-threaded application with proper synchronization.
But your single-threaded approach is a valuable option as well.
Wolfgang.
prev parent reply other threads:[~2008-06-17 8:29 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-16 16:33 [Xenomai-help] Hello, doubts with RT-CAN quinty
2008-06-17 7:21 ` Wolfgang Grandegger
2008-06-17 8:09 ` quinty
2008-06-17 8:29 ` Wolfgang Grandegger [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48577605.4090801@domain.hid \
--to=wg@domain.hid \
--cc=webquinty2@domain.hid \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.