0

Best Practice for Dual-Language Exhibit with UDP-Controlled Slide Navigation

I'm building a two-touchscreen interactive exhibit using BrightAuthor:Connected and could use guidance on the cleanest design pattern. Here's what I'm trying to achieve:

Goals:

  • Two languages: Visitors can toggle between English and Spanish via a touch button.

  • Each slide exists in both languages: So there’s an eng/slide1 and a esp/slide1, etc. There are about 10 slides, but the logic of which is displayed when is complex and Arduino controlled. 

  • UDP commands control state: An Arduino sends simple slide commands like "1", "2", or "home" over UDP. (I got this working!)

  • Avoid a spider web of transitions: I want to define navigation logic once, not draw every possible cross-link between slides.

Questions:

  1. What’s the cleanest way to implement language switching without duplicating all UDP event handlers in each state?

  2. Is it possible to use a single UDP event handler that sets a variable like NAV_STATE, and then use that variable to control transitions?

  3. Should I use a dedicated logic zone with event handlers that feed variables to a main media zone?

  4. Can language toggle buttons simply switch a LANG variable, and the active state display adjusts accordingly?

I’ve looked into Event Handler states and variable-based transitions, but I’m unsure how to structure the project to minimize maintenance overhead and maximize clarity. They are confusing to me.

Would love any advice, patterns, or starter projects folks have used that are similar!

Thanks!

3 comments

  • 0
    Avatar
    Exhibit Developer

     

    Here is a simplified idea of the goal. UDP selects slide, regardless of current slide.
    Touch events switch language without affecting state except language of text. 

  • 0
    Avatar
    Bright Scripters

    The BA Connected On Demand state is your friend.

    It makes things simple and manageable.

    If applicable, combine with XML feed and you'll never have to change the presentation.

  • 0
    Avatar
    Exhibit Developer

    Thanks for the response!
    The On Demand state is very useful!
    I am unsure if this is best practice, but I struggled to catch new UDP commands while displaying an image from a previous command.
    I got best results with a zone message from a control zone with a event handler that sends the zone message to reenter the current state in order to display the new content. Is there a better way to refresh on UDP receive?
    Also, I will be adding more complexity soon, including some slide pairs where the set(Super state?) is entered via UDP but users toggle between the two slides within the pair via touch events. Would this preclude the On Demand state? Would I have to do many super states?
    Each user has a screen, and they are only a few feet away from each other.
    Another issue is when they have the same language selected and the Arduino triggers the same audio clip via UDP, there is an echo due to being out of sync.
    When they have different languages the delay cannot be noticed.
    What is the best way to align them to play within a few millisecond of each other?
    Here is my file 
    https://drive.google.com/file/d/1AJ6UUlfaLGkMJlSjiCiGPDDFhYpGeUTt/view?usp=sharing
    When they have different languages the delay cannot be noticed.
    What is the best way to align them to play within a few millisecond of each other?

Please sign in to leave a comment.