Skip to content

Conversation

@CrolineCrois
Copy link

URCA Can Tooler

Problem and Scope

Last year CAN ID updating very painful and sad -- manual downloading/parsing of google sheet per change.

Description

ID Constants to autogenerate header files upon compile from custom yaml format to enums/structs/as needed.

Gotchas and Limitations

No nice UI, single raw huge yaml file. Other stuff.

Testing

Lots of it. Error handling for all incorrect input, testing with last year's data spreadsheet

  • HOOTL testing
  • HITL testing
  • Human tested

Testing Details

Yes

Larger Impact

Reduce data->code conversion errors, less manual human labor & upkeep needed to manage IDs.

Additional Context and Ticket

@CrolineCrois CrolineCrois self-assigned this Jan 9, 2026
@CrolineCrois CrolineCrois added the Enhancement New feature or request label Jan 9, 2026
@dchansen06 dchansen06 added Documentation Improvements or additions to documentation GitHub Meta, anything related to or dealing with GitHub CMake Anything related to or dealing with CMake HOOTL Testing Having to do with or interacting with HOOTL testing Big Fry Something that is complex and/or large CTest Anything related to or dealing with CTest Peripheral Related to or involving a peripheral including abstractions labels Jan 9, 2026
@dchansen06 dchansen06 added the 1 URGENT Urgent issue that needs a quick action and resolution label Jan 9, 2026
Comment on lines +1 to +11
inc/
!inc/output.dbc

# CANfigurator
Autogen/CAN/Inc/can_msg_ids.h
Autogen/CAN/Inc/CANDler.h
Autogen/CAN/Inc/Custom_CAN_ID.h
Autogen/CAN/Inc/GR_IDS.h
Autogen/CAN/Inc/output.dbc
Autogen/CAN/Src/output.dbc
Autogen/CAN/Doc/output.dbc
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In it's current form I think the full paths will not work (off of memory) but also this can be simplified greatly

Suggested change
inc/
!inc/output.dbc
# CANfigurator
Autogen/CAN/Inc/can_msg_ids.h
Autogen/CAN/Inc/CANDler.h
Autogen/CAN/Inc/Custom_CAN_ID.h
Autogen/CAN/Inc/GR_IDS.h
Autogen/CAN/Inc/output.dbc
Autogen/CAN/Src/output.dbc
Autogen/CAN/Doc/output.dbc
Doc/*.dbc
Inc/*.h

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is an extraneous duplicate of the one in Autogen/CAN/Inc

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is an extraneous duplicate of the one in Autogen/CAN/Inc

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is an extraneous duplicate of the one in Autogen/CAN/Inc

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is an extraneous duplicate of the one in Autogen/CAN/Inc

use File::Basename;
use File::Path qw(make_path);
my $yaml_file = $ARGV[0] // 'format.CANdo';
my $output_file = $ARGV[1] // 'can_msg_ids.h';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please pick a capitalization format and stick to it for all of them

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CANDler.h is a reserved name, please call it something else (maybe GRCAN_MSG_DATA.h or similar)

@dchansen06
Copy link
Contributor

Please use the GRCAN_<TYPE>_<DATA>.h scheme for naming your header files, currently they vary in capitalization and cross into reserved space

GRCAN_MSG_ID.h
GRCAN_MSG_DATA.h
GRCAN_NODE_ID.h
GRCAN_CUSTOM_ID.h

dchansen06 added a commit that referenced this pull request Feb 1, 2026
# Implement Perl Critic

## Problem and Scope
Trying to resolve issue #174 for CAN URCA, who are writing in Perl. A
Perl::Critic implementation was desired for verifying commits.

## Description
Added a minimal Perl::Critic file with an appropriate GitHub Action in a
.yml file, which is named similarly.

Outputs to `$GITHUB_STEP_SUMMARY` and as GitHub annotations within the
PR context

## Gotchas and Limitations
A .perlcritic file allows for a range of harshness when it comes to
checking, as well as how descriptive it is in describing errors. This
ranges from 1-5 and 1-11, respectively.

## Testing

- [x] HOOTL testing
- [ ] HITL testing
- [x] Human tested

### Testing Details
Tested by copying current Perl code in and checking output of action by
hand

## Larger Impact
Will help Perl code be nicely written

## Additional Context and Ticket
Resolves #174 
Helps #176 
Parallel to #185

---------

Co-authored-by: Daniel Hansen <dchansen06@gmail.com>
Comment on lines +25 to +28
- name: Install YAML::XS
uses: perl-actions/install-with-cpanm@v1
with:
install: YAML::XS
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider switching to one that provides caching for faster runtimes

Suggested change
- name: Install YAML::XS
uses: perl-actions/install-with-cpanm@v1
with:
install: YAML::XS
- name: Setup Perl
uses: shogo82148/actions-setup-perl@v1
with:
install-modules: 'YAML::XS'

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inspired from #179

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1 URGENT Urgent issue that needs a quick action and resolution Big Fry Something that is complex and/or large CMake Anything related to or dealing with CMake CTest Anything related to or dealing with CTest Documentation Improvements or additions to documentation Enhancement New feature or request GitHub Meta, anything related to or dealing with GitHub HOOTL Testing Having to do with or interacting with HOOTL testing Peripheral Related to or involving a peripheral including abstractions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Perl CAN Data Parser GitHub Action

5 participants