<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<ConfigurationInfo version="2.9.23044">
  <Guid>03f6eaea-9a36-4bf7-9be0-03fa3cbafa55</Guid>
  <IgnoreInBinaryFormats>False</IgnoreInBinaryFormats>
  <ExternalKey />
  <ConfigurationName>Example - PV485 Template 2.9.23044</ConfigurationName>
  <ConfigurationVersion>2.9.23044</ConfigurationVersion>
  <ConfigurationDescription>
Initial Release V1.0

General Info
	Programming Objects for each menu category are located in their respective folders begining with the ~ symbol so they appear at the top of the list.

Menu
	Menu is is organized numerically in order, 0 is the main menu followed by each main item 1-6. Submenus are labeled by main-menu item #.submenu item#, for example 2.1 and 2.2, and so forth.
	Menu navigation uses page views where all the elements exist on that page but which element is visible in each view changes depending on what item is highlighted and what button functionality is needed.
	Each page view has its own button actions assigned.
	To add additional sub menus, copy and paste a page that matches what you need then name it with the next available number. Add a new page view on the main menu and add the new graphics being mindful of what needs to be visible on each view.
	Next modify the button actions to navigate to the correct next/previous views.
	Lastly the "selected" rectangle widgets need totheir alpha color channel modified in night mode - see Night Mode description below.
	
	

Password Protected Menu Areas
	The same password entry screen is used to go into different sub-menus each with a unique password. The Custom Settings and Service Reminders Edit menus are password protected each with a unique password.
	The password submit button calls a script routine to determine what submenu called for a password and then checks for a password match. If there is a match then it goes to the correct sub-menu screen view otherwise goes back to the password entry screen.
	When going to the password screen you have to set the "Password Origin" enumerated variable so the script knows which password to check against and what view to show when there is a match.
	To make modifications go to the SCE SubmitPassword function in the script routine and change the passwords and what page view origin.
	Here is s sample of the code of where to mofify the passorwd: if (password == 3482 &amp;&amp; passwordorigin==0)


Service Reminders:
	Code is located in the ~ServiceReminders folder	
	
	First
	J1939 Engine Hours variable calls a UserEvent to update the variable LastValidEngineHours and store it in memory using fire on change. This will happen a maximum rate of every three minutes.
	This allows us to calculate service time left even when not connected to the engine and requires just saving this variable and the service intervals in non-volatile memory.

	Next
	A User Event with a recurring timer calls an Acitvity Program  to calculate the service time remaining and a message manager to determine if a interval has expired and pop-up a message to alert the operator.
	
	Service Alert Manager
	A separate alert will pop-up for each item in the list only one time per power cycle and is hidden from view by the operator. If a reminder is needed between power cycles, create a user event with a one shot timer to clear the SserviceAlertShowing flags then any active alerts will pop-up at 		that time.

	Renaming Service Reminders
	Go intot he enumerated list ServiceItem.Index and change the names as needed.	The enumerated list that is used on the po-up alert ServiceReminderAlert.Item to Display willautomatically mirror this list.

	Adding New Service Reminders
	The Menu uses a enumerated list to manage each item, add the new item to the ServiceItem.Index enumeration. The ServiceAlert.ItemtoDisplay enumeration is tied to this and autaomatically get updated.
	Next add new variables matching the ones that already exist and go into each Activity Program and add the code for the new item matching what is already there.


Night Mode
 	To achieve the desired colors on rectangular and eliptical widgets for night mode, they are updated by a User Event UE Night Mode for Rec &amp; Elipse widgest which calls a animate action to change the Alpha setting to 30 to make the widget semi transparent thus muting the color.
	The variable AlphaSetting contains the Global Alpha value used by thes actions.
	All other widgets hav a day color and night color which are chosen to minimize hot spots at night.

RPM Gauge
	The tachometer or RPM gauge is constructed of several different elements to achieve this look.
	A larger balck Elipse with a smaller white elipse make up the gauge body.
	A curved bar gauge is colored black so it blend into the gauge body.
	A circular gauge with nothing but the needle showing an 3 tick marks is used to indicate maximum rpm setpoint which is tied to a setpoint in the menu for demonstration purposes.
	</ConfigurationDescription>
  <DeviceName>PV480</DeviceName>
  <FileName>C:\Users\ecarmen\Documents\Murphy Configurations\Version 2.9\DBs\Example - PV485 Template V1.0_ 2.9.23044.murphyConfig</FileName>
  <TcpipSetupData>
    <Guid>ed7176f7-c61e-4302-86c2-1d2d2cfd8276</Guid>
    <IgnoreInBinaryFormats>False</IgnoreInBinaryFormats>
    <ExternalKey />
    <ConfigUseDiscovery>True</ConfigUseDiscovery>
    <ConfigUseAutoIPDiscoveryAddress>True</ConfigUseAutoIPDiscoveryAddress>
    <ConfigIPAddress>192.168.0.2</ConfigIPAddress>
    <ConfigSubnetMask>255.255.255.0</ConfigSubnetMask>
  </TcpipSetupData>
  <ModelLockingEnabled>False</ModelLockingEnabled>
  <PasswordLockingEnabled>False</PasswordLockingEnabled>
  <PasswordBytes></PasswordBytes>
  <UniqueIdentifier>c3xyVfx1hUesW1ojLwdUfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</UniqueIdentifier>
  <LoaderVersion />
  <ModelNumberBytes>dEd2JDad4QeUPnM2Egfx9e3q+u3Q+A3khwPxiAD+lPmDbAlc9sAPLFvgh1IVS7+GiTWKInpBcnYla7qRa5xjWInySmtUnJrzOnXvAKnF1hqJrX++k6aYePA0BXzVEmS/A48RGhxUSSA6TyzROXBY4G09DI7tnTSNKL1mwEaO63Q=</ModelNumberBytes>
  <Password />
  <ModelNumber>Any</ModelNumber>
  <DeviceFamily>PV450</DeviceFamily>
  <CANSetupData>
    <Guid>c21bc6a8-d732-4f53-a252-7a06440b8196</Guid>
    <IgnoreInBinaryFormats>False</IgnoreInBinaryFormats>
    <ExternalKey />
    <CCPStationAddress>0</CCPStationAddress>
  </CANSetupData>
  <ConfigurationIdentifier>Example - PV485 Template 2.9.23044</ConfigurationIdentifier>
  <SerialNumber />
  <BootCount>0</BootCount>
  <PartNumber />
  <MacAddress />
</ConfigurationInfo>