From: Oliver Hartkopp <socketcan@hartkopp.net>
To: Marc Kleine-Budde <mkl@pengutronix.de>,
Vincent Mailhol <mailhol.vincent@wanadoo.fr>,
linux-can@vger.kernel.org
Subject: Re: [PATCH] cangen: allow DLC > 8 in increment generation mode if -8 option is given
Date: Tue, 3 Nov 2020 19:38:08 +0100 [thread overview]
Message-ID: <17220721-19c8-058d-eaae-888feb0a4ca3@hartkopp.net> (raw)
In-Reply-To: <b339bb62-3835-81c3-ff91-fda124bbb549@pengutronix.de>
On 03.11.20 18:01, Marc Kleine-Budde wrote:
> On 11/3/20 5:51 PM, Vincent Mailhol wrote:
>> Currently, the -8 option allows DLCs greater than 8 in mix mode only.
>>
>> Add the option to also generate such DLCs in increment
>> mode. e.g.: 'cangen -8 -Li can0'
>>
>> Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
>> ---
>> cangen.c | 20 ++++++++++++++------
>> 1 file changed, 14 insertions(+), 6 deletions(-)
>>
>> diff --git a/cangen.c b/cangen.c
>> index 5c86f26..06a1931 100644
>> --- a/cangen.c
>> +++ b/cangen.c
>> @@ -171,7 +171,7 @@ int main(int argc, char **argv)
>> struct pollfd fds;
>>
>> struct sockaddr_can addr;
>> - static struct canfd_frame frame;
>> + static struct canfd_frame frame = { 0 };
I've omitted this change as a static variable is initialized with zero
by default.
>> struct can_frame *ccf = (struct can_frame *)&frame;
>> int nbytes;
>> int i;
>> @@ -386,7 +386,6 @@ int main(int argc, char **argv)
>>
>> while (running) {
>> frame.flags = 0;
>> - ccf->len8_dlc = 0;
>>
>> if (count && (--count == 0))
>> running = 0;
>> @@ -428,7 +427,8 @@ int main(int argc, char **argv)
>> ccf->len8_dlc = frame.len;
>>
>> frame.len = 8; /* for about 50% of the frames */
>> - }
>> + } else
>> + ccf->len8_dlc = 0;
>
> nitpick:
>
> please use { } on the else side, too
>
Added the {}'s and committed the patch on
https://github.com/hartkopp/can-utils.
Also added some stuff to support 'fixed' raw DLC values in combination
with the '-8' option.
Thanks,
Oliver
>> }
>> }
>>
>> @@ -507,12 +507,20 @@ resend:
>> if (dlc_mode == MODE_INCREMENT) {
>>
>> incdlc++;
>> + incdlc %= CAN_MAX_RAW_DLC + 1;
>>
>> - if (canfd && !mix) {
>> - incdlc &= 0xF;
>> + if (canfd && !mix)
>> frame.len = can_dlc2len(incdlc);
>> + else if (len8_dlc) {
>> + if (incdlc > CAN_MAX_DLEN) {
>> + frame.len = CAN_MAX_DLEN;
>> + ccf->len8_dlc = incdlc;
>> + } else {
>> + frame.len = incdlc;
>> + ccf->len8_dlc = 0;
>> + }
>> } else {
>> - incdlc %= 9;
>> + incdlc %= CAN_MAX_DLEN + 1;
>> frame.len = incdlc;
>> }
>> }
>>
>
> Marc
>
prev parent reply other threads:[~2020-11-03 18:38 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-03 16:51 [PATCH] cangen: allow DLC > 8 in increment generation mode if -8 option is given Vincent Mailhol
2020-11-03 17:01 ` Marc Kleine-Budde
2020-11-03 18:38 ` Oliver Hartkopp [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=17220721-19c8-058d-eaae-888feb0a4ca3@hartkopp.net \
--to=socketcan@hartkopp.net \
--cc=linux-can@vger.kernel.org \
--cc=mailhol.vincent@wanadoo.fr \
--cc=mkl@pengutronix.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).