rotor turing without power measure fixes
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 18 Aug 2008 20:13:16 +0000 (20:13 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 18 Aug 2008 20:13:16 +0000 (20:13 +0000)
lib/dvb/frontend.cpp
lib/dvb/sec.cpp

index d7bc673..0ae2dd3 100644 (file)
@@ -637,7 +637,7 @@ void eDVBFrontend::feEvent(int w)
                                sec_fe->m_data[CSW] = sec_fe->m_data[UCSW] = sec_fe->m_data[TONEBURST] = -1; // reset diseqc
                        }
                }
-               if (m_state != state && ((m_idleInputpower[0] && m_idleInputpower[1]) || (sec_fe->m_data[ROTOR_POS] == sec_fe->m_data[NEW_ROTOR_POS])))
+               if (m_state != state)
                {
                        m_state = state;
                        m_stateChanged(this);
@@ -1513,6 +1513,8 @@ void eDVBFrontend::tuneLoop()  // called by m_tuneTimer
                                                setSecSequencePos(cmd.steps);
                                                m_state = stateLock;
                                                m_stateChanged(this);
+                                               feEvent(-1);
+                                               m_sn->start();
                                                break;
                                        }
                                }
index 91964db..4cb7be2 100644 (file)
@@ -791,6 +791,9 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                                                        sec_sequence.push_back( eSecCommand(eSecCommand::UPDATE_CURRENT_ROTORPARAMS) );
                                                        sec_sequence.push_back( eSecCommand(eSecCommand::SET_POWER_LIMITING_MODE, eSecCommand::modeDynamic) );
                                                        sec_sequence.push_back( eSecCommand(eSecCommand::SET_ROTOR_STOPPED) );
+                                                       sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, +3) );
+                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SET_FRONTEND) );
+                                                       sec_sequence.push_back( eSecCommand(eSecCommand::GOTO, -5) );
                                                }
                                                sec_fe->setData(eDVBFrontend::NEW_ROTOR_CMD, RotorCmd);
                                                sec_fe->setData(eDVBFrontend::NEW_ROTOR_POS, sat.orbital_position);