mighty-p Hi, Ich versuche gerade in Wien DVB-T2 mit DvbSky 680T zum laufen zu bringen (unter Windows funktioniert es), unter Linux findet es keine Sender. Ich habe dann Deinen Code (0.4.0) heruntergeladen, und ich sehe, dass kein lock gefunden wird. Dann wollte ich es mit einer längeren Zeit für das lock versuchen, und dabei habe ich gesehen, dass time2lock bereits auf 8 Sekunden (8000, scan.c Zeile 2601), das aber das timeout nie solange ist. Der Grund liegt im set_timeout:
tools.c Zeile 441: sec = (t.tv_nsec + msec * 1000000U) / 1000000000U;
Ist msec > (ca.) 4000 kommt es bei der Multiplikation zu einem Überlauf, und bei sec kommt damit ein falscher Wert heraus.
Ich habe das so ausgebessert:
uint32_t timeoutMsec, timeoutSec;
timeoutMsec = msec % 1000U;
timeoutSec = msec / 1000U;
clock_gettime(CLK_SPEC, &t);
sec = (t.tv_nsec + timeoutMsec * 1000000U) / 1000000000U + timeoutSec;
nsec = (t.tv_nsec + timeoutMsec * 1000000U) % 1000000000U;
Vielleicht willst Du es übernehmen?
Bei meinem eigentlichen Problem hat es nicht geholfen, es gibt kein lock
Für entsprechende Hinweise wäre ich dankbar ...
lg