Page Flow management - UIApp application

Discuss issues and ideas you have to configuring displays with PowerVision
JZanni
Posts: 29
Joined: Tue Oct 12, 2010 3:09 pm

Page Flow management - UIApp application

Post by JZanni » Tue Nov 02, 2010 3:24 pm

I did download the tutorial and more specifically looked at the Page Flow lesson. However the tutorial is based on version 2.0 and version 2.1 seems to have some drastic changes in the matter. Here are some of my questions:
1) What is the difference between UIAPP and Screen applications:
2.1 standard application, seems to use UIAPP "Show View" function. the config software manual does not cover this topic. Is this a better way to handle screens? If my understanding is correct the "Show view" function in UIAPP is equivalent to Hide+Show+Process of the Screen application if we are working on the same layer. Is this correct?
The "GotoMenu" state diagram includes 3 actions:
- Show view (MenuLayer.Default Main menu view)
- Show view (Settings Layer.empty)
- Show View(Main Layer.Startup View)
I can understand the first two statment but I do not understand the purpose of the third one. Start-up screen is a black screen. Could you clarify?

2) System Setting Screen/ Can bus resistor:
When the Hidden set-up screen appear the Lamp switch boxes next to Enable Can1/ Enable Can 2 doesnot appear. System seems to respond to the change after reboot as we were able to prove using an external meter, but it is impossible to know the state of the machine from what is being displayed.. Why? How can we fix this?

3) Main Layer page flow management:
One of the big difference between 2.0 and 2.1 appear to be with the page flow management. In 2.0 in page designer, you could transition between layout and programing. This seems to have disappear in 2.1. Also the scripting for page management is very different. But neither seem to make it easy to add a page or remove a page in the Main layer for example without disrupting the scripts and page flow (previous-next page). It would be nice to have tutorial on the subject. Although the converted 2.0 scripts are operational under 2.1 is there any advantage to upgrade them to the script as shown in 2.1 basic configuration?

4) When you switch layer what happens to the key functions?
- Are the Keys defined in the layer of higher priority overwriting the key of lower level. ie: if Key 7 is programmed as "Previous screen" on main layer, but as "DM1. previous" on the Overlay, are both events executed or only the one for the overlay? And more specifically if a Key is defined in the Main Layer but is left as "clear Transition" in the Popup is the main layer key function still active?

5) For the Bezel key, could you clarify what "Clear transition" means? How does it differ from "Disabled Key". It might be nice in future version of the configurator if the color or logo for Disabled was different from the other modes as it seems to do between Goto.. or Fire..
jpratt
Enovation Controls Development
Enovation Controls Development
Posts: 222
Joined: Mon Jun 21, 2010 11:18 am

Re: Page Flow management - UIApp application

Post by jpratt » Tue Nov 02, 2010 9:37 pm

Lets see if i can answer these.

1. The difference between UIApp and Screen app is this. UI App is responsible for Page Views and tracking the currently displayed view per layer. UI App tracks and issues shows and hides to all screen objects to ensure that there is one and only one view visible on a layer at a time. This application also coordinates the key/actions that are available based on the currently active views allowing you to easily work with keys and gauges as a single unit....aka a "View" In the future the views will become our interface point for integrating "touch" If you are familiar with Model View Controller (MVC) this application is the Controller.

Screen App is one layer down from UI App. Its job it to maintain the gauges/widgets and their interaction with drawing subsystems. It also is responsible for maintain all page and gauge states (visible, textures etc) It executes the drawing of objects and binds data to display objects. In MVC pattern, this application is the Model.

In practice UI App is the new programming interface for constructing configuration user interfaces. When creating state machines and scripts you should strive to interact with page views rather than individual gauges.

2. Not sure on this one.

3. Not sure on this one.

4. The events and goto view commands associated with a key are always tracked at a "Page View" level However, if you have a key mapped to a view on an upper layer (higher in the stack) then the key is overridden by the higher layers view. If the key is pressed it will fire the event/command it sees and stop. Lower level layers actions are not called. This is to allow for overriding the default behavior with popups, settings etc.

5. The difference between "Disable" and "Clear" is as follows. Disable maps the key to a null event. This has the effect of having the key swallow the press. This is useful in upper layers when you want to keep the user from triggering a lower layers actions when a higher level view is displayed ( such as an ok/cancel on a popup). Clear is used to simply unmap the existing event or command that is connected with the key. This allows the key to then be processed by lower level views or to do nothing if nothing is mapped in any layers current view.

I will log your request for a different color to represent "disabled" in a future release.


Hope that helps. I will see if i can get the other two answered tomorrow.
Jake Pratt
Software Development Manager
jpurdum
Enovation Controls Development
Enovation Controls Development
Posts: 153
Joined: Mon Jun 21, 2010 11:19 am

Re: Page Flow management - UIApp application

Post by jpurdum » Wed Nov 03, 2010 6:43 pm

#2 - System Setting Screen/ Can bus resistor: This issue may be due to an issue with the 2.0 config that you upgraded from. If you're building your config off of one you already created in 2.0 before 2.1 was released, it may have inherited this issue. I would have to research some more, but I think a simple fix is to delete that particular lamp gauge element and re-add it.

#3 - Main Layer page flow management: Added a gauge screen to the 2.0 Murphy Standard config such that it works like the other gauge screens in the rotation was next to impossible. I think we had the misconception that most people would start over or throw out that logic. In the 2.1 Murphy Standard Config, while not as straight forward as we'd like, it is considerably easier. I created a whole new Topic for this one. Please find the post titled How do I add a Gauge Screen in 2.1 Murphy Standard Config? The following link will take you directly there:
viewtopic.php?f=7&t=68