Touchscreen: Create interface for scheduling timelines, etc.

Hi there,

I have basic ETC Mosaic touchscreen experience such as using buttons to instantly trigger timelines or set various parameters. Now I want to use the touchscreen to allow the client to schedule a set of event specific timelines, e.g. there are a couple of event timelines I trigger from a lua script that randomly picks from 3 timelines, e.g. timeline "birthday 1", timeline "birthday 2", and timeline "birthday 3".

How can create an interface to allow the client to pick a future start and end date which then triggers a specific lua script or any event for that matter?

  • Slider won't work (percent or 8 bit only).
  • Thought I could probably use 3 keypads on the interface page, one for day, month, and year but it seems quite clumsy.
  • Maybe creating several buttons for "year" (e.g. 10 buttons starting with 2026), "month" (12 buttons), and "day" (31 buttons) for each event and reading out their states from triggers. A bit clumsy as well...

Are there any specific manuals or templates for this kind of interactive scheduling interface?

Thank you for your help in advance!

Erwin

Parents
  • You can use sliders. I have a module that sets the internal time based on slider positions - here's an example of converting the slider inputs into something usable

    instance:action("Get Time Slider").handler = function(properties, variables)
        local watch = properties["Watch Slider"]
        
        if watch == "hour" then
           local slider = variables[1].integer
           set_hour = math.floor(slider/11.0869565217)
           controller.set_control_caption(hslider, "Hour: "..set_hour)
        elseif watch == "min" then
           local slider = variables[1].integer
           set_min = math.floor(slider/4.32203389831)
           controller.set_control_caption(mslider, "Min: "..set_min)
        elseif watch == "month" then
           local slider = variables[1].integer
           set_month = math.floor(slider/23.1818181818 + 1)
           controller.set_control_caption(mnslider, "Month: "..set_month)
        elseif watch == "day" then
           local slider = variables[1].integer
           set_day = math.floor(slider/8.5 + 1)
           controller.set_control_caption(dslider, "Day: "..set_day)
        elseif watch == "year" then
           local slider = variables[1].integer
           set_year = math.floor(slider/5.1 + 2020)
           controller.set_control_caption(yslider, "Year: "..set_year)
           end
    end

  • Hi,

    Interesting!

    But...

    I am not exactly an expert low-level coder. The module probably needs to get modified because I don't won't to set the internal time but schedule future triggers for timelines or similar. I unfortunately wouldn't know how to do that...

    Erwin

  • If you look up some examples of writetocard which I think is still in the reference section of the help manual. You could use the sliders to set the value, store it, and then write the variable to memory and back it up using the writetocard / readfromcard scripts. 

Reply Children
No Data
Related