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());
}
예제 #3
0
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);
}
예제 #5
0
파일: main.cpp 프로젝트: ronakdev/cv-2016
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;
}
예제 #6
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);
}
예제 #11
0
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")));
}
예제 #25
0
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);
}
예제 #28
0
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;
}