Hi Klaus,
As part of a recent upgrade from vdr-1.7.22 to 1.7.27 within yavdr I've seen that my rotorng plugin doesn't work anymore and this is shown in the syslog when I try to send a disecq command: -
vdr: [8287] ERROR: frontend 1/0: Invalid argument
The plugin includes a patch to the vdr src which adds another method to cDvbTuner: -
+bool cDvbTuner::SendDiseqcCmd(dvb_diseqc_master_cmd cmd) +{ + cMutexLock MutexLock(&mutex); + if ((frontendType!=SYS_DVBS2 && frontendType!=SYS_DVBS) || SendDiseqc) + return false; + diseqc_cmd=cmd; + SendDiseqc=true; + newSet.Broadcast(); + return true; +} and modifies cDvbTuner::GetFrontendStatus with: -
cMutexLock MutexLock(&mutex); + if (SendDiseqc) { + CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_MASTER_CMD, &diseqc_cmd)); + SendDiseqc=false; + } Has anything changed in VDR, or perhaps the driver that means this no longer works the way that it used to? I've looked through the HISTORY and can't spot anything that stands out.
Thank for any help you can provide.
Kind Regards,
Morfsta
On 12.10.2012 00:41, Morfsta wrote:
Hi Klaus, As part of a recent upgrade from vdr-1.7.22 to 1.7.27 within yavdr I've seen that my rotorng plugin doesn't work anymore and this is shown in the syslog when I try to send a disecq command: - vdr: [8287] ERROR: frontend 1/0: Invalid argument The plugin includes a patch to the vdr src which adds another method to cDvbTuner: - +bool cDvbTuner::SendDiseqcCmd(dvb_diseqc_master_cmd cmd) +{
- cMutexLock MutexLock(&mutex);
- if ((frontendType!=SYS_DVBS2 && frontendType!=SYS_DVBS) || SendDiseqc)
- return false;
- diseqc_cmd=cmd;
- SendDiseqc=true;
- newSet.Broadcast();
- return true;
+} and modifies cDvbTuner::GetFrontendStatus with: - cMutexLock MutexLock(&mutex);
if (SendDiseqc) {
CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_MASTER_CMD, &diseqc_cmd));
SendDiseqc=false;
}
Has anything changed in VDR, or perhaps the driver that means this no longer works the way that it used to? I've looked through the HISTORY and can't spot anything that stands out.
I'm afraid I can't think of anything obvious. Could you try using versions 1.7.13 thru 1.7.27 in turn to see which version introduced the problem?
Klaus
On Fri, Oct 12, 2012 at 3:31 PM, Klaus Schmidinger Klaus.Schmidinger@tvdr.de wrote:
I'm afraid I can't think of anything obvious. Could you try using versions 1.7.13 thru 1.7.27 in turn to see which version introduced the problem?
Thanks Klaus, I will dig into it.
I suspect it could be related to some changes in YAVDR but I will build a vanilla VDR(s) at some stage and test it with that too.
Hi Klaus,
I fixed the problem I had with rotorng, it was a problem with a YAVDR patch and also your changes to ChannelMonitor.
I'm trying to get my head around the VDR function cDVBTuner::ExecuteDiseqc to try and remove the requirement for a patch for VDR core in future.
If I would like to send a FE_DISEQC_SEND_MASTER_CMD from a plugin, how would I write the code to do this from inside the plugin? Is this possible?
I am trying to setup a cDiseqc object but don't know how to build it just to be able to send a raw command of type dvb_diseqc_master_cmd.
Any help you would be able to give me would be much appreciated and would hopefully move this plugin forward. I'm not a C++ developer, more a code hacker so please be gentle! ;-)
Many Thanks,
Morfsta
On Mon, Oct 15, 2012 at 9:29 AM, Morfsta morfsta@gmail.com wrote:
On Fri, Oct 12, 2012 at 3:31 PM, Klaus Schmidinger Klaus.Schmidinger@tvdr.de wrote:
I'm afraid I can't think of anything obvious. Could you try using versions 1.7.13 thru 1.7.27 in turn to see which version introduced the problem?
Thanks Klaus, I will dig into it.
I suspect it could be related to some changes in YAVDR but I will build a vanilla VDR(s) at some stage and test it with that too.
On 25.10.2012 13:49, Morfsta wrote:
Hi Klaus,
I fixed the problem I had with rotorng, it was a problem with a YAVDR patch and also your changes to ChannelMonitor.
What "ChannelMonitor"? There is no such thing in VDR.
I'm trying to get my head around the VDR function cDVBTuner::ExecuteDiseqc to try and remove the requirement for a patch for VDR core in future.
If I would like to send a FE_DISEQC_SEND_MASTER_CMD from a plugin, how would I write the code to do this from inside the plugin? Is this possible?
cDvbTuner is local to dvbdevice.c, and cDvbTuner::ExecuteDiseqc() is private. So I'm afraid you can't do this without a patch.
Klaus
I am trying to setup a cDiseqc object but don't know how to build it just to be able to send a raw command of type dvb_diseqc_master_cmd.
Any help you would be able to give me would be much appreciated and would hopefully move this plugin forward. I'm not a C++ developer, more a code hacker so please be gentle! ;-)
Many Thanks,
Morfsta
On Mon, Oct 15, 2012 at 9:29 AM, Morfsta morfsta@gmail.com wrote:
On Fri, Oct 12, 2012 at 3:31 PM, Klaus Schmidinger Klaus.Schmidinger@tvdr.de wrote:
I'm afraid I can't think of anything obvious. Could you try using versions 1.7.13 thru 1.7.27 in turn to see which version introduced the problem?
Thanks Klaus, I will dig into it.
I suspect it could be related to some changes in YAVDR but I will build a vanilla VDR(s) at some stage and test it with that too.
On Thu, Oct 25, 2012 at 3:32 PM, Klaus Schmidinger Klaus.Schmidinger@tvdr.de wrote:
What "ChannelMonitor"? There is no such thing in VDR.
Hi Klaus,
Thanks for getting back to me.
Sorry, I meant cStatusMonitor::ChannelSwitch.
cDvbTuner is local to dvbdevice.c, and cDvbTuner::ExecuteDiseqc() is private. So I'm afraid you can't do this without a patch.
Would it be possibe to update this in a later version of VDR please Klaus? Given that there is currently no multiple satellite support in code VDR (there should be really - many people would appreciate this), then it would make sense to at least permit a plugin to be able to move the dish with diseqc commands.
Kind Regards