Skip to content

Commit fa86c2e

Browse files
committed
NodeInfo w/ optional CRC
1 parent def9073 commit fa86c2e

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed

src/Node.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,23 @@ NodeInfo Node::create_node_info(uint8_t const protocol_major, uint8_t const prot
7878
name);
7979
}
8080

81+
NodeInfo Node::create_node_info(uint8_t const protocol_major, uint8_t const protocol_minor,
82+
uint8_t const hardware_major, uint8_t const hardware_minor,
83+
uint8_t const software_major, uint8_t const software_minor,
84+
uint64_t const software_vcs_revision_id,
85+
std::array<uint8_t, 16> const & unique_id,
86+
std::string const & name,
87+
uint64_t const image_crc)
88+
{
89+
return std::make_shared<impl::NodeInfo>(*this,
90+
protocol_major, protocol_minor,
91+
hardware_major, hardware_minor,
92+
software_major, software_minor,
93+
software_vcs_revision_id,
94+
unique_id,
95+
name, image_crc);
96+
}
97+
8198
void Node::spinSome()
8299
{
83100
processPortList();

src/Node.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,14 @@ class Node
113113
std::array<uint8_t, 16> const & unique_id,
114114
std::string const & name);
115115

116+
NodeInfo create_node_info(uint8_t const protocol_major, uint8_t const protocol_minor,
117+
uint8_t const hardware_major, uint8_t const hardware_minor,
118+
uint8_t const software_major, uint8_t const software_minor,
119+
uint64_t const software_vcs_revision_id,
120+
std::array<uint8_t, 16> const & unique_id,
121+
std::string const & name,
122+
uint64_t const image_crc);
123+
116124
/* Must be called from the application to process
117125
* all received CAN frames.
118126
*/

src/util/nodeinfo/NodeInfo.hpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,29 @@ namespace impl
3434
class NodeInfo : public NodeInfoBase
3535
{
3636
public:
37+
NodeInfo(Node & node_hdl,
38+
uint8_t const protocol_major,
39+
uint8_t const protocol_minor,
40+
uint8_t const hardware_major,
41+
uint8_t const hardware_minor,
42+
uint8_t const software_major,
43+
uint8_t const software_minor,
44+
uint64_t const software_vcs_revision_id,
45+
std::array<uint8_t, 16> const & unique_id,
46+
std::string const & name,
47+
std::uint64_t const software_image_crc)
48+
: NodeInfo{node_hdl,
49+
protocol_major, protocol_minor,
50+
hardware_major, hardware_minor,
51+
software_major, software_minor,
52+
software_vcs_revision_id,
53+
unique_id,
54+
name}
55+
{
56+
std::array<std::uint64_t, 1> const crc = {software_image_crc};
57+
std::copy(crc.cbegin(), crc.cend(), std::back_inserter(_node_info_rsp.software_image_crc));
58+
}
59+
3760
NodeInfo(Node & node_hdl,
3861
uint8_t const protocol_major,
3962
uint8_t const protocol_minor,

0 commit comments

Comments
 (0)