linux-can.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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
> 

      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).