void deviceTerminatedCallbackOSX( void *ctxt, io_iterator_t serialPortIterator )
{
    QextSerialEnumerator* qese = (QextSerialEnumerator*)ctxt;
    io_object_t serialService;
    while ((serialService = IOIteratorNext(serialPortIterator)))
        qese->onDeviceTerminatedOSX(serialService);
}
示例#2
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;
}
示例#3
0

        
示例#4
0
/*
==============
<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;
}
示例#5
0
/*
  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();
  }
示例#6
0
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);
}