Seite 1 von 1

USB mit Qt lesen / gcnew array?

Verfasst: 18. Oktober 2011 11:50
von QTNeuer
Hallo,

ich moechte mit Qt Daten von einem USB Port lesen, dazu braeuchte ich einen Buffer fuer die Tx Schnittstelle.
In cli kann man soetwas verwenden

Buffer = gcnew array<unsigned char>(Groesse)

was waere in Qt die aehnliche alternative?

Kennt jemand zufaellig noch weitere Quellen fuer infos zur USB Programmierung?

Viele Gruesse

new QByteArray mit Wert belegen

Verfasst: 18. Oktober 2011 16:38
von QTNeuer
Hallo,

warum funktioniert soetwas nicht und wie muesste es richtig sein?

QByteArray *Array = 0;
Array = new QByteArray[5];

Array[0] = 0x01;
Array[1] = 0x02;
Array[2] = 0x03;
Array[3] = 0x04;
Array[4] = 0x05;

Als Fehler bekomme ich: error C2679: Binärer Operator '=': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'int' akzeptiert (oder keine geeignete Konvertierung möglich)

Kann mir da jemand weiter helfen?

Re: new QByteArray mit Wert belegen

Verfasst: 18. Oktober 2011 17:19
von franzf
1) Die Initialisierung mit 0 ist überflüssig, wenn in der nächsten Zeile eh eine ordentliche Zuweisung erfolgt.
2) Du hast ein Array von QByteArrays (so wirklich beabsichtigt? Wenn ja, wäre nicht QVector/std::[tr1::]array besser/einfacher?) der "[ ]" gibt dir ein QByteArray-Objekt - findest du in der Doku einen passenden QByteArray::operator=()?

Ich denke du willst eigentlich nur ein QByteArray der Länge 5 und nicht 5 QByteArrays mit am Ende nur einem einzigen Wert, oder?

Re: USB mit Qt lesen / gcnew array?

Verfasst: 18. Oktober 2011 17:52
von Christian81
QByteArray - und wenn man das nicht kennt dann würde auch ein 'new char[xx]' reichen ...

Hex Werte mit QByteArray senden

Verfasst: 19. Oktober 2011 11:28
von QTNeuer
Hallo,

wenn ich ein QByteArray folgendermassen definiere:

QByteArray Data[2];
Data[0] = "0x01";
Data[2] = "0x02";

Was wird dann gespeichert? Wirklich der hex-wert oder ein String 0x01?

Re: Hex Werte mit QByteArray senden

Verfasst: 19. Oktober 2011 12:04
von Christian81
1. Es wird crashen 3. Zeile)
2. Was willst Du erreichen? Du erzeugst ein Array mit 2 QByteArray
3. Was willst Du genau erreichen
4. Im ersten QByteArray wird der String "0x01" gespeichert und im zweiten (wenn der Code dann korrigiert ist) der String "0x02"

Re: Hex Werte mit QByteArray senden

Verfasst: 19. Oktober 2011 14:41
von QTNeuer
ach ja, klar es muss Data[1] = "0x02"; heissen.

Ich moechte eigentlich die echten hex- Werte in Data speichern.
Es muesste also ohne " " sein?!

Re: Hex Werte mit QByteArray senden

Verfasst: 19. Oktober 2011 18:50
von Christian81
Hast Du 2. gelesen? Ich glaube nämlich nicht das es so gewollt ist.
Der Rest ist C Grundlagen - wenn eine 1 rein soll dann schreib auch eine 1 hin.

Re: Hex Werte mit QByteArray senden

Verfasst: 19. Oktober 2011 21:51
von solarix
Kommt mir irgendwie bekannt vor.. ach ja:
http://www.qtforum.de/forum/viewtopic.php?f=1&t=14364

Evt. sollte QTNeuer da erstmal die Frage von unserem franzerl ergründen, bevor er sie einfach nochmals in anderem Gewand stellt... :roll:

Re: USB mit Qt lesen / gcnew array?

Verfasst: 20. Oktober 2011 11:43
von franzf
Ich hab mal alle 3 Themen zusammengefügt, da zum selben Thema wirklich nicht 3 verschiedene Threads nötig sind...
Bitte in Zukunft einfach bei einem Thread bleiben!