Detailed Test Case from James Mike
You will begin the evaluation by finding some way to get a terminal connected to the platform.
This will either be through serial or SSH, with preference to serial (since it doesn't require TCP/IP knowledge).
The NPSDK customer would have been responsible for providing you with:
Hardware, power adapters, any special instructions about powering on the device. Current IP settings. If applicable, serial terminal configuration (baud/stopbits/etc) Login credentials for SSH/terminal (root access for evaluation is preferred) Login credentials for the Niagara Daemon Current System Passphrase of this platform (if set)
Once you can get a terminal, connnecting to the platform will usually look like:
Capture a summary of the host for your own records, I generally do the followin:
Determine host information:
root@localhost:~# uname -a Linux localhost 4.4.62-ti-rt-r99 #2 SMP PREEMPT RT Mon Aug 28 11:52:28 EDT 2017 armv7l GNU/Linux
IP configuration:
Passwords:
Groups:
Users:
Running processes:
Active connections:
The following filesystems are available:
Generally you're not looking for any errors here but you can scan it for information that might be relevant to your evaluation, such as output above suggests that the Niagara Daemon is running on port 3011/5011
This output also demonstrates that the Niagara Dameon is not running as root (which is good). At this level you are only looking for anything glaringly odd - like Niagara Daemon running as root, or /etc/group is missing, or something to that end. Usually when its something really odd you'll know it when you see it.
Now that you have shell access, figure out what the following values are:
Make note of anything odd here - under most circumstances we expect the NPSDK customer to have selected /opt/niagara and /home/niagara - if there is version information in either of these values, or the values are for only one user (/root/Niagara4.1) that would be cause for concern.
Niagara Home and Niagara User Home should be set by environment variables.
Record the values found at NIAGARA_HOME/bin/nreVersion.xml
nreVersion.xml appears to have values:
root@localhost:/opt/niagara/bin# cat nreVersion.xml
Make note of anything odd, or if it is missing. This document should define these platform, it shouldn't have values that don't make sense for this platform (x86_64 on a arm platform for example).
Record the values found at JRE_HOME (most likely NIAGARA_HOME/jre/jreVersion.xml):
jreVersion.xml appears to have values:
root@localhost:/opt/niagara/jre# cat jreVersion.xml
Make note of anything odd, or if it is missing. This document should define these platform, it shouldn't have values that don't make sense for this platform (x86_64 on a arm platform for example). It should represent the JRE that the NPSDK customer has licensed.
Make sure these values match up to what JRE is actually being used by the platform, for example:
The version of Java installed at /opt/niagara/jre shows:
root@localhost:/opt/niagara/jre/bin# ./java -version java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) Client VM (build 25.101-b13, mixed mode)
Make sure it is consistent with what's in jreVersion.xml, if it isn't make a note of it.
Examine the daemon.properties file at NIAGARA_USER_HOME/daemon/daemon.properties:
Verify the authentication type being used, if it is not a native scheme, write it up - customer must be using native schemes. The above would represent a platform that is not using native as we expect.
Having some investigation about the platform, connect to the Niagara Daemon with Workbench - make sure connection occurs as you expect.
Navigate to Platform Administration -> View Details:
Basically make sure nothing is odd here - values should match what is defined in nreVersion.xml, jreVersion.xml and so forth. NPSDK customers should not be using Tridium host model names, model names should not contain spaces. The Host ID should not be a Tridium format (LNX-****).
Now start running the test_* harnesses that should be available in NIAGARA_HOME/bin.All of the tests should pass, it a test does not pass, write it up. Usage of these tests should be found in the NPSDK documentation. Some example output is below:
Running the test_provider_api test harness:
In this example the TimeZone settings fails, write any failures up with a note and provide any details you may consider relevant for the NPSDK customer to investigate
Some additional items you can find in the test_provider_api output:
System passphrase for this platform is "niagara"
The temporary directory path is:
"/var/tmp"
The default user name and password are:
"tridium" / "niagara"
Supported authentication types are "digest/file" (confirms above note).
The alarm/history ramdisk is disabled:
"alternative path = null"
So this device will use /home/niagara/stations/[station_name] as the root directory for the alarm and history databases.
Make a note of these for your records and make note of anything odd.
Next run the test_niagarad_web test harness from your local PC to connect to this platform (fill in appropriate IP, user, pass)
...
Make sure all tests pass, make a note of any failures.
Next check the VM settings of the Nre/Java Launchers:
You can turn on NRE debugging with "export nre_debug=1" and JAVA debugging with "export java_debug=1"
Launching a station with debug shows:
Again, make a note of anything that stands out as odd, retain any information as necessary for your records. This is items such as:
Platform is using LOW_ENTROPY (urandom) Platform is using the following custom Xmx Xms values What are the support runtime profiles? What are the required profiles? Make sure the security manager is not disabled, etc.
Do the same for the Niagara Dameon:
Niagara Daemon:
Same as before, make notes of anything odd.
Now moving on to more functional testing.
Open a Platform Connection to the Niagara Daemon and navigate to the Platform Administration View. Run through the functionality of each command to make sure it is working properly:
"View Details" already confirmed above.
"Update Authentication" already confirmed above.
"System Passphrase"
Presented with dialog "Set the passphrase used to encrypt sensitive information...."
Enter the following information:
Current Passphrase: niagara New Passphrase: Niagara123 Confirm New Passphrase: Niagara123
Select "OK" -> Was met with exception:
com.tridium.platform.daemon.DaemonResponseException: Request to platform daemon at 172.16.10.121 failed: SystemPw: Failed to set system password: (java.io.IOException) at com.tridium.platform.daemon.BDaemonSession.handleXMLResponse(BDaemonSession.java:2566) at com.tridium.platform.daemon.BDaemonSession.handleErrorResponses(BDaemonSession.java:2333) at com.tridium.platform.daemon.BDaemonSession.getConnection(BDaemonSession.java:2248) at com.tridium.platform.daemon.BDaemonSession.sendMessage(BDaemonSession.java:1959) at com.tridium.platform.daemon.BDaemonSession.sendMessage(BDaemonSession.java:1596) at com.tridium.platDaemon.ui.config.SystemPasswordPrompt.updateSettings(SystemPasswordPrompt.java:142) at com.tridium.platDaemon.ui.config.BPlatformAdministration$UpdateSystemPasswordCommand.doInvoke(BPlatformAdministration.java:1799) at javax.baja.ui.Command.doInvoke(Command.java:311) at javax.baja.ui.Command.invoke(Command.java:281) at javax.baja.ui.BButton.doInvokeAction(BButton.java:149) at javax.baja.ui.BAbstractButton.mouseReleased(BAbstractButton.java:554) at javax.baja.ui.BWidget.fireMouseEvent(BWidget.java:1239) at com.tridium.ui.awt.MouseManager.fire(MouseManager.java:309) at com.tridium.ui.awt.MouseManager.fire(MouseManager.java:283) at com.tridium.ui.awt.MouseManager.released(MouseManager.java:119) at com.tridium.ui.awt.MouseManager.process(MouseManager.java:92) at com.tridium.ui.awt.AwtShellManager.processMouseEvent(AwtShellManager.java:487) at com.tridium.ui.swing.BSwingWidget$GlassMouseListener.redispatchMouseEvent(BSwingWidget.java:597)
Determined that this was a result of the /etc/niagara directory contents being owned by root:root; updated this to niagara:niagara.
Retrying...
Current Passphrase: niagara New Passphrase: Niagara123 Confirm New Passphrase: Niagara123
Select "OK" -> "Password change successful".
Select "System Passphrase" again.
Enter the following information:
Current Passphrase: Niagara123 New Passphrase: Niagara234 Confirm New Passphrase: Niagara234
Select "OK" -> "Password change successful". (As expected)
Select "System Passphrase" again.
Enter the following (incorrect) information:
Current Passphrase: Niagara123 New Passphrase: Niagara123 Confirm New Passphrase: Niagara123
Select "OK" -> "Incorrect current passphrase". (As expected)
"System Passphrase" appears correct.
"Change HTTP Port"
Dialog pops up ("Enter the new HTTP port on which the platform daemon...."), currently seeded with the value "3011"
Enter the new value "3012", select "OK".
Platform will re-connect, re-enter the username and password for platform ("three2/Niagara123"). Re-connect successful.
Re-select "Change HTTP Port", chang e "3012" value back to "3011" and select "OK".
"Change HTTP Port" appears correct.
"Check TLS Settings"
Dialog pops up ("Platform TLS Settings"), current values are:
State "Enabled" Port "5011" Certificate "tridium" Protocol "TLSv1.0+"
Change the value of the "Port" to "5012", select "Save"
Platform will re-connect, re-enter the username and password for platform ("three2/Niagara123"). Re-connect successful.
Now attempt to login to TLS port (5012) with "three2/Niagara123" -> Connection was successful. Disconnect from TLS in nav tree (Right click TLS node -> Disconnect).
Navigate back to "Platform Administration" on 3011 port. Select "Change TLS Settings".
Change "Port" from "5012" back to "5011", select "Save".
Platform will re-connect, re-enter the username and password for platform ("three2/Niagara123"). Re-connect successful.
Navigate back to "Platform Administration" on 3011 port. Select "Change TLS Settings".
Change "Protocol" from "TLSv1.0+" to "TLSv1.2", select "Save".
Platform will re-connect, re-enter the username and password for platform ("three2/Niagara123"). Re-connect successful.
Navigate back to "Platform Administration" on 3011 port. Select "Change TLS Settings".
Change "Protocol" from "TLSv1.2" back to "TLSv1.0+", select "Save".
Platform will re-connect, re-enter the username and password for platform ("three2/Niagara123"). Re-connect successful.
"Change TLS Settings" appears successful.
"Change Date/Time"
From Platform Administration View, select "Change Date/Time".
Dialog pops up ("Set System Date/Time")
Current values are:
Date 06-Sep-2017 Time 12:24 Time Zone America/New_York(-6/-5)
Select action "Use Local".
Values update to:
Date 06-Sep-2017 Time 12:24 Time Zone America/New_York(-5/-4)
Select action "Save".
No error is displayed; however, Platform Administration and Change Data/Time still show:
Date 06-Sep-2017 Time 11:24 Central Daylight Time Time Zone America/New_York(-6/-5)
The date command:
root@localhost:~# date Wed Sep 6 11:25:55 EDT 2017
Appears to confirm that the time remains the same. However, changing the time to:
Date 09-Sep-2017 Time 16:28 Time Zone America/New_York(-5/-4)
Does appear to update, and date now shows:
root@localhost:~# date Sat Sep 9 16:28:54 EDT 2017
I suspect that the Time Zone is not being applied correctly (11:24 EDT == 12:24 EDT) so it may explain why the time did not appear to update.
"Change Date/Time" does not function correctly and must be addressed.
"Advanced Options"
Dialog is presented ("Advanced Platform Options"). A single check "Daemon Debug Enabled" is present.
Check the box for "Daemon Debug Enabled" -> Hit "OK".
Platform Administration View refreshes and a yellow box "WARNING: Platform debugging enabled" as expected.
Select the "Advanced Options" button once again.
The dialog pops up again with the "Daemon Debug Enabled" box already checked -- uncheck box and select "Ok".
Platform Administration View refreshes and the yellow box "WARNING:..." is no longer displayed as expected.
"Advanced Options" appears to be functioning as expected.
"Change Output Settings"
A dialog is created ("Daemon Output Settings") with the following values:
Log Filter Setting niagarad message webserver message stationRegistry message logfilter message updatedaemon message file message reboot message acctmgt message crypto message
Modify the drop down value for each item to read "error", select "OK". No errors occur during this process as expected.
Select the "Change Output Settings" button again.
Modify the drop down value for each item back to "trace", select "OK". No errors occur during this process as expected.
"Change Output Settings" appears to be functioning as expected.
"View Daemon Output"
WARNING [11:16:17 06-Sep-2017] [tid = 1] A request was made to run in Security Manager developer mode, but the system is not licensed for it. MESSAGE [11:16:50 06-Sep-2017] [tid = 1] niagarad: starting, niagara_user_home=/home/niagara MESSAGE [11:16:54 06-Sep-2017] [tid = 1] webserver: web server threads started [threadCount = 3] MESSAGE [11:16:54 06-Sep-2017] [tid = 1] app registry: station registry starting MESSAGE [11:19:21 06-Sep-2017] [tid = 25] webserver: web server threads started [threadCount = 3] MESSAGE [11:19:34 06-Sep-2017] [tid = 37] webserver: web server threads started [threadCount = 3] MESSAGE [11:20:42 06-Sep-2017] [tid = 49] webserver: web server threads started [threadCount = 3] MESSAGE [11:21:47 06-Sep-2017] [tid = 62] webserver: web server threads started [threadCount = 3] MESSAGE [11:22:09 06-Sep-2017] [tid = 74] webserver: web server threads started [threadCount = 3] MESSAGE [11:22:27 06-Sep-2017] [tid = 86] webserver: web server threads started [threadCount = 3] MESSAGE [16:38:49 09-Sep-2017] [tid = 107] logfilter: set "webserver" log to LOG_ERROR MESSAGE [16:38:53 09-Sep-2017] [tid = 113] logfilter: set "webserver" log to LOG_MESSAGE
Select "Close", no errors observed.
"View Daemon Output" appears to be functioning as expected.
"Configure Runtime Profiles"
A dialog is created ("Update Enabled Runtime Profiles"). The following values are present:
Please choose which runtime profiles are to be enabled on this host:
X RUNTIME: Module JARs having core runtime Java classes only, no user interface. UX: Module JARs having lightweight HTML5+JavaScript+CSS user interface only. WB: Module JARs having Workbench or Workbench Applet user interface classes. SE: Module JARs having Java classes that use the full Java 8 Standard (SE) platform API DOC: Module JARs having no Java classes.
All but RUNTIME/SE items are available for selection, with "RUNTIME" selected. Notice that the since all items but RUNTIME/SE can be checked, it implies that the return value for the IPlatformProvider methods:
String getSupportedRuntimeProfiles(); String getRequiredRuntimeProfiles();
Are:
"runtime,ux,wb,doc" "runtime"
respectively. We don't typically install doc on embedded devices, but there is no reason why the NPSDK implementation could not include it.
Select all boxes possible ("UX|WB|DOC") and select "Next"
A wizard ("Update Enabled Runtime Profiles") will proceed with the following output:
Making the changes... Transferring files... Sending !modules/chart-rt.jar Sending !modules/platSerialNpsdk-rt.jar Sending !modules/entityIo-rt.jar Sending !modules/nsh-wb.jar Sending !modules/platSerial-rt.jar Sending !modules/serial-rt.jar Sending !modules/bajaux-rt.jar Sending !modules/platMstp-rt.jar Sending !modules/webChart-rt.jar Sending !modules/html-wb.jar Sending !modules/fonts-rt.jar Sending !modules/jxBrowser-wb.jar Sending !modules/search-rt.jar Sending !modules/history-ux.jar Sending !modules/query-rt.jar Sending !modules/jetty-rt.jar Sending !modules/template-rt.jar Sending !modules/net-rt.jar Sending !modules/bql-ux.jar Sending !modules/neql-rt.jar Sending !modules/control-rt.jar Sending !modules/alarm-ux.jar Sending !modules/bajaux-ux.jar Sending !modules/file-rt.jar Sending !modules/pdf-wb.jar Sending !modules/schedule-rt.jar Sending !modules/kitPx-wb.jar Sending !modules/platCrypto-rt.jar Sending !modules/converters-rt.jar Sending !modules/gx-rt.jar Sending !modules/platCrypto-wb.jar Sending !modules/box-rt.jar Sending !modules/chart-wb.jar Sending !modules/wiresheet-wb.jar Sending !modules/webChart-ux.jar Sending !modules/bql-rt.jar Sending !modules/history-wb.jar Sending !modules/alarm-rt.jar Sending !modules/fox-rt.jar Sending !modules/bajaScript-ux.jar Sending !modules/wbutil-wb.jar Sending !modules/hx-wb.jar Sending !modules/history-rt.jar Sending !modules/alarm-wb.jar Sending !modules/platform-wb.jar Sending !modules/web-rt.jar Sending !modules/webEditors-ux.jar Sending !modules/icons-ux.jar Sending !modules/gx-wb.jar Sending !modules/themeZebra-ux.jar Sending !modules/platform-rt.jar Sending !modules/bajaui-wb.jar Sending !modules/js-ux.jar Sending !modules/baja.jar Sending !modules/workbench-wb.jar FileStore::commit Wrote "/opt/niagara/modules/chart-rt.jar". Wrote "/opt/niagara/modules/platSerialNpsdk-rt.jar". Wrote "/opt/niagara/modules/entityIo-rt.jar". Wrote "/opt/niagara/modules/nsh-wb.jar". Wrote "/opt/niagara/modules/platSerial-rt.jar". Wrote "/opt/niagara/modules/serial-rt.jar". Wrote "/opt/niagara/modules/bajaux-rt.jar". Wrote "/opt/niagara/modules/platMstp-rt.jar". Wrote "/opt/niagara/modules/webChart-rt.jar". Wrote "/opt/niagara/modules/html-wb.jar". Wrote "/opt/niagara/modules/fonts-rt.jar". Wrote "/opt/niagara/modules/jxBrowser-wb.jar". Wrote "/opt/niagara/modules/search-rt.jar". Wrote "/opt/niagara/modules/history-ux.jar". Wrote "/opt/niagara/modules/query-rt.jar". Wrote "/opt/niagara/modules/jetty-rt.jar". Wrote "/opt/niagara/modules/template-rt.jar". Wrote "/opt/niagara/modules/net-rt.jar". Wrote "/opt/niagara/modules/bql-ux.jar". Wrote "/opt/niagara/modules/neql-rt.jar". Wrote "/opt/niagara/modules/control-rt.jar". Wrote "/opt/niagara/modules/alarm-ux.jar". Wrote "/opt/niagara/modules/bajaux-ux.jar". Wrote "/opt/niagara/modules/file-rt.jar". Wrote "/opt/niagara/modules/pdf-wb.jar". Wrote "/opt/niagara/modules/schedule-rt.jar". Wrote "/opt/niagara/modules/kitPx-wb.jar". Wrote "/opt/niagara/modules/platCrypto-rt.jar". Wrote "/opt/niagara/modules/converters-rt.jar". Wrote "/opt/niagara/modules/gx-rt.jar". Wrote "/opt/niagara/modules/platCrypto-wb.jar". Wrote "/opt/niagara/modules/box-rt.jar". Wrote "/opt/niagara/modules/chart-wb.jar". Wrote "/opt/niagara/modules/wiresheet-wb.jar". Wrote "/opt/niagara/modules/webChart-ux.jar". Wrote "/opt/niagara/modules/bql-rt.jar". Wrote "/opt/niagara/modules/history-wb.jar". Wrote "/opt/niagara/modules/alarm-rt.jar". Wrote "/opt/niagara/modules/fox-rt.jar". Wrote "/opt/niagara/modules/bajaScript-ux.jar". Wrote "/opt/niagara/modules/wbutil-wb.jar". Wrote "/opt/niagara/modules/hx-wb.jar". Wrote "/opt/niagara/modules/history-rt.jar". Wrote "/opt/niagara/modules/alarm-wb.jar". Wrote "/opt/niagara/modules/platform-wb.jar". Wrote "/opt/niagara/modules/web-rt.jar". Wrote "/opt/niagara/modules/webEditors-ux.jar". Wrote "/opt/niagara/modules/icons-ux.jar". Wrote "/opt/niagara/modules/gx-wb.jar". Wrote "/opt/niagara/modules/themeZebra-ux.jar". Wrote "/opt/niagara/modules/platform-rt.jar". Wrote "/opt/niagara/modules/bajaui-wb.jar". Wrote "/opt/niagara/modules/js-ux.jar". Wrote "/opt/niagara/modules/baja.jar". Wrote "/opt/niagara/modules/workbench-wb.jar". FileStore::commitInstance commit complete Filter level change completed successfully.
This is as expected, select "Close".
The Platform Administration View will refresh, select "Configure Runtime Profiles" again.
The dialog is created again ("Update Enabled Runtime Profiles"), verified that the checkboxes are all now selected from previous step.
Uncheck all boxes possible (UX|WB|SE|DOC) (note that UX and WB are linked as expected) and select "Next".
Validated that wizard proceeded with the following output:
Making the changes... Updating enabled runtime profiles to "rt" Transferring files... Deleting !modules/workbench-wb.jar Deleting !modules/js-ux.jar Deleting !modules/bajaui-wb.jar Deleting !modules/themeZebra-ux.jar Deleting !modules/gx-wb.jar Deleting !modules/icons-ux.jar Deleting !modules/webEditors-ux.jar Deleting !modules/platform-wb.jar Deleting !modules/alarm-wb.jar Deleting !modules/hx-wb.jar Deleting !modules/wbutil-wb.jar Deleting !modules/bajaScript-ux.jar Deleting !modules/history-wb.jar Deleting !modules/webChart-ux.jar Deleting !modules/wiresheet-wb.jar Deleting !modules/chart-wb.jar Deleting !modules/platCrypto-wb.jar Deleting !modules/kitPx-wb.jar Deleting !modules/pdf-wb.jar Deleting !modules/bajaux-ux.jar Deleting !modules/alarm-ux.jar Deleting !modules/bql-ux.jar Deleting !modules/history-ux.jar Deleting !modules/jxBrowser-wb.jar Deleting !modules/html-wb.jar Deleting !modules/nsh-wb.jar FileStore::commit Deleted "/opt/niagara/modules/workbench-wb.jar". Deleted "/opt/niagara/modules/js-ux.jar". Deleted "/opt/niagara/modules/bajaui-wb.jar". Deleted "/opt/niagara/modules/themeZebra-ux.jar". Deleted "/opt/niagara/modules/gx-wb.jar". Deleted "/opt/niagara/modules/icons-ux.jar". Deleted "/opt/niagara/modules/webEditors-ux.jar". Deleted "/opt/niagara/modules/platform-wb.jar". Deleted "/opt/niagara/modules/alarm-wb.jar". Deleted "/opt/niagara/modules/hx-wb.jar". Deleted "/opt/niagara/modules/wbutil-wb.jar". Deleted "/opt/niagara/modules/bajaScript-ux.jar". Deleted "/opt/niagara/modules/history-wb.jar". Deleted "/opt/niagara/modules/webChart-ux.jar". Deleted "/opt/niagara/modules/wiresheet-wb.jar". Deleted "/opt/niagara/modules/chart-wb.jar". Deleted "/opt/niagara/modules/platCrypto-wb.jar". Deleted "/opt/niagara/modules/kitPx-wb.jar". Deleted "/opt/niagara/modules/pdf-wb.jar". Deleted "/opt/niagara/modules/bajaux-ux.jar". Deleted "/opt/niagara/modules/alarm-ux.jar". Deleted "/opt/niagara/modules/bql-ux.jar". Deleted "/opt/niagara/modules/history-ux.jar". Deleted "/opt/niagara/modules/jxBrowser-wb.jar". Deleted "/opt/niagara/modules/html-wb.jar". Deleted "/opt/niagara/modules/nsh-wb.jar". FileStore::commitInstance commit complete Filter level change completed successfully.
Hit "Close"
Platform Administration View will refresh, select "Configure Runtime Profiles".
Verified that all checkboxes now are unselected from previous step as expected.
"Configure Runtime Profiles" appears to be functioning as expected.
"Backup"
From the Platform Administration View, select the button "Backup".
A File Chooser dialog will be created, the platform will be backed up to a file called "backup_172.16.10.121_170906_1308.dist". Save this to ~backups.
Now, with backup having been created, navigate to the "Distribution File Installer" available under the "Platform" node in the nav tree.
Select the "Backups" button at the bottom of the view.
Locate the backup distribution we just created, having the name "backup_172.16.10.121_170906_1308.dist" with description "Offline backup of host '172.16.10.121'".
Select that backup and select "Install" at the bottom of the view.
A dialog will be created with the output:
"Backup" appears to be successful.
"Commissioning"
From the Platform Administration View, select "Commissioning" button.
The Commissioning Wizard will start.
Select the following options:
"Request or install software licenses" "Set enabled runtime profiles" "Install a station from the local computer" "Install/upgrade modules" "Install/upgrade core software from distribution files" "Sync with my local system date and time" "Configure TCP/IP network settings" "Configure system passphrase" "Configure platform daemon authentication"
Now select "Next" to move to "License Step".
The available licenses are:
"Tridium.license (Tridium 4.3 - expires 2017-10-20)"
Selected the option to use these licenses.
Now select "Next" to move to "Enabled Runtime Profiles" step.
Select all checkboxes (RUNTIME | UX | WB | DOC)
Select "Next" to "Station Installation".
Select newly created, empty Station "npsdk" from drop down (Create this station using "Tools -> New Station Wizard" if not available locally).
New Name "npsdk"
Check "Start After Install" and "Auto-Start".
Now select "Next" to move to "Software Installation" step.
The Software column checkboxes should all be auto-checked based on the type dependencies in the "npsdk" station config.bog, proceed with the default selection.
Now select "Next" to the "Distribution File Installation" step.
(NOTE: Did the NPSDK customer provide distribution files? If they aren't found - make a note)
Acknowledge that no items will be installed and select "Next" to "TCP/IP" step.
Use the existing settings (make no changes) and select "Next" to "System Passphrase" step.
NOTE: Current system passphrase is "Niagara234".
Enter the following at this step:
Current Passphrase "Niagara234" New Passphrase "Niagara123" Confirm New Passphrase "Niagara123"
Now select "Next" to move to the "Platform Daemon Authentication" step.
Change the user/password from "three2/Niagara123" to "admin/Niagara234"
Select "Next" to move to "Review of changes step".
Confirm that review contains all of the changes that we selected during this process.
Now select "Finish" to complete Commissioning Wizard.
Output was:
Stopping applications... No running applications to stop. Updating daemon authentication Updating system passphrase... Updating enabled runtime profiles to "rt,ux,wb,doc" Transferring files... Sending !security/licenses/Tridium.license Sending !security/licenses/Tridium.license Sending ~stations/npsdk/config.bog Sending !modules/app-wb.jar Sending !modules/hierarchy-ux.jar Sending !modules/search-wb.jar Sending !modules/hierarchy-wb.jar Sending !modules/niagaraVirtual-wb.jar Sending !modules/app-rt.jar Sending !modules/nsh-wb.jar Sending !modules/backup-wb.jar Sending !modules/control-wb.jar Sending !modules/tagdictionary-wb.jar Sending !modules/html-wb.jar Sending !modules/driver-ux.jar Sending !modules/jxBrowser-wb.jar Sending !modules/history-ux.jar Sending !modules/backup-rt.jar Sending !modules/search-ux.jar Sending !modules/bql-ux.jar Sending !modules/program-rt.jar Sending !modules/hierarchy-rt.jar Sending !modules/alarm-ux.jar Sending !modules/bajaux-ux.jar Sending !modules/pdf-wb.jar Sending !modules/driver-wb.jar Sending !modules/tagdictionary-rt.jar Sending !modules/kitPx-wb.jar Sending !modules/niagaraVirtual-rt.jar Sending !modules/queryTable-wb.jar Sending !modules/platCrypto-wb.jar Sending !modules/niagaraDriver-wb.jar Sending !modules/driver-rt.jar Sending !modules/chart-wb.jar Sending !modules/wiresheet-wb.jar Sending !modules/webChart-ux.jar Sending !modules/program-wb.jar Sending !modules/schedule-wb.jar Sending !modules/smartTableHx-wb.jar Sending !modules/history-wb.jar Sending !modules/template-wb.jar Sending !modules/niagaraDriver-rt.jar Sending !modules/bajaScript-ux.jar Sending !modules/wbutil-wb.jar Sending !modules/hx-wb.jar Sending !modules/alarm-wb.jar Sending !modules/platform-wb.jar Sending !modules/webEditors-ux.jar Sending !modules/pxEditor-wb.jar Sending !modules/icons-ux.jar Sending !modules/gx-wb.jar Sending !modules/themeZebra-ux.jar Sending !modules/bajaui-wb.jar Sending !modules/js-ux.jar Sending !modules/workbench-wb.jar FileStore::commit Wrote "/opt/niagara/security/licenses/Tridium.license". Wrote "/opt/niagara/security/licenses/Tridium.license". Wrote "/home/niagara/stations/npsdk/config.bog". Wrote "/opt/niagara/modules/app-wb.jar". Wrote "/opt/niagara/modules/hierarchy-ux.jar". Wrote "/opt/niagara/modules/search-wb.jar". Wrote "/opt/niagara/modules/hierarchy-wb.jar". Wrote "/opt/niagara/modules/niagaraVirtual-wb.jar". Wrote "/opt/niagara/modules/app-rt.jar". Wrote "/opt/niagara/modules/nsh-wb.jar". Wrote "/opt/niagara/modules/backup-wb.jar". Wrote "/opt/niagara/modules/control-wb.jar". Wrote "/opt/niagara/modules/tagdictionary-wb.jar". Wrote "/opt/niagara/modules/html-wb.jar". Wrote "/opt/niagara/modules/driver-ux.jar". Wrote "/opt/niagara/modules/jxBrowser-wb.jar". Wrote "/opt/niagara/modules/history-ux.jar". Wrote "/opt/niagara/modules/backup-rt.jar". Wrote "/opt/niagara/modules/search-ux.jar". Wrote "/opt/niagara/modules/bql-ux.jar". Wrote "/opt/niagara/modules/program-rt.jar". Wrote "/opt/niagara/modules/hierarchy-rt.jar". Wrote "/opt/niagara/modules/alarm-ux.jar". Wrote "/opt/niagara/modules/bajaux-ux.jar". Wrote "/opt/niagara/modules/pdf-wb.jar". Wrote "/opt/niagara/modules/driver-wb.jar". Wrote "/opt/niagara/modules/tagdictionary-rt.jar". Wrote "/opt/niagara/modules/kitPx-wb.jar". Wrote "/opt/niagara/modules/niagaraVirtual-rt.jar". Wrote "/opt/niagara/modules/queryTable-wb.jar". Wrote "/opt/niagara/modules/platCrypto-wb.jar". Wrote "/opt/niagara/modules/niagaraDriver-wb.jar". Wrote "/opt/niagara/modules/driver-rt.jar". Wrote "/opt/niagara/modules/chart-wb.jar". Wrote "/opt/niagara/modules/wiresheet-wb.jar". Wrote "/opt/niagara/modules/webChart-ux.jar". Wrote "/opt/niagara/modules/program-wb.jar". Wrote "/opt/niagara/modules/schedule-wb.jar". Wrote "/opt/niagara/modules/smartTableHx-wb.jar". Wrote "/opt/niagara/modules/history-wb.jar". Wrote "/opt/niagara/modules/template-wb.jar". Wrote "/opt/niagara/modules/niagaraDriver-rt.jar". Wrote "/opt/niagara/modules/bajaScript-ux.jar". Wrote "/opt/niagara/modules/wbutil-wb.jar". Wrote "/opt/niagara/modules/hx-wb.jar". Wrote "/opt/niagara/modules/alarm-wb.jar". Wrote "/opt/niagara/modules/platform-wb.jar". Wrote "/opt/niagara/modules/webEditors-ux.jar". Wrote "/opt/niagara/modules/pxEditor-wb.jar". Wrote "/opt/niagara/modules/icons-ux.jar". Wrote "/opt/niagara/modules/gx-wb.jar". Wrote "/opt/niagara/modules/themeZebra-ux.jar". Wrote "/opt/niagara/modules/bajaui-wb.jar". Wrote "/opt/niagara/modules/js-ux.jar". Wrote "/opt/niagara/modules/workbench-wb.jar". FileStore::commitInstance commit complete Starting applications... station npsdk starting. Commissioning complete.
"Commissioning Wizard" completed normally.
11 ) "Reboot"
All Platform Administration functionality now tested, moving on to testing each view beneath "Platform" node in nav tree.
"Application Director"
Station "npsdk" is currently running:
root@ci534:/opt/niagara# ps -ef | grep station | grep -v grep niagara 1410 874 48 11:11 ? 00:01:07 /opt/niagara/bin/station npsdk -daemonspawn:b7e793177d46ce124f4607e509e28505ea1305c20974ab3cca1a0d5aa3c3f503b808fc84437169abc38952fd98d46ed4ee96c19d66a16833ac61305da738d2c72f3374721056adfa97bad7bbe1dcab62:442fd9843be15dccf7e5e2f495789928 -rp:rt,ux,doc,wb
Single station "npsdk" is installed, both "Auto-Start" and "Restart on Failure" are selected (installed from Commissioning Wizard above).
Toggle "Auto-Start" from "on" to "off". No error seen.
Refresh "Application Director" view, "Auto-Start" is still "off" (as expected).
Toggle "Auto-Start" from "off" to "on". No error seen.
Refresh "Application Director" view, "Auto-Start" is still "on" (as expected).
Toggle "Restart on Failure" from "on" to "off". No error seen.
Refresh "Application Director" view, "Restart on Failure" is still "off" (as expected).
Toggle "Restart on Failure" from "off" to "on". No error seen.
Refresh "Application Director" view, "Restart on Failure" is still "on" (as expected).
Application Director output contains Station output as expected.
The Station "npsdk" is currently in "Running" status with output:
INFO [nre] Launching Niagara Runtime Environment INFO [12:36:24 06-Sep-17 EDT][nre] Booting INFO [12:36:49 06-Sep-17 EDT][sys] Logging initialized INFO [12:37:19 06-Sep-17 EDT][sys.registry] Up-to-date [455ms] INFO [12:37:20 06-Sep-17 EDT][sys.registry] Loaded [1090ms] INFO [12:37:33 06-Sep-17 EDT][sys] Niagara runtime booted ("/opt/niagara") on TRID-EVAL-1000-1234-1234 (71515ms) INFO [12:37:33 06-Sep-17 EDT][sys] Loading "/home/niagara/stations/npsdk/config.bog"... INFO [12:37:56 06-Sep-17 EDT][sys] Loaded (22520ms) INFO [12:38:12 06-Sep-17 EDT][alarm.database] Loading... INFO [12:38:12 06-Sep-17 EDT][alarm.database] Loaded [0ms, 0 alarms, 0 pages] INFO [12:38:13 06-Sep-17 EDT][sys] Services Initialized (13630ms) INFO [12:38:13 06-Sep-17 EDT][sys.mixin] Updated [70ms] INFO [12:38:15 06-Sep-17 EDT][history.db] Starting async warmup of history config index... INFO [12:38:16 06-Sep-17 EDT][history.db] Async history config index warmup completed in 1180 ms. INFO [12:38:17 06-Sep-17 EDT][tagdictionary] Niagara tagdictionary is out of date or has been modified. INFO [12:38:17 06-Sep-17 EDT][tagdictionary] Niagara tagdictionary has been reloaded. INFO [12:38:17 06-Sep-17 EDT][sys.mixin] Updated [10ms] INFO [12:38:29 06-Sep-17 EDT][web] Jetty web server started on HTTPS port 8443 INFO [12:38:29 06-Sep-17 EDT][fox] FOXS server started on port [4911] INFO [12:38:31 06-Sep-17 EDT][sys] Niagara Runtime Environment: 4.2.36.38 INFO [12:38:31 06-Sep-17 EDT][sys] *** Station Started (18200ms) [129723ms total] *** niagara>
Hit the "Stop" button to verify that Station stops -> "Do you wish to stop station npsdk" -> "Yes", output:
niagara>INFO [12:40:20 06-Sep-17 EDT][console] Quit INFO [12:40:20 06-Sep-17 EDT][sys] Saving station... INFO [12:40:24 06-Sep-17 EDT][sys] Saved /home/niagara/stations/npsdk/config.bog (3270ms) INFO [12:40:24 06-Sep-17 EDT][sys] Station stopped INFO [12:40:24 06-Sep-17 EDT][web] Jetty stopped. INFO [12:40:26 06-Sep-17 EDT][fox] Service stopped INFO [12:40:26 06-Sep-17 EDT][fox] FOXS server stopped on port [4911] INFO [12:40:26 06-Sep-17 EDT][sys] Services stopped INFO [12:40:26 06-Sep-17 EDT][sys] *** Station shutdown ***
Hit the "Start" button to verify that Station starts. Station started as expected.
Hit "Restart" button to verify that Station stop/starts. "Do you wish to restart station npsdk" -> "Yes". Station re-started as expected.
NOTE: Reboot behavior confirmed in "Platform Administration"
Hit "Kill" button to verify Station exits quickly. "Do you wish to kill station npsdk?" -> "Yes".
Output:
App Failed
Use SSH terminal to verify that "station" process is now gone:
root@localhost:/opt/niagara# ps -ef | grep station root 1530 1120 0 12:50 pts/0 00:00:00 grep station
Station is no longer in process table as expected.
Hit the "Start" button to verify that Station starts. Station started as expected.
Hit the "Dump Threads" button to verify that threads are printed to output.
Sample output:
Threads are dumped as expected.
Hit "Save Bog" button to verify that the Station is saved.
niagara>INFO [11:23:05 26-Sep-17 EDT][sys] Saving station... INFO [11:23:07 26-Sep-17 EDT][sys] Saved /home/niagara/stations/npsdk/config.bog (1710ms)
Station saved as expected.
Hit "Verify Software" button to verify that currently installed software is verified -> "All software required by station "npsdk" is currently installed" -> "OK".
Hit "Clear Output" button to verify that output is cleared. Cleared as expected.
Hit "Pause Output" button to verify that output is paused -> "Load Output". Paused and loaded as expected.
Hit "Output Dialog" button to verify that output dialog is created -> "Close". Dialog created and closed as expected.
Hit "Stream to File" button to verify that output can be streamed. "Save Station Output" dialog is created, create local file at desktop. "OK" -> Output is streamed as expected.
Hit "Output Settings" button to verify that Application Director output settings can be configred.
Dialog is created:
Modify values to
Hit "OK". Verified no error on "OK".
Hit "Output Settings" button to verify that previously applied settings were persisted.
Dialog shows:
Settings saved as expected.
"Application Director" view appears to be functioning as expected.
"Certificate Management" view.
Open "Certificate Management" view when connected to the platform via a standard (port 3011) connection.
Dialog is created:
"Non-secure Connection"
"A non-secure connection is being used. Certificates and keys are at risk of being compromised"
"Do you want to continue?" -> "Yes".
"Certificate Management" view is loaded as expected.
Disconnect from platform and open a new connection on the TLS/secure (port 5011) port.
Open "Certificate Management" view, verified that no dialog ("Non-secure connection.....") is created when opening view across secure connection.
2a) "User Key Store"
"Certificate Management" view has "User Key Store" tab active. The default, self-signed Tridium certificate is installed:
Highlight the "tridium" self-signed certificate and select "View".
"Certificate Info" dialog is created with appropriate information. Hit "OK" to close dialog.
With no items in "User Key Store" selected, hit "New".
Dialog created:
"Stop running station"
"Platform cannot generate a new certificate while a station is running". -> "OK".
This dialog is expected when the "-Dniagarad.disableCertGen" property is provided to the Niagara Daemon startup.
Confirmed with "java_debug=1" that the following option is provided to the Niagara Daemon:
... java> option[11] = "-Dniagarad.disableCertGen" ...
Behavior to disable certificate generation is disabled as expected.
Navigate back to "Application Director" view and stop the running station "npsdk". Station "npsdk" is now stopped.
Navigate back to the "Certificate Management" view.
With no items in the "User Key Store" selected, hit the "New" button.
The following dialog is created:
Enter the following values (or as appropriate for your location):
Select "OK" to begin certificate generation.
Dialog created:
Hit "OK" to acknowledge.
Wait for npsdktest to show up in "User Key Store". Certificate shows up after generation complete.
View certificate in table to verify matches parameters provided:
Alias Issued By Subject Not Before Not After Key Algorithm Key Size Signature Algorithm Signature Size Valid Self Signed
npsdktest npsdkTest npsdkTest Wed Sep 06 14:11:14 EDT 2017 Thu Sep 06 14:11:14 EDT 2018 RSA 4096 SHA256WITHRSA 512 true true
Select "npsdktest" certificate in "User Key Store", hit "Cert Request" button at bottom of pane.
Dialog created:
Hit "OK".
Dialog created:
Select an appropriate path for "npsdktest.csr" to be exported (I used Desktop). Hit "Save".
Dialog created:
Hit "OK".
Select "npsdktest" certificate in "User Key Store", hit "Delete" button at bottom of pane.
Verified that the "npsdktest" self-signed certificate has now been deleted without error.
NOTICE: The following "Reset" test should only be done across a NON-TLS connection as you will be deleting the certificate currently in use by both the Niagara Daemon and/or the Niagara Station connections. Make sure the Niagara Station is stopped prior to exercising this functionality.
Across NON-TLS connection, select the self-signed certificate "tridium | Niagara4 | ..." from the "User Key Store" list.
Hit the "Reset" button to delete and regenerate the default self-signed certificate.
Dialog created:
"Reset Keystore"
"Resetting the keystore will delete all entries and will create a new self signed certificate. Are you sure?" -> "Yes".
Dialog created:
Hit "OK" to acknowledge.
Wait for "tridium" to show up in "User Key Store". Certificate shows up after generation complete. Certificate should match the following:
Alias Issued By Subject Not Before Not After Key Algorithm Key Size Signature Algorithm Signature Size Valid Self Signed
tridium Niagara4 Niagara4 Wed Sep 06 14:15:04 EDT 2017 Thu Sep 06 14:15:04 EDT 2018 RSA 2048 SHA256WITHRSA 256 true true
"User Key Store" appears to be functioning as expected.
2b) "System Trust Store"
Select the "System Trust Store" tab to activate this view.
Verify that the table is populated by items in the installed JRE CA certificates list (90 objects in this case):
Sample CA certificates:
Verified that all installed system CA certs are "valid = true"
Select top CA certificate in list ("digicertassuredidrootca"), select "View":
Dialog created:
"Certificate Info"
"digicertassuredidrootca" "Information for certificate DigiCert Assured ID Root CA" ...
Hit "OK" to close dialog.
Select top CA certificate in list ("digicertassuredidrootca"), select "Export":
Dialog created:
"Certificate Export"
"[X] Export the public certificate"
"Properties" ...
Hit "OK". In next dialog, select appropriate location for export to local PC (I used certManagement directory in Niagara User Home).
Export "digicertassuredidrootca.pem" file by hitting "Save" button in dialog.
Dialog created:
"Certificate Export"
"The certificate and related data was successfully exported." -> "OK".
Returned to "System Trust Store", certificate was exported without error.
Select "Import".
Dialog created:
"Certificate Import"
File Chooser, et. al.
Select "digicertassuredidrootca.pem" file previously exported -> "Open"
Dialog created:
"Certificate Import"
"Information for imported certificate DigiCert Assured ID Root CA"
...
Hit "OK".
Returned to "System Trust Store", no errors encounted as expected.
(Omitting "Delete" since I don't want to change system settings).
2c) "User Trust Store"
The "User Trust Store" is currently empty (as expected).
Select "Import" from bottom of pane.
Dialog created:
"Certificate Import"
File Chooser, et. al.
Select "digicertassuredidrootca.pem" file previously exported in "certManagement" -> "Open"
Dialog created:
"Certificate Import"
"Information for imported certificate DigiCert Assured ID Root CA"
...
Hit "OK".
Returned to "User Trust Trust" view, verify that the table now contains the imported certificate.
Select the "digicertassuredidrootca" certificate in the table.
Hit the "View" button, following dialog is created:
"Certificate Info"
"digicertassuredidrootca" "Information for certificate DigiCert Assured ID Root CA" ...
Hit "OK".
Select the "digicertassuredidrootca" certificate in the "User Trust Store" table.
Hit the "Delete" button.
Dialog is created:
"Delete Certificate(s)"
"Are you sure you want to delete the selected certificates(s)?" -> "Yes".
Verified that the certificate is now been removed from the table.
2d) "Allowed Hosts"
Select the "Allowed Hosts" tab.
This table is empty, no hosts to validate at this time.
"Certificate Management" view appears to be functioning as expected.
"Distribution File Installer" view.
Select the "Distribution File Installer" view under the "Platform" node in the nav tree.
3a) "Cleaning"
Select the "Cleaning" button at the bottom of the pane.
This takes you to view:
The 5 items in the list are:
All items are "disabled" state since none of their dependencies can by met by the current platform (as expected).
NOTE: If you ever created a clean distribution, you would include it in this directory.
3b) "Conversion"
Select the "Conversion" button at the bottom of the pane.
This takes you to view:
/C:/Niagara/Niagara-4.2.36.34/conversion
10 distribution files were found in directory "/C:/Niagara/Niagara-4.2.36.34/conversion".
The 10 items are:
File Version Status Description
AXtoN4-qnx-jace-javelina_booke-etfs2048.dist Tridium 4.0.22.16 Different target platform Converts AX unit to N4 - removes all station and configuration data AXtoN4-qnx-jace-npm3xx-etfs2048.dist Tridium 4.0.22.16 Different target platform Converts AX unit to N4 - removes all station and configuration data AXtoN4-qnx-jace-npm6e-etfs2048.dist Tridium 4.0.22.16 Different target platform Converts AX unit to N4 - removes all station and configuration data AXtoN4-qnx-jace-npm6xx-etfs2048.dist Tridium 4.0.22.16 Different target platform Converts AX unit to N4 - removes all station and configuration data AXtoN4-qnx-jace-titan-am335x.dist Tridium 4.1.27.20 Different target platform Converts AX unit to N4 - removes all station and configuration data N4toAX-qnx-jace-javelina_booke-etfs2048-clean.dist Tridium 3.8.38 Different target platform Converts N4 JACE to AX N4toAX-qnx-jace-npm3xx-etfs2048-clean.dist Tridium 3.8.38 Different target platform Converts N4 JACE to AX N4toAX-qnx-jace-npm6e-etfs2048-clean.dist Tridium 3.8.38 Different target platform Converts N4 JACE to AX N4toAX-qnx-jace-npm6xx-etfs2048-clean.dist Tridium 3.8.38 Different target platform Converts N4 JACE to AX N4toAX-qnx-jace-titan-am335x-clean.dist Tridium 3.8.111 Different target platform Converts N4 JACE to AX
All items are "disabled" state since none of their dependencies can by met by the current platform (as expected).
3c) "Backups"
Functionality already tested by "Platform Administration" view "Backup" exercise, see above.
"Distribution File Installer" appears to functioning as expected.
"File Transfer Client"
Select the "File Transfer Client" view under the "Platform" node in the nav tree.
This activates view:
Create a new file in "/C:/Users/mike/Niagara4.2/tridium" called foo.txt with some random text in it.
Refresh the "File Transfer Client" view so that the newly created "foo.txt" shows up in the left (local) pane.
Select the local "foo.txt" file.
Select the right facing arrow to transfer the item to the remote (right) pane.
Dialog created:
"Transfer Status"
"Transfer complete" -> "OK"
Verify that the file "foo.txt" has been created on the remote platform and that it size and CRC match the local copy.
Select the remote (right pane) copy of the "foo.txt" file.
Select the left facing arrow to transfer the item to the local (left) pane.
Dialog created:
"Replace File?"
"Replace existing file 'foo.txt.'" ....
Select "Yes".
Dialog created:
"Transfer Status"
"Transfer complete" -> "OK".
Verify that local "foo.txt" has been overwritten by remote copy, size and CRC should remain unchanged.
Select the remote (right pane) copy of the "foo.txt" file.
Select the "X" button to delete the remote copy of the file.
Dialog created:
"Confirm Delete"
"Delete the selected file(s)?" -> "Yes".
Confirm that the "foo.txt" file has now be deleted on the remote (right) pane.
Right-click in the remote (right) pane at an empty location.
In the menu, select "Create subdirectory".
Dialog created:
Type "foo" and select "OK".
Verify that the new "foo" directory has been created.
Select the "foo" directory in the remote (right) pane.
Select the "X" button to initiate a delete operation of the folder.
Dialog created:
Confirm that the folder "foo" has now been deleted in the remote (right) pane.
"File Transfer Client" functionality appears to be correct.
"Lexicon Installer"
NOTICE: This is a legacy installer not typically used in N4 as lexicon sets have been replaced with lexicon modules. Testing for completeness.
Select the "Lexicon Installer" view under the "Platform" node in the nav tree.
This activates the view:
"Lexicon Installer"
"Lexicon Sets installed on '172.16.10.121'"
Create a new directory on your Desktop called "foo".
In this directory, create a new file "foo.lexicon".
Hit the "Install" button at the bottom of the pane.
This creates dialog:
"Select Directories"
"Please choose one or more lexicon directories to install to '172.16.10.121'"
Navigate to and select the "foo" directory you created in the prior step. The "OK" button should activate when the folder is highlighted.
Hit "OK".
Dialog created:
"Installation complete"
"Transfer Complete" -> "OK".
Verify that the lexicon table now contains a single entry "foo".
Highlight the "foo" listing and select "Delete"
Dialog created:
"Delete foo?"
"Do you really want to delete foo?" -> "Yes".
Verify that foo listing is now gone.
When "lexicon" directory already exists beneath NIAGARA_HOME, "Lexicon Installer" appears to be functioning normally.
"License Manager"
Select the "License Manager" view under the "Platform" node in the nav tree.
This activates view:
"License Manager"
"Host Address 172.16.10.121" "Host ID TRID-EVAL-1000-1234-1234" "Brand ID Tridium" "Licenses Certificates" "Tridium.license (....) Tridium.certificate (....)"
Select the "Tridium.license" in the "Licenses" pane.
Hit the "View" button.
Dialog created:
Tridium.license
...
Verify that license matches expectations.
Hit "Ok" to close dialog.
Select the "Tridium.license" in the "Licenses" pane.
Hit the "Export" button.
Dialog created:
Select a location to save the "licenses.lar" file, I choose my "Desktop". Hit "Ok" to export the license.
Dialog created:
Verify that the file "licenses.lar" has been saved to the location of your choosing.
Select the "Tridium.license" file in the "Licenses" pane.
Hit the "Delete" button.
NOTICE: Best to do this while a Station is not running as it will affect feature behavior.
Dialog created:
Verify that the "Tridium.license" has now been removed from the "Licenses" pane.
Hit the "Import" button.
Dialog created:
"Import License"
"[X] Import one or more licenses from files" " Import licenses from the local license database" " Import licenses from the licensing server"
Leave the default action selected and select "OK".
In the "Select File" dialog that is created, navigate to the "licenses.lar" location that you previously created through the "Export" exercise. The "OK" button should activate once you've selected the "licenses.lar" file.
Hit "OK".
Dialog created:
"Licensing Complete"
"The licenses and certificates for the remote host have been successfully updated." "Added" " Tridium.license (....)" -> "OK".
Verify that the "Licenses" pane now contains the previously exported and deleted license.
NOTICE: You could have also selected the "Import licenses from the licensing server" if you had an internet connection.
Select the "Tridium.certificate" in the "Certificates" pane.
Hit the "View" button under the "Certificates" pane.
Dialog created:
Verify that certificate matches expectations.
Hit "Ok" to close dialog.
Select the "Tridium.certificate" in the "Certificates" pane.
NOTICE: Backup the existing "Tridium.certificate" to a local location if you do not already have one available in your local PC workbench!!! There is no "Export" function!!!
Hit the "Delete" button under the "Certificates" pane.
Dialog created:
Verify that the "Tridium.certificate" item has been removed from the "Certificates" pane.
Hit the "Import" button under the "Certificates" pane.
Dialog created:
"Select File"
"Please choose one or more certificate files to install to '172.16.10.121'"
This dialog should be pointed automatically to your local installation "certificates" directory. Select the appropriate certificate ("Tridium.certificate" in this case) to install and select "OK".
Dialog created:
"Licensing Complete"
"The licenses and certificates for the remote host have been successfully updated."
"Added" " Tridium.certificate (...)".
Hit "OK" to continue.
Verify that the "Certificates" pane now has the "Tridium.certificate" installed.
Navigate back to the "Application Director" and restart any stopped Station ("npsdkTest") to verify that both the License and Certificate files are valid and have been correctly installed.
Station started normally.
The "License Manager" view appears to be functioning as expected.
"Platform Administration"
NOTICE: Platform Administration view test coverage already provided above. See sections on all the buttons available to the Platform Administation view above.
"Software Manager"
Select the "Software Manager" view under the "Platform" node in the nav tree.
This activates the view:
Filter the column by "Installed Version" so that all currently installed items are sorted to the top (Version in this case is "4.2.36.38").
Select all items installed.
Select the "Re-install" option.
Status of items should change to "Re-install Tridium ..."
Hit the "Commit" button.
Dialog created (Note station was running when this action was taken):
Hit "OK" to proceed with installation exercise.
Process should complete without error, ends on the dialog:
Hit "Yes" to navigate to the Application Director.
Verify that the Station restarts without error. Since we've reinstalled software, you should expect to see:
...
INFO [13:41:07 06-Sep-17 EDT][sys.registry] Out-of-date: Module changed "alarm-rt" INFO [13:41:07 06-Sep-17 EDT][sys.registry] Rebuilding registry... INFO [13:41:27 06-Sep-17 EDT][sys.registry] Loaded [531ms] INFO [13:41:27 06-Sep-17 EDT][sys.registry] Rebuilt: 2584 types [20271ms] INFO [13:41:33 06-Sep-17 EDT][sys] Registry has changed. Checking modules for additional permissions. INFO [13:41:33 06-Sep-17 EDT][sys] No additional permissions found. INFO [13:41:41 06-Sep-17 EDT][sys] Niagara runtime booted ("/opt/niagara") on TRID-EVAL-1000-1234-1234 (92123ms) INFO [13:41:41 06-Sep-17 EDT][sys] Loading "/home/niagara/stations/npsdk/config.bog"... INFO [13:42:03 06-Sep-17 EDT][sys] Loaded (22740ms) INFO [13:42:09 06-Sep-17 EDT][alarm.database] Loading...
...
in the output. The Station appears to start normally and is now in the "Running" state.
Navigate back to the "Software Manager" view. Verified that all items installed read "Up to Date". (This was a re-install so this status is not any different from what it was before).
The "Software Manager" view appears to functioning as expected.
"Station Copier"
Select the "Station Copier" view under the "Platform" node in the nav tree.
This activates the view:
"Stations on this computer Stations on '172.16.10.121" "/C:/Users/mike/Niagara4.2/tridium/stations ~stations" ".... npsdk"
NOTICE: The Station "npsdk" is currently in a running state from our previous test. Specific details of following tests may vary depending on whether or not your station is running or stopped.
Select the "npsdk" Station from the right (remote) pane.
Hit the "< Copy" button to copy this station from the right (remote) pane to the left (local) pane. (You may already have a copy locally).
Dialog created:
Keep the default station name [npsdk] and select "Next"
The following step appears:
"Which station files are to be copied?"
" [ ] Copy files from selected directories" " [ ] Copy every file in the station directory and its subdirectories" " [X] Copy only the "config.bog" station database file"
Leave the default option selected ("Copy only...") and select "Next"
The following step appears:
"How do you want to deal with any existing files?"
" [ ] Delete the existing 'npsdk' directory before copying" " [X] Overwrite existing station files with new files, while leaving other files intact".
Leave the default option selected ("Overwrite...") and select "Next"
The following step appears:
"Please review your changes"
"Only the 'config.bog' file will be copied from '192.168.1.124' to the local computer" "Please select the 'Finish' button to start the transfer.'
Select the "Finish" button.
The following output should occur on successful transfer:
Hit "Close" to complete Wizard.
Verify that the left (local) pane now contains a copy of the "npsdk" Station installed on the remote machine if it did not have it before (it did).
Select the "npsdk" station in the right (remote) pane.
Hit the "X Delete" button.
Dialog is created:
"Delete Station?"
"Are you sure you wish to delete station 'npsdk'?" -> "Yes".
The Station will stop if it was running. Upon completion, verify that no errors occurred and the right (remote) pane is now empty.
Select the "npsdk" station in the left (local) pane that was copied in the steps above.
Select the "> Copy" button to copy the station from the left (local) pane to the right (remote) pane.
Dialog created:
Dialog created:
Keep the default station name [npsdk] and select "Next"
The following step appears:
"Station Startup Options"
" [X] START AFTER INSTALL: Start the station immediately after it is copied" " [X] AUTO-START: Start the station every time the platform daemon starts"
Leave the default options selected and select "Next"
The following step appears:
"How do you want to deal with any existing files?"
" [ ] Delete the existing 'npsdk' directory before copying" " [X] Overwrite existing station files with new files, while leaving other files intact".
Leave the default option selected ("Overwrite...") and select "Next"
The following step appears:
"Please review your changes"
"All station files will be copied from the local complete to '172.16.10.121'" "Please select the 'Finish' button to start the transfer.'
Select the "Finish" button.
The following output should occur on successful transfer:
Hit "Close" to complete Wizard.
Dialog is created:
"Open Application Director?"
"Open the Application Director now?" " [ ] Don't ask again"
Hit "Yes" to navigate to the Application Director.
Verify that this process occurred without error and that Station 'npsdk' starts up normally.
Navigate back to the "Station Copier" to continue testing.
Select the "npsdk" station in the right (remote) pane.
Hit the "Rename" button.
Dialog created:
"New Station Name"
"Please enter the new name for the station"
Enter "npsdk2" and hit "OK" to continue.
Dialog created:
"Stop Station?"
"The station must be stopped before it can be renamed." "Stop it now?"
Hit "Yes" to stop the running station and continue.
Dialog will stop the Station and then restart the station with the new name (Output is captured in dialog, rather than directing user to Application Director) [may want to write this up as bug on our end].
Dialog will auto close when the startup process is complete.
Validate that the right (remote) pane now contains an entry for "npsdk2" rather than "npsdk".
Navigate to the "Application Director" view.
Verify that the Station name is now "npsdk2" and that the station started normally.
Navigate back to the "Station Copier" view.
Select the "npsdk2" station from the right (remote) pane.
Hit the "Delete" button.
Proceed through dialogs to delete the "npsdk2" station.
Select the "npsdk" station from the left (local) pane.
Hit the "> Copy" button to copy from left (local) to right (remote).
Accept all previously copied options to transfer the Station to the remote platform. Finish with:
Navigate back to the "Application Director" view. Verify that the station "npsdk" starts normally.
The "Station Copier" view appears to be functioning as expected.
"TCP/IP Configuration"
Select the "TCP/IP Configuration" view under the "Platform" node in the nav tree.
This activates the view:
"TCP/IP Configuration"
"Host name ...." "Hosts file ...."
Using ssh, the current IP configuration of this platform is reported as:
The current /etc/hosts values are:
NOTE 11: The /etc/hosts file has an unknown 10.99.0.191 entry in it. This is an invalid map for the localhost value. Is this value in all of your /etc/hosts by default? This will cause resolution errors. You should investigate if this was just leftover from some previous testing.
The current /etc/resolv.conf values are:
The current hostname is:
The "TCP/IP Configuration" currently shows:
Host Name localhost Hosts File 10.99.0.191 localhost 127.0.0.1 localhost DNS Domain tridium2012.net IPv4 Gateway 172.16.10.1 DNSv4 Servers 172.31.64.11 172.31.64.12
Take notice that the second adapter does not support DHCP.
These settings appear in agreement with what is displayed by the ifconfig/host commands. However, why en0 and not eth0? Is this to stay in agreement with the values that are displayed on a Tridium JACE?
NOTE 12: The TCP/IP Configuration view shows adapters "en0" and "en1" although the adapters are actually "eth0" and "eth1". The names presented in the view should be in agreement with how the values are displayed by the ifconifg command. This will be confusing since the Java class NetworkInterface will use the "eth0/1" names.
Settings are readonly since Niagara will not allow SI to configure TCP/IP settings at this time. Save button is disabled as expected.
Functionality of "TCP/IP Configuration View" appears correct (see NOTE 17 for more details).
12a) Modifying the "Host Name" from "localhost" to "npsdktest" and hit "Save".
Met with the following dialog:
Reboot 172.16.10.121?
The changes require that the remote computer at 172.16.10.121 be rebooted. Reboot now?
Selected "yes". The expectation is that the host name is changed to "npsdktest" once we reconnect.
On reboot we now show:
And upon reconnectin to the TCP/IP configuration I show that Host Name now reads "npsdktest".
12b) Modifying the "Hosts File" to remove the 10.99.0.191 and hit "Save", reboot.
After rebooting we show:
root@npsdktest:~# cat /etc/hosts 127.0.0.1 localhost
The hosts file in the TCP/IP Configuration is also updated with the appropriate values.
Notice: testing DNS/Gateway at this time since DHCP is in use.
12c) Changing Interface 2 IP address from 192.168.1.126/24 to 192.168.1.64/23, hitting "Save"
Upon reboot the eth1 adapter now shows:
12d) Changing Interface 1 from DHCP IP address to static '172.16.10.121' to '255.255.254.0' values.
12e) Changing Interface 1 from static IP address to DHCP values.
12f) Retesting 12d (DHCP -> Static)
12g) Modify "DNS domain" (now that we are using static) from "tridium2012.net" to "foo.net"
12h) Modify "DNSv4 Servers" from "172.31.64.12,172.31.64.11" to "172.31.64.11,172.31.64.12" (Just swap them) and hit "Save" The expectation is that /etc/resolv.conf will be updated to contain these values in a reversed order.
Re-setting TCP/IP configuration to use DHCP to confirm that /etc/resolv.conf, IP address return to previous values.
Verify that /etc/resolv.conf now contains:
Aside from the problems with DNS domain when using static IP, "TCP/IP Configuration" appears to be generally functional.
Moving on to Niagara Station functionality.
Will now validate Station npsdk functionality.
Connect to running Station "npsdk" with foxs, port 4911 - (1911 not running for this station).
Dialog created:
"Identity Verifiction"
"Niagara4" "Unable to verify host identiy" ...
This dialog is created because the foxs server is using previously generated self-signed certificate "tridium". Self-signed certificates must be explicitly accepted since mutual trust of signer can not be obtain.
Hit "Accept" to complete connection.
Enter credentials "admin/Niagara123".
Connection to Station successful.
Double-click on Station (npsdk)
View the following Summary Properties:
Notice that the 'Host' is using the IP address:
192.168.40.201/192.168.40.201
This is the address of the secondary adapter, not the primary adapter. This will lead to problems as the Niagara Station will report its IP as "192.168.40.201" to anyone who sends traffic to it on "172.16.10.117".
To correct this, you will need to specify the following property in BOTH NreLauncherLinux.cpp and JavaLauncherLinux.cpp:
Right-click the Station nav node and select "Spy". From the menu in the right view pane, select "systemProperites"
The station defines the following system properties:
Station system properties:
Expand "Station (npsdk)" in nav tree.
Expand "Config" Expand "Services"
"System Platform Service Plugin"
Double click on "Platform Services" view to open "Platform Service Container Plugin"
The following information is provided at this view:
All information appears to be correctly presented.
Open the "Platform -> Application Director" view to verify that no errors were printed when the System Platform Service, and its child services, were polled for the first time.
No errors are seen.
Now testing the setting of various items in this view that afford modification.
1a) "Locale"
Change the "Locale" item in "Platform Service Container Plugin" to a new value.
Current value is "en_US", change value to "en_GB".
Hit "Save".
Dialog created:
"Restart Now?"
"The changes will not take effect until the station is restarted." "Do you wish to restart now?"
Hit "Yes" to continue.
Navigate to the "Platform" -> "Application Director" to see the station "npsdk2" restart.
Verify that the Niagara Station restarts as expected.
Re-connect to the station (foxs 4911 - admin/Niagara123) and navigate to the "System Platform Service Plugin" view once more.
Verified that the "Locale" now reads "en_GB".
1b) "System Time"
Change the value of the "System Time" from 15:39 to 19:00 (or whatever value you want).
Hit "Save".
Hit "Refresh".
The retains its assigned value.
Examine "Application Director" for any errors:
NOTE 14: Setting System Time through the System Platform Service view is functioning; however, the Application Director contains NsupportNpsdk output (Called what NSupportNpsdk::parsePlatTZ(America/New_York)....) that should be removed from production.
1c) "Date"
Change the value of the "Date" field from 06-Sep-2017 to something else (26-Sep-2107).
Hit "Save".
Hit "Refresh".
The retains its assigned value.
Examine "Application Director" for any errors, same as identifed above.
1d) "Time Zone"
Change the value of the "Time Zone" field from America/New_York (+0) to something else ("America/New_York").
Hit "Save".
Dialog created:
"Restart Now?"
"The changes will not take effect until the station is restarted." "do you wish to restart now?"
Navigate to the "Platform" -> "Application Director" to see the station "npsdk2" restart.
Verify that the Niagara Station restarts as expected.
Re-connect to the station (foxs 4911 - admin/Niagara123) and navigate to the "System Platform Service Plugin" view once more.
The Time Zone still reads its original value.
NOTE 15: Setting Time Zone through the System Platform Service view does not appear to be functioning. This behavior is likely the same problem as NOTE 4.
1e) "Engine Watchdog Policy"
Change the value of the "Engine Watchdog Policy" from "Terminate" to "Log Only".
Hit "Save".
Hit "Refresh".
Verified that the "Engine Watchdog Policy" is correctly set to "Log Only".
Examine "Application Director" output for any errors. None seen.
Set "Engine Watchdog Policy" back to "Terminate" -> "Save" -> "Refresh".
"Engine Watchdog Policy" is functioning as expected.
1f) "Engine Watchdog Timeout"
Change the value of the "Engine Watchdog Timeout" from 3m to 5m.
Hit "Save".
Hit "Refresh".
Verified that the "Engine Watchdog Timeout" is correctly set to "5m".
Examine "Application Director" output for any errors. None seen.
"Engine Watchdog Timeout" is functioning as expected.
1g) "Engine Station Auto-Save"
Change the value from "Engine Station Auto-Save" from [X] to [ ].
Hit "Save".
Hit "Refresh".
Verified that the "Engine Station Auto-Save" is correctly set to [ ].
Re-enabled "Engine Station Auto-Save" -> "Save" -> "Refresh".
Verified that the "Engine Station Auto-Save" is correctly set to [X].
Examine "Application Director" output for any errors. None seen.
"Engine Station Auto-Save" is functioning as expected.
1h) "Engine Station Auto-Save Frequency"
Change the value from "Engine Station Auto-Save Frequency" from 1h to 24h.
Hit "Save".
Hit "Refresh".
Verified that the "Engine Station Auto-Save Frequency" is correctly set to 24h.
Examine "Application Director" output for any errors. None seen.
Set back to 1h -> "Save" -> "Refresh".
"Engine Station Auto-Save Frequency" is functioning as expected.
1i) "Station Auto-Save Versions to Keep"
Change the value from "Station Auto-Save Versions to Keep" from 3 to 1.
Hit "Save".
Hit "Refresh".
Verified that the "Station Auto-Save Versions to Keep" is correctly set to 1.
Examine "Application Director" output for any errors. None seen.
Set back to 3 -> "Save" -> "Refresh".
"Station Auto-Save Versions to Keep" is functioning as expected.
1j) "Send Thread Dump to Console"
Right click the "PlatformService" node in the nav tree to bring a context menu. Select "Actions" -> "Send Thread Dump to Console". Verified that Java Thread Dump is printed to "Platform -> Application Director".
1k) "Request Garbage Collection"
Right click the "PlatformService" node in the nav tree to bring a context menu. Select "Actions" -> "Request Garbage Collection". Verify no errors occur.
1l) "Restart Station"
Right click the "PlatformService" node in the nav tree to bring a context menu. Select "Actions" -> "Restart Station". Verify no errors occur.
Dialog created:
"Restart Station"
"Are you sure you wish to invoke 'Restart Station'?" -> "Yes".
Verified through the "Platform -> Application Director" that station "npsdk" restarted without error.
"TCP/IP Platform Service Plugin".
This functionality has already been tested by above section on "TCP/IP Platform Configuration". The same notes apply here as well as both sections use the same code paths in N4.
"License Service Plugin"
This functionality has already been tested by above section on "License Manager". The same notes apply here as well.
"NTP Platform Service"
The following information is displayed by this view:
Examine the "Platform -> Application Director" for errors that may have occurred loading this page, none seen.
The current values in ntp.conf are:
So the values loaded look appropriate.
4a) "Enabled"
Toggle the "Enabled" state of NTP from "false" to "true".
Hit "Save".
Dialog created:
"Reboot Now?"
"For the NTP changes to take effect, the host must be rebooted." "Reboot now?"
Selected "No" to defer reboot.
Hit "Refresh".
Examine "Platform -> Application Director" output for any errors that occurred during save. None seen.
Check for update value in ntp.conf:
Save appears successful.
4b) "Sync Local Clock to NTP"
Toggle the "Sync Local Clock to NTP" state from "true" to "false".
Hit "Save".
Defer reboot for now to more quickly test changes.
Examine "Platform -> Application Director" output for any errors that occurred during save. None seen.
Check for update value in ntp.conf:
Save appears successful.
4c) "Use Local Clock as Backup"
Toggle the "Use Local Clock as Backup" state from "false" to "true".
Hit "Save".
Defer reboot for now to more quickly test changes.
Examine "Platform -> Application Director" output for any errors that occurred during save. None seen.
Check for update value in ntp.conf:
Save appears successful.
4d) "Generate NTP Statistics"
Toggle the "Generate NTP Statistics" state from "true" to "false".
Hit "Save".
Defer reboot for now to more quickly test changes.
Examine "Platform -> Application Director" output for any errors that occurred during save. None seen.
Check for update value in ntp.conf:
Save appears successful.
4e) "Server"
Add a "Time Server" with the following settings:
Hit "Save".
Defer reboot for now to more quickly test changes.
Examine "Platform -> Application Director" output for any errors that occurred during save. None seen.
Check for update value in ntp.conf:
Save appears successful.
4f) Apply settings and reboot.
Set the following items:
Hit "Save".
Hit "Yes" to reboot the platform now.
Use ssh to print the current NTP settings:
Settings appear to be saved as requested.
Query the process table looking for NTP
So it appears the NTP has been successfully launched; however, the absence of the /home/niagara/etc/ntp.conf command line option makes me think ntpd is always running. Will trying disalbing NTPD in the Platform Service and rebooting to see if the ntpd service is no longer running.
Diabling NTP through the platform service:
And manually rebooting device through the Application Director....
After reboot:
root@npsdktest:~# ps -ef | grep ntpd | grep -v grep ntp 658 1 0 18:30 ? 00:00:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:109
This confirms that the NTP Platform Service is not being utilized.
NOTE 17: The platform is not respecting the contents of the /home/niagara/etc/ntp.conf file. If intending to use Niagara to control NTP, the NTP daemon on this platform should respect the "ntpEnabled" flag of this file and it (ntpd) should use the configuration file generated at /home/niagara/etc/ntp.conf for time servers. If NTP is not meant to be configured by Niagara, please remove the "
" entry from the default platform.bog file for this platform.
"CertManagerService"
Functionality already confirmed in testing of "Certificate Manager" under "Platform" node.
"SerialPortPlatformServiceNpsdk"
Double click on the "Serial Port Platform Service Npsdk" under "Platform Services".
Examine "Platform -> Application Director" output for any errors. None seen.
Service "Property Sheet" shows the following information:
SerialPortPlatformServiceNpsdk (Serial Port Platform Service Npsdk) | - Platform Service Description OS Serial Communications | - COM1 none | | - Owner none | | - OS Port Name /dev/tty04 | | - Port Index 0 | | - COM2 | | - Owner none | | - OS Port Name /dev/tty05 | | - Port Index 1
All items appear correct.
Adding a "raw" (modbus) serial driver to see if locking mechanisms behave as expected.
Open "Software Manager" under "Platform".
Locate and "Install" the following modules (if not already)
"basicDriver-rt" "modbusAsync-rtb" "modbusAsync-wb" "modbusCore-rtb" "modbusCore-wb"
Hit "Commit". Verify that modules are installed without error.
Back under the station, open "Drivers" in the Station -> Config -> Drivers in the nav tree.
Click "New".
Select "Modbus Async Network". (1)
Hit "OK".
Use default "New" parameters, Hit "OK".
Verify that "ModbusAsyncNetwork" is added to "Driver Manager" -- status is likely "No port selected for Modbus communication". If not license, update license to include this feature and re-start station.
Right-click on "ModbusAsyncNetwork" under "Drivers" in nav tree and select "AX Property Sheet."
In the property sheet, locate and expand the "Serial Port Config" item (near bottom).
In the "Port Name" field, enter COM1 (from above).
Hit "Save".
Verify "Status" of "ModbusAsyncNetwork" transitions to "{ok}" and no errors occur.
Re-open the "SerialPortPlatformServiceNpsdk" view -- verify that the owner of COM1 now displays "ModbusAsyncNetwork".
Go back to "AX Property Sheet" of "ModbusAsyncNetwork".
Replace "COM1" in "Port Name" with "COM2". Hit "Save".
Verify "Status" of "ModbusAsyncNetwork" still "{ok}" and no errors occur in Application Director output.
Re-open the "SerialPortPlatformServiceNpsdk" view -- verify that the owner of COM1 goes back to "none" and that COM2 now displays "ModbusAsyncNetwork".
Now place "COM5" (or a port that does not exist in SerialPortService) in "Port Name" and hit "Save".
Verify that the "ModbusAsyncNetwork" has transitioned to "{fault}" with message "Could not enable Modbus serial communication (javax.baja.serial.PortClosedException)"
Verify that Application Director has numerous errors, starting with "niagara>SEVERE [19:04:17 26-Apr-17 UTC][SerialHelper] 'COM5' not a valid comm port."
Switch "COM1" back into "Port Name" and "Save".
Verify status returns to "{ok}".
6a) "Baud Rate"
Under "Serial Port Config", change "Baud Rate" for "COM1" from "Baud9600" to "Baud115200". Hit "Save". Verify no errors in "Platform -> Application Director".
Repeat process for other baud rates, verify no errors.
6b) "Data Bits"
Under "Serial Port Config", change "Data Bits" for "COM1" from "Data Bits8" to "Data Bits7". Hit "Save". Verify no errors in "Platform -> Application Director".
Repeat process for other data bits, verify no errors.
6c) "Stop Bits"
Under "Serial Port Config", change "Stop Bits" for "COM1" from "Stop Bits1" to "Stop Bits2". Hit "Save". Verify no errors in "Platform -> Application Director".
Repeat process for other stop bits, verify no errors.
6d) "Parity"
Under "Serial Port Config", change "Parity" for "COM1" from "None" to "Space". Hit "Save". Verify no errors in "Platform -> Application Director".
Repeat process for other parities, verify no errors.
6e) "Flow Control Mode"
Under "Serial Port Config", change Flow Control Mode from:
[ ] RtsCtsOnInput [ ] RtsCtsOnOutput [ ] XonXoffOnInput [ ] XonXoffOnOutput
to
[X] RtsCtsOnInput [ ] RtsCtsOnOutput [ ] XonXoffOnInput [ ] XonXoffOnOutput
Hit "Save". Verify no errors in "Platform -> Application Director"; however, the Application Director shows
This is a bug in the Niagara Framework that has been resolved in 4.4. It also occurs on Tridium JACEs. Please disregard the error.
Uncheck all "Flow Control Options" and "Status" will return to "{ok}"
Repeat steps 6a - 6e for each COMX device to verify correct (or known errata) behavior.
"Serial Port Platform Service" appears to be functioning as expected.
"BacnetMstpPlatformServiceNpsdk"
Open "Software Manager" under "Platform".
Locate and "Install" the following modules (if not already)
This will test that the basics of MSTP are functional (lock files and such)
Make sure your license has "mstp" and "bacnet" if it does not already.
Add a new "BacnetNetwork" network to the Niagara Station's driver nav node.
Add a new "MstpPort" (under Network Ports) to the "Network" under the Bacnet Comm nav node.
Double click on the MstpPort you just added and view the following properties:
Change network number to '2' Change Enabled to "true"
Hit 'Save'
Verify that no Application Director errors are present.
At the SSH prompt, verify that the appropriate lock file has been created:
And that the lock file has the appropriate information:
Navigate to the Serial Port Platform Service and verify that the owner of the COM1 port has been updated to 'mstp1'
Toggle the enabled state back to 'false'
Verify that the lock file is destroyed and the Serial Port Platform Service owner is updated ('none')
Next, move on to a simulation of an "Engine Watchdog Timeout" by purposefully locking up the "Engine" thread.
Connect to "Station (npsdk)" in the nav tree with "admin/Niagara123".
Navigate to "Config" -> "Platform Services".
In the "Platform Service Container Plugin":
Verify that the "Engine Watchdog Policy" is set to "Terminate". Verify that the "Engine Watchdog Timeout" is set to "1m" 1 minute.
In the Workbench "Pallete", locate the "program" module.
Drag an instance of "Program" under the "Config" node in the Station's nav tree.
Right click the "Program" to bring up a menu. Select "Views -> Program Editor".
Select the "Slots" tab.
Right-click on empty area and select "Add Slot"
Name the slot "lockupOnExecute"
Type the slot as "baja" "Boolean"
Select the flag "Execute on Change".
Hit "OK".
Copy the following program code into the "Edit" view:
Hit "Save and Compile" (Disk + Hammer Button).
Now, when we want to simulate a EWT:
Double click the "Program" to bring up the "Property Sheet". Set the "lockupOnExecute" boolean from "false" to "true". Hit "Save" The next time the "Program" is executed, an EWT will occur (it is execute on change so it will happen immediately).
Navigate to the "Platform -> Application Director" to watch the output of the robot:
Verify that EWT (Engine Watchdog Timeout) occurs after ~1m (sometimes up to 1:30) and the policy "Terminate" is enforced by the Niagara Daemon. The following is seen in the "Platform -> Application Director" view:
The station should "Terminate" (NOTICE: If "Restart on Failure" is selected in "Application Director", the station will auto-restart)
Verified that station "npsdk" terminated and restarted as expected.
Repeat the above steps, instead selecting "Log Only" for "Engine Watchdog Policy" under "Platform Service".
Verified that the Niagara Daemon only "Logs" a Watchdog Timeout rather than "Terminating" the station.
See also in "Platform Administration" -> "View Daemon Output":
Repeat the above steps, instead selecting "Reboot" for "Engine Watchdog Policy" under "Platform Service".
Verified that the EWT occurs but the platform does not reboot (as previously noted for other items)
See also in "Platform Administration" -> "View Daemon Output":
And ssh output:
This completes functional testing of the NPSDK port.
Last updated