Fix SIGNALSTRENGTH in vdr 2.0.3 TechniSat SkyStar 2 DVB-S rev 2.3P - dvbdevice.c

Message ID 525AA642.4030202@tiscali.it
State New
Headers

Commit Message

guido.cordaro@tiscali.it Oct. 13, 2013, 1:55 p.m. UTC
  Sorry Klaus

For these mistakes ... I hope that this time the change to the source 
fits as it should be ...

In this way everything remains unchanged on other devices already 
operating ...

Add functionality to the card TechniSat SkyStar 2 DVB -S rev 2.3P

Tested by recompiling the sources VDR 2.0.3 ... Everything works ...

Guido Cordaro





Il 13/10/2013 15:02, Klaus Schmidinger ha scritto:
> On 13.10.2013 14:42, Guido Cordaro wrote:
>> I understand your position ... and I modified the code again ...
>>
>> Without another unnecessary code I managed to make work well for the 
>> Signal Strength as I did with the first patch ...
>>
>> Tested by recompiling code VDR-2.0.3
>>
>> New Patch to Fix Signal Strength in The Netsystem Skystar2 TechniSat 
>> DVB-S device ...
>>
>> It does not damage any other device in their operation ... in this 
>> way ... almost the same as before the source code ...
>
>> --- /home/knap/Patch/vdr-2.0.3/dvbdevice.c    2013-09-01 
>> 23:04:05.000000000 +0200
>> +++ /home/knap/Patch/dvbdevice.c    2013-10-13 14:28:09.257450468 +0200
>> @@ -550,7 +550,7 @@
>>      case 0x1AE40001: // TechniSat SkyStar HD2 (DVB-S/DVB-S2)
>>                       MaxSignal = 670; break;
>>      }
>> -  int s = int(Signal) * 100 / MaxSignal;
>> +  int s = int(Signal) * 350 / MaxSignal; // Modified by knap for 
>> TechniSat SkyStar
>>    if (s > 100)
>>       s = 100;
>>  #ifdef DEBUG_SIGNALSTRENGTH
>
> Sorry, but it doesn't work that way.
> With this modification you would change the scaling for *all* 
> frontends, not just
> the "TechniSat SkyStar".
>
> The correct way to do this is to find out the "subsystem ID" of the 
> frontend
> you want to adjust, and add the proper 'case' statement to the 'switch' a
> few lines above, where you set MaxSignal accordingly.
> This could perhaps look like this:
>
>   switch (subsystemId) {
>     case 0x13C21019: // TT-budget S2-3200 (DVB-S/DVB-S2)
>     case 0x1AE40001: // TechniSat SkyStar HD2 (DVB-S/DVB-S2)
>                      MaxSignal = 670; break;
>     case 0x????????: // TechniSat SkyStar
>                      MaxSignal = ???; break;
>     }
>
> Klaus
>
> _______________________________________________
> vdr mailing list
> vdr@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
  

Comments

Klaus Schmidinger Oct. 13, 2013, 2:50 p.m. UTC | #1
On 13.10.2013 15:55, Guido Cordaro wrote:
> Sorry Klaus
>
> For these mistakes ... I hope that this time the change to the source fits as it should be ...
>
> In this way everything remains unchanged on other devices already operating ...
>
> Add functionality to the card TechniSat SkyStar 2 DVB -S rev 2.3P
>
> Tested by recompiling the sources VDR 2.0.3 ... Everything works ...

Now that looks good!

Thanks

Klaus
  
Klaus Schmidinger Oct. 21, 2013, 8:54 a.m. UTC | #2
On 13.10.2013 16:50, Klaus Schmidinger wrote:
> On 13.10.2013 15:55, Guido Cordaro wrote:
>> Sorry Klaus
>>
>> For these mistakes ... I hope that this time the change to the source fits as it should be ...
>>
>> In this way everything remains unchanged on other devices already operating ...
>>
>> Add functionality to the card TechniSat SkyStar 2 DVB -S rev 2.3P
>>
>> Tested by recompiling the sources VDR 2.0.3 ... Everything works ...
>
> Now that looks good!

Well, I'm afraid it doesn't look so good after all.
Apparently this breaks things for the "TechniSat AirStar 2" DVB-T card, which seems
to have the same subsystem ID of 0x13D02103 (are you sure you got the ID right?).
Since the "TechniSat AirStar 2" obviously uses the full range of 0x0000...0xFFFF for
its signal value, I can't limit it to 0x4925 for that ID. Besides, if your card
reports 0x4925, there's a high probability that the frontend actually uses the
range 0x0000...0xFFFF and you just got a low signal. Any chance that could be the case?

So I'll have to revoke this change for version 2.1.3.

Klaus
  

Patch

--- /usr/local/src/vdr-2.0.3/dvbdevice.c	2013-09-01 23:04:05.000000000 +0200
+++ /usr/local/src/vdr-2.0.3/dvbdevice.mod.c	2013-10-13 15:48:14.877333948 +0200
@@ -545,10 +545,15 @@ 
   uint16_t MaxSignal = 0xFFFF; // Let's assume the default is using the entire range.
   // Use the subsystemId to identify individual devices in case they need
   // special treatment to map their Signal value into the range 0...0xFFFF.
+  // Modified by knap for TechniSat SkyStar 2 DVB-S rev 2.3P
   switch (subsystemId) {
     case 0x13C21019: // TT-budget S2-3200 (DVB-S/DVB-S2)
     case 0x1AE40001: // TechniSat SkyStar HD2 (DVB-S/DVB-S2)
-                     MaxSignal = 670; break;
+                     MaxSignal = 670;
+                     break;
+    case 0x13D02103: // TechniSat SkyStar 2 DVB-S rev 2.3P
+                     MaxSignal = 0x4925;
+                     break;
     }
   int s = int(Signal) * 100 / MaxSignal;
   if (s > 100)