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

  • 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

Related