48 void initAGV(uint32_t index);
50 void initPickupStation(uint32_t index);
51 void postInitPickupStation(uint32_t index);
53 void initDeliveryStation(uint32_t index);
54 void postInitDeliveryStation(uint32_t index);
56 void initCentralConsensus();
58 void registerAGVByAuthority(uint32_t index);
59 void connect(
int index);
69 void scheduleSpawnTO(uint32_t pickup_index);
75 void setupArp(
const ns3::NetDeviceContainer &devices,
const ns3::Ipv4InterfaceContainer &ips);
77 void setupNetworkEthernet();
78 void setupNetworkWifi();
79 void scheduleEvents()
override;
80 [[nodiscard]] uint64_t getNumberOfNodes()
override;
82 std::string getDatabaseFilename()
override;
85 void parseToSpawn(
const std::shared_ptr<ScenariofileParser::Table> &spawn_description);
86 void parseScenarioSequence();
87 void parseConsensusSettings();
92 void checkSimulationFinished();
94 [[nodiscard]] uint32_t getAGVInitialStationNumber(uint32_t agv_id)
const;
101 std::vector<PickupStationHandoverInfo> getPickupStationRegistry();
103 uint32_t number_pickup_stations_ = 0;
104 uint32_t number_delivery_stations_ = 0;
105 uint64_t number_agvs_ = 0;
107 uint64_t to_spawn_duration_ms_ = 0;
110 float left_border_ = 0;
111 float right_border_ = 0;
112 float upper_border_ = 0;
113 float lower_border_ = 0;
116 ns3::NodeContainer central_consensus_;
117 ns3::NodeContainer agvs_;
118 ns3::NodeContainer pickup_stations_;
119 ns3::NodeContainer delivery_stations_;
120 ns3::NodeContainer access_points_;
122 const double delta_stations_ = 4.0;
124 consensus::ConsensusType consensus_type_ = consensus::ConsensusType::kNone;
125 consensus::ConsensusSettings consensus_settings_;