Malcolm Caldwell wrote:
The other problem with vdr and motorised dishes is due to the timeout for recordings. If vdr receives no data for MAXBROKENTIMEOUT defined in recording.c it does an emergency restart. Now on the plus side, by the time vdr restarts my dish has (so far) always moved to the correct position! However, I must say it is hard to explain to my wife why the recording we just happened to be watching at the time stopped midway through...
Here my fix is to wait ten time the MAXBROKENTIMEOUT but only for the first packet.
OK, this may be a good compromise.
Maybe a definitive solution is simpler than I thought:
-modify cDvbDevice::HasLock to check that the dish is positioned (by querying plugins) -remove the wait for HasLock in cDevice::AttachReceiver -remove also Receiver->Activate(true) there. In its place mark that this receiver hasn't been activated -modify cDevice::Action to wait for HasLock() before the main loop -call receiver[i]->Activate(true) in cDevice::Action just befor calling Receive, but only for receivers that haven't been activated yet
WDYT Klaus?