void Application::initQML()
{
    /** A QML-Cpp kommunikációhoz használt QMLData obejktumokat létre kell
     *  hozni a QML felület számára.*/
    QMap<QString,QMLData>::iterator iter;
    for(iter = qmlDataMap.begin(); iter != qmlDataMap.end(); ++iter)
    {
        engine.rootContext()->setContextProperty(iter.key(), &iter.value());
    }

    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    auto rootObjects = engine.rootObjects();

    if (rootObjects.size() == 0)
    {
        qWarning() << "HIBA: Nem sikerült létrehozni a QML környezetet.";
    }

    rootObject = rootObjects.first();
    customPlotPtr = (QCustomPlot*)rootObject->findChild<QObject*>("customPlot");

    auto mainWindowPtr = rootObject->findChild<QObject*>("MainWindow");
    eventhandler.setMainWindowPtr(mainWindowPtr);

    QObject::connect(rootObject, SIGNAL(connectCommandCpp()),
                     &eventhandler, SLOT(connectCommand()));
    QObject::connect(rootObject, SIGNAL(connectCommandCpp()),
                     this, SLOT(connectToServer()));

    QObject::connect(rootObject, SIGNAL(hvEnableCommandCpp()),
                     &eventhandler, SLOT(hvEnableCommand()));
    QObject::connect(rootObject, SIGNAL(hvEnableCommandCpp()),
                     this, SLOT(hvenCommand()));

    QObject::connect(rootObject, SIGNAL(driveEnableCommandCpp()),
                     &eventhandler, SLOT(driveEnableCommand()));
    QObject::connect(rootObject, SIGNAL(driveEnableCommandCpp()),
                     this, SLOT(drenCommand()));

    QObject::connect(rootObject, SIGNAL(stopCommandCpp()),
                     &eventhandler, SLOT(stopCommand()));
    QObject::connect(rootObject, SIGNAL(stopCommandCpp()),
                     this, SLOT(stopCommand()));
    QObject::connect(rootObject, SIGNAL(testCommandCpp()),
                     this, SLOT(testCommand()));

    QObject::connect(rootObject, SIGNAL(vdemandSliderChanged(QVariant )),
                     this, SLOT(vdemandChanged(QVariant )));
}
示例#2
0
/************************************************************************************************
    handleComands()
Arguments:
        myUser - struct with 'my' information
        saAddr - IP address of the SA
        saPortChar - port of SA
Description: The messages typed by the user in the terminal are handled in this function.
The commands permitted are join, leave, find, connect, message, disconnect, exit, lst.
*************************************************************************************************/
int handleComands(user myUser, char * saAddr, char * saPortChar){

    char command[256];
    char * parseCommand;
    int retval, saPort, i=0;

    saPort = atoi(saPortChar);

    /*retrieves comand and stores to string command*/
    memset(command, '\0', 256);

    fgets(command, 256, stdin);

    for(i = 0; i < 256; i++){
        if(command[i] == '\n'){
            parseCommand = (char *) malloc((i+2)*sizeof(char));
            break;
        }
        if(command[i] == ' '){
            parseCommand = (char *) malloc((i+2)*sizeof(char));
            break;
        }
    }

   if(parseCommand == NULL){
        printf("\n>Malloc on ParseCommand not succecefull\n");
        fflush(stdout);
        free(parseCommand);
        exit(EXIT_FAILURE);
    }

    memset(parseCommand, '\0', (i+2));

    retval = sscanf(command, "%s", parseCommand);

    if(retval != 1){
        printf("\n>Error parsing command, please retry\n");
        free(parseCommand);
        return 1;
    }

    /*Switch Commands*/


    /*Join*/
    if(strcmp("join", parseCommand) == 0){
        if(joinCommand(myUser,saAddr, saPort) < 0){
            fprintf(stderr, "Join Error");
            free(parseCommand);
            exit(EXIT_FAILURE);
        }
        printf("\n>You have started a session\n");
        inSession = 1;
    }

    /*Leave*/
    else if(strcmp(parseCommand, "leave") == 0){
        if(leaveCommand(myUser, saAddr, saPort) < 0){
            fprintf(stderr, "\n>Leave Error>");
            free(parseCommand);
            return 0;
        }
        terminateLeave();
        inSession = 0;
    }

    else if(strcmp(parseCommand, "find") == 0){
        if(findCommand(command, saAddr, saPort) < 0){
            fprintf(stderr, "\n>Leave Error\n");
            free(parseCommand);
            return 0;
        }
    }

    else if(strcmp(parseCommand, "connect") == 0){
        if(connectCommand(command, saAddr, saPort) <= 0){
            fprintf(stderr, "\n>connect Error\n");
            free(parseCommand);
            return 0;
        }
    }
    else if(strcmp(parseCommand, "message") == 0){
        if(chatCommand(command) <= 0){
            fprintf(stderr, "\n>message Error\n");
            free(parseCommand);
            return 0;
        }
    }
    else if(strcmp(parseCommand, "disconnect") == 0){
        if(disconnectCommand() <= 0){
            fprintf(stderr, "\n>disconnect Error\n");
            free(parseCommand);
            return 0;
        }
    }
    /*Exit*/
    else if(strcmp(parseCommand, "exit") == 0){
        if(exitCommand() <= 0){
            fprintf(stderr, "\n>Exit Error>");
            free(parseCommand);
            return 0;
        }
    }

    else if(strcmp(parseCommand, "lst") == 0){
        if(lst() < 0){
            fprintf(stderr, "\n>lst Error>");
            free(parseCommand);
            return 0;
        }

    }

    free(parseCommand);

    return 1;
}
int commonInterface::runCommand(string command)
{
	char commandStr[MAX_COMMAND_LEN];
	memset(commandStr,0, MAX_COMMAND_LEN);
	
	sscanf(command.c_str(), "%s", commandStr);
	if(strlen(commandStr)<=0)
		return ERROR;

	string upperCaseCommand = commandStr;
	for(int i=0;i<upperCaseCommand.length();i++)
	{
		upperCaseCommand[i] = toupper(upperCaseCommand[i]);
	}
	
	if(strcmp(upperCaseCommand.c_str(), "CREATOR") == 0)
	{
		mWindow->displayCreator();
	}
	else if(strcmp(upperCaseCommand.c_str(), "HELP") == 0)
	{
		mWindow->displayHelpMenu();
	}
	else if(strcmp(upperCaseCommand.c_str(), "MYIP") == 0)
	{
		mWindow->displayMyIP(mMyIP);
	}
	else if(strcmp(upperCaseCommand.c_str(), "MYPORT") == 0)
	{
		mWindow->displayMyPort(mPort);
	}
	else if(strcmp(upperCaseCommand.c_str(), "REGISTER") == 0)
	{
		if(mMode == SERVER)
		{
			cout<<"\n Register command not available in server mode"<<endl;
			return true;
		}
		registerCommand(command);	
	}
	else if(strcmp(upperCaseCommand.c_str(), "CONNECT") == 0)
	{
		connectCommand(command);
		return 1;	
	}
	else if(strcmp(upperCaseCommand.c_str(), "LIST") == 0)
	{
		listCommand();
	}
	else if(strcmp(upperCaseCommand.c_str(), "TERMINATE") == 0)
	{
        	terminateCommand(command);
	}
	else if(strcmp(upperCaseCommand.c_str(), "EXIT") == 0)
	{
		exitCommand();
		return EXIT_PROGRAM;
	}
	else if(strcmp(upperCaseCommand.c_str(), "UPLOAD") == 0)
	{
		uploadCommand(command);	
	}
	else if(strcmp(upperCaseCommand.c_str(), "DOWNLOAD") == 0)
	{
		downloadCommand(command);
	}
	else if(strcmp(upperCaseCommand.c_str(), "STATISTICS") == 0)
	{
                statCommand();
	}
	else 
	{
		//Wrong command enter
		cout<<"\n Command not found. Please note the commands are case sensetive\n";
		return ERROR;
	}
}