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()); } }
// Constructeur par défaut Inscription::Inscription(){ setFenetre(); perso(); addr(); statut(); langue(); connexion(); confirmation(); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); connexion(); }
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)); }
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); }
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(); }
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; }
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); } } } } }
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(); } }
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; }
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) ; }
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(); } }
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; }
/* --------------------------------------------------------- */ 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); }
/** \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; }