Neutrino diseqc1.1 und mehr als 4 Satelliten

Wünsche, Anträge, Fehlermeldungen
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Neutrino diseqc1.1 und mehr als 4 Satelliten

Beitrag von Nico 77 »

In einem anderen Forum habe ich etwas zu diesem Thema gefunden welches nicht im Sumpf versinken sollte.

Damit kann man wohl Neutrino mehr als 4 Satellietn ohne Probleme ansteuern zusätzlich wird wohl diseqc1.1 gefixt.

Sollte vielleicht mal einer drüber schauen ob das nicht CVS tauglich ist.
Original von KaenGuruH
Viele Wege führen....

Ich habe es wie folgt erfolgreich getestet:
Als erstes habe ich frontend.cpp beigebracht wie man "Uncommitted Switches" Befehle verschickt

Code: Alles auswählen

void CFrontend::sendUncommittedSwitchesCommand(uint8_t USCommand)
{
  struct dvb_diseqc_master_cmd cmd;
  if ((USCommand >= 0xF0) && (USCommand <= 0xFF))
  {
    cmd.msg[0] = 0xE0;	//command from master, no reply required, first transmission
    cmd.msg[1] = 0x00;	//all families (don't care adress)
    cmd.msg[2] = 0x39;	//write to port group 1 (uncommitted switches)
    cmd.msg[3] = USCommand;
    cmd.msg[4] = 0x00;
    cmd.msg_len = 4;
    sendDiseqcCommand(&cmd, 15);
    printf("[frontend] uncommitted switches command (%x) sent\n", cmd.msg[3]);
  }
}
Dann habe ich mir gedacht, dass ich diese Befehle nur bei Satelliten mit DiSEqC > 15 verwende, dH DiSEqC = 16 entspricht "Uncommitted Switches" - Befehl F0 + DiSEqC A, DiSEqC = 17 entspricht "Uncommitted Switches" - Befehl F1 + DiSEqC B usw.
Dazu habe ich zapit.cpp um folgendes erweitert:

Code: Alles auswählen

if (diseqcType == DISEQC_1_1)                                    // nur bei DiSEqC 1.1
  if (frontend->getDiseqcPosition() != channel->getDiSEqC())   // bei Satelliten/DiSEqC-Wechsel
    if (channel->getDiSEqC() > 0x0F)                         // und Satelliten/DiSEqC > 15 (16 .. 32)
      frontend->sendUncommittedSwitchesCommand(0xE0 + channel->getDiSEqC());
Zum Schluss wollte ich noch, dass der Suchlauf bei den Satelliten > 16 funktioniert und musste dazu in der scan.cpp folgendes hinzufügen:

Code: Alles auswählen

if (!strcmp(frontendType, "sat") && (frontend->getDiseqcType() == DISEQC_1_1))	//nur wenn DiSEqC 1.1
  if (TP->diseqc > 0x0F)							// und DiSEqC > 15 (16..32)
    frontend->sendUncommittedSwitchesCommand(0xE0 + TP->diseqc);
Man kann es bestimmt noch viel "eleganter" lösen... ;)

Den SUR 420 kann man auch "von Hand" über telnet ansteuern.

pzapit -motor e0 00 39 01 fx 00

wobei x zwischen 0 und f liegen soll

x=0 - sat 1
x=1 - sat 1
x=2 - sat 1
x=3 - sat 1
x=4 - sat 2
x=5 - sat 2
x=6 - sat 2
x=7 - sat 2
x=8 - sat 3
x=9 - sat 3
x=a - sat 3
x=b - sat 3
x=c - sat 4
x=d - sat 4
x=e - sat 4
x=f - sat 4

Gruß
KaenGuruH
So wie es in einem weiterem Forum gepostet wurde funktiniert dieses auch Bugfrei.
Zuletzt geändert von Nico 77 am Sonntag 23. Oktober 2005, 23:14, insgesamt 1-mal geändert.
DieMade
Oberlamer, Administrator & Supernanny
Beiträge: 10532
Registriert: Samstag 13. Juli 2002, 10:49

Beitrag von DieMade »

Wenn Du schon aus "diversen" Foren postest, mach die Herkunft bitte unkenntlich - um einen Selbstbedienungsladen wird es sich ja wohl nicht handeln...
There are 10 types of people in the world: those who know binary and those who don't
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

Sorry, doch etwas übersehen. :roll:
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

@Nico 77
hast du es schon erfolgreich eingebaut bekommen ?
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

Nein, aber es haben welche hinbekommen. :-?

Nur diese Vogelfraktion findet sich toll und behält es für sich. :-?
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

albern :(
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »