Infoseite // API für Hauppauge WinTV Kanäle



Frage von Nathan Schmid:


Hallo ng

Ich möchte die gespeicherten Kanäle in WinTV einer Hauppauge PVR 250
auslesen. Diese sind aber in der Registry binär abgespeichert und ich
weiss nicht wie ich es parsen muss.
Hat jemand von euch eine Idee? Alle hexadezimalen Zeichen in Chars
zumzuwandeln hat mir nur den Sendernamen und die Beschreibung, nicht
aber die Sender Nummer gebracht. Zudem haben die Umlaute nicht gestimmt.

Hier ein Paar Datensätze:

01,01,00,01,01,01,00,01,02,01,04,01,01,01,01,01,29,01,01,01,04,01,00,16,54,e9,6c,e9,76,69,73,69,6f,6e,20,46,72,61,6e,e7,61,69,73,65,20,33,04,54,46,20,33,ff,01,01,01,00,01,01,01,01

01,01,00,01,01,01,00,01,02,01,04,01,01,01,01,01,29,01,01,01,05,01,00,15,53,63,68,77,65,69,7a,65,72,20,46,65,72,6e,73,65,68,65,6e,20,31,03,53,46,31,ff,01,02,01,00,01,02,01,01

01,01,00,01,01,01,00,01,02,01,04,01,01,01,01,01,29,01,01,01,06,01,00,1a,52,61,64,69,6f,20,54,65,6c,65,76,69,73,69,6f,6e,20,4c,75,78,65,6d,62,75,72,67,03,52,54,4c,ff,01,03,01,00,01,03,01,01

Liebe Grüsse
Nathan

PS: Wenn mir jemand sagen kann, wie es prinzipiell aufgebaut ist, bin
ich schon sehr dankbar. Niemand muss mir einen Parser schreiben :-)

--
Wegem SPAM ist meine Emailadresse mit ROT13 verschlüsselt.
Email: anguna.fpuzvq@tzk.arg
#!perl
$ ='anguna.fpuzvq@tzk.arg'; tr/a-zA-Z/n-za-mN-ZA-M/;print;


Space


Antwort von Nathan Schmid:

Hallo ng

Ich möchte die gespeicherten Kanäle in WinTV einer Hauppauge PVR 250
auslesen. Diese sind aber in der Registry binär abgespeichert und ich
weiss nicht wie ich es parsen muss.
Hat jemand von euch eine Idee? Alle hexadezimalen Zeichen in Chars
zumzuwandeln hat mir nur den Sendernamen und die Beschreibung, nicht
aber die Sender Nummer gebracht. Zudem haben die Umlaute nicht gestimmt.

Hier ein Paar Datensätze:

01,01,00,01,01,01,00,01,02,01,04,01,01,01,01,01,29,01,01,01,04,01,00,16,54,e9,6c,e9,76,69,73,69,6f,6e,20,46,72,61,6e,e7,61,69,73,65,20,33,04,54,46,20,33,ff,01,01,01,00,01,01,01,01

01,01,00,01,01,01,00,01,02,01,04,01,01,01,01,01,29,01,01,01,05,01,00,15,53,63,68,77,65,69,7a,65,72,20,46,65,72,6e,73,65,68,65,6e,20,31,03,53,46,31,ff,01,02,01,00,01,02,01,01

01,01,00,01,01,01,00,01,02,01,04,01,01,01,01,01,29,01,01,01,06,01,00,1a,52,61,64,69,6f,20,54,65,6c,65,76,69,73,69,6f,6e,20,4c,75,78,65,6d,62,75,72,67,03,52,54,4c,ff,01,03,01,00,01,03,01,01

Liebe Grüsse
Nathan

PS: Wenn mir jemand sagen kann, wie es prinzipiell aufgebaut ist, bin
ich schon sehr dankbar. Niemand muss mir einen Parser schreiben :-)

--
Wegem SPAM ist meine Emailadresse mit ROT13 verschlüsselt.
Email: anguna.fpuzvq@tzk.arg
#!perl
$ ='anguna.fpuzvq@tzk.arg'; tr/a-zA-Z/n-za-mN-ZA-M/;print;


Space


Antwort von Heiko Rost:

Nathan Schmid schrieb:

>Ich möchte die gespeicherten Kanäle in WinTV einer Hauppauge PVR 250
>auslesen. Diese sind aber in der Registry binär abgespeichert und ich
>weiss nicht wie ich es parsen muss.

Im Zweifelsfall wissen das nur die Entwickler beu Hauppauge.

>Hat jemand von euch eine Idee? Alle hexadezimalen Zeichen in Chars
>zumzuwandeln hat mir nur den Sendernamen und die Beschreibung, nicht
>aber die Sender Nummer gebracht.

Die Sendernummern stehen dort auch nicht, da Du einen Sender in
verschiedenen Kanal-Suites an verschiedenen Plätzen abspeichern
kannst. So wie es aussieht, ist die Sendernummer in den Schlüsseln
unter HKLMhauppaugechannelssuites an Position 0x0b
gespeichert.

>Zudem haben die Umlaute nicht gestimmt.

Falsche Codepage benutzt? So einfach wie zu DOS-Zeiten mit einer
ASCII-Tabelle ist es nicht.

Gruß Heiko


Space


Antwort von Nathan Schmid:

Heiko Rost schrieb:
> Nathan Schmid schrieb:
>
>
>>Ich möchte die gespeicherten Kanäle in WinTV einer Hauppauge PVR 250
>>auslesen. Diese sind aber in der Registry binär abgespeichert und ich
>>weiss nicht wie ich es parsen muss.
>
>
> Im Zweifelsfall wissen das nur die Entwickler beu Hauppauge.

Nicht mit mir

>>Zudem haben die Umlaute nicht gestimmt.
>
>
> Falsche Codepage benutzt? So einfach wie zu DOS-Zeiten mit einer
> ASCII-Tabelle ist es nicht.

Doch war es :-) Ich hatte sonst irgendwie einen Fehler.

Ich habe die Daten nun so gelesen:
- Alles vor Zeichen 25 wegschneiden.
- Beschreibung lesen bis 1 Zeichen vor einem Zeichen kleiner als 10
(;hex).
- Kanalname lesen bis zum Zeichen 255

Kleiner keinesfalls effizienter Perl Code:

$hex =~ s/,//g;
my $msg = pack(;'H*',$hex);
my $long = '';
my $short = '';
my @chars = split //,$msg;
my $switch = 0;
for(;my $i$; $i <= $#chars; $i ) {
if (;ord(;$chars[$i]) <= 10) {
$switch = 1;
chop $short;
next;
}
if (;!$switch) {
$long .= $chars[$i];
} else {
$short .= $chars[$i];
}
last if (;ord(;$chars[$i]) == 255);
}

Die Kanalnummer lässt sich aus dem Namen des Registrywertes
herausfiltern in dem man alles bis auf die letzte Zahl wegschneidet.
Diese Kanalnummern werden für die Programmierung benötigt.

Gruss
Nathan
--
Wegem SPAM ist meine Emailadresse mit ROT13 verschlüsselt.
Email: anguna.fpuzvq@tzk.arg
#!perl
$ ='anguna.fpuzvq@tzk.arg'; tr/a-zA-Z/n-za-mN-ZA-M/;print;


Space


Antwort von Heiko Rost:

Nathan Schmid schrieb:

>> Falsche Codepage benutzt? So einfach wie zu DOS-Zeiten mit einer
>> ASCII-Tabelle ist es nicht.
>
>Doch war es :-) Ich hatte sonst irgendwie einen Fehler.

seltsam, wenn ich vom Perlskript Télévision Française 3 im
Konsolenfenster ausgeben lasse, steht da "TÚlÚvision Franþaise 3"

>Ich habe die Daten nun so gelesen:
> - Alles vor Zeichen 25 wegschneiden.
> - Beschreibung lesen bis 1 Zeichen vor einem Zeichen kleiner als 10
> (;hex).
> - Kanalname lesen bis zum Zeichen 255

So geht es auch. Sauberer wäre, das Längenbyte vor Namen und
Beschreibung auszulesen und nur genau diese Anzahl von Zeichen zu
übernehmen.

>Kleiner keinesfalls effizienter Perl Code:
>...

Alternative:

use strict;
my $hex = "01,01,00,01,01,01,00,01,02,01,04,01,01,01,01,01,29,01,01,01,05,01,00,15,53,63,68,77,65,69,7a,65,72,20,46,65,72,6e,73,65,68,65,6e,20,31,03,53,46,31,ff,01,02,01,00,01,02,01,01";
$hex =~ s/,//g;
my $msg = pack(;'H*',$hex);
my $lbeschr = ord(;substr(;$msg,23,1));
my $beschr = substr(;$msg,24,$lbeschr);
my $lname = ord(;substr(;$msg,(;my $pname=(;23 $lbeschr 1)),1));
my $name = substr(;$msg,$pname 1,$lname);
print "Name: <$name> Beschreibung: <$beschr> ";

>Die Kanalnummer lässt sich aus dem Namen des Registrywertes
>herausfiltern in dem man alles bis auf die letzte Zahl wegschneidet.

Da habe ich den Begriff Kanalnummer fehlinterpretiert. Ich dachte Du
meinst das, was in der Konfiguration als Stationsnummer bezeichnet
wird.

Gruß Heiko


Space



Antworten zu ähnlichen Fragen //


[Hauppauge WinTV GO] Aufnahmebitrate einstellen
Erfahrungen mit der Hauppauge WinTV PVR (nicht 250/350)
Einstellungen VTPlus für Hauppauge WinTV PCI-FM
TCP/IP-Einstellung für Hauppauge WinTV Nova
HAUPPAUGE WINTV PVR 250 und ATI 9000 ALLINWONDER AGP funktionieren zusammen
Hauppauge WinTV-PVR 350 bremst mein Internet aus
WINTV Hauppauge problem
Hauppauge WinTV Nova-S Plus und SuSE Linux 10.0?
Hauppauge WinTV PVR 150 produziert Stoerstreifen
Fossile Hauppauge WinTV PCI - was kann man noch damit anfangen?
Hauppauge WinTV Nova-T-USB2 Empfangsproblem
Hauppauge WinTV HVR 1300
Blackmagic DaVinci Resolve 18.6.4 Update - RAW SDK 3.6 und erweiterte Scripting API
Frage an die Hauppauge WinTV PVR 250- Benutzer
Alternative zu Hauppauge WinTV / Anzeigefehler
Hauppauge WinTV USB
Hauppauge WinTV Nova-S PCI Sendersuche Absturz
Probleme mit WinTV Nova-S (Hauppauge)
Hauppauge WinTV 90002 NOVA PCI DVB-T unter Linux
Hauppauge WinTV-PVR- Software
Hauppauge WinTV Nova-S & Matrox G550: Win XP SP2 friert ein
Hauppauge WinTV mit Radio - Kein Bild




slashCAM nutzt Cookies zur Optimierung des Angebots, auch Cookies Dritter. Die Speicherung von Cookies kann in den Browsereinstellungen unterbunden werden. Mehr Informationen erhalten Sie in unserer Datenschutzerklärung. Mehr Infos Verstanden!
RSS Suche YouTube Facebook Twitter slashCAM-Slash