17#ifndef DAISI_PATH_PLANNING_PATH_PLANNING_APPLICATION_H_
18#define DAISI_PATH_PLANNING_PATH_PLANNING_APPLICATION_H_
23#include "cpps/common/cpps_logger_ns3.h"
24#include "delivery_station.h"
25#include "ns3/applications-module.h"
26#include "ns3/network-module.h"
27#include "path_planning/agv_logical.h"
28#include "path_planning/agv_physical_basic.h"
29#include "path_planning/consensus/central/central_server.h"
30#include "path_planning/consensus/paxos/constants.h"
31#include "pickup_station.h"
34namespace daisi::path_planning {
40 static ns3::TypeId GetTypeId();
42 void DoDispose()
final {}
43 void StartApplication()
final {}
46 const consensus::ConsensusSettings &settings, NextTOMode next_to_mode);
48 const consensus::ConsensusSettings &settings);
49 void initAGVLogical(
const consensus::ConsensusSettings &settings,
bool first_node);
51 ns3::Ptr<cpps::AmrMobilityModelNs3> mobility,
int id_friendly);
56 void setTopology(
cpps::Topology topology) { topology_ = std::move(topology); };
65 ns3::Ptr<ns3::Socket> generateTCPSocket();
78 bool initialized_ =
false;
81 void checkInitialized();
Definition agv_physical_basic.h:27
Definition amr_description.h:27
Definition amr_topology.h:26
Definition agv_logical.h:41
Definition delivery_station.h:38
Definition pickup_station.h:47
Definition central_server.h:32
Definition path_planning_application.h:39
uint16_t listening_port_tcp
ns-3 attribute with second port used for this application
Definition path_planning_application.h:72
ns3::Ipv4Address local_ip_address_tcp
Definition path_planning_application.h:68
ns3::Ipv4Address local_ip_address
ns-3 attribute with first IP of this application
Definition path_planning_application.h:67
uint16_t listening_port
ns-3 attribute with first port used for this application
Definition path_planning_application.h:71
void generateUDPSockets(uint32_t number=3)
Definition path_planning_application.cpp:45
std::variant< std::monostate, cpps::AGVPhysicalBasic, AGVLogical, PickupStation, DeliveryStation, consensus::CentralServer > application
Variant that is holding the actual application.
Definition path_planning_application.h:75
Definition central_settings.h:24