Formula Student Autonomous Systems
The code for the main driverless system
Loading...
Searching...
No Matches
files.cpp
Go to the documentation of this file.
1#include "utils/files.hpp"
2
3#include <filesystem>
4#include <string>
5#include <vector>
6
7std::vector<PathPoint> read_path_file(const std::string &filename) {
8 std::string filePrefix = ament_index_cpp::get_package_share_directory("planning");
9 std::string filepath = filePrefix + "/planning/planning" + filename;
10 std::ifstream path_file(filepath);
11 std::vector<PathPoint> path;
12 float x, y;
13 while (path_file >> x >> y) {
14 PathPoint pathpoint = PathPoint(x, y);
15 path.push_back(pathpoint);
16 }
17 path_file.close();
18 return path;
19}
20
21std::ofstream openWriteFile(const std::string &filename, const std::string &header) {
22 std::string filePrefix = ament_index_cpp::get_package_share_directory("planning");
23 filePrefix = filePrefix.substr(0, filePrefix.find("install"));
24 std::string logger_variable = filePrefix + filename;
25
26 bool fileExists = std::filesystem::exists(filePrefix + filename);
27
28 std::ofstream file(filePrefix + filename, std::ios::app);
29
30 if (!file.is_open()) {
31 RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "ERROR opening file: %s\n", logger_variable.c_str());
32 } else {
33 RCLCPP_DEBUG(rclcpp::get_logger("rclcpp"), "Successfully opened %s \n",
34 logger_variable.c_str());
35 }
36
37 if (!fileExists) {
38 file << header << "\n";
39 }
40
41 return file;
42}
43
44std::ifstream openReadFile(const std::string &filename) {
45 RCLCPP_DEBUG(rclcpp::get_logger("rclcpp"), "Start openReadFile");
46 std::string filePrefix = ament_index_cpp::get_package_share_directory("planning");
47 filePrefix = filePrefix.substr(0, filePrefix.find("install"));
48 std::string logger_variable = filePrefix + filename;
49 std::ifstream file(filePrefix + filename);
50 if (!file.is_open()) {
51 RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "ERROR opening file: %s\n", logger_variable.c_str());
52 } else {
53 RCLCPP_DEBUG(rclcpp::get_logger("rclcpp"), "Successfully opened %s \n",
54 logger_variable.c_str());
55 }
56 RCLCPP_DEBUG(rclcpp::get_logger("rclcpp"), "End openReadFile");
57 return file;
58}
59
common_lib::structures::PathPoint PathPoint
std::vector< PathPoint > read_path_file(const std::string &filename)
Definition files.cpp:7
std::ofstream openWriteFile(const std::string &filename, const std::string &header)
Definition files.cpp:21
std::ifstream openReadFile(const std::string &filename)
Definition files.cpp:44
static const std_msgs::msg::Header header