Knowledge Center

Visualizing Dynamic Status

This article describes how to pair MissionView Display with custom Data Flows (NetAcquire Data Flow Option) to achieve event-driven diagnostics and status. The examples presented here demonstrate how to configure data flows for use by MissionView Display and set up drawings to take advantage of these data flows. The contents of this tech note and accompanying material will show you how to,

  • Obtain status from entities or devices
  • Process status to derive useful values

Dynamic Status

Entities that provide dynamic status appear on the Dynamic Status page. These values can be published and read by MissionView.

We’ll demonstrate gathering the status of a serial channel. In our example we’ll be using a new data flow to monitor and gather information from the server. Lets gather the status and bytes in of a serial channel and publish those.

Serial Status Published

First we’re going to need a Timer to drive our polling, then a Computation Set. A DeviceDynamicStatus computation can read the text value from the Status field (seen above in the image). We’ll use a Lookup to turn that text into an integer we can better use in MissionView Display, then publish the value. Here’s the entire flow,

Timer

The timer provides us the period for polling. Some entities provide relatively frequent updates, but it’s usually not recommended to go faster than about 4Hz.

Computation

To access the serial channel, we’ll add a DeviceDynamicStatus computation for each field we want. For instance, for the Status field we are triggered by the timer and gathering the Status for Serial Channel 0 (sio/0/in0), which means we’ll get the Receive (Rx) status.

Lookup

Perhaps we’re interested in the channel losing lock. The status may be values like,

  • Locked
  • Flywheeling
  • No Data
  • … many others

We can convert values using a Lookup by inputting the status from the computation above and looking for the “Locked” text to mean true, which we’ll output as a one (1). We’ll set a default of zero (0) to mean the channel is not locked and is on some other state.

Publisher

Finally, we publish the converted value. While I have used subscription names to identify the field, this is not the only way to categorize subscriptions. For instance, if you published the status of various entities or channels, you could use Domains to separate the names, such as,

  • serial/0/rxstatus, serial/0/bytesin – or –
  • serial/0/rx/status, serial/0/rx/bytes
  • etc.

Color

Since we’re going to some data visualization, perhaps we also want to change the display along with the locked state. We can calculate and output a color value that we could use in a MissionView drawing. I’ll output the color as a hex RGB value, which is commonly used on the web as well.

The lookup here converts a one to green and a 0 to red. The evaluator accomplishes the same task, although is simpler to configure and can handle multiple values all within a single evaluator. Now let’s see what we can do with this data in MissionView Display.

MissionView Display

We’ll visualize and capture in a couple different ways, in an Alarm and in a drawing.

Alarm

We might want to see and log when we lose lock on our serial channel and we can do that with an alarm. From the main menu, open the Manage… menu from Alarms.

The click Add to add a new Alarm. Use the tree to find your server and the status publication we turned into the integer, in my case it’s example/ch0RxStatusConverted.

Select the Comparison Limit Type since we want to compare to see if the state is a one or zero. Now I’ll configure the Alarm’s format a bit. I’m also going to enable Latching.

Click Commit to apply this Alarm. You can save the alarm configuration from the File menu, but MissionView will prompt you if you forget. Now lets open the Alarms -> Display Alarms table.

Now we can see the state of the alarm. When my channel goes out of lock, I get an obvious display.

Latching

Latching means that the Detected state will remain in place until someone acknowledges the alarm by clicking the row’s Latched cell in the table. If the channel is still not locked, the state will return immediately.

Drawing

We can also use a drawing to visualize the state, including the text. I’ll use a simple drawing with an LED and a text field, with a backing panel to house them.

Right-click the LED to configure, then we’ll right-click on the Fill Color field to have it use a Publication.

Now click the ellipses and connect to the color publication, in my case:

The value should connect and update and we’ll see this for my non-locked state:

Now we’ll right-click the text and assign the text publication, in my case:

And the text will update:

Next Steps

This article covers some basics to using subscriptions from dynamic status. Next we’ll look at more advanced options for use and display.

Is NetAcquire a good fit for your project?

Our applications engineers will discuss your needs and offer advice and pricing for the solutions we can provide.
NetAcquire provides quick responses to phone and email queries during Pacific Time business hours.

Call us toll free: 888-675-1122 or email [email protected]

For Employment, Business Affairs and other NetAcquire Contacts, CONTACT US

NetAcquire Corporation