QuISP
Loading...
Searching...
No Matches
BSAController.h
Go to the documentation of this file.
1
5#pragma once
6
7#include <vector>
8
9#include <omnetpp.h>
10
11#include "PhotonicQubit_m.h"
15#include "modules/QNIC.h"
16
17using namespace omnetpp;
18using namespace quisp::messages;
19
20namespace quisp::modules {
21
39class BSAController : public cSimpleModule {
40 private:
46
47 public:
50 int getExternalAdressFromPort(int port);
51 void cancelBSMTimeOut();
52
53 protected:
54 virtual void initialize() override;
55 virtual void handleMessage(cMessage* msg) override;
56 virtual void finish() override;
57
58 private:
59 BSMTimingNotification* generateFirstNotificationTiming(bool is_left);
60 CombinedBSAresults* generateNextNotificationTiming(bool is_left);
61
62 int getExternalQNICIndexFromPort(int port);
64 simtime_t getTravelTimeFromPort(int port);
67 void sendMeasurementResults(BatchClickEvent* msg);
68
69 // information for communications
75
76 // cache information for timing notification
78 BSMNotificationTimeout* time_out_message;
79 std::vector<BSAClickResult> click_results;
81
82 // BSA characteristics
88
89 // testing and debugging members
90 simtime_t last_result_send_time = 0;
91};
92
93} // namespace quisp::modules
QNIC.
This module takes the click event from BSA, compile the result and report back to QNode that sent the...
Definition BSAController.h:39
void sendMeasurementResults(BatchClickEvent *msg)
Definition BSAController.cc:76
simtime_t right_travel_time
Definition BSAController.h:74
BSMNotificationTimeout * time_out_message
Definition BSAController.h:78
simtime_t last_result_send_time
Definition BSAController.h:90
int getExternalAdressFromPort(int port)
Definition BSAController.cc:152
int getExternalQNICIndexFromPort(int port)
Definition BSAController.cc:179
virtual void initialize() override
Definition BSAController.cc:25
CombinedBSAresults * generateNextNotificationTiming(bool is_left)
Definition BSAController.cc:126
std::vector< BSAClickResult > click_results
Definition BSAController.h:79
QNicInfo getExternalQNICInfoFromPort(int port)
Definition BSAController.cc:223
utils::ComponentProvider provider
Definition BSAController.h:85
BSMTimingNotification * generateFirstNotificationTiming(bool is_left)
Definition BSAController.cc:106
QNicInfo left_qnic
Definition BSAController.h:71
int time_out_count
Definition BSAController.h:80
simtime_t offset_time_for_first_photon
Definition BSAController.h:77
simtime_t speed_of_light_in_channel
Speed of light in optical fiber (in km per sec).
Definition BSAController.h:84
BellStateAnalyzer * bsa
Definition BSAController.h:87
BSAController()
Definition BSAController.cc:19
virtual void handleMessage(cMessage *msg) override
Definition BSAController.cc:51
int address
Definition BSAController.h:70
void cancelBSMTimeOut()
Definition BSAController.cc:227
bool is_active
Definition BSAController.h:86
simtime_t left_travel_time
Definition BSAController.h:73
simtime_t time_interval_between_photons
how separated should the photons be; is calculated by the dead time of the detector
Definition BSAController.h:83
simtime_t calculateOffsetTimeFromDistance()
Definition BSAController.cc:146
double getExternalDistanceFromPort(int port)
simtime_t getTravelTimeFromPort(int port)
Definition BSAController.cc:208
~BSAController()
Definition BSAController.cc:21
virtual void finish() override
Definition BSAController.cc:23
QNicInfo right_qnic
Definition BSAController.h:72
BellStateAnalyzer.
Definition BellStateAnalyzer.h:27
ComponentProvider class provides a way to access other quisp other modules.
Definition ComponentProvider.h:22
Definition Application.cc:16
QNIC_type
Definition QNIC.h:18
Definition BSAController.h:41
int index
Definition BSAController.h:43
int parent_node_addr
Definition BSAController.h:44
QNIC_type type
Definition BSAController.h:42