Zapit mit uncommitted switch Unterstützung.

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
wanders
Neugieriger
Neugieriger
Beiträge: 7
Registriert: Donnerstag 15. September 2005, 13:20

Zapit mit uncommitted switch Unterstützung.

Beitrag von wanders »

Tach,

ich habe mal was für die uncommitted switch Unterstützung geschrieben. Entspricht zwar nicht ganz dem was der Standart vorgibt, nämlich das in den gaps die unc. switch Befehle gesendet werden, funktioniert bei mir und in einem anderen Image schon seit ein paar Tagen ohne das klagen von Usern kommen.

Vielleicht sieht sich das mal jemand an und kann es einchecken. Als Vorlage habe ich teile von codes die hier kursieren verwendet, habe mir die Arbeit aber weitgehend auf ein File welches anzupassen ist beschränken können.

Vielleicht kanns ja auch ein anderer als Anregung verwenden und es ganz dem Standart entsprechend anpassen und umsetzen.

Folgendes wäre zu änden bzw. anzupassen:

Code:
-------------------------------------------------------------------------------
in apps/dvb/zapit/include/frontend.h

nach void reset(void);
einfügen,

void sendUncommittedSwitchesCommand(uint8_t USCommand);

--------------------------------------------------------------------------------

in apps/dvb/zapit/src/zapost/frontend.cpp

nach secSetVoltage(v, 15);
einfügen,

if (diseqcType == DISEQC_1_1)
{
static uint8_t prevSatNo = 255; // initialised with greater than max Satellites (64)
// because we only want to send uncommitted switch
// command if necessary to save zap time
DBG("new Sat %d previous Sat %d", sat_no, prevSatNo);
//DBG("new Sat/4 %d previous Sat/4 %d", sat_no/4, prevSatNo/4);

if (prevSatNo/4 != sat_no/4)
{
sendUncommittedSwitchesCommand(0xF0 + sat_no/4);
}
prevSatNo = sat_no;
}

und ganz am Ende anhängen,

void CFrontend::sendUncommittedSwitchesCommand(uint8_t usCommand)
{
struct dvb_diseqc_master_cmd cmd = {
{ 0xe0, 0x10, 0x39, 0x00, 0x00, 0x00 }, 4};
//command from master, no reply required, first transmission
//all families (don't care adress)
//write to port group 1 (uncommitted switches)
cmd.msg[3] = usCommand;
sendDiseqcCommand(&cmd, 15);

if (diseqcRepeats)
{
cmd.msg[0] = 0xe1; /* repeated transmission */
for (uint16_t i = 0; i < diseqcRepeats; i++)
{
usleep(1000 * 100); /* wait at least 100ms before retransmission */
sendDiseqcCommand(&cmd, 15);
}
}
//DBG"[frontend] uncommitted switches command (0x%x) sent", cmd.msg[3]);
}


Code Ende
-----------------------------------------------------------------------------------

Folgende 2 Zeilen aus der frontend.cpp wären zu löschen bzw. auszukommentieren. Einfach mal danach suchen.

cmd.msg[2] |= 0x01; /*uncommitted switches */
sendDiseqcCommand(&cmd, 15);

Gruß wanders
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Thanx :-)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

und die zapit.cpp + scan.cpp muss nicht geändert werden ?? wie in dem thread
http://forum.tuxbox-cvs.sourceforge.net ... hp?t=39081
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

Danke. :D
wanders
Neugieriger
Neugieriger
Beiträge: 7
Registriert: Donnerstag 15. September 2005, 13:20

Beitrag von wanders »

mb405 hat geschrieben:und die zapit.cpp + scan.cpp muss nicht geändert werden ?? wie in dem thread
http://forum.tuxbox-cvs.sourceforge.net ... hp?t=39081
Nein muß sie nicht. Nur frontend.cpp und frontend.h

Gruß wanders
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ich hab das mal eingebaut, nur funkt das irgendwie nicht.
KaenGuruH
Neugieriger
Neugieriger
Beiträge: 3
Registriert: Samstag 21. Januar 2006, 21:11

Beitrag von KaenGuruH »

mb405: Bei dieser (sehr guten) Lösung, thx wanders, werden die HF-Eingänge des SUR410 wie folgt geschalten:

Code: Alles auswählen

SatNr 01 - DiSEqC 1.1 Cmd F0 - DiSEqC 1.0 Cmd A/A
SatNr 02 - DiSEqC 1.1 Cmd F0 - DiSEqC 1.0 Cmd A/B
SatNr 03 - DiSEqC 1.1 Cmd F0 - DiSEqC 1.0 Cmd B/A
SatNr 04 - DiSEqC 1.1 Cmd F0 - DiSEqC 1.0 Cmd B/B
SatNr 05 - DiSEqC 1.1 Cmd F1 - DiSEqC 1.0 Cmd A/A
SatNr 06 - DiSEqC 1.1 Cmd F1 - DiSEqC 1.0 Cmd A/B
SatNr 07 - DiSEqC 1.1 Cmd F1 - DiSEqC 1.0 Cmd B/A
SatNr 08 - DiSEqC 1.1 Cmd F1 - DiSEqC 1.0 Cmd B/B
SatNr 09 - DiSEqC 1.1 Cmd F2 - DiSEqC 1.0 Cmd A/A
SatNr 10 - DiSEqC 1.1 Cmd F2 - DiSEqC 1.0 Cmd A/B
SatNr 11 - DiSEqC 1.1 Cmd F2 - DiSEqC 1.0 Cmd B/A
SatNr 12 - DiSEqC 1.1 Cmd F2 - DiSEqC 1.0 Cmd B/B
SatNr 13 - DiSEqC 1.1 Cmd F3 - DiSEqC 1.0 Cmd A/A
SatNr 14 - DiSEqC 1.1 Cmd F3 - DiSEqC 1.0 Cmd A/B
SatNr 15 - DiSEqC 1.1 Cmd F3 - DiSEqC 1.0 Cmd B/A
SatNr 16 - DiSEqC 1.1 Cmd F3 - DiSEqC 1.0 Cmd B/B
SatNr 17 - DiSEqC 1.1 Cmd F4 - DiSEqC 1.0 Cmd A/A <--
SatNr 18 - DiSEqC 1.1 Cmd F4 - DiSEqC 1.0 Cmd A/B
usw...
Falls man den SUR420 wie folgt eingestellt hat:

Code: Alles auswählen

DiSEqC 1.1 Cmd F0 - HF Eingang 1
DiSEqC 1.1 Cmd F1 - HF Eingang 1
DiSEqC 1.1 Cmd F2 - HF Eingang 1
DiSEqC 1.1 Cmd F3 - HF Eingang 1
DiSEqC 1.1 Cmd F4 - HF Eingang 2 <--
DiSEqC 1.1 Cmd F5 - HF Eingang 2
DiSEqC 1.1 Cmd F6 - HF Eingang 2
DiSEqC 1.1 Cmd F7 - HF Eingang 2
DiSEqC 1.1 Cmd F8 - HF Eingang 3
DiSEqC 1.1 Cmd F9 - HF Eingang 3
DiSEqC 1.1 Cmd FA - HF Eingang 3
DiSEqC 1.1 Cmd FB - HF Eingang 3
DiSEqC 1.1 Cmd FC - HF Eingang 4
DiSEqC 1.1 Cmd FD - HF Eingang 4
DiSEqC 1.1 Cmd FE - HF Eingang 4
DiSEqC 1.1 Cmd FF - HF Eingang 4
muss man entsprechend die SatNr anpassen.
So ist zB. der erste DiSEqC 1.0 Eingang, der am zweiten DiSEqC 1.1 Eingang angeschlossen ist, über SatNr 17 zu erreichen (bzw 16 in der scan.conf) - siehe Markierung.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

also ist das "nur" für die beiden spaun schalter angepasst ?
ich hab da einen diseq 8in1 schalter, aber der will nicht damit
KaenGuruH
Neugieriger
Neugieriger
Beiträge: 3
Registriert: Samstag 21. Januar 2006, 21:11

Beitrag von KaenGuruH »

Ich habe mich da oben verschrieben... Es geht dort nur um den SUR420. :oops:
Hängen an Deinem Schalter noch weitere DiSEqC 1.0 Schalter dran?
Versuche mal die Stelle:

Code: Alles auswählen

if (prevSatNo/4 != sat_no/4) {
  sendUncommittedSwitchesCommand(0xF0 + sat_no/4);
}
so zu korrigieren:

Code: Alles auswählen

if (prevSatNo != sat_no) {
  sendUncommittedSwitchesCommand(0xF0 + sat_no);
}
damit uncommitted switches command bei jedem Sat-Wechsel gesendet wird und beim Wechsel jeweils um eins pro Sat erhöht wird (nicht pro 4-Sats). Es könnte dann klappen.
wanders
Neugieriger
Neugieriger
Beiträge: 7
Registriert: Donnerstag 15. September 2005, 13:20

Beitrag von wanders »

Hi,
ich hätte vieleicht dazu sagen sollen, das ich einen Spaun SUR420F einsetze. Da ich nur mit diesem Schalter testen konnt habe ich den code natürlich so geschrieben, daß es mit dem SUR420F funktioniert.
Da es aber hier ja kompetente Entwickler gibt, können die aus meinem Beispiel sicher mehr drauß machen.:-)

Gruß wanders
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ich versteh nur die verkabelung nicht so richtig bis jetzt.

also als erstes receicer mit den ausgang des sur420f verbinden. dann jeden zf eingang mit den ausgang eines sur410f verbinden.
damit könnte man also 4x4=16 sats schalten.
wenn ich nun 2sur410 an den 420er hänge, könnte ich 2x4=8+2=10 sats schalten. versteh ich das richtig?

wenn das so funktioniert, dann werd ich mir die dinger besorgen.
was anderes gleich noch. kann ich die dinger im freien montieren(wetterschutz) ? und für was ist der umschalter gut auf der frontseite.

Danke
KaenGuruH
Neugieriger
Neugieriger
Beiträge: 3
Registriert: Samstag 21. Januar 2006, 21:11

Beitrag von KaenGuruH »

Ich habe hier eine Kombination SUR420WSG mit den alten SAR410WSG bzw. dem Nachvolger SAR411WSG (jeweils als WSG=WetterSchutzGehäuse) und es funktioniert wunderbar.
10 Sats kannst Du mit einem SUR420+2xSAR411 sehr gut schalten :)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

@KaenGuruH
mit den modifikationen funktioniert nun der 10in1 multischalter einwandfrei :)
jippie. nun müsste man das nur noch im kanalsuchemenü mit integrieren. damit man uncommited switch signale bei jeden satwechsel oder bei jeden 4.satwechsel (du weist was ich meine :) ) aktivieren kann.
Murphy
Interessierter
Interessierter
Beiträge: 23
Registriert: Samstag 2. September 2006, 14:26

Beitrag von Murphy »

mb405 hat geschrieben:@KaenGuruH
mit den modifikationen funktioniert nun der 10in1 multischalter einwandfrei :)
Ist es das ASAT DiSEqC 1/10 Switch SW 101D?
Bei mir geht das aber nur mit 4 Satelliten, wobei aber der DiSEqC 8/1 von EMP einwandfrei bei mir funktioniert.
Ich habe mittlerweile alle Modi ausprobiert und komme einfach nicht weiter.
Kannst Du mir eventuell noch einen Tipp geben?
Gruß
Murphy
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

wie wanders oben geschrieben die frontend.cpp + frontend.h modifizieren. und dann einfach die zapit neu bauen, und schon geht das.
Murphy
Interessierter
Interessierter
Beiträge: 23
Registriert: Samstag 2. September 2006, 14:26

Beitrag von Murphy »

Ist jaalles so gemacht.
Wie gesagt mit dem 8/1 geht es einwandfrei, mit dem 10/1 leider nicht.
Ist es der von mir geschriebene?
Wenn ja auf welchen Modi betreibst du ihn?
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

also es geht mode5 damit.
Murphy
Interessierter
Interessierter
Beiträge: 23
Registriert: Samstag 2. September 2006, 14:26

Beitrag von Murphy »

Okay, danke für die Info.
Jetzt weiß ich zumindestens das es mit Neutrino geht, mal sehen vielleicht finde ich ja noch den Fehler bei mir, obwohl ich eigentlich schon alles versucht habe.
Murphy
Interessierter
Interessierter
Beiträge: 23
Registriert: Samstag 2. September 2006, 14:26

Beitrag von Murphy »

Also ich habe jetzt nochmal alles überprüft und getestet, auch mal einen anderes Image probiert immer mit dem Resultat das der 8/1 geht aber der 10/1 nicht.
Der 10/1 kann bei mir nur 4 Satelliten ansteuern und Modi 2 und 5 gehen bei mir gar nicht und das es am Schalter liegt denke ich nicht, da ja diseqc 1.0 mit ihm funktioniert und ich hier zwei von diesen Schaltern habe und ich bei beiden dasselbe Problem habe.
Gibt es die Möglichkeit das du mir mal ein Testimage von dir zukommen lässt, wo die diseqc Steuerung mit dem 10/1 bei dir einwandfrei funktioniert?
Murphy
Interessierter
Interessierter
Beiträge: 23
Registriert: Samstag 2. September 2006, 14:26

Beitrag von Murphy »

Also jetzt geht es, vielen Dank für die Hilfe. :D
Für den 8/1 diseqce brauche ich den Patch von Wanders und für den 10/1 den Patch mit den Änderungen von Kaenguruh.
In dem Image das ich verwende konnte man das nicht umswitchen.
Murphy
Interessierter
Interessierter
Beiträge: 23
Registriert: Samstag 2. September 2006, 14:26

Beitrag von Murphy »

Hat das eventuell schon jemand auf die Reihe bekommen den Patch von Wanders und die Änderung von Kaenguruh in einen Patch zu bekommen, also, das der Patch sowohl mit dem einem disqce-Schalter , als auch mit dem 10/1 Schalter funktioniert? So das man keine manuelle Umschaltung per Software mehr benötigt?
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

hier zum testen:
http://home.arcor.de/houdini/dbox/zapit/zapit
in der zapit.conf:

Code: Alles auswählen

uncommitted_switch_mode=1 
arbeitet mit version 1

Code: Alles auswählen

uncommitted_switch_mode=2
arbeitet mit version 2

Code: Alles auswählen

0 oder >2
Verhalten wie bisher
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

ist jetzt im cvs
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

Danke!
Murphy
Interessierter
Interessierter
Beiträge: 23
Registriert: Samstag 2. September 2006, 14:26

Beitrag von Murphy »

Sorry konnte jetzt erst testen.

Danke funktioniert echt super!!!! :D