TEST_F(NetworkControllerTest, loadObservations){ NetworkController n; n.loadNetwork(TEST_DATA_PATH("Student.na")); n.loadNetwork(TEST_DATA_PATH("Student.sif")); n.loadObservations(TEST_DATA_PATH("StudentData.txt"),TEST_DATA_PATH("controlStudent.json")); SUCCEED(); }
TEST_F(NetworkControllerTest, getNetwork){ NetworkController n; n.loadNetwork(TEST_DATA_PATH("Student.na")); n.loadNetwork(TEST_DATA_PATH("Student.sif")); n.loadObservations(TEST_DATA_PATH("StudentData.txt"),TEST_DATA_PATH("controlStudent.json")); ASSERT_TRUE(5 == n.getNetwork().size()); }
int main(int argc, char** argv) { if (argc<2) { qWarning()<<"Aufruf" << argv[0] << "server [port]"; return 0; } QCoreApplication app(argc, argv); app.setApplicationName(QLatin1String("roomcontrol.curtain.client")); app.setApplicationVersion(QLatin1String("1.0")); curtain curtainController; NetworkController *nc = NetworkController::instance(); QObject::connect(nc, SIGNAL(serverJSON(QVariantMap)), &curtainController, SLOT(serverJSON(QVariantMap))); QObject::connect(nc, SIGNAL(message(QString)), &curtainController, SLOT(message(QString))); QObject::connect(nc, SIGNAL(stateChanged()), &curtainController, SLOT(stateChanged())); QByteArray server(argv[1]); int port = argc>=3 ? QByteArray(argv[2]).toInt() : 3101; nc->connectToServer(server,port); int r = app.exec(); delete nc; return r; }
void callbackCommand(CoapPacket &packet, IPAddress ip, int port) { NetworkController* networkController = getEventController()->getNetworkController(); String params = (const char*)packet.payload; command(params); networkController->sendCoapResponse(ip, port, ++packet.messageid, NULL, 0, COAP_RESPONSE_CODE::COAP_VALID, COAP_CONTENT_TYPE::COAP_TEXT_PLAIN); }
int main(int argc, char* argv[]) { // Create all the necessary objects (calls the default constructor for each) TargetDetector detector; TargetProcessor processor; NetworkController networkController; VideoDevice camera; CmdLineInterface interface(argc, argv); AppConfig config = interface.getConfig(); GUIManager gui; if(config.getIsDevice()) { camera.startCapture(config.getDeviceID()); if(config.getIsDebug()) std::cout << "Camera ready!\n"; } //init networking if(config.getIsNetworking()) networkController.startServer(); if(!config.getIsHeadless()) gui.init(); if(config.getIsDebug()) std::cout << "Im debugging! :D\n"; while(true) { networkController.waitForPing(); cv::Mat image = camera.getImage(); Target* target = detector.processImage(image); bool foundTarget = (target == NULL ? false : true); if(foundTarget) { processor.loadTarget(target); double distance = processor.calculateDistance(); networkController.sendMessage("true;" + boost::lexical_cast<std::string> (distance)); std::cout << "Target Found! Distance: " << distance; } else { networkController.sendMessage("false;"); } } return 0; }
void curtain::onInputData() { QSocketNotifier* input = (QSocketNotifier*)sender(); input->setEnabled(false); QTextStream stream(stdin, QIODevice::ReadOnly); NetworkController* nc = NetworkController::instance(); QString cmd; stream >> cmd; if (cmd == "help") { qDebug() << "open, close, set, stop, debug, dirnormal, dirinverted, dirok"; } else if (cmd == "set" && !stream.atEnd()) { int v; stream >> v; QVariantMap data; data.insert("type_", "execute"); data.insert("plugin_", "curtain_udp"); data.insert("instanceid_", "0"); data.insert("member_", "setValue"); data.insert("value", v); nc->write(data); qDebug() << cmd; } else if (cmd == "open") {
TEST_F(NetworkControllerTest, Time){ NetworkController n; n.loadNetwork(TEST_DATA_PATH("Student.na")); n.loadNetwork(TEST_DATA_PATH("Student.sif")); n.loadObservations(TEST_DATA_PATH("StudentData.txt"),TEST_DATA_PATH("controlStudent.json")); n.trainNetwork(); ASSERT_TRUE(n.getTimeInMicroSeconds() > 0); }
TEST_F(NetworkControllerTest, ParamDifference){ NetworkController n; n.loadNetwork(TEST_DATA_PATH("Student.na")); n.loadNetwork(TEST_DATA_PATH("Student.sif")); n.loadObservations(TEST_DATA_PATH("StudentData.txt"),TEST_DATA_PATH("controlStudent.json")); n.trainNetwork(); ASSERT_TRUE(n.getParameterDifference() > 0.0f); }
TEST_F(NetworkControllerTest, Runs){ NetworkController n; n.loadNetwork(TEST_DATA_PATH("Student.na")); n.loadNetwork(TEST_DATA_PATH("Student.sif")); n.loadObservations(TEST_DATA_PATH("StudentData.txt"),TEST_DATA_PATH("controlStudent.json")); n.trainNetwork(); ASSERT_TRUE(1==n.getNumberOfEMRuns()); }
TEST_F(NetworkControllerTest, DataLikelihood){ NetworkController n; n.loadNetwork(TEST_DATA_PATH("Student.na")); n.loadNetwork(TEST_DATA_PATH("Student.sif")); n.loadObservations(TEST_DATA_PATH("StudentData.txt"),TEST_DATA_PATH("controlStudent.json")); n.trainNetwork(); ASSERT_TRUE(n.getLikelihoodOfTheData() != 0.0f); }
int main(int argc, char* argv[]) { NetworkController networkController; NetworkLayerInterface *networkIfc = &networkController; PresentationLayerInterface *presentationIfc = new Encryption(); ApplicationLayerInterface *applicationIfc = new Client::Application::Client(); applicationIfc->setPresentationLayer(presentationIfc); presentationIfc->setNetworkLayer(networkIfc); presentationIfc->setApplicationLayer(applicationIfc); networkIfc->setPresentationLayer(presentationIfc); string username(argv[1]); networkController.configure("127.0.0.1", 8080, username); thread networkThread(std::ref(networkController)); thread chatThread(std::ref(*((Client::Application::Client*)applicationIfc))); chatThread.join(); delete presentationIfc; delete applicationIfc; return 0; }
TEST_F(NetworkControllerTest, EdgeAdditionPossibility){ NetworkController n; std::vector<std::pair<unsigned int, unsigned int >> addedEdges{}; std::vector<std::pair<unsigned int, unsigned int >> removedEdges{}; n.loadNetwork(TEST_DATA_PATH("Student.na")); n.loadNetwork(TEST_DATA_PATH("Student.sif")); ASSERT_TRUE(n.isEdgePossible(0,4,addedEdges,removedEdges)); ASSERT_FALSE(n.isEdgePossible(4,0,addedEdges,removedEdges)); removedEdges.push_back(std::make_pair(0,1)); ASSERT_TRUE(n.isEdgePossible(4,0,addedEdges,removedEdges)); }
TEST_F(NetworkControllerTest, trainNet){ NetworkController nc; nc.loadNetwork(TEST_DATA_PATH("Student.na")); nc.loadNetwork(TEST_DATA_PATH("Student.sif")); nc.loadObservations(TEST_DATA_PATH("StudentData.txt"),TEST_DATA_PATH("controlStudent.json")); nc.trainNetwork(); Network n = nc.getNetwork(); Node grade = n.getNode("Grade"); ASSERT_NEAR(0.3f,grade.getProbability(0,0),0.001); ASSERT_NEAR(0.05f,grade.getProbability(0,2),0.001); ASSERT_NEAR(0.9f,grade.getProbability(0,1),0.001); ASSERT_NEAR(0.5f,grade.getProbability(0,3),0.001); ASSERT_NEAR(0.4f,grade.getProbability(1,0),0.001); ASSERT_NEAR(0.25f,grade.getProbability(1,2),0.001); ASSERT_NEAR(0.08f,grade.getProbability(1,1),0.001); ASSERT_NEAR(0.3f,grade.getProbability(1,3),0.001); ASSERT_NEAR(0.3f,grade.getProbability(2,0),0.001); ASSERT_NEAR(0.7f,grade.getProbability(2,2),0.001); ASSERT_NEAR(0.02f,grade.getProbability(2,1),0.001); ASSERT_NEAR(0.2f,grade.getProbability(2,3),0.001); Node letter = n.getNode("Letter"); ASSERT_NEAR(0.1f,letter.getProbability(0,0),0.001); ASSERT_NEAR(0.4f,letter.getProbability(0,1),0.001); ASSERT_NEAR(0.99f,letter.getProbability(0,2),0.001); ASSERT_NEAR(0.9f,letter.getProbability(1,0),0.001); ASSERT_NEAR(0.6f,letter.getProbability(1,1),0.001); ASSERT_NEAR(0.01f,letter.getProbability(1,2),0.001); Node intelligence = n.getNode("Intelligence"); ASSERT_NEAR(0.7, intelligence.getProbability(0,0),0.001); ASSERT_NEAR(0.3, intelligence.getProbability(1,0),0.001); Node difficulty = n.getNode("Difficulty"); ASSERT_NEAR(0.6, difficulty.getProbability(0,0),0.001); ASSERT_NEAR(0.4, difficulty.getProbability(1,0),0.001); Node sat = n.getNode("SAT"); ASSERT_NEAR(0.95f,sat.getProbability(0,0),0.001); ASSERT_NEAR(0.05f,sat.getProbability(1,0),0.001); ASSERT_NEAR(0.2f,sat.getProbability(0,1),0.001); ASSERT_NEAR(0.8f,sat.getProbability(1,1),0.001); }
TEST_F(NetworkControllerTest, InvalidFileTGFEdges){ NetworkController n; n.loadNetwork(TEST_DATA_PATH("Student.na")); ASSERT_THROW(n.loadNetwork(TEST_DATA_PATH("invalidEdge.tgf")), std::invalid_argument); }
TEST_F(NetworkControllerTest, InvalidFileTGFNodes){ NetworkController n; ASSERT_THROW(n.loadNetwork(TEST_DATA_PATH("invalidNodeID.tgf")), std::invalid_argument); }
TEST_F(NetworkControllerTest, InvalidFileTyp){ NetworkController n; ASSERT_THROW(n.loadNetwork(TEST_DATA_PATH("unkown.txt")),std::invalid_argument); }
TEST_F(NetworkControllerTest, InvalidFileName3){ NetworkController n; n.loadNetwork(TEST_DATA_PATH("Student.na")); ASSERT_THROW(n.loadNetwork(TEST_DATA_PATH("unkownfile.sif")),std::invalid_argument); }
TEST_F(NetworkControllerTest, InvalidFileName1){ NetworkController n; ASSERT_THROW(n.loadNetwork(TEST_DATA_PATH("unkownfile.tgf")),std::invalid_argument); }
void callbackResponse(CoapPacket &packet, IPAddress ip, int port) { NetworkController* networkController = getEventController()->getNetworkController(); networkController->sendCoapResponse(ip, port, ++packet.messageid, NULL, 0, COAP_RESPONSE_CODE::COAP_VALID, COAP_CONTENT_TYPE::COAP_TEXT_PLAIN); }
TEST_F(NetworkControllerTest, ConstructorNASIF){ NetworkController n; n.loadNetwork(TEST_DATA_PATH("Student.na")); n.loadNetwork(TEST_DATA_PATH("Student.sif")); SUCCEED(); }
TEST_F(NetworkControllerTest, ConstructorSIFNA){ NetworkController n; ASSERT_THROW(n.loadNetwork(TEST_DATA_PATH("Student.sif")),std::invalid_argument); }
TEST_F(NetworkControllerTest, loadObservationsInvalidObservationFileName){ NetworkController n; n.loadNetwork(TEST_DATA_PATH("Student.na")); n.loadNetwork(TEST_DATA_PATH("Student.sif")); ASSERT_THROW(n.loadObservations(TEST_DATA_PATH("StudentDat.txt"),TEST_DATA_PATH("controlStudent.txt")),std::invalid_argument); }
TEST_F(NetworkControllerTest, InvalidNA2){ NetworkController n; ASSERT_THROW(n.loadNetwork(TEST_DATA_PATH("invalid2.na")), std::invalid_argument); }
TEST_F(NetworkControllerTest, loadObservationsInvalidControlFile2){ NetworkController n; n.loadNetwork(TEST_DATA_PATH("Student.na")); n.loadNetwork(TEST_DATA_PATH("Student.sif")); ASSERT_ANY_THROW(n.loadObservations(TEST_DATA_PATH("StudentData.txt"),TEST_DATA_PATH("invalidControl2.txt"))); }
int main(int argc, char* argv[]) { // Create all the necessary objects (calls the default constructor for each) TargetDetector detector; TargetProcessor processor; NetworkController networkController; VideoDevice camera; CmdLineInterface interface(argc, argv); AppConfig config = interface.getConfig(); //GUIManager gui; if(config.getIsDevice()){ camera.startCapture(config.getDeviceID()); if(config.getIsDebug()) std::cout << "Camera ready!\n"; } //init networking if(config.getIsNetworking()) networkController.startServer(); //if(!config.getIsHeadless()) // gui.init(); if(config.getIsDebug()) std::cout << "Im debugging! :D\n"; cv::Mat image; //debug int loop = 1; cv::namedWindow("Live Video Feed", cv::WINDOW_NORMAL); cv::namedWindow("General", cv::WINDOW_NORMAL); while(cv::waitKey(30) != 27) { Mat background(Size(1000,1000), CV_8UC1, Scalar(255, 255, 255 )); if(config.getIsDebug()) std::cout << "While Loop #" << loop << std::endl; if(config.getIsNetworking()) networkController.waitForPing(); image = camera.getImage(); if(!image.data) // check if image is valid { if(config.getIsDebug()) std::cout << "failed to read image" << std::endl; return -1; } if(config.getIsDebug()) std::cout << "Image Read" << std::endl; Target* target = detector.processImage(image); if(config.getIsDebug()) std::cout << "Image Processed by Target Detector" << std::endl; /* (std::cout << "Target Value:" << target << "End of Target Value\n"; std::cout << "CR A OW: " << target-> crow; target -> printPoints(); */ bool foundTarget = false; if (target != NULL) { foundTarget = true; image = detector.getOutlinedImage(); } std::cout <<"About to check the value of foundTarget" << std::endl; if(foundTarget) { std::cout <<"Target was found " << std::endl; if(config.getIsDebug()) std::cout << "Image Being Processed" << std::endl; processor.loadTarget(target); if(config.getIsDebug()) std::cout << "Target Loaded" << std::endl; double distance = processor.calculateDistance(); if(config.getIsDebug()) std::cout << "Distance Calculated" << std::endl; double azimuth = processor.calculateAzimuth(); if(config.getIsDebug()) std::cout << "Azimuth Calculated" << std::endl; double altitude = processor.calculateAltitude(); if(config.getIsDebug()) std::cout << "Altitude Calculated" << std::endl; if(config.getIsDebug()) std::cout << "Image Processed by TargetProcessor" << std::endl; std::string dis = "distance: " + std::to_string(distance); std::string alt = "altitude: " + std::to_string(altitude); std::string azi = "azimuth: " + std::to_string(azimuth); cv::putText(background, dis, cv::Point(50,100), cv::FONT_HERSHEY_COMPLEX_SMALL, 2, cv::Scalar(0, 255, 0), 1); cv::putText(background, alt, cv::Point(50,200), cv::FONT_HERSHEY_COMPLEX_SMALL, 2, cv::Scalar(0, 255, 0), 1); cv::putText(background, azi, cv::Point(50,400), cv::FONT_HERSHEY_COMPLEX_SMALL, 2, cv::Scalar(0, 255, 0), 1); imshow("General", background); if (config.getIsNetworking()) { networkController.sendMessage("true;" + boost::lexical_cast<std::string> (distance) + ";" + boost::lexical_cast<std::string> (azimuth) + ";" + boost::lexical_cast<std::string> (altitude)); } if(config.getIsDebug()){ std::cout << "Target Found! Distance: " << distance; std::cout << "Altitude: " << altitude << std::endl; std::cout << "Azimuth: " << azimuth << std::endl; } } else { if (config.getIsNetworking()) networkController.sendMessage("false;"); } imshow("Live Video Feed", image); loop++; delete target; } return 0; }
TEST_F(NetworkControllerTest, ConstructorTGF){ NetworkController n; n.loadNetwork(TEST_DATA_PATH("test.tgf")); SUCCEED(); }
TEST_F(NetworkControllerTest, InvalidSIF2){ NetworkController n; n.loadNetwork(TEST_DATA_PATH("Student.na")); ASSERT_THROW(n.loadNetwork(TEST_DATA_PATH("invalid2.sif")), std::invalid_argument); }
int main(int argc, char* argv[]) { // get command line interface config options CmdLineInterface interface(argc, argv); AppConfig config = interface.getConfig(); GUIManager gui; VideoDevice camera; LProcessor processor; NetworkController networkController; ArduinoController arduino; //init camera if(config.getIsDevice()) { camera.startCapture(config.getDeviceID()); if(config.getIsDebug()) std::cout << "Camera ready!\n"; } //init networking if(config.getIsNetworking()) networkController.startServer(); if(!config.getIsHeadless()) gui.init(); if (config.getHasArduino()) { //16 is /dev/ttyUSB0, 24 is /dev/ttyACM0 arduino.init(9600, 24); //baud rate, serial port } //continuous server loop do { if(config.getIsNetworking()) networkController.waitForPing(); LDetector detector; cv::Mat image; if(config.getIsFile()); //image = cv::imread(config.getFileName()); //else // image = camera.getImage(config.getIsDebug()); //detector.elLoad(image); //detector.elSplit(); //detector.elThresh(); //detector.elContours(); detector.elFilter(); bool foundL = true; if (detector.getLs().size() > 0) detector.largest2(); else foundL = false; if (detector.getLs().size() == 0) foundL = false; if (foundL) { processor.determineL(detector.getLs()); processor.determineAzimuth(); processor.determineDistance(); double azimuth = processor.getAzimuth(); double distance = processor.getDistance(); if(config.getIsDebug()) { processor.outputData(); std::cout << "Final distance (m): " << processor.getDistance() << std::endl; } if(!config.getIsHeadless()) { int i_dist = (int) (distance * 1000.0); int dist_left = i_dist / 1000; int dist_right = i_dist % 1000; std::string dist_str = boost::lexical_cast<std::string>(dist_left) + "." + boost::lexical_cast<std::string>(dist_right); gui.setImage(detector.show()); gui.setImageText("Distance: " + dist_str + " m"); gui.show(config.getIsFile()); } if(config.getIsNetworking()) { networkController.sendMessage(boost::lexical_cast<std::string> ("true") + std::string(";") + boost::lexical_cast<std::string> (distance) + std::string(";") + boost::lexical_cast<std::string> (azimuth)); } } else { if(config.getIsNetworking()) networkController.sendMessage(boost::lexical_cast<std::string> ("false") + std::string(";")); if(!config.getIsHeadless()) { gui.setImage(detector.show()); gui.setImageText("No L's Found"); gui.show(config.getIsFile()); } } if(config.getHasArduino()) { char c = std::rand() % 26 + 'A'; arduino.sendMessage(c, cv::Point(5, 5)); cv::waitKey(300); } } while(config.getIsDevice()); return 0; }