QuISP
|
This module takes the click event from BSA, compile the result and report back to QNode that sent the photons. More...
#include <BSAController.h>
Classes | |
struct | QNicInfo |
Public Member Functions | |
BSAController () | |
~BSAController () | |
int | getExternalAdressFromPort (int port) |
void | cancelBSMTimeOut () |
Protected Member Functions | |
virtual void | initialize () override |
virtual void | handleMessage (cMessage *msg) override |
virtual void | finish () override |
Private Member Functions | |
BSMTimingNotification * | generateFirstNotificationTiming (bool is_left) |
CombinedBSAresults * | generateNextNotificationTiming (bool is_left) |
int | getExternalQNICIndexFromPort (int port) |
simtime_t | calculateOffsetTimeFromDistance () |
simtime_t | getTravelTimeFromPort (int port) |
double | getExternalDistanceFromPort (int port) |
QNicInfo | getExternalQNICInfoFromPort (int port) |
void | sendMeasurementResults (BatchClickEvent *msg) |
Private Attributes | |
int | address |
QNicInfo | left_qnic |
QNicInfo | right_qnic |
simtime_t | left_travel_time |
simtime_t | right_travel_time |
simtime_t | offset_time_for_first_photon |
BSMNotificationTimeout * | time_out_message |
std::vector< BSAClickResult > | click_results |
int | time_out_count |
simtime_t | time_interval_between_photons |
how separated should the photons be; is calculated by the dead time of the detector | |
simtime_t | speed_of_light_in_channel |
Speed of light in optical fiber (in km per sec). | |
utils::ComponentProvider | provider |
bool | is_active |
BellStateAnalyzer * | bsa |
simtime_t | last_result_send_time = 0 |
This module takes the click event from BSA, compile the result and report back to QNode that sent the photons.
The controller can be in 2 operational modes. 1) active mode 2) passive mode
In the active mode, it will be responsible for deciding when the photons should come in. It will check the distance between two QNodes (possible one could be self), and decide on when the first photon should arrive. The result will be sent back in batches not on every photon pairs/single coming in.
In the passive mode, this assumes that the BSA is internal and EPPS will tell us how many photons will arrive, when the first one will arrive, and what the interval is.
quisp::modules::BSAController::BSAController | ( | ) |
quisp::modules::BSAController::~BSAController | ( | ) |
|
private |
void quisp::modules::BSAController::cancelBSMTimeOut | ( | ) |
|
overrideprotectedvirtual |
|
private |
|
private |
int quisp::modules::BSAController::getExternalAdressFromPort | ( | int | port | ) |
|
private |
|
private |
|
private |
|
private |
|
overrideprotectedvirtual |
|
overrideprotectedvirtual |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Speed of light in optical fiber (in km per sec).
|
private |
how separated should the photons be; is calculated by the dead time of the detector
|
private |
|
private |