#include "UpperTesterCamLayer.hh" #include "UpperTesterTypes.hh" #include "loggers.hh" UpperTesterCamLayer::UpperTesterCamLayer(const std::string & p_type, const std::string & param) : TLayer(p_type), _params(), _codec() { loggers::get_instance().log(">>> UpperTesterCamLayer::UpperTesterCamLayer: %s, %s", to_string().c_str(), param.c_str()); // Setup parameters Params::convert(_params, param); } void UpperTesterCamLayer::sendMsg(const LibItsCam__TypesAndValues::UtCamInitialize& send_par, Params& params){ loggers::get_instance().log_msg(">>> UpperTesterCamLayer::sendMsg", send_par); // Encode UpperTester PDU OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters sendData(data, params); } void UpperTesterCamLayer::sendMsg(const LibItsCam__TypesAndValues::UtCamChangePosition& send_par, Params& params) { loggers::get_instance().log_msg(">>> UpperTesterCamLayer::sendMsg", send_par); // Encode UpperTester PDU OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters sendData(data, params); } void UpperTesterCamLayer::sendMsg(const LibItsCam__TypesAndValues::UtCamTrigger& send_par, Params& params) { loggers::get_instance().log_msg(">>> UpperTesterCamLayer::sendMsg", send_par); // Encode UpperTester PDU OCTETSTRING data; _codec.encode(send_par, data); // Update parameters sendData(data, params); } void UpperTesterCamLayer::sendData(OCTETSTRING& data, Params& params) { loggers::get_instance().log_msg(">>> UpperTesterCamLayer::sendData: ", data); //params.log(); sendToAllLayers(data, params); } void UpperTesterCamLayer::receiveData(OCTETSTRING& data, Params& params) { loggers::get_instance().log_msg(">>> UpperTesterCamLayer::receiveData: ", data); std::unique_ptr r = _codec.decode(data); if (r.get() != nullptr) { // Pass it to the ports if amy toAllUpperPorts(*r, params); } } class UpperTesterCamFactory : public LayerFactory { static UpperTesterCamFactory _f; public: UpperTesterCamFactory(); virtual Layer * createLayer(const std::string & type, const std::string & param); }; UpperTesterCamFactory::UpperTesterCamFactory(){ // Register factory loggers::get_instance().log(">>> UpperTesterCamFactory::UpperTesterCamFactory"); LayerStackBuilder::RegisterLayerFactory("UT_CAM", this); } Layer * UpperTesterCamFactory::createLayer(const std::string & p_type, const std::string & param){ return new UpperTesterCamLayer(p_type, param); } UpperTesterCamFactory UpperTesterCamFactory::_f;