Script niet helemaal werkend

Voor vragen over Playlist Automation Language.
Plaats reactie
Frank van der Klugt

Script niet helemaal werkend

Ongelezen bericht door Frank van der Klugt »

Hoi Allemaal,

Ik heb onderstaand scriptje lopen maar ik moet dit echt "starten" op het hele uur, want om bijvoorbeeld 15 minuten over het heel op "compile en run" drukken gaat het weer naar de eerste tijd melding, dus die van XX.07.00.

Ik wil dit scriptje elk uur laten draaien daarnaast gebruik ik dan voor andere dingen de event scheduler.

Code: Selecteer alles

PAL.Loop := True;
PAL.WaitForTime(T['XX:07:00']); 
Cat['Pop Rock'].QueueTop(smLRPA, EnforceRules);

PAL.Loop := True;
PAL.WaitForTime(T['XX:07:30']); 
Cat['Jingles'].QueueTop(smLRPA, EnforceRules);

PAL.Loop := True;
PAL.WaitForTime(T['XX:21:00']); 
Cat['Jingles'].QueueTop(smLRPA, EnforceRules);

PAL.Loop := True;
PAL.WaitForTime(T['XX:34:00']); 
Cat['Pop Rock'].QueueTop(smLRPA, EnforceRules);

PAL.Loop := True;
PAL.WaitForTime(T['XX:44:00']); 
Cat['Jingles'].QueueTop(smLRPA, EnforceRules);
Cat['Classic Rock Live'].QueueTop(smLRPA, EnforceRules);

PAL.Loop := True;
PAL.WaitForTime(T['XX:50:00']); 
Cat['Classic Rock'].QueueTop(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueTop(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueTop(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueTop(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueTop(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueTop(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueTop(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueTop(smLRPA, EnforceRules);
Ik hoop dat jullie mij kunnen helpen, alvast bedankt!
Gebruikersavatar
Wout
Beheerder
Berichten: 3505
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Script niet helemaal werkend

Ongelezen bericht door Wout »

Ik snap het niet helemaal.

Om 7 over het uur wil je Pop Rock gevolgd door een jingle?

Dan 1 kwartier later weer een jingle, na 13 minuten Pop Rock, 10 minuten later Jingle gevolgd door Classic Rock Live etc..

Maar wat draait er dan tussen tijd?

Of heb je dan al een format gemaakt waar de Jingles + CAT ertussen, in tijd, moeten worden geplaatst dan?
Afbeelding
Frank van der Klugt

Re: Script niet helemaal werkend

Ongelezen bericht door Frank van der Klugt »

Hoi Wout,

Klopt inderdaad, bij de laatste "vulling" om XX.50.00 moet eigenlijk queue Bottom staan, dan was het waarschijnlijk wel duidelijk. Ik gebruik dit gedeelte van het script om het uur te vullen.

Op deze manier van het script komen Pop Rock, Live Rock en Jingles een beetje op de voor geprogrammeerde tijd voorbij, want als ik alles op Bottom doe, dan is het maar afwachten wanneer het voorbij komt, want sommige platen duren 2 minuten en andere soms wel 8.

Dus vandaar deze vraag.

Alvast bedankt he!
Frank van der Klugt

Re: Script niet helemaal werkend

Ongelezen bericht door Frank van der Klugt »

Hoi Wout,

Ik ben vanochtend een beetje aan het rommelen gegaan met het script. Dit is het geworden en het werkt.

Code: Selecteer alles

PAL.Loop:=True;

PAL.LockExeCution;

while (Now >= T['00:00:00']) and (Now <= T['23:59:59']) do
begin

PAL.WaitForTime(T['XX:07:00']);
Cat['Pop Rock'].QueueTop(smRandom, EnforceRules);

PAL.WaitForTime(T['XX:07:10']);
Queue.Addfile('C:\Radio55Eng.mp3',ipTop);

PAL.WaitForTime(T['XX:21:00']);
Queue.Addfile('C:\Radio55Ned.mp3',ipTop);

PAL.WaitForTime(T['XX:34:00']);
Cat['Pop Rock'].QueueTop(smRandom, EnforceRules);

PAL.WaitForTime(T['XX:44:00']);
Cat['Classic Rock Live'].QueueTop(smLRPA, EnforceRules);
Queue.Addfile('C:\Radio55Eng.mp3',ipTop);

PAL.WaitForTime(T['XX:50:00']);
Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);


PAL.LockExecution;
end;

begin
PAL.UnLockExecution;
PAL.Loop:=False;
PAL.LockExecution;
end;
PAL.UnLockExecution;
Alleen als ik een kleine aanpassing maak in het uur, en compile en run het script opnieuw, dan gaat het naar de eerst uitvoerende taak, dus die van 7 minuten over, terwijl het bijvoorbeeld al 23 minuten over is, dan zou het toch moeten gaan naar bijvoorbeeld de taak van XX.34:00, dat als eerst komende taak moet worden uitgevoerd?

Net zoals met het tijdsein-script wat ik gevonden heb hier op het forum, dat de uitvoerende taak-lijn naar de tijd gaat die komt.

Ik hoop dat je het begrijpt, en ik hoor het wel. Ben in ieder geval al weer een stuk geholpen.
Gebruikersavatar
Wout
Beheerder
Berichten: 3505
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Script niet helemaal werkend

Ongelezen bericht door Wout »

Frank van der Klugt schreef: Alleen als ik een kleine aanpassing maak in het uur, en compile en run het script opnieuw, dan gaat het naar de eerst uitvoerende taak, dus die van 7 minuten over, terwijl het bijvoorbeeld al 23 minuten over is, dan zou het toch moeten gaan naar bijvoorbeeld de taak van XX.34:00, dat als eerst komende taak moet worden uitgevoerd?
Ik snap wat je bedoelt.

Maar als je op Compile & opnieuw runt, gaat het van boven regel voor regel naar beneden.
Dan komt het als eerst XX:07 tegen en wacht netjes voordat het is verstreken en gaat naar de volgende regel.

Je kan dat inderdaad, zoals de tijd-sein, oplossen.
Maar aan de andere kant, als je script eenmaal draait en je verder geen aanpassingen hoeft te doen zijn het alleen maar extra regels in het script.

Maar ik zag in je script een PAL.Loop:=False; staan.
Dat wil zeggen, dat hij geen loop (herhaling) maakt in je script. (dus het wordt eenmalig afgespeeld)
Voor de rest is je script dik in orde. :thumbs:

Code: Selecteer alles

    PAL.Loop:=True;

    while (Now >= T['00:00:00']) and (Now <= T['23:59:59']) do
    begin

PAL.LockExecution;

    PAL.WaitForTime(T['XX:07:00']);
    Cat['Pop Rock'].QueueTop(smRandom, EnforceRules);

    PAL.WaitForTime(T['XX:07:10']);
    Queue.Addfile('C:\Radio55Eng.mp3',ipTop);

    PAL.WaitForTime(T['XX:21:00']);
    Queue.Addfile('C:\Radio55Ned.mp3',ipTop);

    PAL.WaitForTime(T['XX:34:00']);
    Cat['Pop Rock'].QueueTop(smRandom, EnforceRules);

    PAL.WaitForTime(T['XX:44:00']);
    Cat['Classic Rock Live'].QueueTop(smLRPA, EnforceRules);
    Queue.Addfile('C:\Radio55Eng.mp3',ipTop);

    PAL.WaitForTime(T['XX:50:00']);
    Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
    Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
    Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
    Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
    Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
    Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
    Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);
    Cat['Classic Rock'].QueueBottom(smLRPA, EnforceRules);

PAL.UnLockExecution;

    end; 
Afbeelding
Frank van der Klugt

Re: Script niet helemaal werkend

Ongelezen bericht door Frank van der Klugt »

Bedankt Wout,

Ik ga dat er eens uithalen en kijken wat het doet.

THNX!
Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht