bool Arduino::Ouvrir() { //Création de la variable de retour de la fonction bool bRetour (false); //Création de la variable qui permet de tester si un arduino a été détecté bool ArduinoPresent (false); //L'objet mentionnant les infos des ports série QextSerialEnumerator enumerateur; //on met ces infos dans une liste QList<QextPortInfo> Ports = enumerateur.getPorts(); //On parcours la totalité des ports séries détectés for(int i = 0; i < Ports.length(); i++) { if(Ports[i].vendorID == 0x2341) //Si un port avec un VID de 0x2341 l'Arduino est détecté { ArduinoPresent = true; //La variable prend la valeur true si un arduino est détecté this->NomPort = Ports[i].portName; //NomPort est complété par le numéro de port de l'Arduino //L'objet Port série this->Port = new QextSerialPort(); //Quelques règlages pour que tout marche bien this->Port->setPortName (this->NomPort); this->Port->setBaudRate (BAUD9600); //On règle la vitesse utilisée this->Port->setParity (PAR_NONE); //On règle la parité this->Port->setStopBits (STOP_1); //On règle le nombre de bits de stop this->Port->setDataBits (DATA_8); //On règle le nombre de bits de données this->Port->setFlowControl (FLOW_OFF); //Pas de contrôle de flux //On ouvre la connexion avec l'arduino Port->open(QextSerialPort::ReadWrite); //On test si la connexion avec l'arduino à réussie if(this->Port->isOpen()) { bRetour = true; qDebug() << "La connexion avec l'arduino à réussie"; } else { qDebug() << "La connexion avec l'arduino à échouée"; } } } //Vérification de la détection d'un arduino if(ArduinoPresent == false) { qDebug() << "Aucun arduino n'a été détecté"; } return bRetour; }
bool Arduino::Ouvrir() { //On passe les paramètre par défault sauf le Port Com this->port.setBaudRate(BAUD9600); // On règle la vitesse du port this->port.setParity(PAR_NONE); // On définit le bit de parité this->port.setStopBits(STOP_1); // On définit le nombre de bit de stop this->port.setDataBits(DATA_8); // On définit le nombre de bits de données this->port.setFlowControl(FLOW_OFF); // Pas de contrôle de flux //On créé un objet Enumerateur mentionnant tous les ports séries //on met ces informations dans une liste QextSerialEnumerator Enumerateur ; QList<QextPortInfo> Ports = Enumerateur.getPorts() ; //on parcourt la liste des ports bool ArduinoPresent(false) ; //Booléen à true si l'Arduino est présent //sNom va permettre de récuperer le nom du port (EX:COM7) for(int i=0; i < Ports.length(); i++) //On parcours la totalité des ports séries détectés { // Linux: Ports[i].portName == "ttyACM0" if(Ports[i].vendorID == 9025 && Ports[i].productID == 66) //Si parmi tous les ports, un port avec le VID à 2341 et PID à 0042 alors l'Arduino est détecté { /**/ ArduinoPresent = true ; //Booléen mis à true this->sNomPort = Ports[i].portName ; //NomPort est complété par le numéro de port de l'Arduino } } if(ArduinoPresent) //Si l'Arduino est présent { //qDebug() << "Arduino Detecte" ; //On affiche un message indiquant sa détection /**/ this->port.setPortName(this->sNomPort); ; //On rentre le numéro de port // Ouverture du port en écriture et Lecture this->port.open(QextSerialPort::ReadWrite) ; } else { //qDebug() << "Arduino Non Detecte" ; //Message indiquant que l'Arduino est non détecté } //bool pour tester de la connexion bool Connexion(false); // Test si port ouvert if(!this->port.isOpen()) { //Le port ne s'est pas ouvert // qDebug () << "Arduino::Ouvrir() Port Ferme " ; Connexion=false; } else { //Le port est bien ouvert // qDebug () << "Arduino::Ouvrir() Port ouvert" ; Connexion=true; } //retourne vrai si la connexion est effectuée return (ArduinoPresent); }
/* ============== <CONSTRUCTORS> ============== */ QStringList getComPortList() { QextSerialEnumerator enumer; QList<QextPortInfo> ports = enumer.getPorts(); QStringList strlist; strlist.clear(); for( int i = 0; i < ports.count(); ++i) strlist << QObject::tr(ports.at(i).portName.toLocal8Bit()); //comPortEdit->addItems(strlist); return strlist; }
/* Called periodically while the dialog is open to check for new Make Controller USB devices. If we find a new one, pop it into the UI and save its name. If one has gone away, remove it from the UI. */ void UsbConsole::enumerate() { QextSerialEnumerator enumerator; QList<QextPortInfo> portInfos = enumerator.getPorts(); QStringList foundPorts; // check for new ports... foreach(QextPortInfo portInfo, portInfos) { QString asciiname = port->portName().toAscii(); //qDebug("enumerated: %s", qPrintable(portInfo.friendName)); if(portInfo.friendName.startsWith("Make Controller Ki") && !ports.contains(asciiname) && !closedPorts.contains(asciiname)) // found a new port { openDevice(portInfo.portName); } foundPorts << portInfo.portName.toAscii(); }
void MainWindow::initFirstUse() { //no connection connection=0; oldconnection=0; //.hex file path initialization (first use) buildDir="0"; //.hex file initialization (first use) hexName="..."; ui->buildLabel->setText(hexName); //line counter initialization (first use) cpt=0; //text input initialization (first use) ui->textComboBox->setCurrentIndex(3); // buttons / combo boxes initialization ui->buttonUpload->setEnabled(0); ui->lineEdit->setEnabled(0); ui->buttonConnect->setEnabled(0); ui->buttonClear->setEnabled(0); ui->textComboBox->setEnabled(0); ui->lineDialog->setEnabled(0); //port enumerator QextSerialEnumerator enumerator; //port list creation QList<QextPortInfo> ports = enumerator.getPorts(); //add all avalaible ports to the list for(int i=0; i<ports.size(); i++) ui->portComboBox->addItem(ports.at(i).physName); }