Change Page Automatically Every 30 Seconds

Hello

I want to switch a page every 30 seconds while the project is running in runtime.
So let it automatically switch between pages.
Is something like this possible ?

Thank you.

Vision or Perspective ?

Should the page switch be synchronized between all open clients (ie: show everyone the same page at the same time) ?

Yes, All open client show everyone the same page at the same time. I want to do it in vision

  • make an expression tag that toggles every 30 seconds. Using the gateway time ensures the same toggle across all connections. Specifying [System]Gateway/CurrentDateTime lets it work regardless if you use a client tag or gateway tag.
    floor(getSecond({[System]Gateway/CurrentDateTime})/30)

  • Create a tag that stores the pointer value of the screen you wish to display.

  • Use a client tag change event script, triggering on the expression tag you just made:

windowPaths = [
			   'path/to/screen 1',
			   'path/to/screen 2',
			   'path/to/screen 3',
			   'path/to/screen 4',
			   'path/to/screen 5'
			  ]

pointerTag = ['[default]path/to/pointer/tag']
pointer = system.tag.readblocking(pointerTag)[0].value + 1

if pointer >= len(windowPaths):
	pointer = 0

system.nav.swapTo(windowPaths[pointer])
system.tag.writeBlocking(pointerTag, [pointer])

3 Likes

Everything is very understandable, thank you .

I just didn't quite understand how to open the page.

"system.nav.swapTo(windowPaths(pointer))"

1 Like

It looks like a typo. It should probably be system.nav.swapTo(windowPaths[pointer])

windowPaths is a list of paths, and pointer is the integer that selects a specific path from the list.

1 Like

Why not just

pointer = system.tag.readblocking(pointerTag)[0].value + 1
pointer = pointer % len(windowPaths) #edited from len - 1

:stuck_out_tongue_winking_eye:

Because I started with BASIC back in the 1980s. :wink:

4 Likes

Not only does it look like a typo, it, in fact, is one. Thanks for the catch. Fixed.

1 Like

1982, with ZX Spectrum and Comodore64...

2 Likes

A Comodore 128 and a stack of Commodore magazines for me. I believe it was followed by some flavor of 286
[gorillas.bas]

1 Like

Is this a dinosaurs gathering of some kind ?
You (old) people were coding before I was even born !

1 Like

I prefer to think of us as 'seasoned citizens'.

2 Likes

Heh. I suspect my son (also a EE, but not interested in coding) is older than many of you (32) .

As for me:

1978, HeathKit H-8, 8080 machine language via its octal keypad and readout. Moved up to integer BASIC (no strings) on a dumb terminal soon after.

1 Like

Pft, I'm way older than that! I'm 35 or 36; I'm so old that I can't remember :smile:

2 Likes

Nibbles

1 Like

86 ?
Also, always wanted to ask... any relation to this other australian Minchin dude ?

I think I'm related, some distant cousin or something. I'm sure my dad or uncle know. We have a book of Minchins somewhere haha

I think the -1 in the mod is incorrect and there shouldn't be any modifier. Once your at index 3 in the list you'll go to index 0 instead of the last window in the list. pointer = pointer % len(windows) works. Just wanted to clarify in case someone sees it and tries to use it.

Oops, yes, you're right. I had that originally but "incorrected" it later :confused: I'll fix my reply, cheers