frontend.cpp

Alles rund um das grafische Benutzerinterface Enigma
Coronas
Developer
Beiträge: 196
Registriert: Dienstag 16. Oktober 2001, 00:00

frontend.cpp

Beitrag von Coronas »

Hi,

beim Suchlauf mit einer Nokia-Sat-Box an einem Spaun 9/4 hatte ich einige Problemchen - es wurden nur die horizontalen Programme gefunden. Daraufhin habe ich mir mal die frontend.cpp ein bischen genauer angesehen und kommentiert. Es scheint so, als ob bein Festlegen der Polarisatione zwar die horizontale Ebene definiert wird, allerdings habe ich eine Umschaltung zurück auf vertikal nicht gefunden. Also: diseqc.params[0]|=0; //Data-Byte Bit 0 - vertikal eingefügt, und damit hat es geklappt.
Vielleicht kann jemand der Developer mal einen Blick drauf werfen, und wenn's für OK befunden wird, mit aufnehmen...
cu

//Address Byte -> Any LNB Switcher or SMATV
diseqc.addr=0x10;
//Command Byte -> Write to Port group 0 (Commited switches)
diseqc.cmd=0x38;
//Jetzt kommt noch ein Data-Byte (0xF0, s.u.) + bit 3/2 (Position A...D), bit 1 (Oben/Unten), bit 0 (H/V)
diseqc.numParams=1;
cmd.type=SEC_CMDTYPE_DISEQC;

if (Frequency>threshold)
{
front.Frequency=Frequency-lnbfreq_hi;
seq.continuousTone = SEC_TONE_ON;
hi=1; //Data-Byte Bit 1=1
} else
{
front.Frequency=Frequency-lnbfreq_low;
seq.continuousTone = SEC_TONE_OFF;
hi=0; //Data-Byte Bit 1=0
}

front.Frequency+=freq_offset;
front.Inversion=Inversion;

//Data Byte 0xF0 Positionsumschaltung (0xF0 ->Pos. A, 0xF4->Pos. B, 0xF8->Pos. C, 0xFC-> Pos.D)
diseqc.params[0]=0xF0;
if (polarisation==polVert)
{
diseqc.params[0]|=0; //Data-Byte Bit 0 - vertikal
seq.voltage=SEC_VOLTAGE_13;
} else if (polarisation==polHor)
{
diseqc.params[0]|=1; //Data-Byte Bit 0 - horizontal
seq.voltage=SEC_VOLTAGE_18;
} else
qFatal("BLA was ist dass denn fuer eine pol.");
tmbinc
Developer
Beiträge: 821
Registriert: Freitag 20. Juli 2001, 00:00

Beitrag von tmbinc »

ich versteh deinen fix nicht so ganz:

irgenwas|=0; macht doch eigentlich garnichts.

die frage für mich ist momentan, ob bit 0 wirklich hi/lo und bit1 wirklich pol ist ....


probier mal folgendes: (möglichst auch nochmal mit den origsourcen um das einzugrenzen)

mach mal:
int changelnb=(diseqc.params[0]^lastcsw)&~3;
zu:

int changelnb=(diseqc.params[0]^lastcsw);


dann sendet der auch bei polaristationswechsel nen neues diseqc.

wenn nicht, vertausch mal:
... == polHor)
diseqc.params[0]|=2;
...

if (hi)
diseqc.params[0]|=1;

zu

... == polHor)
diseqc.params[0]|=1;
...

if (hi)
diseqc.params[0]|=2;


dann sind da einfach die bits verdreht. in kombination mit dem patch von oben.

ich denke aber die bits sind richtigrum.
Coronas
Developer
Beiträge: 196
Registriert: Dienstag 16. Oktober 2001, 00:00

Beitrag von Coronas »

Hi,

du hast recht, der Fehler ist woanders.
Beim Probieren ist mir etwas aufgefallen: nachdem ich nochmal die originale frontend.cpp genommen habe, hatte ich einen Suchlauf gestartet. Unabsichtlich bin ich an das Kabel, das zu dem Zeitpunkt nur lose eingesteckt war, gekommen - und es hat wunderbar funktioniert.
Daraufhin hab ich folgendes ausprobiert:

Nachdem ich Transponderscan im Hauptmenü ausgewählt hatte, habe ich bei Punkt 1 (willkommen blabla) das Kabel rein- und rausgezogen (somit also den diseqc switch stromlos gemacht -> resetted). Der darauf folgende Sendersuchlauf fand wiederum nur die horizontalen high-Programme.

Dann hab ich alles gelöscht, und nochmal enigma gestartet, Hauptmenü, Transponderscan, 1. Wilkommen (Kabel drinnegelassen), 2. Es wurde... (Jetzt Kabel reinraus)
Bei diesem Versuch hat es geklappt, alle Kanäle gefunden, zusätzlich überprüft mit einem kleinen Messgerät, das mir die zusätzlich zu 13/18/22khz die einzelnen Diseqc-Schaltzustände anzeigt. Nach dem Sendersuchlauf klappt ebenfalls die Programmumschaltung von einer auf die andere Ebene.
die frage für mich ist momentan, ob bit 0 wirklich hi/lo und bit1 wirklich pol ist ....
Du hast recht, bit 0 -> Lo/Hi, bit 1 -> V/H. Eutelsat hat's relativ eindeutig definiert, nachzulesen auf Seite 15/16 von http://www.eutelsat.com/satellites/pdf/ ... ceiver.pdf
2:0 für dich. Naja - nicht ganz, vielleicht kann ich noch verkürzen: wird der E0 10 03 denn rausgeschickt (Seite 15), bevor der Suchlauf startet? Vielleicht liegt es ja daran, dass ich das Kabel rein/rausziehen muss, wenn ich glotzen will ;)

Sorry für die gestiftete Verwirrung...
tmbinc
Developer
Beiträge: 821
Registriert: Freitag 20. Juli 2001, 00:00

Beitrag von tmbinc »

hehe kein problem :)


hmm ne E0 10 03 sende ich nicht, magste das evtl. mal einbauen?


haste mal probiert ob der von mir vorgeschlagene fix was bringt? (ohne kabelziehen?)
Coronas
Developer
Beiträge: 196
Registriert: Dienstag 16. Oktober 2001, 00:00

Beitrag von Coronas »

Hi,

dein erster Patch hat das Problem gelöst. Ich habe mal einen make clean im Enigma-Verzeichnis gemacht und nur mit der 1. Änderung durchlaufen lassen, Box vom Netz getrennt und wieder reingesteckt, die libs und enigma ins /var/tmp geworfen und der Sendersuchlauf fand (ohne reinraus) alle hier empfangbaren Services. Kann meiner Meinung nach ins cdk eingeflochten werden.

Die E0 10 13 (Eine Eutelsat-Empfehlung, die mehr oder weniger 100ms nach dem Einschalten rausgesendet werden soll) werd ich reinmachen, sobald ich hello world auch blind und rückwärts schreiben kann *rotwerd* - mein letztes timingkritisches Programm stammt noch aus Bluebox-Zeiten... Hey, das lief aber 1a auf nem 6510er. Wie war das noch gleich mit dem Soundsupport für den 64-Emu?
just kidding ;)
cu
Coronas
Developer
Beiträge: 196
Registriert: Dienstag 16. Oktober 2001, 00:00

Beitrag von Coronas »

+#ifdef SPAUN_NOT_WORKING_BUT_FASTER_ZAP

ist auch nicht schlecht. Ich werd's mal mit nem anderen MS testen, mal schaun, was dann passiert.

cu
betakiller
Interessierter
Interessierter
Beiträge: 22
Registriert: Freitag 22. Februar 2002, 07:39

Spaun

Beitrag von betakiller »

Hi,
Ich hab nen SPAUN aus der 5xxx Serie und hab auch so meine Probleme mit den vertikalen Ferquenzen. Kannst Du einem Dummy wie mir mitteilen, ob Deine Modifikationen zum Erfolg führten???? Und falls ja, wie kann einer mit wenig Ahnung wie ich das auch hinkriegen?????? Im Forung gibt es sicher noch einige die Das auch interessiert. Brauchst nur mal unter suchen SPAUN eingeben.....Ich hoffe auf eine hilfreiche Antwort. Danke.
Coronas
Developer
Beiträge: 196
Registriert: Dienstag 16. Oktober 2001, 00:00

Beitrag von Coronas »

@betakiller

mein MS ist aus der 9er-Serie, und die Modifikation hat das Problem definitiv gelöst. Wie's zur Zeit aussieht, kann ich dir nicht sagen - immer wenn ich gerade die Version kompiliert habe, ist wieder was neues im CVS ;) - Jetzt hab ich ein C++Buch bestellt und werd da erstmal drinne schmökern, bis die ganzen Änderungen fertig sind.
Ein Problem mit der 5xxxer Serie. hmm. Sag mal die GENAUE Modellbezeichnung, dann kann ich ja mal nachschauen, was das Ding kann, und was es falsch interpretieren könnte.
cu
betakiller
Interessierter
Interessierter
Beiträge: 22
Registriert: Freitag 22. Februar 2002, 07:39

spaun

Beitrag von betakiller »

Erst mal besten Dank für die Antwort und für die angebotene Hilfe. Ich hab nen SPAUN SMS 5801 NF. Ne Kathrein-schüssel und ein Quadrolnb auch von Kathrein.
Kannst Du mir sagen wo ich das optimierte File bekomme, und in welches Verzeichniss ich es in die Box einstellen muss? Kann ich Dir mit irgendwelchen Tests helfen? Mit der Source könnte ich auch bestimmt mein C-Wissen reanimieren und auch ein bischen stochern....
Ich bin wirklich für jede Hilfe dankbar. :)
Coronas
Developer
Beiträge: 196
Registriert: Dienstag 16. Oktober 2001, 00:00

Beitrag von Coronas »

Hast pm
tinstar
Neugieriger
Neugieriger
Beiträge: 10
Registriert: Montag 7. Januar 2002, 22:02

Beitrag von tinstar »

würde das auch gerne mal testen :D
hab ebenfalls einen spaun sms 5801 nf

@betakiller: hat es bei dir geklappt?
tinstar
neo1970
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Donnerstag 2. Mai 2002, 22:17

Beitrag von neo1970 »

Hallo,

würde es auch mal testen.

hab leider auch einen sms5801

Gruß
neo1970
Coronas
Developer
Beiträge: 196
Registriert: Dienstag 16. Oktober 2001, 00:00

Beitrag von Coronas »

@neo, tinstar

Betakiller konnte ich nicht weiterbringen - die Sache, auf die sich mein ursprüngliches Post bezog, was die DiSEqC-Umschaltung, sprich das Wechseln von einen auf den anderen Satelliten. Und das hat tmbinc ja zu diesem Zeitpunkt gelöst.
Ihr alle habe einen Multiswitch, der nur zwischen 13 und 18 V und 0/22kHz die Transponder verwaltet und mit DiSEqC nüscht zu tun hat - also kann euer Problem nicht damit zusammenhängen. Auch ist die Änderung nur für ENIGMA gültig gewesen, welches zu diesem Zeitpunk noch nicht im Flash enthalten war.
An alle, die's noch nicht getan haben: Probiert doch den Scan von Enigma aus, vielleicht klappt der ja doch.
Und auf Treiberebene ist ja auch einiges gefixt worden.
cu
neo1970
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Donnerstag 2. Mai 2002, 22:17

Beitrag von neo1970 »

@ Coroans

mein Problem besteht darin ich erhalte kein Bild unter Neutrino, jedoch unter Enigma erhalte ich manchmal ein Bild. Unter BN 2.0 läuft alles einwandfrei.

Es muß an dem Multiswitch von Spaun 5801 liegen.

Frage : Hat da jemand eine Lösung???

Da ich mit Enigma noch am weitesten gekommen bin, wäre ich auch an einer aktuellen Version bzw. Patch für die Soft interessiert. Nur mal zu sehen obs damit wenigstens läuft oder ob ich ohne Linux leben muß. :(


Gruß

neo1970
Coronas
Developer
Beiträge: 196
Registriert: Dienstag 16. Oktober 2001, 00:00

Beitrag von Coronas »

Eine interessante Logik: wenn du nichts unter Neutrino empfängst, aber manchmal etwas unter Enigma, warum ist dann der Multiswitch dran Schuld?




Vielleicht ist der LNB-Offset bei deinem LNB ein wenig verstellt, das kann relativ einfach passieren.




Probiere doch mal aus, in welcher Qualität du von Astra DW-TV, Rai, oder die arabischen Programme empfängst. Wüde mich mal interessieren.


Diese Sender senden auf einem Transponder im unteren Frequenzband, und wenn die reinkonnen, dann deutet das eher auf ein Problem des LNBs hin.

Was für eine Box hast du?

cu
neo1970
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Donnerstag 2. Mai 2002, 22:17

Beitrag von neo1970 »

Hallo,

ist eine Nokia box mit Avia500 drin. Die Box läuft wunderbar, wenn ich sie bei einem Freund einschließe, nur bei mir kommt kein Bild.
Und da fängt das Problem dann auch an. Unter ELITE DVB kommt z.B. bei ZDF, ARD ein Bild (Werde nachher mal deine Sender anschauen.) Bei Eingma und Neutrino wird nichts gefunden, es ist Transponderscan möglich. Auch das Einspielen von Settings bringt nichts.

Bei Elite DVB ist auch nicht alles i.o. Es sind halt nur manche Sender mal da und mal nicht da. Alles sehr sonderbar???

Ich meine das Problem liegt daran das irgendwie Linux (Neutrino) nicht mit der Multiswitch (SMS 5801) klar kommt , was soll es dann sonst sein??
Also ein Softwareproblem von Linux (Neutrino) ist ??? Es wurde ja schon hier geschrieben das der SPAUN5801 Probleme macht.

Noch komischer ist es, schließe ich eine andere BOX an z.B. die 1erBox läuft auch alles einwandfrei. Analoges Bild kalppt auch, ich denke mir es wird einfach nicht zwischen analogem umd digitalem Band sauber hin und her geschaltet.


Wenn es an den LNB liegen sollte, was kann ich dann machen??
Die SAT Anlage ist eine Gemeinschaftsanlage
Gruß

neo1970

P.S. Ich hatte ELITE Dvb und Enigma verwechselt, daher auch meine Hoffnung für eine Lösung des Problems, mittels Änderung der frontend.cpp
unter Enigma oder Neutrino
tinstar
Neugieriger
Neugieriger
Beiträge: 10
Registriert: Montag 7. Januar 2002, 22:02

Beitrag von tinstar »

also, das problem mit dem spaun 5800 nf ist, das er den wechsel zwischen den horizontalen und den vertikalen sendern nicht schafft, oder nur sehr selten =(
wenn man allerdings einmal ein bild hat und dann auf einer ebene bleibt geht es wunderbar :-?

naja, schade dass das mit der frontend.ccp nicht klappt. wäre schön gewesen...
tinstar
Coronas
Developer
Beiträge: 196
Registriert: Dienstag 16. Oktober 2001, 00:00

Beitrag von Coronas »

Also die 13/18V Umschaltung? Ich meine mich erinnern zu können, dass der VES ein halbes Volt mehr vom Treiber her mehr rausgeben kann (können sollte?).
Falls eines der Prblemkinder compilieren kann -> probiert doch mal die SEC_VOLTAGE_13 bzw. SEC_VOLTAGE_18 durch SEC_VOLTAGE_13_5 und SEC_VOLTAGE_18_5 zu ersetzen.
Der Parameter ist in allen frontend.cpp (zapit, enigma, edvb) sowie in einer tuner.cpp (lcars) drinne.
Aber gaaaanz unverbindlich und ohne Garantie.
neo1970
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Donnerstag 2. Mai 2002, 22:17

Beitrag von neo1970 »

Hallo,

das hört sich ja ganz gut an, leider bin ich kein Experte im compilieren. (Leider nicht so mein ding!!).

Hast du vielleicht so eine gepatchte frontend.cpp??
Oder kannst du mir sagen, wo ich im Image die frontend finden kann und wie ich sie später wieder hinein bekomme??

Fragen über Fragen...

Gruß

neo1970
Planet Hemp
Beiträge: 1
Registriert: Montag 27. Mai 2002, 13:09

Beitrag von Planet Hemp »

Es müssen wirklich die 0,5 Volt Manko sein, die so vielen Leuten Probleme bereiten, mir auch für die vertikale Polarisation, da ich noch einen Rotor dazwischen habe, der auch ohne angesprochen zu werden, ein paar Millivolt frißt.

Hier mal zum Vergleich:

BN: H=18,67V V=14,21V (keine Probleme)
NEUTRINO: H=18,11 V=13,59 (keine Sender in vertikaler Lage)

gemessen ohne Belastung

Ich wollte es irgendwie mal im frontend Bin patchen, und es könnte vielleicht sein, dass man es hier irgendwie beinflussen könnte, so wie auch coronas schreibt? Aber leider blick ich nicht durch. Source oder so ist ja nicht verfügbar, oder?

Code: Alles auswählen

.text:00000874 # ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00000874 
.text:00000874 
.text:00000874                 .globl dvb_frontend_sec_set_voltage
.text:00000874 dvb_frontend_sec_set_voltage:           # DATA XREF: __ksymtab:00000D54o
.text:00000874 
.text:00000874 .set var_10, -0x10
.text:00000874 .set arg_4,  4
.text:00000874 
.text:00000874                 mr      r5, r4
.text:00000878                 lis     r4, 0x8004
.text:0000087C                 stwu    sp, var_10(sp)
.text:00000880                 mflr    r0
.text:00000884                 ori     r4, r4, 0x6F4C
.text:00000888                 stw     r0, 0x10+arg_4(sp)
.text:0000088C                 bl      demod_command
.text:00000890                 lwz     r0, 0x10+arg_4(sp)
.text:00000894                 addi    sp, sp, 0x10
.text:00000898                 mtlr    r0
.text:0000089C                 blr
.text:0000089C # End of function dvb_frontend_sec_set_voltage

Hat jemand eine brauchbare Lösung?

Gruß PH :-?
Coronas
Developer
Beiträge: 196
Registriert: Dienstag 16. Oktober 2001, 00:00

Zwischenbericht

Beitrag von Coronas »

Hi nochmal,

Da ich mich mit einem Lötkolben besser auskenne als mit den Treibern, habe ich letzte Woche (war da nicht so 'ne Messe?) mit eine Spaun-Techniker gesprochen. Er will mir (sobald er Zeit hat) sagen, wo man im 5x01 einen R oder C huckepack löten kann, um die Umschaltspannung zu verändern.
Wenn ich die Infos habe, sag' ich nochmal Bescheid.
Falls noch andere Multiswitches vom Horizontal/Vertikal-Problem betroffen sind ausser der 5401, 5601, 5801 bitte kurz bescheidsagen.

cu
Coronas

@Planet Hemp: Sourcen der frontend.cpp-Dateien sind im CVS
dboxP
Interessierter
Interessierter
Beiträge: 50
Registriert: Donnerstag 2. Mai 2002, 13:56

Beitrag von dboxP »

Tja ich verfolge die Diskussion um die Spauns und die Vertikalen Transponder ein wenig. Habe selber Probleme damit aber keinen Spaun, sondern einen Teleka SMS 2455.
Ich empfange aber auch unter BN die ProSieben-Sender nicht. Premiere Hotline vermutete DECT-Telefon. Habe mit ausgeschalteter Basisstation Transponderscan erfolglos gemacht.
Letzter Ausweg aus Premiere/BN-Sicht Flash-Erase.
Was haltet Ihr davon? Gibts Neues vom Spaun-Techniker - wenn MS-Problem könnte mir das ja auch helfen...
Coronas
Developer
Beiträge: 196
Registriert: Dienstag 16. Oktober 2001, 00:00

Spaun-Techniker

Beitrag von Coronas »

Hi,

@tmbinc & Co - sorry für das massive Off-Topic - Verschiebt den Thread doch bitte dahin, wo er hingehört. Konnte ja nicht wissen, dass es sich so entwickelt ;)

Ich habe gerade ein bischen mit einem Spaun-Techniker telefoniert. Er war ein wenig verzweifelt, weil mit seiner Philips-DBox alles klappt. Bei meiner Nokia trat mit heutigem CVS-Stand unter Enigma und Neutrino folgendes Problem auf:

Wenn man von einem horizontalen Programm auf ein Vertikales schaltet, kommt so gut wie nie ein Bild. Wählt man dann ein Programm eines anderen Transponders (der auf der gleichen Ebene sendet), kommt immer ein Bild. Schaltet man dann wieder auf die andere Ebene, ist wieder Essig. Egal, ob von h auf v oder v auf h, der Fehler ist reproduzierbar. Mit einem Speki sieht leider alles normal aus, der Multiswitch schaltet brav zwischen v und h hin- und her, und auch der 22kHz-Ton wird einwandfrei vom Multiswitch ausgewertet (beides haben wir in der Schaltung überprüft).

Also: der Multiswitch schaltet 1a. Aber es muss ja an etwas liegen. Da es immer weniger Möglichkeiten gibt, vermuten wir , dass der MS ein Hauch zu träge schaltet, oder das der Treiber eventuell zu früh (während des schaltens) den Datenstrom abhorcht und dann auf stur schaltet - bis ein Programm eines anderen Transponders auf der gleichen Ebene angewählt wird.

Wo könnte man den im Code des VES1893 eine kleine Warteschleife reinpatchen? Oder gibt es eine Möglichkeit, den Status des VES nach dem Umschalten auszulesen? Hat noch jemand eine Idee?

cu
Coronas
Developer
Beiträge: 196
Registriert: Dienstag 16. Oktober 2001, 00:00

Wo ist die Zeit gebleiben...

Beitrag von Coronas »

Habe gesucht und einen dirty hack gemacht. UND ES KLAPPT!


static inline void ddelay(int i)
{
current->state=TASK_INTERRUPTIBLE;
schedule_timeout((HZ*i)/100);
}

In dieser Universalschleife im VES1893.c die 100 durch 10 ersetzen, und es läuft!

cu

Coronas
tinstar
Neugieriger
Neugieriger
Beiträge: 10
Registriert: Montag 7. Januar 2002, 22:02

Beitrag von tinstar »

schön zu hören :D
gibt es für die armen nicht-programiereer und end-user unter uns auch schon eine möglichkeit das zu testen?
wurde mich sehr freuen... =)
tinstar