mir ist kein bessere Betreff eingefallen :-(
Ich habe folgende Methode, die einzig und allein den Port0.0 in einer Endlosschleife zu Testzwecken überwacht. Ich nutze dazu das blokierende Read aus der dll.
Code: Select all
void Modultest::on_resetButton_clicked(){
IOWKIT40_IO_REPORT rep;
ULONG res;
IOWarrior iow;
iow.Open();
while(1){
res = iow.Read((PCHAR) &rep);
fprintf(stderr,"%02x %02x %02x %02x ", rep.Bytes[0], rep.Bytes[1], rep.Bytes[2], rep.Bytes[3]);
if(rep.Value & (1<<0)){
fprintf(stderr,"Port0.0 = 1\n");
}else{
fprintf(stderr,"Port0.0 = 0\n");
}
}
Code: Select all
Header:
ULONG Read(PCHAR rep, ULONG numPipe=IOW_PIPE_IO_PINS, ULONG length=IOWKIT40_IO_REPORT_SIZE, int=0);
Source:
ULONG IOWarrior::Read(PCHAR rep, ULONG numPipe, ULONG length, int number){
return IowKitRead(iow[number].devHandle, numPipe, rep, length);
}
Das funktioniert alles wunderbar ... aber ich bekomme folgende Ausgabe:
Code: Select all
fe ff ff ff Port0.0 = 0
fe ff ff ff Port0.0 = 0
ff ff ff ff Port0.0 = 1
ff ff ff ff Port0.0 = 1
fe ff ff ff Port0.0 = 0
fe ff ff ff Port0.0 = 0
ff ff ff ff Port0.0 = 1
ff ff ff ff Port0.0 = 1
Hat jemand ne Vermutung, woran das liegen könnte? Oder sehe ich mal wieder den Wald vor lauter Bäumen nicht.