I found one other question from 2017 about accessing Linux SocketCAN sockets from Perl, but there weren't any replies that I could make sense of. One that suggested using pack/unpack to modify the socket type parameter to the IO::Socket call. I have no idea how to make use of that, but after the passage of time, I wonder if someone has come up with a more straightforward solution. Like the previous poster, I have been able to use the linux candump tool with a Perl wrapper, but I was hoping for something a little cleaner. Perl is my weapon of choice for ad hoc scripts to acquire and process data, and this is the first time I've found no direct method to do what I want it to do.

My present use case is to capture data from an Arduino sending on a MCP2515 CAnbus module and receiving on a RPi with a CANbus interface that works well in Linux as far as I can tell. In the fullness of time, I'd like to create an intelligent sniffer that can capture specific data from a busy CANbus that is part of a control system in a particle accelerator lab.


In reply to Access socketCAN from Perl by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.