Skip to content
Snippets Groups Projects
Commit ae3c986c authored by Valerio Pastore's avatar Valerio Pastore
Browse files

.

parent 9070d904
No related branches found
No related tags found
No related merge requests found
Subproject commit de859b98a3ec3b3866ee12851ff29c4ecfe57fe0
Subproject commit 5a535d6ce26711365eaf4ae0367559b1861bc5de
Subproject commit 07fae0ae62adca495690997866a2df34a32c176d
Subproject commit 47fb979caa192732850e4e87922a3e3137ec7e61
Subproject commit 65ed64691244cef513f0eec357cf16ae671252ad
Subproject commit 61d651c4f8cc0f06c41a4797723546ccdb6022d0
Subproject commit 7d15a877f711d73ce36c714d4a07ab8e66342871
Subproject commit 0a03c21e384ed4443477840a4fae585c42786803
Subproject commit b01661664c4675499bf690da8962e7f78a31f9d5
Subproject commit efde3478af821a586e73921dfbb987554af6f572
Subproject commit 1f71f6d578ae129d326370d1f04fcda7a51102b4
Subproject commit 68a0b667c609be7891bdf6e456d6f2f5ee8a4a24
......@@ -44,7 +44,7 @@ class AstriDAQBuilder {
~AstriDAQBuilder();
void reset();
AstriDAQBuilder* configFrom(Configurators::BaseConfigurator &conf);
AstriDAQBuilder* setProtocol(ConnectionProtocols::BaseProtocol*);
AstriDAQBuilder* setProtocol(Receivers::BaseProtocol*);
AstriDAQBuilder* setArchiver(Archivers::BaseArchiver*);
AstriDAQBuilder* setProvider(Providers::BaseProvider*);
AstriDAQBuilder* setMonitor(PacketMonitors::BasePacketMonitor*);
......
......@@ -13,7 +13,7 @@
namespace inaf::oasbo::DAQ{
class DAQConfigurator : public BaseConfigurator{
private:
ConnectionProtocols::BaseProtocol * createProtocol(int argc, char ** argv);
Receivers::BaseProtocol * createProtocol(int argc, char ** argv);
Archivers::BaseArchiver * createArchiver(int argc, char ** argv);
Providers::BaseProvider * createProvider(int argc, char ** argv);
PacketMonitors::BasePacketMonitor * createMonitor(int argc, char ** argv);
......
......@@ -23,7 +23,7 @@ using namespace inaf::oasbo::DAQ;
using namespace inaf::oasbo::DAQ_observers;
DAQ::AstriDAQ::AstriDAQ() {
this->protocol = ConnectionProtocols::TCPProtocolBuilder().getProtocol();
this->protocol = Receivers::TCPProtocolBuilder().getProtocol();
this->archiver = Archivers::FileArchiverBuilder().getArchiver();
this->provider = Providers::RedisProviderBuilder().getProvider();
this->monitor = PacketMonitors::AstriPacketMonitorBuilder().getMonitor();
......@@ -53,18 +53,7 @@ std::string DAQ::AstriDAQ::getStateStr(Status state) {
}
void DAQ::AstriDAQ::stop() {
if (this->getCurrentState() == Status::STOP)
return;
if (archiver->is_open()) {
this->archiver->close();
updateArchiverObservers();
}
this->provider->close();
this->protocol->closeConnectionToClient();
std::for_each(this->observers.begin(), this->observers.end(),
[](inaf::oasbo::DAQ_observers::BaseDAQ_Observer *ob) {
ob->stop();
});
this->setCurrentState(Status::STOP);
}
void DAQ::AstriDAQ::incrementDaqID() {
......@@ -81,7 +70,6 @@ void DAQ::AstriDAQ::incrementDaqID() {
void DAQ::AstriDAQ::switchState(Status newState) {
if (newState == STOP) {
this->stop();
this->setCurrentState(STOP);
return;
}
......@@ -258,11 +246,12 @@ void DAQ::AstriDAQ::start() {
continue;
}
this->deliverPacket();
if (this->packet->operator []("Packet Type") == 15) { //NOTIF PACKET
Packets::AstriMaGeneric *packet = static_cast<Packets::AstriMaGeneric*>(this->packet); // downcast
if (packet->getType() == 15) { //NOTIF PACKET
time_t now = time(nullptr);
std::cout << "[" << std::put_time(localtime(&now), "%Y-%m-%d %H:%M:%S")
<< "]\t[Astri DAQ]"<< std::endl;
std::cout << "["
<< std::put_time(localtime(&now), "%Y-%m-%d %H:%M:%S")
<< "]\t[Astri DAQ]" << std::endl;
monitor->printStats();
std::cout << "-------------------------------" << std::endl;
unsigned short cmd = ((this->packet->getBinaryPointer()[8]) << 8)
......@@ -278,6 +267,19 @@ void DAQ::AstriDAQ::start() {
this->switchState(getNextState());
}
}
// stop receiving
if (archiver->is_open()) {
this->archiver->close();
updateArchiverObservers();
}
this->provider->close();
this->protocol->closeConnectionToClient();
std::for_each(this->observers.begin(), this->observers.end(),
[](inaf::oasbo::DAQ_observers::BaseDAQ_Observer *ob) {
ob->stop();
});
}
int DAQ::AstriDAQ::deliverPacket() { //-------- CHECK CORRECTNESS
......
......@@ -61,18 +61,18 @@ AstriDAQBuilder* AstriDAQBuilder::configFrom(Configurators::BaseConfigurator &co
if (params.count(key) > 0) {
if (params[key].compare(tcp_prot_key) == 0){
daq->protocol =
ConnectionProtocols::TCPProtocolBuilder().configFrom(conf)->getProtocol();
Receivers::TCPProtocolBuilder().configFrom(conf)->getProtocol();
}
else if (params[key].compare(udp_prot_key) == 0) {
daq->protocol =
ConnectionProtocols::UDPProtocolBuilder().configFrom(conf)->getProtocol();
Receivers::UDPProtocolBuilder().configFrom(conf)->getProtocol();
}
else if(params[key].compare(file_rcv_key) == 0) {
daq->protocol =
ConnectionProtocols::FileReceiverBuilder().configFrom(conf)->getReceiver();
Receivers::FileReceiverBuilder().configFrom(conf)->getReceiver();
}
else { // not recognized, default to tcp
daq->protocol = ConnectionProtocols::TCPProtocolBuilder().getProtocol();
daq->protocol = Receivers::TCPProtocolBuilder().getProtocol();
}
}
// ---- ARCHIVER -----------------------------------------------------------------------------
......@@ -147,7 +147,7 @@ AstriDAQBuilder* AstriDAQBuilder::configFrom(Configurators::BaseConfigurator &co
return this;
}
AstriDAQBuilder* AstriDAQBuilder::setProtocol(ConnectionProtocols::BaseProtocol *value) {
AstriDAQBuilder* AstriDAQBuilder::setProtocol(Receivers::BaseProtocol *value) {
this->daq->protocol = value;
return this;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment