Projekt

Zusatz-Programme für Receiver der 5000er und 6000er Serie.

Hier geht's um alles, was mit den TAP Anwendungen für den PVR5x00/6000 zu tun hat.
DeRiEsS
Neuling
Neuling
Beiträge: 7
Registriert: Mo 3. Dez 2007, 11:14

Projekt

#1

Beitrag von DeRiEsS » Mo 3. Dez 2007, 12:06

Hallo zusammen

Ich bin Teil einer Projektgruppe die zur Zeit ihr Abschlussprojekt für ihren Techniker macht.

Als Abschlussprojekt haben wir uns eigentlich was ganz simples rausgesucht :)
wir sollen den Sendernamen des Senders der Aktuell läuft an der Com Schnittstelle eines Topfield Recivers in einem bestimmten Format ausgeben.
Die Ausgabe soll immer nach dem Umschalten und direkt beim Einschalten erfolgen.
Wir haben von unserer Schule einen Topfield 5000 PVR Masterpiece zur Verfügung gestellt bekommen.

Kann ja nicht so schwer sein hab ich mir gedacht :D :
Also haben wir uns der Sache angenommen ... dies ist jetzt schon eine ganz weile her und der Abgabetermin rückt immer näher ...

Unser Problem ist ganz einfach das der Topfield abstürtzt.
Sobald wir das Programm ausführen reagiert der Topfield nur noch auf den Ausschalter ...
Und an der Com Schnittstelle wird ein Fehlercode ausgegeben (Unexpected .... ).
Wenn es gewünscht wird kann ich gerne den kompletten Fehlercode posten den habe ich zur Zeit leider nicht zur Hand (da muss ich ihn gerade mal abstürzen lassen :) ).

Hier habe ich einen Auszug aus dem Programm.

Code: Alles auswählen


#include "tap.h"

#define ID_DISPLAY 0xB8023456   

TAP_ID( ID_DISPLAY );
TAP_PROGRAM_NAME("Kom-Test");
TAP_AUTHOR_NAME("Project One");
TAP_DESCRIPTION("Daten via Serieller Verbindung");
TAP_ETCINFO(__DATE__);

int ursender;


dword TAP_EventHandler( word event, dword param1, dword param2 )
{

    TYPE_TapChInfo ChInfo;
    int Typ, Nummer, checksumme, count, a;
    unsigned char sendtext[255];

//	TAP_Channel_GetCurrent( &Typ, &Nummer );
//	 TAP_Channel_GetInfo ( Typ, Nummer, &ChInfo);
//	  TAP_SPrint (sendtext,"%s                                        \0", ChInfo.chName);	
	  
sendtext[0] = 'R';
sendtext[1] = 'T';
sendtext[2] = 'L';
sendtext[3] = ' ';
sendtext[4] = 'T';
sendtext[5] = 'E';
sendtext[6] = 'L';
sendtext[7] = 'E';
sendtext[8] = 'V';
sendtext[9] = 'I';
sendtext[10] = 'S';
sendtext[11] = 'I';
sendtext[12] = 'O';
sendtext[13] = 'N';

for (a = 0; ( sendtext[a] != 0 ) && ( a < 14 ) ; a=a+1) {};// zählen wie viele Stellen der Sendername besitzt

	  checksumme = checksberechnen(sendtext, a); //Berechnung der Checksumme

	if( checksumme == urchecks ) //überprüfung ob umgeschaltet wurde
	{
	 return param1;
	}
	 else
	{
 
                    urchecks = checksumme;
               	     Sendetext (a, sendtext, checksumme); //übergabe der Variablen an die Funktion Sendetext

	}


  return param1;

}

int TAP_Main(void)
{
	return 1; //TSR Modus
}
Sobald ich jetzt die Komentarzeilen bei TAP_Channel_GetCurrent, TAP_Channel_GetInfo und bei TAP_SPrint weg mache und die Manuelle zuweisung auskommentiere ist es vorbei.
Mit dieser manuellen Zuweiung hat er mit immer einmal den Sender "RTL Television" ausgegeben.

Die beiden Funktionen für die Berechnung der Checksumme und die Ausgabe kann ich gerne auch mal posten aber ich denke das der Fehler an anderer Stelle zu suchen ist.

Die Ausgabe des Senders geschied mit Hilfe von TAP_Print in der Funktion Sendetext.

Ich bin hier im Forum schon eine ganze Weile an wühlen aber irgendwie komme ich nicht wirklich weiter.

Falls jemand eine Idee hat ... ich wäre für jede Hilfestellung dankbar.

bis dann Thomas

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 28953
Registriert: Fr 9. Dez 2005, 09:59
Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k
Wohnort: Wien

AW: Projekt

#2

Beitrag von FireBird » Mo 3. Dez 2007, 12:41

Servus Thomas,

willkommen im Board. Auf einen ersten schnellen Blick fällt mir nichts böses auf. Was Du prüfen kannst: alle Töpfe haben einen Bug beim Dateisystem. Wenn eine vom PC übertragene Datei ein Vielfaches von 512 Bytes hat, werden die letzten 512 Byte nicht in den Speicher geladen und ein betroffenes TAP stürzt in der Regel sofort nach dem Laden ab.

MfG. Alex

Benutzeravatar
Elle4u
TAP-Chirurg

<div title=Selbsternannter Allesknutscher>TAP-Chirurg</div>
Beiträge: 11971
Registriert: Fr 9. Dez 2005, 16:48
Receivertyp: SRP-2410 (2 TB)
Receiverfirmware: TF-BCPCE 1.11.00 (19.12.2013)
Wohnort: Osburg
Kontaktdaten:

AW: Projekt

#3

Beitrag von Elle4u » Mo 3. Dez 2007, 12:55

Also was mir nur auffällt sind ein paar umständliche Dinge :)

[quote=""DeRiEsS""]

Code: Alles auswählen

sendtext[0] = 'R';
sendtext[1] = 'T';
sendtext[2] = 'L';
sendtext[3] = ' ';
sendtext[4] = 'T';
sendtext[5] = 'E';
sendtext[6] = 'L';
sendtext[7] = 'E';
sendtext[8] = 'V';
sendtext[9] = 'I';
sendtext[10] = 'S';
sendtext[11] = 'I';
sendtext[12] = 'O';
sendtext[13] = 'N';
[/quote]

Kannst Du auch so schreiben:

Code: Alles auswählen

strcpy(sendtext, "RTL TELEVISION")

Und

[quote=""DeRiEsS""]

Code: Alles auswählen

for (a = 0; ( sendtext[a] != 0 ) && ( a < 14 ) ; a=a+1) {};// zählen wie viele Stellen der Sendername besitzt
[/quote]

kannst Du so schreiben:

Code: Alles auswählen

a = strlen(sendtext)

Wofür die Checksummen-Berechnung ist ist mir nicht klar, aber Du könntest ja auch einfach den aktuellen Typ + Number zwischenspeichern und immer mit dem Neuen vergleichen...


Hoffe, etwas geholfen zu haben :wink:
Gruß,
Elle4u

Benutzeravatar
Erdnussnase
TAP-Guru
TAP-Guru
Beiträge: 7067
Registriert: Fr 9. Dez 2005, 12:01

AW: Projekt

#4

Beitrag von Erdnussnase » Mo 3. Dez 2007, 16:13

Zwei Sachen:

- Entweder Du machst noch ein sendtext[14] = 0;
oder verwendest die strcpy Alternative. So siehst gefärlich aus.

Ebenso der Test in der For Schleife. Der ist so ok, aber SEHR gefährlich. Besser ist sich das so herum anzugewöhnen:
(a < 14) && (sendtext[a] != 0)

Sollte aber trotzdfem nicht freezen.
:type: ->.....
Kein Support oder Fragen zur Registrierung per PN !
http://www.iTiNa.de
?Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit,
aber bei dem Universum bin ich mir noch nicht ganz sicher.?
Albert Einstein

Benutzeravatar
ibbi
Moderierter Ignorator Bitteschöööön!
Moderierter Ignorator  <font color=#E9E9E9>Bitteschöööön!</font>
Beiträge: 7110
Registriert: Fr 9. Dez 2005, 12:49
Receivertyp: TF5000PVR • SRP-2401CI+ Eco
Receiverfirmware: Sep 2005 PHTF • Jan 2015

AW: Projekt

#5

Beitrag von ibbi » Di 4. Dez 2007, 15:23

Wie bekommst Du das TAP kompiliert? urchecks ist nicht deklariert (und übrigens uninitialisiert).

[quote=""DeRiEsS""]Die beiden Funktionen für die Berechnung der Checksumme und die Ausgabe kann ich gerne auch mal posten[/quote]

Das wäre hilfreich. (Genauer gesagt wäre es hilfreich, Du würdest genau die Sourcen posten, die kompiliert werden können und zum Fehler führen.)

[quote=""DeRiEsS""]aber ich denke das der Fehler an anderer Stelle zu suchen ist.[/quote]

Evtl. denkt der Fehler ganz anders darüber. :wink:
Power Restore 0.8 | PiP 1.2 | 1.1v | QuickTimer 1.0.3 (IB) | TF5000 Display 1.53 | dbPlay 1.2 | Auto Resume 1.30 | IdleHdd 1.0 | EPPG 2.0 | WWWW 0.1b
(Kanalarbeiter 0.9, RecRepair 0.4, ScanDisk 1.4, ScreenCapture with OSD 3.1)


Power Restore 0.8 | EasyTimer 1.0 | EPPG 2.0 | 1.1v
(telnetd 1.0, TMSRemote 4.6)

DeRiEsS
Neuling
Neuling
Beiträge: 7
Registriert: Mo 3. Dez 2007, 11:14

AW: Projekt

#6

Beitrag von DeRiEsS » Di 4. Dez 2007, 17:17

uff erst mal danke an alle die geantwortet haben!
Wie bekommst Du das TAP kompiliert? urchecks ist nicht deklariert (und übrigens uninitialisiert).
:rolleyes: ich hatte bevor ich es hier rein gestellt habe noch eine kleine Änderung gemacht und anscheind ist mir urchecks durch die lappen gegangen ...
statt ursender muss es urchecks heißen ...

hmmm wie kann man sein tap Trogramm denn so abändern das es nicht mehr abstürtzt bzw. sein Programm durch 512 teilbar ist ... das aktuelle Programm ist 10704 byte groß.
Wenn man es durch 512 teil kommt 20,9 raus ...
Ich hab heute schon mal ein wenig im forum gewühlt und da habe ich den Beitrag von Happy gefunden Klick
Ich habe mir das Programm runtergeladen und habe es nach den Kompilieren aufgerufen.
Aber die TAP Datei ist immer noch 10704 byte groß :thinker:
Ich ruf das Programm mit dem Befehl "Tapcheck.exe /f" im gleichen Verzeichniss wie die Tap Datei liegt auf.

Code: Alles auswählen

TAPCHECK Version 1.2 by Till Hepke
Projekt.tap   04.12.2007 14:43:34     10.704 bytes     OK
Das ist die Ausgabe die ich bekomme wenn ich das Tool wie oben beschrieben ausführe ...
Wofür die Checksummen-Berechnung ist ist mir nicht klar, aber Du könntest ja auch einfach den aktuellen Typ + Number zwischenspeichern und immer mit dem Neuen vergleichen...
Ist schwer zu erklären ... das hat mit dem String zu tun den ich ausgeben will bzw. mit dem Geräte was den String enpfangen soll ... Ich poste einfach mal was in der Anleitung steht

Code: Alles auswählen

Step #1 - Add the HEX value of every byte in the message that precedes the Checksum:
Example - 0xF0 + 0x00 + 0x67 + 0x7C + 0xF1 + 0x0F = 0x02D3

Step #2 - Count the number of bytes which precede the Checksum and convert that value from
DEC to HEX (byte count). Add the byte count in HEX to the previously calculated sum of
bytes:
Example - 0x02D3 + 6 (6 = Decimal value byte count) = 0x02D9

Step #3 - This value is then AND-ed with the HEX value 0x007F (7F is the highest BIN value
for 7 bits = 1111111). The Checksum itself and the End of Message Character are not
included in the calculation. Only the low 7 bits are used so overflow is discarded:
Example - 0x02D9 AND 0x007F = 0x59 = Checksum
Aber den code habe ich im C Builder von Borland vorgeschrieben der sollte Funktionieren
aber hier ist er für intersierte :)

Code: Alles auswählen

int checksberechnen(char * Sendername)
{

int x , y , Temp ,z;
int bin[13];

//------------------------------------------------------------------
//Umrechnung des Sendernamens in eine Dezimale Zahl
//------------------------------------------------------------------

Temp = 0;
y = 0;

for (x = 0; ( Sendername[x] != 0 ) && ( x < 14 ) ; x=x+1) {};

for(y=0; y-x ; y=y+1)
{
 Temp=Temp+(int)Sendername[y];
}

Temp = Temp + x;

//------------------------------------------------------------------
//Umrechnung der Dezimalen Zahl in eine binäre Zahl
//------------------------------------------------------------------

x = 0;
y = 4096;
z = 0;

while ( y > 1 )
{
 y = y / 2;

 if (Temp >= y)
 {
  Temp = Temp - y;
  bin[z] = 1;
  z=z+1;
 }
 else
 {
  bin[z] = 0;
  z=z+1;
 }

}

//------------------------------------------------------------------
//Umrechnung der ersten (von rechts) 7 Stellen der Binären Zahl
//------------------------------------------------------------------

z = 5;
Temp = 0;
y = 128;

while ( z < 12 )
{

 y = y/2;

  if (bin[z] == 1)
  {
   Temp = Temp + y;
  }

 z=z+1;
}


//------------------------------------------------------------------
//Übergabe des errechneten Wertes an die übergeordnete Funktion
//------------------------------------------------------------------

return Temp;

}
Wahrscheinlich schlagen jetzt wieder mehere Leute die Hände über dem Kopf zusammen aber hier ist die Ausgabe des Strings :)
void SendeHex (int anzahl, char * Sendername, int cheks)
{

int x = 0;

//------------------------------------------------------------
//Ausgabe verschiedener Hex Zahlen. Die Beschreibung der jew. Hex Zahl steht als komentar hinter dem Sendebefehl.
//------------------------------------------------------------

TAP_Print( "%c" , 0xF0 );//Start of Message
TAP_Print( "%c" , 0x23 );//Target Controller Id
TAP_Print( "%c" , 0x23 );//Target Zone Id
TAP_Print( "%c" , 0x23 );//Target keypad Id
TAP_Print( "%c" , 0x23 );//Source Controller Id
TAP_Print( "%c" , 0x23 );//Source Zone Id
TAP_Print( "%c" , 0x23 );//Source Keypad Id
TAP_Print( "%c" , 0x23 );//Message Type
TAP_Print( "%c" , 0x23 );//Target Path, Num Levels
TAP_Print( "%c" , 0x23 );//Target Path, Level 1
TAP_Print( "%c" , 0x23 );//Target Path, Level 2
TAP_Print( "%c" , 0x23 );//Source Path, Num Levels
TAP_Print( "%c" , 0x23 );//Packet Num Lo Byte
TAP_Print( "%c" , 0x23 );//Packet Num Hi Byte
TAP_Print( "%c" , 0x23 );//Num Packets Lo Byte
TAP_Print( "%c" , 0x23 );//Num Packets Hi Byte
TAP_Print( "%c" , 0x23 );//Num Data Bytes Lo Byte
TAP_Print( "%c" , 0x23 );//Num Data Bytes Hi Byte
TAP_Print( "%c" , 0x23 );//Data Byte 1 - alignment
TAP_Print( "%c" , 0x23 );//Data Byte 2 - Flash Time


//The alignment field defines how the message appears on the display. The following values are
//currently supported:
//00 Centered
//01 Left justified


//Flash Time
//Messages can be displayed perminantly or they can be flashed on the display for a brief time. The
//Flash Time field defines how long the string is displayed. The time is measured in 10ms increments
//with a value of 0 being constant display (will be overwritten by normal system activity).
//Low byte of "Flash" time in 10ms
//increments. 0 = constant (3 secs)


//------------------------------------------------------------
//Ausgabe des Sendernamens
//------------------------------------------------------------

TAP_Print( "%s" , Sendername);

//------------------------------------------------------------
//Ausgabe der Checksumme
//------------------------------------------------------------

// TAP_Print( "%i" , checks );

//------------------------------------------------------------
//Ausgabe des Stringendes
//------------------------------------------------------------

TAP_Print( "%c" , 0xF7 );

}
so jetzt habt ihr das ganze Programm :)
Seid nicht zu hard mit mir ... so lange programier ich auch noch nicht aber ich bin für jeden verbesserungsvorschlag dankbar.

ich hatte erste alle hex Zahlen in einer TAP_Print Funktion ausgeben aber durch die Abstürze hab ich das dann ein wenig auseinander gefriemelt ...

bis dann gruß Thomas

Benutzeravatar
Sigittarius-E
FIQMDTSSOOLUETSNAK
<span title=ForuminformationsquellemitdauertimeshiftschaltungoutingOberlehrerUndErfahrenerTratscherStatusNichtAussprechenKönner>FIQMDTSSOOLUETSNAK</span>
Beiträge: 8216
Registriert: Fr 9. Dez 2005, 18:49
Receivertyp: TF5kPVR/TF3kCIpro
Receiverfirmware: 13.9.'05 SHUFGmUx/19.4.'04
Wohnort: Österreich, NÖrdl.d.Donau

AW: Projekt

#7

Beitrag von Sigittarius-E » Di 4. Dez 2007, 17:21

[quote=""DeRiEsS""]hmmm wie kann man sein tap Trogramm denn so abändern das es nicht mehr abstürtzt bzw. sein Programm durch 512 teilbar ist ... das aktuelle Programm ist 10704 byte groß.
Wenn man es durch 512 teil kommt 20,9 raus ...
Ich hab heute schon mal ein wenig im forum gewühlt und da habe ich den Beitrag von Happy gefunden Klick
Ich habe mir das Programm runtergeladen und habe es nach den Kompilieren aufgerufen.
Aber die TAP Datei ist immer noch 10704 byte groß :thinker:
Ich ruf das Programm mit dem Befehl "Tapcheck.exe /f" im gleichen Verzeichniss wie die Tap Datei liegt auf. [/quote]

wenn es nicht eine durch 512 auf eine natürliche Zahr teilbare Grösse ist (d.h. kein Vielfaches von 512 bzw. beim dividieren durch 512 ein Rest bleibt) dann paßt die Grösse mit z.B. 10704 schon.

Happys Programm bessert nur aus wenn dein Programm z.B. 4096 gross wäre.
Grüsse
Sigittarius-E
S-VHS ist nicht S-Video. So schreibt man: Standard, Satellit, wäre. TABs sind was für die Dritten.

TF5000PVR
HD:SP2514N
CAM:irdeto CW v3.15 ORF
Lüfter:Noiseblocker USF S1+Poti.
Verb.:[/b]Silex SX2kU2
TV:Toshiba 42"
Auto Start-Reihenf.: GMTTimerBug WA2|QT|IB Prem|StopExit|WSSKiller|JagEPG|Matrix Screensaver|PiP|DisplayTAP|wwww|reccopy|
TSBProtector v0.9.0|CheckAndCreate_EPGTimer v1.1
Manuell: SimpleCharEditor v3.09b,SetCryptFlag v0.3,exie v0.3,EBM v0.01

Benutzeravatar
ibbi
Moderierter Ignorator Bitteschöööön!
Moderierter Ignorator  <font color=#E9E9E9>Bitteschöööön!</font>
Beiträge: 7110
Registriert: Fr 9. Dez 2005, 12:49
Receivertyp: TF5000PVR • SRP-2401CI+ Eco
Receiverfirmware: Sep 2005 PHTF • Jan 2015

AW: Projekt

#8

Beitrag von ibbi » Di 4. Dez 2007, 21:12

[quote=""DeRiEsS""]

Code: Alles auswählen

checksumme = checksberechnen(sendtext, a); //Berechnung der Checksumme

Code: Alles auswählen

Sendetext (a, sendtext, checksumme); //übergabe der Variablen an die Funktion Sendetext
[/quote]

[quote=""DeRiEsS""]

Code: Alles auswählen

int checksberechnen(char * Sendername)

Code: Alles auswählen

void SendeHex (int anzahl, char * Sendername, int cheks)
[/quote]

Offenbar möchtest Du uns nicht die Sourcen posten, die kompiliert werden können und zum Fehler führen.

Dann möchte ich Dir auch nicht helfen. :bye2:
Power Restore 0.8 | PiP 1.2 | 1.1v | QuickTimer 1.0.3 (IB) | TF5000 Display 1.53 | dbPlay 1.2 | Auto Resume 1.30 | IdleHdd 1.0 | EPPG 2.0 | WWWW 0.1b
(Kanalarbeiter 0.9, RecRepair 0.4, ScanDisk 1.4, ScreenCapture with OSD 3.1)


Power Restore 0.8 | EasyTimer 1.0 | EPPG 2.0 | 1.1v
(telnetd 1.0, TMSRemote 4.6)

mamel1984
Neuling
Neuling
Beiträge: 5
Registriert: Di 15. Mai 2007, 11:44

AW: Projekt

#9

Beitrag von mamel1984 » Mi 5. Dez 2007, 15:57

hallo ich gehöre auch zu der projektgruppe. wir haben momentan immer mehr zeitdruck und suchen jemanden der uns mit dem problem helfen kann. es wäre ganz nett wenn jemand mal das programm in seinen topfield spielen könnte und mal ausprobiert ob das ganze auch abschmiert. wir müssen das bis januar zum laufen bekommen und dann alles präsentieren. es ist ein projekt für die technikerausbildung und ziemlich wichtig. es wäre klasse wenn sich jemand finden würde der uns unterstützt das problem zu lösen. vielleicht liegt es auch an unserem topfield aber es ist andererseits auch unwahrscheinlich, weil andere programme ja laufen. ich hoffe jetzt einfach mal das euch noch was einfällt. vielen dank im vorraus.

Benutzeravatar
ibbi
Moderierter Ignorator Bitteschöööön!
Moderierter Ignorator  <font color=#E9E9E9>Bitteschöööön!</font>
Beiträge: 7110
Registriert: Fr 9. Dez 2005, 12:49
Receivertyp: TF5000PVR • SRP-2401CI+ Eco
Receiverfirmware: Sep 2005 PHTF • Jan 2015

AW: Projekt

#10

Beitrag von ibbi » Mi 5. Dez 2007, 16:00

Könnt Ihr auch lesen oder nur schreiben?
Power Restore 0.8 | PiP 1.2 | 1.1v | QuickTimer 1.0.3 (IB) | TF5000 Display 1.53 | dbPlay 1.2 | Auto Resume 1.30 | IdleHdd 1.0 | EPPG 2.0 | WWWW 0.1b
(Kanalarbeiter 0.9, RecRepair 0.4, ScanDisk 1.4, ScreenCapture with OSD 3.1)


Power Restore 0.8 | EasyTimer 1.0 | EPPG 2.0 | 1.1v
(telnetd 1.0, TMSRemote 4.6)

Benutzeravatar
macfan
Ex-iTiNa-Promoter
Ex-iTiNa-Promoter
Beiträge: 24972
Registriert: Fr 9. Dez 2005, 10:16
Receivertyp: 2 x TF 2401 CI+, 2100, 5200 C, VU+ Ultimo 4K
Receiverfirmware: SRP-Serie: die neueste, 5k: Jan 07 PTU, VU+ VTi 15.0
Wohnort: Dortmund

AW: Projekt

#11

Beitrag von macfan » Mi 5. Dez 2007, 16:05

:rotfl: :megalol:

@mamel1984:
Als Lesehilfe: Bitte einmal Beitrag #8 gründlich studieren!

Gruß, Horst

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 28953
Registriert: Fr 9. Dez 2005, 09:59
Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k
Wohnort: Wien

AW: Projekt

#12

Beitrag von FireBird » Mi 5. Dez 2007, 16:08

[quote=""ibbi""]Könnt Ihr auch lesen oder nur schreiben?[/quote]
Das ist die andere Gruppe.

Benutzeravatar
Twilight
Zauberküchencheflehrling mit extra Butter
Zauberküchencheflehrling mit extra Butter
Beiträge: 64907
Registriert: Fr 9. Dez 2005, 09:17
Receivertyp: 1 x SRP 2100(TMS) TFIR und .1 x SRP 2410 M
Wohnort: Wien Umgebung

AW: Projekt

#13

Beitrag von Twilight » Mi 5. Dez 2007, 16:32

welche firmware ist denn auf den mp ?

wird wahrscheinlich jetzt nicht der grund sein, aber sicher gut zu wissen das es keine uraltversion ist.

twilight

Benutzeravatar
ibbi
Moderierter Ignorator Bitteschöööön!
Moderierter Ignorator  <font color=#E9E9E9>Bitteschöööön!</font>
Beiträge: 7110
Registriert: Fr 9. Dez 2005, 12:49
Receivertyp: TF5000PVR • SRP-2401CI+ Eco
Receiverfirmware: Sep 2005 PHTF • Jan 2015

AW: Projekt

#14

Beitrag von ibbi » Do 6. Dez 2007, 10:14

[quote=""FireBird""]Das ist die andere Gruppe.[/quote]

Du meinst also, die eine Gruppe lernt programmieren und schreiben und die andere Gruppe lesen und zuhören. :thinker:

Das würde einiges erklären. :D :
Power Restore 0.8 | PiP 1.2 | 1.1v | QuickTimer 1.0.3 (IB) | TF5000 Display 1.53 | dbPlay 1.2 | Auto Resume 1.30 | IdleHdd 1.0 | EPPG 2.0 | WWWW 0.1b
(Kanalarbeiter 0.9, RecRepair 0.4, ScanDisk 1.4, ScreenCapture with OSD 3.1)


Power Restore 0.8 | EasyTimer 1.0 | EPPG 2.0 | 1.1v
(telnetd 1.0, TMSRemote 4.6)

DeRiEsS
Neuling
Neuling
Beiträge: 7
Registriert: Mo 3. Dez 2007, 11:14

AW: Projekt

#15

Beitrag von DeRiEsS » Do 6. Dez 2007, 10:23

Offenbar möchtest Du uns nicht die Sourcen posten, die kompiliert werden können und zum Fehler führen.
Dann möchte ich Dir auch nicht helfen.
okay ....
Ich hatte den ersten Post auf der Arbeit geschrieben und den zweiten von zu Hause aus.
Da hatte ich 2 unterschiedliche Versionen ... das war bestimmt keine Absicht ... :o SORRY
Hier habe ich jetzt nochmal den kompletten Code von A bis Z ...
Das Programm habe ich gestern Abend so kompilieren können ...

Code: Alles auswählen

#include "tap.h"

#define ID_DISPLAY 0xB8023456   

TAP_ID( ID_DISPLAY );
TAP_PROGRAM_NAME("Kom-Test RNet");
TAP_AUTHOR_NAME("Project One");
TAP_DESCRIPTION("Daten via Serieller Verbindung");
TAP_ETCINFO(__DATE__);


int urchecks;

void SendeHex (int anzahl, char * Sendername, int check)
{

//------------------------------------------------------------
//Ausgabe verschiedener Hex Zahlen. Die Beschreibung der jew. Hex Zahl steht als komentar hinter dem Sendebefehl.
//------------------------------------------------------------

	TAP_Print( "%c" , 0xF0 );//Start of Message
	TAP_Print( "%c" , 0x23 );//Target Controller Id
	TAP_Print( "%c" , 0x23 );//Target Zone Id
	TAP_Print( "%c" , 0x23 );//Target keypad Id
	TAP_Print( "%c" , 0x23 );//Source Controller Id
	TAP_Print( "%c" , 0x23 );//Source Zone Id
	TAP_Print( "%c" , 0x23 );//Source Keypad Id
	TAP_Print( "%c" , 0x23 );//Message Type
	TAP_Print( "%c" , 0x23 );//Target Path, Num Levels
	TAP_Print( "%c" , 0x23 );//Target Path, Level 1
	TAP_Print( "%c" , 0x23 );//Target Path, Level 2
	TAP_Print( "%c" , 0x23 );//Source Path, Num Levels
	TAP_Print( "%c" , 0x23 );//Packet Num Lo Byte
	TAP_Print( "%c" , 0x23 );//Packet Num Hi Byte
	TAP_Print( "%c" , 0x23 );//Num Packets Lo Byte
	TAP_Print( "%c" , 0x23 );//Num Packets Hi Byte
	TAP_Print( "%c" , 0x23 );//Num Data Bytes Lo Byte
	TAP_Print( "%c" , 0x23 );//Num Data Bytes Hi Byte
	TAP_Print( "%c" , 0x23 );//Data Byte 1 - alignment
	TAP_Print( "%c" , 0x23 );//Data Byte 2 - Flash Time

//------------------------------------------------------------
//Ausgabe des Sendernamens
//------------------------------------------------------------

	TAP_Print( "%s" , Sendername );

//------------------------------------------------------------
//Ausgabe der Checksumme
//------------------------------------------------------------

	TAP_Print( "%i" , check );

//------------------------------------------------------------
//Ausgabe des Stringendes
//------------------------------------------------------------

	TAP_Print( "%c" , 0xF7 );

}

int checksberechnen(char * Sendername)
{

int x , y , Temp ,z;
int bin[13];

//------------------------------------------------------------------
//Umrechnung des Sendernamens in eine Dezimale Zahl
//------------------------------------------------------------------

Temp = 0;
y = 0;

for (x = 0; ( Sendername[x] != 0 ) && ( x < 14 ) ; x=x+1) {};

for(y=0; y-x ; y=y+1)
{
 Temp=Temp+(int)Sendername[y];
}

Temp = Temp + x;

//------------------------------------------------------------------
//Umrechnung der Dezimalen Zahl in eine binäre Zahl
//------------------------------------------------------------------

x = 0;
y = 4096;
z = 0;

while ( y > 1 )
{
 y = y / 2;

 if (Temp >= y)
 {
  Temp = Temp - y;
  bin[z] = 1;
  z=z+1;
 }
 else
 {
  bin[z] = 0;
  z=z+1;
 }

}

//------------------------------------------------------------------
//Umrechnung der ersten (von rechts) 7 Stellen der Binären Zahl
//------------------------------------------------------------------

z = 5;
Temp = 0;
y = 128;

while ( z < 12 )
{

 y = y/2;

  if (bin[z] == 1)
  {
   Temp = Temp + y;
  }

 z=z+1;
}


//------------------------------------------------------------------
//Übergabe des errechneten Wertes an die übergeordnete Funktion
//------------------------------------------------------------------

return Temp;

}

dword TAP_EventHandler( word event, dword param1, dword param2 )
{

    TYPE_TapChInfo ChInfo;
    int Typ, Nummer, checksumme, a;
    unsigned char sendtext[255];

	TAP_Channel_GetCurrent( &Typ, &Nummer );
	 TAP_Channel_GetInfo ( Typ, Nummer, &ChInfo);
	  TAP_SPrint (sendtext,"%s                                        \0", ChInfo.chName);	

        for (a = 0; ( sendtext[a] != 0 ) && ( a < 14 ) ; a=a+1) {};// zählen wie viele Stellen der Sendername besitzt	  	  

	checksumme = checksberechnen(sendtext);

	if( checksumme == urchecks )
	{
	 return param1;
	}
	 else
	{
	  urchecks = checksumme;  
	  SendeHex (a, sendtext, checksumme);
	}

  return param1;

}

int TAP_Main(void)
{
	return 1;
}
Hier ist im übrigen das was der Topfield ausgibt wenn er abschmiert.

Code: Alles auswählen

$sp=803ba160
$at=821c2b10    $v0=821c022c    $v1=80180be0    $a0=80180b30
$a1=80188f30    $a2=80188fcc    $a3=80189058    $t0=80188c74
$t1=80188d08    $t2=80188d9c    $t3=801808dc    $t4=80188e28
$t5=80180838    $t6=801890c8    $t7=80181070    $t8=821c0000
$t9=0000279a    $s0=80180dc0    $s1=80180ea4    $s2=80180fac
$s3=00000000    $s4=00001293    $s5=80180724    $s6=80180524
$s7=821c279a    $s8=821c1950    $ra=821c1978    $t0=00002bc2
$t1=00000000    $gp=821c279a    $k1=821c1a00


<<< Unexpected Exception >>>
CAUSE   = 00000414
  EPC = 821c1a00
 *EPC   = ac25ffff
   SR   = 10000403
badVAddr = 821c2b0f
 task = 0
_runCount=1
lastTask(0) = 0
memory monitor
cmd number = 10
>
Also es wäre schön wenn irgend jemand irgend ein fehler finden könnte der zum absturz führen könnte.
danke schon mal im voraus.
welche firmware ist denn auf den mp ?
Die Firmware die aktuell auf dem Topfield läuft ist die Version 1416.
Ich denke das ist keine Uralt Version obwohl es schon die 1417 bzw. die 1516 gibt.
:rotfl: :megalol:

@mamel1984:
Als Lesehilfe: Bitte einmal Beitrag #8 gründlich studieren!
Danke Horst ... ich finds nicht lustig ...

bis dann

Benutzeravatar
macfan
Ex-iTiNa-Promoter
Ex-iTiNa-Promoter
Beiträge: 24972
Registriert: Fr 9. Dez 2005, 10:16
Receivertyp: 2 x TF 2401 CI+, 2100, 5200 C, VU+ Ultimo 4K
Receiverfirmware: SRP-Serie: die neueste, 5k: Jan 07 PTU, VU+ VTi 15.0
Wohnort: Dortmund

AW: Projekt

#16

Beitrag von macfan » Do 6. Dez 2007, 10:34

[quote=""DeRiEsS""]Danke Horst ... ich finds nicht lustig ...[/quote]
Ich fand ibbis Bemerkung schon lustig. Das traf es auf den Punkt, weil ihr immer weiter fragtet ohne zu liefern. Wenn dann eine solche Spitze kommt, müsst ihr auch damit leben ;) .

Aber nun ist ja endlich der ganze Quelltext da, und ich bin überzeugt, dass unsere Spezialisten wie ibbi und Firebird etwas finden werden. Toi toi!

Gruß, Horst

billygeen
Gesperrt
<b><font color=red>Gesperrt</font></b>
Beiträge: 60
Registriert: Mi 12. Sep 2007, 21:04

AW: Projekt

#17

Beitrag von billygeen » Do 6. Dez 2007, 10:34

1416 und 1417 ist soweit ich weis die bootloader version nicht die der Firmware!
Receiver: TF 5000 PVR Masterpiece
AutoStart: 3PG, dbplay, automove, fastskip
TAPs: HDFW
TV: Pioneer PDP 5000 EX
A/V Receiver: Onkyo TX-SR 805
Teufel Concept S

http://www.haus-centa.de

Benutzeravatar
schasskistn
Nicht-Guru (A)
Nicht-Guru (A)
Beiträge: 281
Registriert: Fr 9. Dez 2005, 11:23
Receivertyp: SRP2401CI+ als Hauptkiste
TF5500PVR, supporte noch einen 5000MP
Receiverfirmware: HD: 10.9.2013
SD: September 05
Wohnort: Austria, ADW - nähe Salzburg
Kontaktdaten:

AW: Projekt

#18

Beitrag von schasskistn » Do 6. Dez 2007, 11:09

Ohne jetzt ganz sicher zu sein, würde ich eure Kommunikation mal ins TAP_main nehmen. Der Eventhandler wird immer aufgerufen sobald es nix anderes zu tun gibt, vielleicht läuft er in ein Stackproblem rein?

Immer wild unterwegs in RFID/NFC/Mobile Payment für Festivals, Stadien und Clubs. Es gibt kaum was besseres als Party für die Arbeit :D
http://www.enemyinside.com
>> thrash >> death >> metal >> austria >>


für das Wohnzimmer: SRP2401CI+, 1TB, SmartEPG, TMSRemote, RemoteSwitch, SmartDecrypter und natürlich TapToDate
5500 im Keller; 5000er als Ersatzteilspender

Benutzeravatar
Erlefranz
BoardSprenger
BoardSprenger
Beiträge: 8803
Registriert: Fr 9. Dez 2005, 09:35
Receivertyp: 5500PVR
Receiverfirmware: 5500 = 03.Jan 2007
Wohnort: Weschnitztal / Odenwald in Südhessen

AW: Projekt

#19

Beitrag von Erlefranz » Do 6. Dez 2007, 11:23

[quote=""DeRiEsS""]okay ....

Die Firmware die aktuell auf dem Topfield läuft ist die Version 1416.
Ich denke das ist keine Uralt Version obwohl es schon die 1417 bzw. die 1516 gibt.

bis dann[/quote]

Das ist der Boot Loader und hat mit der Firmware nichts zu tun....

Diese ist hier zu finden...
Gruß

Erlefranz "Wenn man bedenkt, wie viele Fehler die Computer machen, dann kann man sie als die teuersten Trottel der Welt bezeichnen."
:topf: PVR 5500; HDD80; FW 03.Januar 2007;
TAPs: noch keine im Einsatz
Mitglied seit: 02.06.2005
TV: Samsung GQ65Q60R;
Rundumkrach: Yamaha RX- V350

Topf-Wiki

Benutzeravatar
ibbi
Moderierter Ignorator Bitteschöööön!
Moderierter Ignorator  <font color=#E9E9E9>Bitteschöööön!</font>
Beiträge: 7110
Registriert: Fr 9. Dez 2005, 12:49
Receivertyp: TF5000PVR • SRP-2401CI+ Eco
Receiverfirmware: Sep 2005 PHTF • Jan 2015

AW: Projekt

#20

Beitrag von ibbi » Do 6. Dez 2007, 11:34

Außer, dass es mich so ziemlich in jeder Zeile zu einem :patsch: reizt und weder Prüfungen noch Initialisierungen vorhanden sind, entdecke ich nichts, was zu einem Absturz führen könnte. (Mit Ausnahme der ungeprüften Verwendung von ChInfo.chName.) Eventuell hat der Compiler (welchen verwendet Ihr übrigens) Probleme mit

Code: Alles auswählen

TAP_Print( "%i" , check );
oder dem \0 in

Code: Alles auswählen

TAP_SPrint (sendtext,"%s                                        \0", ChInfo.chName);
[quote=""schasskistn""]Ohne jetzt ganz sicher zu sein, würde ich eure Kommunikation mal ins TAP_main nehmen.[/quote]

Das geht natürlich nicht, weil sie ja den Senderwechsel mitbekommen möchten.

[quote=""schasskistn""]Der Eventhandler wird immer aufgerufen sobald es nix anderes zu tun gibt, vielleicht läuft er in ein Stackproblem rein?[/quote]

Es wäre natürlich keine schlechte Idee, den EventHandler nur im EVT_IDLE aufzurufen. Evtl. macht tatsächlich eine der API-Funktionen Probleme.
Power Restore 0.8 | PiP 1.2 | 1.1v | QuickTimer 1.0.3 (IB) | TF5000 Display 1.53 | dbPlay 1.2 | Auto Resume 1.30 | IdleHdd 1.0 | EPPG 2.0 | WWWW 0.1b
(Kanalarbeiter 0.9, RecRepair 0.4, ScanDisk 1.4, ScreenCapture with OSD 3.1)


Power Restore 0.8 | EasyTimer 1.0 | EPPG 2.0 | 1.1v
(telnetd 1.0, TMSRemote 4.6)

Antworten

Zurück zu „TF 5x00/6000 PVR TAP“