5
5
#include < sensor_msgs/msg/nav_sat_status.hpp>
6
6
#include < libgpsmm.h>
7
7
8
+ #include < chrono>
8
9
#include < cmath>
9
10
11
+ using namespace std ::chrono_literals;
12
+
10
13
namespace gpsd_client
11
14
{
12
15
class GPSDClientComponent : public rclcpp ::Node
@@ -18,7 +21,12 @@ namespace gpsd_client
18
21
use_gps_time_(true ),
19
22
check_fix_by_variance_(true ),
20
23
frame_id_(" gps" )
21
- {}
24
+ {
25
+ timer_ = create_wall_timer (
26
+ 1s, std::bind (&GPSDClientComponent::step, this ));
27
+ start ();
28
+ RCLCPP_INFO (this ->get_logger (), " Instantiated." );
29
+ }
22
30
23
31
bool start ()
24
32
{
@@ -58,7 +66,7 @@ namespace gpsd_client
58
66
return false ;
59
67
}
60
68
61
- RCLCPP_INFO (this ->get_logger (), " GPSd opened" );
69
+ RCLCPP_DEBUG (this ->get_logger (), " GPSd opened" );
62
70
return true ;
63
71
}
64
72
@@ -207,6 +215,7 @@ namespace gpsd_client
207
215
208
216
fix.status = status;
209
217
218
+ RCLCPP_INFO (this ->get_logger (), " Publishing gps fix..." );
210
219
gps_fix_pub_->publish (fix);
211
220
}
212
221
@@ -271,6 +280,7 @@ namespace gpsd_client
271
280
272
281
fix->position_covariance_type = sensor_msgs::msg::NavSatFix::COVARIANCE_TYPE_DIAGONAL_KNOWN;
273
282
283
+ RCLCPP_DEBUG (this ->get_logger (), " Publishing navsatfix..." );
274
284
navsatfix_pub_->publish (std::move (fix));
275
285
}
276
286
@@ -282,6 +292,7 @@ namespace gpsd_client
282
292
bool use_gps_time_;
283
293
bool check_fix_by_variance_;
284
294
std::string frame_id_;
295
+ rclcpp::TimerBase::SharedPtr timer_;
285
296
};
286
297
}
287
298
0 commit comments