Endlich läuft mein FreeSatEPG TAP.
Es setzt die Daten vom FreeSat EPG Transponder in TGDs um.
Jetzt geht es noch an ein paar Feinheiten, für die ich Unterstützung benötige:
Wo finde ich Source Code für die Scanner Kurzaufnahme, ich benötige 20 Sekunden?
(Aufnahmen unter einer Minute werden ja i.d.R. gelöscht.)
PS:
Ist schon genial, was die Briten da haben. Ich benötige ~3-4 Minuten für die Umrechnung mit der Topf-CPU und habe dann den kompletten Platform EPG im Datenstrom. Der Recorder Scan für ein ähnliches Volumen für den 'deutschen' Astra dauert bei mir ~15-20 Minuten. Es sind allerdings auch nur 8 Tage verfügbar und die Informationen sind etwas knapper gehalten, als bei einem RadioTimes Feed oder im Vergleich zu einem guten deutschen EPG.
TAP Programmierung: Kurzaufnahme
-
- Topfversteher
- Beiträge: 373
- Registriert: Mi 14. Dez 2005, 17:12
- Receivertyp: VDR, 5000MP
- Receiverfirmware: 5.13.62 20070808
- Wohnort: Rhein-Main
TAP Programmierung: Kurzaufnahme
ACL 3.16, 3PG 1.29, FastSkip
Panasonic TH-37PV71, Denon AVR-2307, Denon DVD-1730, Logitech Harmony 885, yaVDR 0.3
Panasonic TH-37PV71, Denon AVR-2307, Denon DVD-1730, Logitech Harmony 885, yaVDR 0.3
- omue
- Topfversteher
- Beiträge: 436
- Registriert: Sa 10. Dez 2005, 18:44
- Receivertyp: SRP 2401 CI+ ECO / SRP 2401 CI+
AW: TAP Programmierung: Kurzaufnahme
Hallo cms
ich finde es super was Du tun willst. Genau auf das TAP habe ich gewartet.
Bisher nehme ich immer die RADIOTIMES Daten und lese diese manuell ein.
Eine Lösung für Dein Problem hab ich leider nicht.
Ich stelle mir allerdings die Frage warum nicht einfach eine Minute aufnehmen ?
Man könnte ja einfach 10 Minuten vor den täglichen Timer von iTiNa oder 3PG die Aufnahme automatisch starten, dann die Daten in TGD umrechnen und in den Ordner schmeissen.
Danach findet 3PG oder iTiNa ja die Daten beim Scan und alles ist automatisch im Kasten ;-)
Olaf
ich finde es super was Du tun willst. Genau auf das TAP habe ich gewartet.
Bisher nehme ich immer die RADIOTIMES Daten und lese diese manuell ein.
Eine Lösung für Dein Problem hab ich leider nicht.
Ich stelle mir allerdings die Frage warum nicht einfach eine Minute aufnehmen ?
Man könnte ja einfach 10 Minuten vor den täglichen Timer von iTiNa oder 3PG die Aufnahme automatisch starten, dann die Daten in TGD umrechnen und in den Ordner schmeissen.
Danach findet 3PG oder iTiNa ja die Daten beim Scan und alles ist automatisch im Kasten ;-)
Olaf
SRP 2401 CI+ ECO / SRP 2401 CI+
68,28,23,19,16,16KA,13,10,9,7,5,3 OST
24,5,4,1 WEST 16 OST KA Band
68,28,23,19,16,16KA,13,10,9,7,5,3 OST
24,5,4,1 WEST 16 OST KA Band
-
- Topfversteher
- Beiträge: 373
- Registriert: Mi 14. Dez 2005, 17:12
- Receivertyp: VDR, 5000MP
- Receiverfirmware: 5.13.62 20070808
- Wohnort: Rhein-Main
AW: TAP Programmierung: Kurzaufnahme
Ich würde das gerne noch einmal pushen.
Sind die 3 Spezialisten, die das können, noch im Urlaub?
Hinzu kommt ein weiteres Problemchen.
Ich bin bei der 'Automation':
Wenn das Inputfile existiert, Aktion, manueller Start.
Sonst (automatischer Start in einem Wecktimer)
Sind wir auf dem interessanten Kanal und ist es die richtige (Nacht-)Zeit:
-> Starte die Aufnahme, beende nach 61 Sekunden und Aktion.
Das Problem: Sobald ich die Aufnahme abschalte, wird (zu) kurz danach auch der Topf abgeschaltet, obwohl
- es gar kein Aufnahmetimer war
- der Timer länger dauert
Code:
Sind die 3 Spezialisten, die das können, noch im Urlaub?
Hinzu kommt ein weiteres Problemchen.
Ich bin bei der 'Automation':
Wenn das Inputfile existiert, Aktion, manueller Start.
Sonst (automatischer Start in einem Wecktimer)
Sind wir auf dem interessanten Kanal und ist es die richtige (Nacht-)Zeit:
-> Starte die Aufnahme, beende nach 61 Sekunden und Aktion.
Das Problem: Sobald ich die Aufnahme abschalte, wird (zu) kurz danach auch der Topf abgeschaltet, obwohl
- es gar kein Aufnahmetimer war
- der Timer länger dauert
Code:
Code: Alles auswählen
// Check out automation
#ifdef WIN32
#include <tap_emulations.h>
#else
#include <libFireBird.h>
#endif
#include <tap.h>
#define AutoFF 0x8000d044
TAP_ID( AutoFF );
TAP_PROGRAM_NAME("3FFA");
TAP_AUTHOR_NAME("CMSA");
TAP_DESCRIPTION("Automation Tester");
TAP_ETCINFO(__DATE__);
#define EPG_RECORDING "FreeSatEPG.rec"
dword TAP_EventHandler(word event, dword param1, dword param2)
{
return 1;
}
int
cmp0(char *s1, char *s2)
{
int i;
if (s1 == NULL || s2 == NULL) return 0;
while (*s1 != '\0' && *s2 != '\0') {
if (*s1 != *s2) return 0;
s1++;
s2++;
}
// Now at least one has ended
if (*s1 != *s2) return 0;
return 1;
}
dword
sec_time()
{
word mjd;
byte h, m, s;
dword ret;
TAP_GetTime(&mjd, &h, &m, &s);
ret = mjd * 24*60*60;
ret += h*60*60 + m*60 + s;
return ret;
}
byte
check_recording(dword *secs)
{
byte i;
TYPE_RecInfo recInfo;
for (i=0; i<2; i++) {
TAP_Hdd_GetRecInfo(i, &recInfo);
if (recInfo.recType == RECTYPE_Normal)
if (cmp0(EPG_RECORDING, recInfo.fileName)) {
*secs = recInfo.recordedSec;
return i;
}
}
return 0xff;
}
int
TAP_Main(void)
{
byte slot;
dword start_time, secs, message_time = 0;
TYPE_TapChInfo chInfo;
int chType, chNum;
#ifndef WIN32
InitTAPAPIFix();
HDD_ChangeDir("/DataFiles");
#else
TAP_HDD_ChangeDir("..");
TAP_HDD_ChangeDir("..");
TAP_HDD_ChangeDir("DataFiles");
#endif
if (TAP_Hdd_Exist(EPG_RECORDING)) {
TAP_Print("File %s exists\n", EPG_RECORDING);
// Are we currently recording it?
slot = check_recording(&secs);
if (slot == 255) {
// Action (Manual start)
TAP_Print("File %s exists and we are not recording: Action\n", EPG_RECORDING);
return 0;
}
} else { // Will start a recording conditionally: Right chann + right time and no other recording active
TAP_Channel_GetCurrent(&chType, &chNum);
TAP_Channel_GetInfo(chType, chNum, &chInfo);
// Add query TimeSlot correct, not recording at all
if (cmp0(chInfo.chName, "FreeSatEPG")) {
TAP_Print("Start a recording, selected >%s<\n",
chInfo.chName);
TAP_Hdd_StartRecord();
// This takes time, so sleep 50 secs
start_time = sec_time();
while (start_time+50 > sec_time()) {
TAP_SystemProc();
if (sec_time() > message_time) {
message_time = sec_time();
TAP_Print("Sleep %d\n", message_time);
}
}
} else {
TAP_Print("Do nothing, selected >%s<\n",
chInfo.chName);
}
}
slot = check_recording(&secs);
if (slot != 0xff) {
do { // Yes we are recording the interesting channel
slot = check_recording(&secs); // Refresh recording time
if (sec_time() > message_time) {
message_time = sec_time();
TAP_Print("Waiting record len %d\n", secs);
}
TAP_SystemProc();
} while (slot != 0xff && secs < 61);
if (slot != 0xff) { // Exited from while because enough time
TAP_Hdd_StopRecord(slot);
TAP_Print("Recording long enough: Action\n");
return 0;
} else {
TAP_Print("Recording seen, but stopped before getting long\n");
return 0;
}
}
return 0;
}
ACL 3.16, 3PG 1.29, FastSkip
Panasonic TH-37PV71, Denon AVR-2307, Denon DVD-1730, Logitech Harmony 885, yaVDR 0.3
Panasonic TH-37PV71, Denon AVR-2307, Denon DVD-1730, Logitech Harmony 885, yaVDR 0.3
- FireBird
- Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
- Beiträge: 28757
- Registriert: Fr 9. Dez 2005, 09:59
- Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k - Wohnort: Wien
AW: TAP Programmierung: Kurzaufnahme
[quote="cms"]Wo finde ich Source Code für die Scanner Kurzaufnahme, ich benötige 20 Sekunden? (Aufnahmen unter einer Minute werden ja i.d.R. gelöscht.)[/quote]
Nicht nur in der Regel, sondern immer. Entweder wartest Du die eine Minute, oder Du hangelst Dich durch das Dateisystem und liest die Cluster schon während der Aufnahme aus.
[quote="cms"]Das Problem: Sobald ich die Aufnahme abschalte, wird (zu) kurz danach auch der Topf abgeschaltet, obwohl
- es gar kein Aufnahmetimer war
- der Timer länger dauert[/quote]
Dann sende einen Dummy-Key-Event und kümmere Dich später um die Abschaltung.
2. Möglichkeit: starte am Anfang eine 2. Aufnahme, die Du am Ende stoppst und schnell löschst. Damit verzögerst Du die Abschaltung.
-
- Topfversteher
- Beiträge: 373
- Registriert: Mi 14. Dez 2005, 17:12
- Receivertyp: VDR, 5000MP
- Receiverfirmware: 5.13.62 20070808
- Wohnort: Rhein-Main
AW: TAP Programmierung: Kurzaufnahme
Danke erst einmal für die Information.
Das ist mir zu kompliziert, ich habe von der Rad-Neuerfinderei schon jetzt genug.
Damit lasse ich es bei einer Aufnahmeminute. Man könnte zwar etwas Zeit sparen, das lohnt den Aufwand aber wohl nicht.
Genau so habe ich es jetzt gemacht. Ich schicke einen RKEY_Next (oder gibt es etwas unverfänglicheres?).
Integriert ist es jetzt schon und steht im Auto Start. Ich werde es einmal ein paar Nächte testen, dann habe ich meine 1.0 ...
[quote="FireBird"]... oder Du hangelst Dich durch das Dateisystem und liest die Cluster schon während der Aufnahme aus.
[/quote]
Das ist mir zu kompliziert, ich habe von der Rad-Neuerfinderei schon jetzt genug.
Damit lasse ich es bei einer Aufnahmeminute. Man könnte zwar etwas Zeit sparen, das lohnt den Aufwand aber wohl nicht.
[quote="FireBird"]
Dann sende einen Dummy-Key-Event und kümmere Dich später um die Abschaltung.
[/quote]
Genau so habe ich es jetzt gemacht. Ich schicke einen RKEY_Next (oder gibt es etwas unverfänglicheres?).
Integriert ist es jetzt schon und steht im Auto Start. Ich werde es einmal ein paar Nächte testen, dann habe ich meine 1.0 ...
ACL 3.16, 3PG 1.29, FastSkip
Panasonic TH-37PV71, Denon AVR-2307, Denon DVD-1730, Logitech Harmony 885, yaVDR 0.3
Panasonic TH-37PV71, Denon AVR-2307, Denon DVD-1730, Logitech Harmony 885, yaVDR 0.3