From: Andreas Monzner Date: Sat, 18 Feb 2006 12:41:59 +0000 (+0000) Subject: rotor fix X-Git-Tag: 2.6.0~4143 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/0386cfb6d71fd4d58e4ed30ea2bcfaa74f4eb604 rotor fix --- diff --git a/lib/dvb/sec.cpp b/lib/dvb/sec.cpp index 0b40ae50..aa00062a 100644 --- a/lib/dvb/sec.cpp +++ b/lib/dvb/sec.cpp @@ -602,27 +602,24 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, VOLTAGE(18)) ); // voltage was disabled..so we wait a longer time .. sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 500) ); - sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, +4) ); // no need to send stop rotor cmd + sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, +7) ); // no need to send stop rotor cmd - eDVBDiseqcCommand diseqc; - if ( !send_mask ) // no switch changed.. so we send first the rotor stop command - { - diseqc.len = 3; - diseqc.data[0] = 0xE0; - diseqc.data[1] = 0x31; // positioner - diseqc.data[2] = 0x60; // stop - sec_sequence.push_back( eSecCommand(eSecCommand::IF_ROTORPOS_VALID_GOTO, +3) ); - sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) ); - // wait 300msec after send rotor stop cmd - sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 300) ); - } + if (send_mask) + sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 750) ); // wait 750ms after send switch cmd else - { - // wait 500msec after switching to rotor - sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 500) ); - sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, +2) ); sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, +1) ); - } + + eDVBDiseqcCommand diseqc; + diseqc.len = 3; + diseqc.data[0] = 0xE0; + diseqc.data[1] = 0x31; // positioner + diseqc.data[2] = 0x60; // stop + sec_sequence.push_back( eSecCommand(eSecCommand::IF_ROTORPOS_VALID_GOTO, +5) ); + sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) ); + sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 50) ); + sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) ); + // wait 300msec after send rotor stop cmd + sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 300) ); diseqc.data[0] = 0xE0; diseqc.data[1] = 0x31; // positioner