Hi.
Ich hab mich mal etwas mit DiSEqC beschäftigt. Wie es scheint, funktioniert DiSEqC 1.1 mit Neutrino nicht so richtig. Oder viel mehr, es funktioniert nicht so, wie man es heutzutage erwarten würde. Im Prinzip scheint es schon so implementiert zu sein, wie es damals von Eutelsat spezifiziert wurde, wobei man das glaube ich nicht so genau sagen kann, denn die Spezifikation ist, wie ich finde, doch etwas difus, was wahrscheinlich daran liegt, dass es solche Geräte (Switches), wie sie damals vorrausgesagt wurden eben noch nicht gab. Und auch heute nicht gibt und wahrscheinlich nie geben wird. Und da liegt auch das Problem. Die Spezifikation zielt an den heutigen Anforderungen schlichtweg vorbei. Und damit die Zapit-Implementierung.
Heutzutage ist die eigentlich interessante Anwendung von DiSEqC 1.1 die Ansteuerung von mehr als vier Satellitenpositionen. Es gibt auch entsprechende Hardware dazu, die aber eben nicht mit Neutrino zusammenarbeitet.
DiSEqC 1.1 ist immer noch eine Sache, die nur von wenigen Receivern unterstützt wird und ich finde es irgendwie Schade, dass ausgerechnet die dbox2 dazu gehört.
Also vielleicht kann sich ja mal jemand melden der am Zapit rumbastelt und vielleicht wird die Sache ja dann was.
mfg
DiSEqC 1.1
-
- Neugieriger
- Beiträge: 4
- Registriert: Sonntag 29. Februar 2004, 23:49
-
- Neugieriger
- Beiträge: 4
- Registriert: Sonntag 29. Februar 2004, 23:49
Tja, keine große Resonanz soweit.
Dafür hab ich selbst mal angefangen. Also um das ans laufen zu bringen würden erstmal 3 Codezeilen reichen. Hab mal ein diff gemacht:
Man muss einfach nur die Nachricht anpassen. Vorher (Obwohl man in der GUI 16 Sats auswählen kann) wurden immer nur 2 Bit von sat_no benutzt . Jetzt weitere 4 in der uncommitted-Nachricht. Vorher wurde als uncommitted-Nachricht nochmal die committed-Nachricht gesendet, aber wozu das gut sein sollte?
Die Veränderung betrifft nur den Codeblock für DISEQC_1_1, d.h. bei dem häufig verwendeten 1.0 ändert sich garnichts, selbst vom Code her nicht.
Es besteht durch die Abfrage (sat_no >= 128 ) noch die Möglichkeit das alte Verhalten zu erzwingen, indem man manuell (in der services.xml) die diseqc-Werte um 128 erhöht, für den (unwahrscheinlichen) Fall, dass jemand was mit der aktuellen Implementierung anfangen kann.
Hier könnte man auch durch ändern in (sat_no < 128 ) die Sache umdrehen und das alte Verhalten als Standard vorsehen. Die veränderte Implementierung würde dann nur durch entsprechendes manuelles verändern der services.xml aktiviert, aber besser als garnix.
Hab leider keine Möglichkeit dass selbst auszuprobieren. Aber vielleicht erbarmt sich ja doch noch jemand und baut das so oder anders ein.
mfg
Dafür hab ich selbst mal angefangen. Also um das ans laufen zu bringen würden erstmal 3 Codezeilen reichen. Hab mal ein diff gemacht:
Code: Alles auswählen
--- apps/dvb/zapit/src/zapost/frontend.cpp 2004-04-20 16:47:16.000000000 +0200
+++ frontend.cpp 2004-07-01 01:37:24.000000000 +0200
@@ -644,21 +644,24 @@
}
if ((diseqcType >= DISEQC_1_1) && (repeats)) {
+ uint8_t uncommitted_xor = (sat_no >= 128 ) ? 0 : cmd.msg[3] ^ ( 0xf0 | (sat_no >> 2) );
for (uint16_t i = 0; i < repeats; i++) {
uint8_t again = 0;
usleep(1000 * 100); /* wait at least 100ms before retransmission */
cmd.msg[2] |= 0x01; /* uncommitted switches */
+ cmd.msg[3] ^= uncommitted_xor;
sendDiseqcCommand(&cmd, 15);
if (diseqcType >= DISEQC_2_0)
again += getDiseqcReply(50);
cmd.msg[0] |= 0x01; /* repeated transmission */
cmd.msg[2] &= 0xFE; /* committed switches */
+ cmd.msg[3] ^= uncommitted_xor;
sendDiseqcCommand(&cmd, 15);
if (diseqcType >= DISEQC_2_0)
again += getDiseqcReply(50);
Die Veränderung betrifft nur den Codeblock für DISEQC_1_1, d.h. bei dem häufig verwendeten 1.0 ändert sich garnichts, selbst vom Code her nicht.
Es besteht durch die Abfrage (sat_no >= 128 ) noch die Möglichkeit das alte Verhalten zu erzwingen, indem man manuell (in der services.xml) die diseqc-Werte um 128 erhöht, für den (unwahrscheinlichen) Fall, dass jemand was mit der aktuellen Implementierung anfangen kann.
Hier könnte man auch durch ändern in (sat_no < 128 ) die Sache umdrehen und das alte Verhalten als Standard vorsehen. Die veränderte Implementierung würde dann nur durch entsprechendes manuelles verändern der services.xml aktiviert, aber besser als garnix.
Hab leider keine Möglichkeit dass selbst auszuprobieren. Aber vielleicht erbarmt sich ja doch noch jemand und baut das so oder anders ein.
mfg
-
- Senior Member
- Beiträge: 1339
- Registriert: Donnerstag 24. April 2003, 12:12
-
- Neugieriger
- Beiträge: 10
- Registriert: Donnerstag 26. Februar 2004, 17:20
-
- Senior Member
- Beiträge: 5071
- Registriert: Dienstag 18. September 2001, 00:00