예제 #1
0
FenPrincipale::FenPrincipale(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::FenPrincipale)
{
    ui->setupUi(this);

    connect(ui->actionA_Propos,SIGNAL(triggered()),this,SLOT(showAPropos()));
    connect(ui->actionQuitter,SIGNAL(triggered()),this,SLOT(close()));
    connect(ui->actionD_connexion,SIGNAL(triggered()),this, SLOT(deconnexion()));
    connect(ui->actionConnexion,SIGNAL(triggered()),this, SLOT(connexion()));
    connect(ui->actionNouvel_utilisateur,SIGNAL(triggered()),this,SLOT(nouvelUtilisateur()));


    connect(ui->leRecherche,SIGNAL(textChanged(QString)),this,SLOT(recherche(QString)));

    db = new QSqlDatabase(QSqlDatabase::addDatabase("QMYSQL"));

    db->setHostName("localhost");
    db->setPort(3306);
    db->setDatabaseName("test");
    db->setUserName("root");
    db->setPassword("root");

    if (!db->open())
    {
	QMessageBox::critical(0, QObject::tr("Database Error"), db->lastError().text());
    }

}
예제 #2
0
// Constructeur par défaut
Inscription::Inscription(){
    setFenetre();
    perso();
    addr();
    statut();
    langue();
    connexion();
    confirmation();
}
예제 #3
0
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{

    ui->setupUi(this);
    connexion();

}
예제 #4
0
SocketClient::SocketClient(const QUrl &url, bool debug, QObject *parent) :
    QObject(parent),
    m_url(url),
    m_debug(debug)
{
    if (m_debug)
        qDebug() << "WebSocket server:" << url;
    connect(&m_webSocket,SIGNAL(connected()),this,SLOT(connexion()));
    connect(&m_webSocket,SIGNAL(disconnected()),this,SLOT(deconnexion()));
    m_webSocket.open(QUrl(url));
}
예제 #5
0
void Serveur::majPatcher()
{
    if(connexion(Patcher))
    {
       maj(2);
    }
    else
    {
        param->setMessage(1);//serveur Patcher indisponible
        sf::Sleep(3);
    }
    param->setMessage(5);
    if(connexion(Jeux))
    {
         maj(6);
         param->setMessage(9);
    }
    else
        param->setMessage(8);
    Jouer->setActive(true);
    Desinstaller->setActive(true);
}
예제 #6
0
Favoris::Favoris(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Favoris)
{

    ficheBiere_ = nullptr;
    db_ = nullptr ;
    listBiereModel = nullptr;

    ui->setupUi(this);
    listBiereModel = new BiereModel();
    ui->tv_favorites->setModel(listBiereModel);
    ui->tv_favorites->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
    connexion();
    emit initFavorites();
}
예제 #7
0
int connectInterface(superBlock *sb){
	int num,ok=0;
	system("clear");
	printf("------------------------------------------\n");
	printf("--- SGF Divry-Le Bourhis-Mandoc-Migeot ---\n");
	printf("------------------------------------------\n\n");
	while(ok==0){
		char **res;
		printf("qui etes vous ? ");
		res=recupTabArgs(recupArgs());
		char *nom = res[0];
		printf("mot de passe ? ");
		res=recupTabArgs(recupArgs());
		char *mdp = res[0];
		num =connexion(sb,nom,mdp);
		if(num !=-1)
			ok=1;
	}
	return num;
}
예제 #8
0
void handle_connexion_requests(fd_set active_set) {
    message_id_t msg;

    // First connexion step
    if(FD_ISSET(listening_fd, &active_set)) {
        connexion_accept();
    }

    GList* current;
    for(current = connexions_pending; current != NULL; current = current->next) {
        connexion_t* cnx = (connexion_t*)current->data;
        if(cnx && FD_ISSET(cnx->fd, &active_set)) {
            bool retval = recv_all(cnx->fd, (void*)&msg, sizeof(message_id_t));
            // Client has validated the connexion
            // Remove it from pending connexion and register it using its id.
            if(retval) {
                DEBUG("[%d] Client validation validated [%s:%d][%d]\n", msg.node_id, inet_ntoa(cnx->infos.sin_addr), ntohs(cnx->infos.sin_port), cnx->fd);
                // Register the node in the incomming connexion
                add_node(cnx, msg.node_id);
                connexions_pending = g_list_remove(connexions_pending, cnx);
                // If the sending connexion is not establish, establishes it
                node_t* node = get_node_by_id(msg.node_id);
                if(!node->out_connected) {
                    DEBUG_ERR("Rejoin %d / %d\n", msg.node_id, node->id);
                    connexion(node->outbox);
                    node->out_connected = true;
                }
            }
            else {
                // Disconnection
                if(cnx) {
                    DEBUG("[?] Client validation aborted [%s:%d][%d]\n", inet_ntoa(cnx->infos.sin_addr), ntohs(cnx->infos.sin_port), cnx->fd);
                    FD_CLR(cnx->fd, &reception_fd_set);
                    close(cnx->fd);
                    connexion_pending_remove(current);
                    connexions_pending = g_list_remove(connexions_pending, cnx);
                }
            }
        }
    }
}
예제 #9
0
AddBrass::AddBrass(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::AddBrass)
{
    db_ = nullptr;
    selectImage_ = nullptr;
    ui->setupUi(this);
    connexion();
    remplirPays();
    ui->lbImageBrasserie->setMaximumSize(250,250);

    QFile f (":/btn/resources/css/btn_ajouter.css");
    if(f.open((QIODevice::ReadOnly))){
        ui->ajouterBrasserie->setStyleSheet(f.readAll());
        f.reset();
    }

    f.setFileName(":/btn/resources/css/btn_addImage.css");
    if(f.open(QIODevice::ReadOnly)){
        ui->btAjoutImageBrasserie->setStyleSheet(f.readAll());
        f.reset();
    }
}
예제 #10
0
파일: serveur.c 프로젝트: Marthin-/Reseau
int serveur (void)
{
	int sock_contact;
	int sock_connectee;
	struct sockaddr_in adresse;
	socklen_t longueur;

	sock_contact = cree_socket_stream(NULL, NULL, "UDP");
	if (sock_contact < 0)
		return -1;
	listen(sock_contact, 5);
	fprintf(stdout, "Mon adresse >>\n");
	affiche_adresse_socket(sock_contact);
	while(! quitter())
	{
		longueur = sizeof(struct sockaddr_in);
		sock_connectee = accept(sock_contact, (struct sockadrr *)& adresse, & longueur);
		if(sock_connectee < 0)
		{
			perror ("accpet");
			return -1;
		}
		switch (fork())
		{
			case 0:
			close(sock_contact);
			connexion(sock_connectee);
			exit(EXIT_SUCCESS);
			case -1:
			perror("fork");
			return -1;
			default:
			close(sock_connectee);
		}
	}
	return 0;
}
예제 #11
0
int Interpreteur(char *Buffer, struct Global *g )
{ 
  /* definir arg1 , arg2 */
  char arg0[80],arg1[80],arg2[80],arg3[80],arg4[80] ;
  int rc ;
  bzero(arg1,sizeof(arg1));
  bzero(arg2,sizeof(arg2));
  bzero(arg3,sizeof(arg3));

  fprintf(stderr,"La chaine a interpreter est %s \n",Buffer ) ;
  sscanf(Buffer,"%s %s %s\n",arg1,arg2,arg3 ) ;
  if (strcmp(arg1,"interface")==0)
      rc = interface(arg2,g) ;
  else if (strcmp(arg1,"connexion")==0)
        rc = connexion(Buffer,g) ;
  else if ( !strcmp(arg1,"ip"))
        rc = ip(Buffer,g) ;
  else if (!strcmp(arg1,"show"))
	rc = show ( Buffer,g ) ;
  else if ( ( strcmp(arg1,"load") == 0 ) && ( strcmp(arg2,"filter") == 0 ))
       {
        LectureTableFiltrage(arg3,g->TableFiltrage,&(g->NbrRegles),g->NbrLignes) ;
        return(NEAN) ;
       }
  else if ( strcmp(arg1,"help")==0)
       AfficheAide() ;
  else if ( strcmp(arg1,"exit")==0 ) 
       exit(0) ;
  else if (Blanc1013(arg1)) fprintf(stderr,"Ligne vide \n" ) ;
  else
      {
       printf("Erreur de syntaxe \n") ;
       return(0) ;
       }
  return(rc) ;
}
예제 #12
0
void Serveur::action(std::stringstream &fichier,std::string &ligne, std::string &arg)
{
    std::string destination;
    if(ligne == "redemarrer")
    {
        (*running) = false;
        std::string tmp = "start prePatcher.exe" + arg + " &";//pour linux, remplacer "start " par "./"
        system(tmp.c_str());
        return;
    }
    std::getline(fichier, destination);
    if(destination.find("./") != -1)
	{
	    std::cout << destination << std::endl;
        param->setMessage(4);
		sf::Sleep(3);
		exit(1);
    }
    if(ligne == "nouveau dossier")
    {
        //uniquement pour windows je crois
        CreateDirectory(destination.c_str(),NULL);
        //pour Linux? mkdir(destination.c_str());
    }
    else if(ligne == "supprimer dossier")
    {
        //Le répertoire doit être vide
        destination = "rmdir " + destination;
        system(destination.c_str());
        //rmdir(destination.c_str());
    }
    else if(ligne == "supprimer dossier Patcher")
    {
        arg += " supprimer_dossier " + destination;
    }
    else if(ligne == "supprimer")
    {
        remove(destination.c_str());
    }
    else if(ligne == "supprimer Patcher")
    {
        arg += " supprimer " + destination;
    }
    else if(ligne == "deplacer")
    {
        std::string tmp;
        std::getline(fichier, tmp);
        MoveFile(destination.c_str(), tmp.c_str());
    }
    else if(ligne == "deplacer Patcher")
    {
        std::string tmp;
        std::getline(fichier, tmp);
        arg += " deplacer " + destination + " " + tmp;
    }
    else if(ligne == "Telecharger" || ligne == "Telecharger Patcher")
    {
        std::string tmp;
        std::getline(fichier, tmp);
        connexion(destination);
        if(ligne == "Telecharger patcher")
        {
            tmp += "_bis";
            arg += " Patcher " + tmp;
        }
        std::ofstream ecrire(tmp.c_str());
        ecrire << Page.GetBody();
		ecrire.close();
    }
}
예제 #13
0
int action(char** TabArgs,char** TabFonction,superBlock *sb, int *argInode,int nbfonction, int *userCo){
	int i,NbInstruction=-1,k;

	for(i=0;i<nbfonction;i++){
		if(strcmp(TabArgs[0],TabFonction[i])==0)
			NbInstruction=i;
			}

	switch(NbInstruction){
		case 0://touch
		touch(sb,*argInode,TabArgs[1],*userCo);
		
		break;

		case 1://cat

		cat(sb,chemin(sb,*argInode,TabArgs[1]),*userCo);
		
		break;
		
		case 2://ls
	
		ls(sb,*argInode);		

		break;

		case 3://rm

		unlink(sb,chemin(sb,*argInode, TabArgs[1]),*argInode,*userCo);
		break;	
		case 4://mkdir

		mkdir(sb,*argInode,TabArgs[1],*userCo);
		break;	
		case 5://cd
			*argInode=cd(sb,*argInode,TabArgs[1],*userCo); 
		break;
		case 6://newU
		if(TabArgs[1]!=NULL && TabArgs[2]!=NULL)
		    newUser(sb,TabArgs[1], TabArgs[2]); 
		break;
		case 7://changeU
		if(TabArgs[1]!=NULL && TabArgs[2]!=NULL){
		    int res =connexion(sb,TabArgs[1], TabArgs[2]); 
		    if(res !=-1){
				*userCo=res;
			}
		}
		break;
		case 8://tableU
		    tableUser(sb,*userCo);
		break;
		case 9://chmod
			if(TabArgs[1]!=NULL && TabArgs[2]!= NULL && TabArgs[3]!= NULL)
				chmod(sb,chemin(sb,*argInode,TabArgs[1]), *userCo,atoi(TabArgs[2]), atoi(TabArgs[3]));
		break;
		case 10: //help
			
			printf("commandes : \n");
			for(k;k<NbInstruction;k++){
				printf("%s\t",TabFonction[k]);
			}
			printf("\n");
		break;
		case 11:
			printf("bye\n");
			exit(0);
		break;
		case 12://ln
			ln(sb, chemin(sb,*argInode,TabArgs[1]), chemin(sb,*argInode,TabArgs[3]), TabArgs[2],*userCo);
		break;
		case 13://cp
		    cp(sb,chemin(sb,*argInode,TabArgs[1]),TabArgs[2],chemin(sb,*argInode,TabArgs[3]),*userCo);
		break;
		case 14://echo
			if(chemin(sb,*argInode,TabArgs[1])!=0)
			{
				echo(sb,chemin(sb,*argInode,TabArgs[1]),*userCo);
			}
		break;
		case 15://mv
		    mv(sb,*argInode,chemin(sb,*argInode,TabArgs[1]),chemin(sb,*argInode,TabArgs[3]),TabArgs[2],*userCo);
		break;
		case 16://tableI
			toStringInode(sb);
		break;
		case 17://tableF
			toStringBlocksF(sb);
		break;
		case 18://df
			df(sb);
		break;
		case 19://delU
			if(TabArgs[1]!=NULL)
			delUser(sb, *userCo, TabArgs[1]);
		break;
		case 20://changeP
			if(TabArgs[1]!=NULL)
			delUser(sb, *userCo, TabArgs[2]);
		break;
default:
printf("action non reconnue\n");
break;
	
		}
		
	return 1;
}
예제 #14
0
파일: pop.c 프로젝트: jerryPoppy/directWork
/* --------------------------------------------------------- */
int main(int argc, char * argv[]) 
{
  int fd, c;
  FILE *in, *out;
  
  /* gestion des options : -v ou -h */
  while ((c=getopt(argc, argv, "vh")) != -1)
    switch (c) {
    case 'v':
      VERBOSE = 1;
      break;
    case 'h':
      printf("usage: export POPHOST=boite ou pop\n"
             "       export POPUSER=login\n"
             "       export POPPWD=.....\n"
             "puis\n"
             "       pop [-vh]\n");
      exit(0);
      break;
    default:
      printf("option inconnue\n");
      exit(0);
      break;
    };

  /* nom de la machine interrogee, nom de l'utilisateur et son mot de passe */
  /* recuperes dans l'environnement */
  hostname = getenv("POPHOST");
  if (hostname==NULL) hostname = getenv("HOSTNAME");
  if (hostname==NULL) {
    fprintf(stderr,"* Définir le nom de machine dans la variable POPHOST\n");
    exit(1);
  }
  if (VERBOSE)
    printf("     POPHOST = %s\n",hostname);

  username = getenv("POPUSER");
  if (username==NULL) username = getenv("LOGNAME");
  if (username==NULL) {
    fprintf(stderr,"* Définir le nom de l'utilisateur dans la variable POPUSER\n");
    exit(1);
  }
  if (VERBOSE)
    printf("     POPUSER = %s\n",username);

  password = getenv("POPPWD");
  if(password == NULL) {
    fprintf(stderr,"* Définir le mot de passe dans la variable POPPWD\n");
    exit(1);
  }
  
  /* ouverture de la connexion */
  fd=connexion(hostname,PORT);
  
  /* Ouverture de fichiers de haut niveau (cf. polycop systeme) */
  in  = fdopen(fd,"r");
  out = fdopen(fd,"w");

  /* travail */
  travail(in,out);

  close(fd);
  exit(0);
}
예제 #15
0
파일: main.c 프로젝트: AMDG2/DroneWifi
/** \fn void main(void)
	\ingroup Rabbit
	\brief Fonction principal : gestion du pilotage du drone en fonctions des entrées/sorties
	\author Baudouin Feildel
	\author Thibaut Marty
**/
void main(void)
{
	etat_commandes ec;
	ardrone droneV;
	ardrone* drone = &droneV;
	char cptPassErr = 0;
	wifi_status status;
	int initOk;
	
	/// Initialise les ports de la carte et les entrées/sorties
	brdInit(); // fonction de base de Rabbit
	BRDInit(); // fonction pour les bits utilisés
	init_etat_commandes(&ec);
	lireCommandes(&ec);

	/// Crée la structure du drone
	newARDrone(drone);
	
	/// Initialise la connexion (tant que toutes les étapes ne sont pas réussies) :
	do
	{
		printf("tentative d'initialisation\n");
		initOk = 0;
		
		/// .... Initialise le driver TCP
		if(sock_init())
			printf("erreur de sock_init()\n");
		else
			initOk++;
	
		/// .... Initialise la socket de connexion avec le drone
		if(!connectToDrone(drone))
			printf("erreur connectToDrone()\n");
		else
			initOk++;
		
		/// .... Se connecte au réseau WiFi
		connexion(&ec);
		
		/// .... Initialise le drone
		if(!initDrone(drone, &ec))
			printf("erreur initDrone()\n");
		else
			initOk++;
	} while(initOk < 3);
	printf("tentative d'initialisation reussie\n");
	
	/// Vérifie que l'on n'est pas déjà en position 'vol', sinon indique à l'utilisateur de changer le switch en faisant clignoter la LED erreur
	do
	{
		costate
		{
			lireCommandes(&ec);
			yield;
		}
		costate // Fait clignoter la LED d'erreur
		{
			ec.led_erreur = ec.led_erreur ? 0 : 1;
			ecrireCommandes(&ec);
			waitfor(DelayMs(300));
		}
	} while(ec.switch_land == 0);
	
	ec.led_erreur = 0;
	ecrireCommandes(&ec);

	
	/// Boucle principale (déroulement) :
	for(;;)
	{
		/// .... Tâche de gestion des entrées/sorties et de l'envoi de commandes au drone
		costate
		{
			tcp_tick(NULL);
			
			
			// Lit les entrées
			lireCommandes(&ec);

			/// ........ Si le bouton d'arrêt d'urgence est actif :
			if(!ec.bp_arret_urgence)
			{
				/// ............ Envoie la commande d'arrêt d'urgence
				aru(drone);
				drone->fly = false;
				/// ............ Attend le relâchement du bouton en faisant clignoter la LED debug
				do
				{
					costate
					{
						lireCommandes(&ec);
						yield;
					}
					costate // Fait clignoter la LED de debug
					{
						ec.led_debug = ec.led_debug ? 0 : 1;
						ecrireCommandes(&ec);
						waitfor(DelayMs(100));
					}
					yield; // Pour la tâche de vérification de la connexion WiFi
				} while(!ec.bp_arret_urgence);
				ec.led_debug = 0;
				ecrireCommandes(&ec);
				
				/// ............ Renvoie la commande (pour sortir du mode d'arrêt d'urgence)
				aru(drone);
			}
			/// ........ Sinon (traitement de tous les cas position du switch / vol en cours) :
			else
			{
				// pour plus tard :
				// if(ec.bp_video)	{ }
				
				/// ............ Si le bouton trim est actif et que l'on n'est pas en cours de vol, réinitialise le drone
				if(!ec.bp_trim && !drone->fly)
					initDrone(drone, &ec);
				
				/// ............ Si le switch est en position haute et que l'on ne vole pas
				if(ec.switch_land == 0 && !drone->fly)
				{
					/// ................ Fait décoler le drone. S'il y a une erreur : attend que l'utilisateur repasse le switch en position basse en faisant clignoter la LED erreur
					if(!(initDrone(drone, &ec) && takeoff(drone)))
					{
						do
						{
							costate
							{
								lireCommandes(&ec);
								yield;
							}
							costate // Fait clignoter la LED d'erreur
							{
								ec.led_erreur = ec.led_erreur ? 0 : 1;
								ecrireCommandes(&ec);
								waitfor(DelayMs(100));
							}
						} while(ec.switch_land == 0);
					}
				}
				/// ............ Si le switch est en position basse et que l'on vole
				else if(ec.switch_land == 1 && drone->fly)
				{
					/// ................ Fait atterrir le drone. S'il y a une erreur : attend que l'utilisateur passe le switch en position haute
					if(!land(drone))
					{
						do
						{
							costate
							{
								lireCommandes(&ec);
								yield;
							}
							costate // Fait clignoter la LED d'erreur
							{
								ec.led_erreur = ec.led_erreur ? 0 : 1;
								ecrireCommandes(&ec);
								waitfor(DelayMs(300));
							}
						} while(ec.switch_land == 1);
					}
				}
				/// ............ Les autres cas sont normaux et ne nécessitent pas de traitement particulier


				/// ............ Si on est en vol :
				if(drone->fly)
				{
					/// ................ Traite la valeur des joysticks et la stock dans la structure ardrone
					
					     setGoUpDown(drone, (float)(ec.joystick_2x - 2048) / 2048);
					setTurnLeftRight(drone, (float)(ec.joystick_2y - 2048) / 2048);
					setTiltFrontBack(drone, (float)(ec.joystick_1x - 2048) / 2048);
					setTiltLeftRight(drone, (float)(ec.joystick_1y - 2048) / 2048);

					/// ................ Envoie la commande avec les valeurs : s'il y a une erreur on incrémente un compteur d'erreurs. Au delà de dix erreurs de suite on tente de faire atterir le drone. S'il n'y a pas d'erreurs, on attend 30ms avant le prochain envoi
					if(!(volCommand(drone, drone->tiltLeftRight, drone->tiltFrontBack, drone->goUpDown, drone->turnLeftRight)))
					{
						if(cptPassErr > 10)
							land(drone);
						else
							cptPassErr++;
					}
					else
					{
						cptPassErr = 0; // Remise à zéro du compteur d'erreur en cas de réussite
						waitfor(DelayMs(30)); // prochain envoi de commande dans 30 ms
					}
				}
				else
					yield;
			}