Exemple #1
0
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;
}
Exemple #2
0
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);
}