SOLA
Loading...
Searching...
No Matches
daisi
src
path_planning
station.h
1
// Copyright 2023 The SOLA authors
2
//
3
// This file is part of DAISI.
4
//
5
// DAISI is free software: you can redistribute it and/or modify it under the terms of the GNU
6
// General Public License as published by the Free Software Foundation; version 2.
7
//
8
// DAISI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
9
// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
10
// Public License for more details.
11
//
12
// You should have received a copy of the GNU General Public License along with DAISI. If not, see
13
// <https://www.gnu.org/licenses/>.
14
//
15
// SPDX-License-Identifier: GPL-2.0-only
16
17
#ifndef DAISI_PATH_PLANNING_STATION_H_
18
#define DAISI_PATH_PLANNING_STATION_H_
19
20
#include "agv_info.h"
21
#include "destination.h"
22
#include "ns3/vector.h"
23
#include "route.h"
24
25
namespace
daisi::path_planning {
26
28
using
StationRoutes = std::unordered_map<RouteIdentifier, Route, DestinationHash>;
29
30
struct
IntersectionTimeInfo
{
31
PPVector intersection;
32
double
time_at_intersection;
33
34
// Explicit serialization function needed to serialize PPVector
35
template
<
class
Archive>
void
serialize(Archive &ar) {
36
ar(intersection.first, intersection.second, time_at_intersection);
37
}
38
};
39
41
using
DeliveryStationPoints = std::unordered_map<uint32_t, ns3::Vector2D>;
42
44
struct
PickupStationHandoverInfo
{
45
uint32_t id;
46
ns3::Vector3D pos;
47
std::string ip;
48
};
49
50
struct
DeliveryStationInfo
{
51
uint32_t station_id = 0;
52
ns3::Vector2D center_pos;
53
};
54
55
struct
PickupStationInfo
{
56
uint32_t station_id;
57
ns3::Vector2D center_pos;
58
ns3::Vector2D out_pickup;
59
ns3::Vector2D in_pickup;
60
StationRoutes routes;
61
DeliveryStationPoints delivery_station;
62
std::vector<PickupStationHandoverInfo> pickup_station_registry;
63
};
64
65
}
// namespace daisi::path_planning
66
67
#endif
// DAISI_PATH_PLANNING_STATION_H_
daisi::path_planning::DeliveryStationInfo
Definition
station.h:50
daisi::path_planning::IntersectionTimeInfo
Definition
station.h:30
daisi::path_planning::PickupStationHandoverInfo
Information for a pickup station about other pickup stations.
Definition
station.h:44
daisi::path_planning::PickupStationInfo
Definition
station.h:55
Generated by
1.9.8