-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathfile-names.cpp
More file actions
115 lines (92 loc) · 3.79 KB
/
file-names.cpp
File metadata and controls
115 lines (92 loc) · 3.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include "file-names.h"
#include <iomanip>
#include <string>
#include <sstream>
FileNames::FileNames(string tracks_folder) {
this->tracks_folder = tracks_folder;
}
string FileNames::get_track_folder(string track_name) {
return path_join(tracks_folder, track_name);
}
vector<string> FileNames::get_track_names() {
return child_folders(tracks_folder);
}
string FileNames::get_routes_folder(string track_name) {
return path_join(get_track_folder(track_name),"routes");
}
string FileNames::get_route_folder(string track_name, string route_name) {
return path_join(get_routes_folder(track_name),route_name);
}
vector<string> FileNames::get_route_names(string track_name) {
return child_folders(get_routes_folder(track_name));
}
vector<string> FileNames::get_run_names(string track_name, string route_name)
{
return child_folders(get_runs_folder(track_name, route_name));
}
string FileNames::get_runs_folder(string track_name, string route_name) {
return path_join(get_route_folder(track_name,route_name),"runs");
}
string FileNames::get_run_folder(string track_name, string route_name, string run_name) {
return path_join(get_runs_folder(track_name,route_name),run_name);
}
string FileNames::next_route_name(string track_name){
for(int i = 0; i<1000; i++) {
std::ostringstream ss;
ss << std::setw( 3 ) << std::setfill( '0' ) << i;
string route_name = ss.str();
if(file_exists(get_route_folder(track_name,route_name)))
continue;
return route_name;
}
throw string("could not find empty route");
}
string FileNames::recording_file_path(string track_name, string route_name, string run_name){
return path_join(get_folder(track_name, route_name, run_name),"recording.csv");
}
string FileNames::dynamics_file_path(string track_name, string route_name, string run_name) {
return path_join(get_folder(track_name, route_name, run_name),"td.csv");
}
string FileNames::state_log_path(string track_name, string route_name, string run_name) {
return path_join(get_folder(track_name, route_name, run_name),"state.csv");
}
string FileNames::commands_file_path(string track_name, string route_name, string run_name){
return path_join(get_folder(track_name, route_name, run_name),"commands.csv");
}
vector<string> FileNames::stereo_video_file_paths(string track_name, string route_name, string run_name) {
string f = get_folder(track_name, route_name, run_name);
vector<string> rv;
rv.push_back(path_join(f,"video_left.avi"));
rv.push_back(path_join(f,"video_right.avi"));
return rv;
}
string FileNames::exception_file_path(string track_name, string route_name, string run_name){
return path_join(get_folder(track_name, route_name, run_name),"exceptions.log");
}
string FileNames::config_file_path(string track_name, string route_name, string run_name){
return path_join(get_folder(track_name, route_name, run_name),"config.json");
}
string FileNames::planned_path_file_path(string track_name, string route_name, string run_name){
return path_join(get_folder(track_name, route_name, run_name),"planned_path.csv");
}
string FileNames::path_file_path(string track_name, string route_name, string run_name){
return path_join(get_folder(track_name, route_name, run_name),"path.csv");
}
string FileNames::next_run_name(string track_name, string route_name) {
for( int i=0; i<999; ++i) {
std::ostringstream ss;
ss << std::setw( 3 ) << std::setfill( '0' ) << i;
string run_name = ss.str();
if (file_exists(get_run_folder(track_name, route_name, run_name)))
continue;
return run_name;
}
throw string("could not find empty route");
}
string FileNames::get_folder(string track_name, string route_name, string run_name) {
if(run_name.size()==0) {
return get_route_folder(track_name,route_name);
} else {
return get_run_folder(track_name, route_name, run_name);
}
}