Uur detect

Voor vragen over Playlist Automation Language.
Virus

Uur detect

Ongelezen bericht door Virus »

Hoi hoi

Ik heb een simpel mischien wel dom vraagje.
Ik ben bezig met een PAL scriptje wat elk uur af moet gaan, en als het geen uur is andere dingen doen.
op zich werkt het 2e wel,

Maar het probleem is nu dat hij het uur niet detecteerd.
Mischien dat ik hier een foutje in maak

Maar ik dacht dat dit zou werken met de XX

Code: Selecteer alles

while (Now >= T['XX:59:15']) and (Now <= T['XX:59:25']) do
begin
PAL.UnLockExecution;
PAL.WaitForTime(T['XX:59:45']);
blabla
Zit iemand iets hierin wat ik verkeerd doe?
drOhimself

Re: Uur detect

Ongelezen bericht door drOhimself »

Niet dom hoor, alleen iets wat je makkelijk over het hoofd ziet :

PAL.Loop:=True;

Zet die regel boven aan in je scripts als er 'continu' gekeken moet worden.
Programma loopt dan in een 'loop' (=loep)

Als dit het hele script is, dan zit er nog een fout in.

Er staat in :
PAL.UnLockExecution;

Dat kan alleen maar werken als er ook een :
PAL.LockExecution;
regel in staat.
(Die moet er dan zelfs ook nog BOVEN komen)
Virus

Re: Uur detect

Ongelezen bericht door Virus »

Dat klopt, er staat nog een stukje boven waaronder de loop.
Hij voert het script ook netjes uit maar slaat de detectie over,
hij ziet het uur dus niet
dit heeft te maken met de XX maar ik dacht dat het zo kon
Virus

Re: Uur detect

Ongelezen bericht door Virus »

dit is trouwens het hele script, wat goed werkt, Alleen het uur gedeelte niet

Code: Selecteer alles

PAL.Loop:=True;
PAL.LockExecution;
var QueueTime : Integer = (60*60*30);




while (Now >= T['XX:59:15']) and (Now <= T['XX:59:25']) do
begin
PAL.UnLockExecution;
PAL.WaitForTime(T['XX:59:45']);
Queue.AddFile('C:\Muziek\JING\jukebox 4.mp3',ipTop);
ActivePlayer.FadeTonext;
Queue.Clear;
//Queue.AddFile('C:\Muziek\JING\jukebox 4.mp3',ipBottom);
Queue.AddFile('C:\Muziek\Nieuws\De-Jukebox.nl - Nieuws.mp3',ipBottom);
Queue.AddFile('C:\Muziek\JING\uurwissel.mp3',ipBottom);
  Cat['SR13'].QueueBottom(smLRP, NoRules);
Queue.AddFile('C:\Muziek\JING\juke box 2.mp3',ipBottom);
PAL.LockExecution;
end;

While Queue.Duration < QueueTime Do
begin
PAL.UnLockExecution;

Cat['ENG'].QueueBottom(smLRP, EnforceRules);
Cat['ENG'].QueueBottom(smLRP, EnforceRules);

PAL.LockExecution;
end;
PAL.UnLockExecution;


drOhimself

Re: Uur detect

Ongelezen bericht door drOhimself »

Ik vond nog een oud script....

Code: Selecteer alles

	var RestTijd : Integer ;
	var Now_minutes, tijd, uur : String ;
	var D : TDataSet ;
	var plus_uur : DateTime ;
	var filename : String;
	const LOCATION = 'F:\Uurjingles\';
	uur := FormatDateTime('hh', Now) ;
	var path : String = '';
	var time,hour,minute,second,millisecond : Integer;
	
	PAL.Loop := True ;


	While (Now >= T[uur+':59:48']) and (Now <= T[uur+':59:55']) do
		// Begin dit script 5 a 10 seconden voor het HELE uur
		BEGIN
			//PAL.LockExecution;
			Queue.Clear; 
			Queue.AddFile('F:\\Reclame\Sandeland FM jingle - Reclame aanduiding.mp3',ipBottom);
			Cat['Advertisements (All)'].QueueBottom(smRandom, NoRules);
			path := LOCATION + IntToStr(uur+1) + '.mp3';
			Queue.AddFile(path, ipBottom);
			Queue.AddFile('F:\Novum nieuws\nieuws.mp3',ipBottom); 
			filename := FormatDateTime('dd-mm-hh',Now)+'.m3u';
			Writeln(filename);
			Queue.AddList('C:\Program Files\StationPlaylist\Playlist\'+filename, ipBottom);
			//PAL.UnLockExecution;
			PAL.WaitForTime(T['xx:59:59']);
			ActivePlayer.FadeTonext ;
		END;

Virus

Re: Uur detect

Ongelezen bericht door Virus »

Ik ga hem uitproberen, Dankjewel voor de snelle service :)
Virus

Re: Uur detect

Ongelezen bericht door Virus »

Alleen werkt het nog niet :(
Hij slaat weer het uur over

dit gedeelte over genomen

Code: Selecteer alles

 var time,hour,minute,second,millisecond : Integer;
While (Now >= T[uur+':59:48']) and (Now <= T[uur+':59:55']) do
drOhimself

Re: Uur detect

Ongelezen bericht door drOhimself »

Je zal toch ook even moeten kijken naar je gebruikte variabelen.
Ik zie dat je 'uur' gebruikt.
Benoem dan vooraf die variabele.
Gebruikersavatar
Wout
Beheerder
Berichten: 3522
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Uur detect

Ongelezen bericht door Wout »

In een WHILE of IF LOOP kan je geen XX:59:00 gebruiken.
De XX moet als getallen worden ingevuld, de uur+ doet dat idd.
Zoals drO al zegt, dan moet je wel de uur+ declareren/verklaren.
Afbeelding
Virus

Re: Uur detect

Ongelezen bericht door Virus »

Geen idee hoe het kan,
ik zag het idd en dacht dat klopt niet.

maar dit staat er nu (niet werkend)

Code: Selecteer alles

PAL.Loop:=True;
PAL.LockExecution;
var QueueTime : Integer = (60*60*30);
var Now_minutes, tijd, uur : String ;

While (Now >= T[uur+':59:48']) and (Now <= T[uur+':59:55']) do
      // Begin dit script 5 a 10 seconden voor het HELE uur
      BEGIN

//while (Now >= T['XX:59:15']) and (Now <= T['XX:59:25']) do
//begin
PAL.UnLockExecution;
PAL.WaitForTime(T['xx:59:45']);
Queue.AddFile('C:\Muziek\JING\jukebox 4.mp3',ipTop);
ActivePlayer.FadeTonext;
Queue.Clear;
//Queue.AddFile('C:\Muziek\JING\jukebox 4.mp3',ipBottom);
Queue.AddFile('C:\Muziek\Nieuws\De-Jukebox.nl - Nieuws.mp3',ipBottom);
Queue.AddFile('C:\Muziek\JING\uurwissel.mp3',ipBottom);
  Cat['SR13'].QueueBottom(smLRP, NoRules);
Queue.AddFile('C:\Muziek\JING\juke box 2.mp3',ipBottom);
PAL.LockExecution;
end;

While Queue.Duration < QueueTime Do
begin
PAL.UnLockExecution;

Cat['ENG'].QueueBottom(smLRP, EnforceRules);
Cat['ENG'].QueueBottom(smLRP, EnforceRules);

PAL.LockExecution;
end;
PAL.UnLockExecution;
Geen errors de 2 platen voegt hij ook toe, maar op het uur doet hij niets
drOhimself

Re: Uur detect

Ongelezen bericht door drOhimself »

Maar dat is toch ook logisch....
Kijk nog eens goed naar de volgorde van je tijden......
Virus

Re: Uur detect

Ongelezen bericht door Virus »

ik heb niet meer gelet op het waitfor handig lol
ik zal die even aanpassen kijken wat hij zo gaat doen
Virus

Re: Uur detect

Ongelezen bericht door Virus »

ook deze doet het niet.
ik had hem staan op

Code: Selecteer alles

PAL.WaitForTime(T['xx:59:58']);
maar moet deze ook met uur+ ? of kan het in deze regel wel met xx?
drOhimself

Re: Uur detect

Ongelezen bericht door drOhimself »

De regel

Code: Selecteer alles

    PAL.WaitForTime(T['xx:59:58']);
is hier goed.
Alleen in combinatie met While gaat het niet goed.

Wil je nog een keer je volledige PAL plaatsen ?
Dan kijk ik even of het hier bij mij loopt (of niet)
Virus

Re: Uur detect

Ongelezen bericht door Virus »

Ja hoor,
Ben blij dat er mensen willen helpen :)

Code: Selecteer alles

PAL.Loop:=True;
PAL.LockExecution;
var QueueTime : Integer = (60*60*30);
var Now_minutes, tijd, uur : String ;

While (Now >= T[uur+':59:48']) and (Now <= T[uur+':59:55']) do
      // Begin dit script 5 a 10 seconden voor het HELE uur
      BEGIN
PAL.UnLockExecution;
PAL.WaitForTime(T['xx:59:58']);
Queue.AddFile('C:\Muziek\JING\jukebox 4.mp3',ipTop);
ActivePlayer.FadeTonext;
Queue.Clear;
Queue.AddFile('C:\Muziek\Nieuws\De-Jukebox.nl - Nieuws.mp3',ipBottom);
Queue.AddFile('C:\Muziek\JING\uurwissel.mp3',ipBottom);
  Cat['SR13'].QueueBottom(smLRP, NoRules);
Queue.AddFile('C:\Muziek\JING\juke box 2.mp3',ipBottom);
PAL.LockExecution;
end;

While Queue.Duration < QueueTime Do
begin
PAL.UnLockExecution;

Cat['ENG'].QueueBottom(smLRP, EnforceRules);
Cat['ENG'].QueueBottom(smLRP, EnforceRules);

PAL.LockExecution;
end;
PAL.UnLockExecution;



Gebruikersavatar
Wout
Beheerder
Berichten: 3522
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Uur detect

Ongelezen bericht door Wout »

Je bent onderstaand vergeten.

Code: Selecteer alles

uur := FormatDateTime('hh', Now) ;
Afbeelding
Virus

Re: Uur detect

Ongelezen bericht door Virus »

En deze plak ik er gewoon onder?

dus onder var now_minutes, tijd etc etc
Gebruikersavatar
Wout
Beheerder
Berichten: 3522
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Uur detect

Ongelezen bericht door Wout »

Code: Selecteer alles

PAL.Loop := True ;

    // het is miliseconden * aantal minuten, alleen minuten veranderen dus '2' 
    var QueueTime : Integer = (60000 * 2) ;
    var Now_minutes, tijd, uur : String ;
    uur := FormatDateTime('hh', Now) ;

    While (Now >= T[uur+':59:48']) and (Now <= T[uur+':59:55']) do
    begin
        PAL.WaitForTime(T['xx:59:58']) ;
        
        Queue.AddFile('C:\Muziek\JING\jukebox 4.mp3',ipTop) ;
        ActivePlayer.FadeTonext ; 
        Queue.Clear ;
        Queue.AddFile('C:\Muziek\Nieuws\De-Jukebox.nl - Nieuws.mp3',ipBottom) ;
        Queue.AddFile('C:\Muziek\JING\uurwissel.mp3',ipBottom) ;
        Cat['SR13'].QueueBottom(smLRP, NoRules) ;
        Queue.AddFile('C:\Muziek\JING\juke box 2.mp3',ipBottom) ; 
    end ;

    While Queue.Duration < QueueTime Do
    begin
        Cat['ENG'].QueueBottom(smLRP, EnforceRules) ;
    end ;
 
Afbeelding
Virus

Re: Uur detect

Ongelezen bericht door Virus »

ik heb hem aangepast,
nu maar hopen :)
drOhimself

Re: Uur detect

Ongelezen bericht door drOhimself »

Sorry, ik vergeet een heeeeeeeel belangrijke regel erbij te zetten.
Het 'betere' kopieer/plak werk was dit...

Code: Selecteer alles

uur := FormatDateTime('hh', Now) ;
Nog even hier getest....werkt weer super !

Dit is resultaat :

Code: Selecteer alles

var QueueTime : Integer = (60*60*30);
var Now_minutes, tijd, uur : String ;
uur := FormatDateTime('hh', Now) ;

PAL.Loop:=True;

While (Now >= T[uur+':59:48']) and (Now <= T[uur+':59:55']) do
// 	Begin dit script 5 a 10 seconden voor het HELE uur
	BEGIN

PAL.WaitForTime(T['xx:59:58']);
Queue.AddFile('C:\jingle\goedemorgen.mp3',ipTop);
ActivePlayer.FadeTonext;
Queue.Clear;
Queue.AddFile('C:\jingle\goedemiddag.mp3',ipBottom);
Queue.AddFile('C:\jingle\goedeavond.mp3',ipBottom);
Cat['DUITS'].QueueBottom(smLRP, NoRules);
Queue.AddFile('C:\jingle\goedeavond.mp3',ipBottom);
//PAL.LockExecution;
end;

While Queue.Duration < QueueTime Do
begin
//PAL.UnLockExecution;

Cat['SPAANS'].QueueBottom(smLRP, EnforceRules);
Cat['ITALIAANS'].QueueBottom(smLRP, EnforceRules);

//PAL.LockExecution;
end;
//PAL.UnLockExecution;
Tijd voor koffie !
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht