JADE Application Development Environment

Full-featured, low-code industrial automation


Top

Overview

How It Works

Features

Plugins

Documentation

Overview

JADE is a better way to quickly build custom applications using highly configurable, communicating plugins - without writing code

A Simple JADE Application


Stop reinventing the wheel and avoid the pitfalls of traditional application development


  No More Buggy Code
finally a battle-tested solution that just works (without compromising capability)
  No More Unmaintainable Code
plugins are easy to integrate and deep configuration is at your fingertips
  No More Missing Features
get rich, robust capabilities (and then some) right out of the box
  No More Clunky Interfaces
enjoy thoughtful, capable, highly configurable interfaces
  No More Missing Deadlines
build beautiful, sophisticated systems in hours (or less)
  No More Lack of Support
deep, built-in documentation and access to our senior engineers


Start with rich features and battle-tested capabilities right out of the (proverbial) box


  Deep Configuration
intelligent plugin design exposes tons of features to solve challenging problems
  Simulation Mode
run your application before ever testing against live hardware
  Built-in Logging
built-in, configurable logging renders deep debug insight when you need it
  Plugin Communication
plugins can both subscribe to one another and send control messages
  Expression Language
a rich expression langauge enables sophisticated, dynamic run-time capabilities
  Variable Spaces
store and transform incoming data and plugin state wherever helpful
  Built-in Documentation
quickly unpack any detail of any plugin capability, or learn about JADE in general
  Pro Dev Features
syntax highlighting & validation, auto-complete, hover documentation, and more
  User Interfaces
all plugins have interfaces (at least for debug) but displaying them is optional of course

How It Works

JADE makes it easy to compose, save, and run custom applications



Step 1: Add Plugins



Step 2: Configure Plugins



Step 3: Run Your Application

Features

Tons of features to meet your custom application development needs

JADE Manager

reports

Create, manage, save, and run JADE applications.

  • Create and save as many applications as you like
  • Run multiple applications at a time
  • Run plugins in parallel or sequentially
  • Install new plugins
  • Update environment preferences
  • Access rich, built-in documentation

JADE Editor

reports

Configure how plugins behave and communicate.

  • Syntax highlighting
  • Syntax validation
  • Auto-complete
  • Hover documentation
  • Zoom In/Out
  • Code collapse
  • Undo/Redo
  • Bird's Eye View
  • Detailed error messages

JADE Worker

reports

The supervisor for a running JADE application.

  • Shut down plugins
  • Run plugins
  • Open plugin interfaces
  • Close plugin interfaces
  • View running plugin configurations
  • View run-time errors
  • Clear run-time errors

JADE Plugins

reports

Plugins can be as simple or as sophisticated as needed.

  • Plugins are highly configurable and run independently
  • Plugins can communicate
  • Plugins have interactive interfaces
  • Plugins already support 1000s of devices
  • Plugins have deep, built-in documentation
  • Plugins support expressions
  • Plugins support variables
  • Plugins support programming points

JADE Documentation

reports

Complete documentation for JADE and all installed plugins.

  • Comprehensive navigation for all documentation
  • Framework docs for getting started
  • Full expression language syntax coverage
  • Complete list of supported functions
  • Filterable plugin configuration option descriptions
  • Interactive sample configuration editor showing plugin defaults
  • Environment preferences documentation
  • Plugin messaging documentation
 

Plugins

Plugins can be anything from a simple data publisher to a full-blown control system

More plugins are available, and you can even

General Purpose Plugins

These plugins are designed to cover many of the common features required by most applications.


Multiple Charts Plugin

Multiple Charts Plugin

The Multiple Charts plugin displays data in up to 20 charts. Only the number of charts configured will be displayed. This plugin subscribes (see configuration for subscribesTo) to any number of other publishing plugins, and can peform computations against that data before plotting to charts.

Charts are highly configurable including the number of plots per chart, size, position, and many other display properties. As with many plugins, this plugin supports the JADE Expression Language in many places, such as allowing computations using subscription data when defining plot data.

For more information please reach out to Sixclear or check out the plugin documentation.

Relay Manager Plugin

Relay Manager Plugin

The Relay Manager plugin provides control over any number of relay boards, each with any number of banks, where each bank holds any number of relays.

Boards, banks, and relays can all be semantically named and then ordered into named sections for access on the user interface.

Within a given section, enable all and disable all buttons allow for quickly enabling (On) or disabling (Off) all relays with that section.

Initial states can be configured for each relay to be set on launch and relays can optionally be returned to a specified state on shutdown.

For more information please reach out to Sixclear or check out the plugin documentation.

Serial Publisher Plugin

Serial Publisher Plugin

The Serial Publisher plugin communicates with a device over a serial port and publishes a configurable, transformable data set for consumption by other plugins, as well as logs a separately configurable format of the data.

Configuration options include full serial port configuration, serial communication initialization sequence, simulation mode, expression handling (including for simulation mode), regular expressions for response parsing, data publishing, and data logging.

The Serial Publisher user interface is exceedingly simple by design and is often used simply for debugging (ex. validating published and logged data format are as desired). The top section shows the latest published message and the bottom section shows the data logged to file. Again, both formats are essentially completely configurable and can use any data acquired from the serial port.

For more information please reach out to Sixclear or check out the plugin documentation.

State Machine Plugin

State Machine Plugin

The State Machine plugin is a configurable programming point by supporting a state machine implementation in configuration. States generally take various actions and define logic for if and how to transition to other states. States can perform computations, send messages to other plugins (publish or point-to-point), and even issue command line operations. State machines can also subscribe to other plugins in order to be reactive to system state.

The user interface displays the received subscription message (top left), the aggregate messages (bottom left, messages under instance name top level keys), and the data space of computations performed (right).

For more information please reach out to Sixclear or check out the plugin documentation.

Subscriber Plugin

Subscriber Plugin

The Subscriber plugin subscribes to any plugina and expects JSON messages. It displays both the Latest Message and a Merged Messages object. The plugin stores messages in the Latest Messages object under keys equal to the corresponding plugin instance names of the published data. For system information (ex. when subscribing to __PLUGIN_INFO__), the unique worker responsible for publishing the data is used.

The Subscriber interface is simple by design, containing two strings: one for the Latest Message (displayed on top) and one for the Merged Messages (displayed on the bottom). These are updated as messages are received, and a splitter provides the ability to change how much of each JSON object is shown at a given time. May of the other "subscribing" plugins listed use similar features to display incoming and aggregate data.

For more information please reach out to Sixclear or check out the plugin documentation.

TCP Server Plugin

TCP Server Plugin

The TCP Server plugin hosts configurable TCP connections to which networked client computers can connect and communicate with running JADE systems. Clients open a connection to the hosted IP address and port as defined in the TCP Server configuration. Multiple simultaneous connections are supported and handled concurrently, and the maximum number of connections allowed is configurable.

Like the Subscriber plugin, the TCP Server plugin subscribes to any other plugins and aggregates their data accordingly. Connected clients can then send requests to the TCP Server to perform actions such as fetching data from the TCP Server, and having control messages forwraded to the Worker or any other plugin. This plugin may be used to remotely control JADE systems. Notably, the Worker accepts control messages for launching and shutting down plugins (and more), and plugins define their own control messages according on their implementations.

For more information please reach out to Sixclear or check out the plugin documentation.

XY Chart Plugin

XY Chart Plugin

The XY Chart plugin displays data in time-series chart. A plot legend at the top provides the ability to show/hide plots and change colors if desired, however those parameters and many other display are all available in configuration. All plots are normalized into the range [0, 1] for display on this single chart based on the plot's `min` and `max` settings. The `min` and `max` values are shown next to the plot's current value in the plot legend so this context is always visible.

This plugin subscribes to any number of other publishing plugins, and can peform computations against that data before plotting to charts (see configuration for `subscribesTo`). As with many plugins, this plugin supports the JADE Expression Language in many places, such as allowing computations using subscription data when defining plot data. See the configuration documentation below and/or the example editor for further details.

For more information please reach out to Sixclear or check out the plugin documentation.

Manufacturer-specific Plugins

These plugins are designed to work directly with specific devices, providing all the customization points you'll need to integrate into your projects.


Basler Camera Plugin

Basler Camera Plugin

The Basler Camera plugin provides control over any number of Basler cameras. Each camera is highly configurable including file and folder storage formats, file size limitation, files per folder limitation, the ability to show/hide a real-time viewer and record AVI video files, and much more. Diagnostics are also optionally viewable for each camera instance showing acquisition rates, bandwith statistics, disk metrics, and other performance characteristics. The Basler Camera plugin also supports control messages from other plugins.

For more information please reach out to Sixclear or check out the plugin documentation.

Bellamare Flight Control Plugin

Bellamare Flight Control Plugin

The Bellamare Flight Control plugin provides controls and display for operating Bellamare Remoted Operated Towed Vehicles (ROTVs, subsea vehicles with many research and commercial applications).

Like all JADE plugins, this plugin is highly configurable, where everything from plots on the main graph to motor control settings, to pitch, roll, and rudder actuator settings are all flexibly managed.

Automated control for depth-keeping, altitude-keeping, undulation, and automatically engaging the rudder for resurface safety are all out of the box. As shown, the interface pulls out key, real-time telemetry measures and displays the current position of the vehicle relative to the sea surface and sea floor.

For more information please reach out to Sixclear or check out the plugin documentation.

Galil Control Plugin

Galil Motion Controller Plugin

The Galil Control plugin controls one or more Galil motion controllers (only one section shown here) while providing deep configuration over initialization, polling, publishing, and how data is rendered in the interface. Initialization and shutdown procedures manage controller start and end states. Global operations which compose any number of Galil commands may be composed and exposed for access in the menu.

Polling configuration allows for defining what information should be periodically fetched from the controller and displayed in a configurable format on the interface. Custom command sections can also be configured for easy access, while a general command line is provided for full control. Furthermore, this plugin has configurable publishing so that other plugins may use the data collected from the controller in real-time. All commands sent are logged so that all interaction with the controllers can be later analyzed.

For more information please reach out to Sixclear or check out the plugin documentation.

NI DAQmx AI Thermocouple Plugin

NI DAQmx AI Thermocopule Plugin

The NI DAQmx AI Temperature Thermocouple plugin acquires data from one or more thermocouple channels spanning one or more devices with options to display, log, and publish data.

All of the core data acquisition features are exposed including channel definition, sampling, buffer control, triggering, logging, and more.

Data can be published with an averaging or last value strategy, and several key points of sampling information are provided as variables to build up the desired publish data object.

Publishing can of course be disabled if, for example, logging the data to disk (ex. TDMS) is all that is required.

For more information please reach out to Sixclear or check out the plugin documentation.

NI DAQmx AI Voltage Plugin

NI DAQmx AI Voltage Plugin

The NI DAQmx AI Voltage plugin acquires data from one or more voltage channels spanning one or more devices with options to display, log, and publish data.

All of the core data acquisition features are exposed including channel definition, sampling, buffer control, triggering, logging, and more.

Data can be published with an averaging or last value strategy, and several key points of sampling information are provided as variables to build up the desired publish data object.

Publishing can of course be disabled if, for example, logging the data to disk (ex. TDMS) is all that is required.

For more information please reach out to Sixclear or check out the plugin documentation.

SPLixel LED Plugin

SPLixel LED Plugin

The SPLixel LED plugin controls both the color and blink delay of an SPLixel multicolor LED by running a set of rules. This plugin can subscribe to other plugins and the rules can use any subscription data to determine the color and blink delay, if any.

Rules are configured in an array of objects where each object represents a rule. Rules run in the order specified in the array each time subscription data arrives. Each rule specifies which led to address (multiple are allowed by the SPLixel platform), a blink object with enable and delay elements to determine the blinking state, a color for the led specified as RGB, and a condition which determines whether the rule applies. The first rule whose condition evaluates to true will apply.

The interface shows the latest received message, aggregrate messages (with each under instance name top level keys), and current led color, and the blink delay (0 means not blinking).

For more information please reach out to Sixclear or check out the plugin documentation.

Accelerate your industrial automation with JADE