@@ -22,7 +22,6 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCL
2222ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2323*/
2424#include " clearpath_motor_msgs/msg/puma_status.hpp"
25- #include " clearpath_ros2_socketcan_interface/socketcan_interface.hpp"
2625
2726#include " puma_motor_driver/driver.hpp"
2827
@@ -59,7 +58,7 @@ enum ConfigurationState
5958typedef ConfigurationStates::ConfigurationState ConfigurationState;
6059
6160Driver::Driver (
62- const std::shared_ptr<clearpath_ros2_socketcan_interface::SocketCANInterface > interface,
61+ const std::shared_ptr<can_hardware::drivers::SocketCanDriver > interface,
6362 std::shared_ptr<rclcpp::Node> nh,
6463 const uint8_t & device_number,
6564 const std::string & device_name)
@@ -88,20 +87,20 @@ Driver::Driver(
8887 );
8988}
9089
91- void Driver::processMessage (const can_msgs::msg:: Frame::SharedPtr received_msg)
90+ void Driver::processMessage (const can_hardware:: Frame & received_msg)
9291{
9392 // If it's not our message, jump out.
94- if (getDeviceNumber (* received_msg) != device_number_) {
93+ if (getDeviceNumber (received_msg) != device_number_) {
9594 return ;
9695 }
9796
9897 // If there's no data then this is a request message, jump out.
99- if (received_msg-> dlc == 0 ) {
98+ if (received_msg. dlc == 0 ) {
10099 return ;
101100 }
102101
103102 Field * field = nullptr ;
104- uint32_t received_api = getApi (* received_msg);
103+ uint32_t received_api = getApi (received_msg);
105104 if ((received_api & CAN_MSGID_API_M & CAN_API_MC_CFG) == CAN_API_MC_CFG) {
106105 field = cfgFieldForMessage (received_api);
107106 } else if ((received_api & CAN_MSGID_API_M & CAN_API_MC_STATUS) == CAN_API_MC_STATUS) {
@@ -128,7 +127,7 @@ void Driver::processMessage(const can_msgs::msg::Frame::SharedPtr received_msg)
128127 }
129128
130129 // Copy the received data and mark that field as received.
131- std::copy_n (std::begin (received_msg-> data ), Field::FIELD_STRUCT_DATA_SIZE,
130+ std::copy_n (std::begin (received_msg. data ), Field::FIELD_STRUCT_DATA_SIZE,
132131 std::begin (field->data ));
133132 field->received = true ;
134133}
@@ -140,75 +139,75 @@ double Driver::radPerSecToRpm() const
140139
141140void Driver::sendId (const uint32_t id)
142141{
143- can_msgs::msg::Frame msg = getMsg (id);
144- interface_->send (msg);
142+ auto msg = getMsg (id);
143+ interface_->sendFrame (msg);
145144}
146145
147146void Driver::sendUint8 (const uint32_t id, const uint8_t value)
148147{
149- can_msgs::msg::Frame msg = getMsg (id);
148+ auto msg = getMsg (id);
150149 msg.dlc = sizeof (uint8_t );
151150 uint8_t data[8 ] = {0 };
152151 std::memcpy (data, &value, sizeof (uint8_t ));
153152 std::copy (std::begin (data), std::end (data), std::begin (msg.data ));
154153
155- interface_->send (msg);
154+ interface_->sendFrame (msg);
156155}
157156
158157void Driver::sendUint16 (const uint32_t id, const uint16_t value)
159158{
160- can_msgs::msg::Frame msg = getMsg (id);
159+ auto msg = getMsg (id);
161160 msg.dlc = sizeof (uint16_t );
162161 uint8_t data[8 ] = {0 };
163162 std::memcpy (data, &value, sizeof (uint16_t ));
164163 std::copy (std::begin (data), std::end (data), std::begin (msg.data ));
165164
166- interface_->send (msg);
165+ interface_->sendFrame (msg);
167166}
168167
169168void Driver::sendFixed8x8 (const uint32_t id, const float value)
170169{
171- can_msgs::msg::Frame msg = getMsg (id);
170+ auto msg = getMsg (id);
172171 msg.dlc = sizeof (int16_t );
173172 int16_t output_value = static_cast <int16_t >(static_cast <float >(1 << 8 ) * value);
174173
175174 uint8_t data[8 ] = {0 };
176175 std::memcpy (data, &output_value, sizeof (int16_t ));
177176 std::copy (std::begin (data), std::end (data), std::begin (msg.data ));
178177
179- interface_->send (msg);
178+ interface_->sendFrame (msg);
180179}
181180
182181void Driver::sendFixed16x16 (const uint32_t id, const double value)
183182{
184- can_msgs::msg::Frame msg = getMsg (id);
183+ auto msg = getMsg (id);
185184 msg.dlc = sizeof (int32_t );
186185 int32_t output_value = static_cast <int32_t >(static_cast <double >((1 << 16 ) * value));
187186
188187 uint8_t data[8 ] = {0 };
189188 std::memcpy (data, &output_value, sizeof (int32_t ));
190189 std::copy (std::begin (data), std::end (data), std::begin (msg.data ));
191190
192- interface_->send (msg);
191+ interface_->sendFrame (msg);
193192}
194193
195- can_msgs::msg ::Frame Driver::getMsg (const uint32_t id)
194+ can_hardware ::Frame Driver::getMsg (const uint32_t id)
196195{
197- can_msgs::msg ::Frame msg;
196+ can_hardware ::Frame msg;
198197 msg.id = id;
199198 msg.dlc = 0 ;
200199 msg.is_extended = true ;
201- msg.header .stamp = nh_->get_clock ()->now ();
202- msg.header .frame_id = " base_link" ;
200+ // msg.header.stamp = nh_->get_clock()->now();
201+ // msg.header.frame_id = "base_link";
203202 return msg;
204203}
205204
206- uint32_t Driver::getApi (const can_msgs::msg:: Frame msg)
205+ uint32_t Driver::getApi (const can_hardware:: Frame & msg)
207206{
208207 return msg.id & (CAN_MSGID_FULL_M ^ CAN_MSGID_DEVNO_M);
209208}
210209
211- uint32_t Driver::getDeviceNumber (const can_msgs::msg:: Frame msg)
210+ uint32_t Driver::getDeviceNumber (const can_hardware:: Frame & msg)
212211{
213212 return msg.id & CAN_MSGID_DEVNO_M;
214213}
@@ -901,7 +900,7 @@ uint16_t Driver::encoderCounts()
901900
902901double Driver::getP ()
903902{
904- Field * field;
903+ Field * field = nullptr ;
905904 switch (control_mode_) {
906905 case clearpath_motor_msgs::msg::PumaStatus::MODE_CURRENT:
907906 field = ictrlFieldForMessage (getApi (getMsg (LM_API_ICTRL_PC)));
@@ -918,7 +917,7 @@ double Driver::getP()
918917
919918double Driver::getI ()
920919{
921- Field * field;
920+ Field * field = nullptr ;
922921 switch (control_mode_) {
923922 case clearpath_motor_msgs::msg::PumaStatus::MODE_CURRENT:
924923 field = ictrlFieldForMessage (getApi (getMsg (LM_API_ICTRL_IC)));
@@ -935,7 +934,7 @@ double Driver::getI()
935934
936935double Driver::getD ()
937936{
938- Field * field;
937+ Field * field = nullptr ;
939938 switch (control_mode_) {
940939 case clearpath_motor_msgs::msg::PumaStatus::MODE_CURRENT:
941940 field = ictrlFieldForMessage (getApi (getMsg (LM_API_ICTRL_DC)));
@@ -952,7 +951,7 @@ double Driver::getD()
952951
953952uint8_t * Driver::getRawP ()
954953{
955- Field * field;
954+ Field * field = nullptr ;
956955 switch (control_mode_) {
957956 case clearpath_motor_msgs::msg::PumaStatus::MODE_CURRENT:
958957 field = ictrlFieldForMessage (getApi (getMsg (LM_API_ICTRL_PC)));
@@ -969,7 +968,7 @@ uint8_t * Driver::getRawP()
969968
970969uint8_t * Driver::getRawI ()
971970{
972- Field * field;
971+ Field * field = nullptr ;
973972 switch (control_mode_) {
974973 case clearpath_motor_msgs::msg::PumaStatus::MODE_CURRENT:
975974 field = ictrlFieldForMessage (getApi (getMsg (LM_API_ICTRL_IC)));
@@ -986,7 +985,7 @@ uint8_t * Driver::getRawI()
986985
987986uint8_t * Driver::getRawD ()
988987{
989- Field * field;
988+ Field * field = nullptr ;
990989 switch (control_mode_) {
991990 case clearpath_motor_msgs::msg::PumaStatus::MODE_CURRENT:
992991 field = ictrlFieldForMessage (getApi (getMsg (LM_API_ICTRL_DC)));
0 commit comments