Je travaille sur Qt, mais je suis tombé sur un problème que pour la vie de moi je ne peux pas résoudre du tout. J'ai essayé de nombreuses combinaisons différentes à mon code, mais cela ne m'a toujours pas donné la sortie que je recherche. J'espère que quelqu'un peut m'aider.Qt lecture d'entrée série, puis le diviser en variables distinctes
QStringList buffer_split = serialBuffer.split(","); // split the serialBuffer string, parsing with ',' as the separator
// Check to see if there less than 3 tokens in buffer_split.
// If there are at least 3 then this means there were 2 commas,
// means there is a parsed temperature value as the second token (between 2 commas)
if(buffer_split.length() < 3){
// no parsed value yet so continue accumulating bytes from serial in the buffer.
serialData = arduino->readAll();
serialBuffer = serialBuffer + QString::fromStdString(serialData.toStdString());
serialData.clear();
}else{
// the second element of buffer_split is parsed correctly, update the temperature value on temp_lcdNumber
serialBuffer = "";
qDebug() << buffer_split << "\n";
parsed_data = buffer_split[1];
}
La solution ci-dessus a travaillé pour moi, à son tour, je lis les valeurs qui sont envoyées sur le port série tels que:
0,0,0,0,0,0
Au-dessus est de savoir comment parsed_data
est en train de lire les informations du port série , qui est correct. Le problème que je rencontre, c'est de scinder cela, puis de les stocker dans des variables séparées pour commencer certaines instructions if. jusqu'à présent, je n'arrive pas à le faire fonctionner.
Si quelqu'un peut me aider je vous serais reconnaissant
Merci Vous
supplémentaires Je suis pas clair sur votre question. Comme vous l'avez écrit avec parsed_data = buffer_split [1], vous pouvez accéder à chaque valeur individuelle et la stocker. Où êtes-vous coincé? –
Lorsque j'essaie de stocker disons par exemple buffer_split [2], cela ne semble pas fonctionner. à la recherche de quelque chose comme ça. J'espère que cela le rend un peu plus facile à comprendre. Par exemple, le tableau im envoi est 45,0,67,0,0,13, j'ai besoin de chaque numéro à stocker dans une variable. int num1 = parsed_data [0] qui serait 45, int num2 = parsed_data [1] qui serait 0 et int num3 = parsed_data [2] qui serait 67 –