• Added hysteresis to garbage collection to eliminate GC storming
  • Fixed web server memory leak
  • Enhanced command line RM/DEL command to override confirmation on wildcard use
  • Allow multiple commands on a single command line using separators like ‘;’
  • Implemented command line ‘|’ piping capability
  • Enhanced CAT command with HEAD and TAIL usage to support piping
  • Implemented command line conditional execution && and || syntax
  • Enhanced GC -M and GC -B memory analysis to report Java class information
  • Applications can optionally log to external SYSLOG server
  • Hostname in SYSLOG report includes jrS/N Birthname
  • Corrected direct JMP connection not forwarding console output
  • Corrected direct JMP connection File Read failure
  • Fixed issue with Java Sockets SoTimeout exceptions
  • Improved inter-process messaging to avoid queue assertions
  • Added command line real-time network sniffer with filtering
  • Added Email queue management
  • Corrected REGEX matching issue
  • Eliminated memory leak with JSON decode
  • Fixed Web Authentication. No longer gets stuck in loop.
  • Expanded command line history to 200 commands
  • Eliminated dormant message queue issues
  • Fixed FTPClient class issue with retrieving data
  • Corrected buffer overrun by command line parameters
  • Eliminated null pointer issue in network race condition
  • Enhanced MANIFEST to use optional database
  • Prevent illegal IP address settings blocking network use
  • Corrected buffer overrun caused by security scanners
  • Eliminated Resource Deadlock after assertion

JANOS 2.3 Release February 2, 2023

The release fixed an issue with the Ethernet becoming "locked up". The JNIOR could become unresponsive while servicing the network on busy networks.

Build 1.0

  • Corrected memory issue with KILL and message loop use
  • Corrected garbage collection issue with static classes in the JVM
  • Corrected memory issue with serial port buffer resizing
  • Delayed Java Thread startup to insure completion of initialization
  • Added KILL -A feature to terminate all applications

 

Initial (January 25 2023)

  • Initialized the Working Directory for command line scripting
  • Increased network frame buffers to improve throughput
  • Increased number of available application watchdogs from 8 to 16
  • Added WDT_SILENT so watchdogs can be used to schedule programs and not logged as triggered
  • Updated PS process listings to display pending watchdogs as scheduled execution
  • Improved PING statistics
  • Eliminated assertion in loading classes using InvokeDynamic
  • Eliminated memory leak in JVM class caching
  • Corrected IO signature performance with IO changes
  • Corrected TAB auto-complete issue with second parameter
  • PHP Registry lists now sorted by name
  • Eliminated chance of socket deadlock that would require a hard reboot
  • Added check for network during boot logging to avoid reboot loop

JANOS 2.2 Release June 28, 2022

This release was issued to support manufacturing and component changes forced by supply chain issues. Because of this, an update to the OS was required to handle this change. Units made June 22nd, 2022 or later will NOT be able to roll back to earlier version of JANOS.

  • Corrected bug in creating multidimensional arrays
  • Improved DEFLATE compression performance with binary files
  • Corrected issue with '%' sign when logging to the syslog
  • Fixed dropped serial character when port is closed
  • Added experimental debugging tools

JANOS 2.1.1 Release December 15, 2021

  • This release was issued to support manufacturing and component changes forced by supply chain issues and COVID

JANOS 2.1 Release August 10, 2021

All New Help system. Use the [Help Search] link in the lower right on the JNIOR Web UI.

  • Eliminated external SYSLOG Server related memory leak
  • Corrected Regex issue with the OR operation
  • Corrected PHP ereg() and eregi() functions
  • Implemented a greatly expanded Help System
  • Added PDF MIME type to the WebServer and Email systems
  • Corrected JRMON latched input [R]eset command, no longer affects relays
  • PHP read file access expanded to include ZIP virtual folders
  • Corrected PHP issues with JSON arrays
  • Corrected Order of Precedence issue with PHP mathematical expressions
  • Corrected the operation of Regex '*' and '+' quantifiers when used following a group
  • Corrected RENAME behavior when attempting to alter case of a filename
  • Enabled PHP logical string comparisons ==, !=, <, <=, >, and >=
  • Enhanced security for JANOS-Session-Id cookies
  • Corrected JANOS-Session-Id handling when multiple cookies are present
  • Improved non-volatile aspect of command line history
  • Corrected issue with network capture completion
  • Fixed issue introduced in v2.0 with IpConfig/Allow
  • Corrected issue with using EXIT in the Console tab of the WebUI
  • Added SHA256 (SHA2) to the MANIFEST database
  • Fixed issue resulting in blank Registry keys being displayed
  • Introduced new expanded Help System

JANOS 2.0 Release March 4, 2021

  • Improved serial diagnostics during boot
  • Added DST rules for New Zealand timezones
  • Added File Sharing. Disabled by default
  • Logs prior Registry key values along with changes
  • Enabled NetBIOS name resolution and disabled LLMNR
  • Allow product "Birthname" such as jr817120068 to be always valid in name resolution
  • Corrected Websockets login issue
  • Fixed issue with HTML Email content
  • Added SHA384 and SHA512
  • Added text form of IP address to certificate to appease Microsoft IE
  • Enhanced Registry key settings to inform as to reboot requirements
  • Improved Email error reporting
  • Added Galois/Counter Mode (GCM) to TLS security suites
  • Removed legacy Registry editor
  • JANOS renews its own self-signed certificates
  • Added JSON support to PHP
  • Added Command Line text editor
  • Added Elliptic Curve TLS suites
  • Added BAT file enhancements and scripting support
  • Added the ability to retrieve files from remote servers to JRUPDATE
  • IP address filtering overridden by SAFE MODE
  • Add capture filter information to pcapng capture file
  • PHP scandir() changed to return absolute file path
  • Issue with /etc folder content in scandir() corrected
  • Corrected issue with nested PHP foreach loops
  • Added PHP date and time formatting function date()
  • Console command line history search and selection enhancements
  • Added PING Flood Mode and addressing validation option
  • Corrected issue with ZIP/JAR decompression failing with some large binary files
  • Added support for the standard loopback address range
  • Default WebServer/Path is now /flash/www/config allowing relocation of the default configuration pages
  • Corrected Registry issue with of Type 10 temperature sensors
  • Batch parameter %0 now returns the command from the command line
  • Corrected runtime issue with PHP replacing existing array content
  • Addressed differences in Linux based terminal sessions
  • Extended the ECHO command for use in scripting
  • Added JMP Protocol port for use in defining capture filters
  • Added JMP port and BuildTag to Beacon protocol
  • Corrected PHP @strrpos()@ and syntax shortcomings
  • Enhanced ARC/ZIP/JAR command
  • Improved compatibility with Linux terminal emulators

JANOS 1.9 Release February 3, 2020

Release Notes

We have released JANOS v1.9 which has several changes and bug fixes. Most notably with TCP packet generation. While it is not wrong to send data in multiple TCP packets, many devices incorrectly implement TCP clients and fail when this case arises. This version adjusted the release of socket data to reduce the chances that a message might be split across separate TCP packets. This had been a recent issue with some MODBUS client devices.

  • Added support for Reverse LLMNR allowing network scanners to label IP addresses with hostnames
  • Adjusted the release of socket data to reduce the chances that a message might be split across separate TCP packets
  • Corrected Sockets race condition that caused occasional reception delays and blocking
  • Fixed the incorrect signed display of large input counter values in JRMON and JMP Protocol
  • Adds a BEACON announcement in the event of an IP conflict
  • Improved NONCE management eliminating possible issues in the presence of port scanners
  • Eliminated chance of buffer overrun occurring in FTP transfer
  • Beacon REBOOT now works in all cases
  • Eliminated potential difficulty in obtaining network capture file

JANOS 1.8 Released June 17, 2019

Release Notes

We have released JANOS v1.8 which adds the JMP Protocol. The JANOS Management Protocol (JMP) is essentially the JSON message interface utilized by JANOS Websockets. The JMP Protocol has been exposed on its own TCP/IP port. This encloses the JSON messaging in a JSON array along with the JSON Object length making reception of the messages easy. The JMP Protocol will be used by the QSC Q-SYS JNIOR component.

  • Implements the JANOS Management Protocol JMP
  • Adds "Block" command to JSON interfaces
  • Web Server limits the effects of extremely slow connections.

JANOS 1.7.1 Released December 3, 2018

Release Notes

  • Watchdog no longer causes reboot from foreground execution
  • REGEX Alternation '|' has been corrected to properly work in Group
  • Corrected NULL Pointer write issue when a Group which employs alternation appears at the start of a REGEX expression
  • Resolved message pump memory issue relating to process termination
  • Expand the channel range for setOutputRelay() from 0-11 to 0-15
  • Corrected network capture filtering when an IP address is to be excluded
  • Supports networks using Jumbo Frames
  • Eliminated assertion associated with improper use of '%n' in System.out.printf.

JANOS 1.7 Released July 26, 2018

Release Notes

  • Added ability to load single CA Certificate to be supplied on TLS connection
  • Support TLS Client Certificate Verification on outgoing connections
  • Added legacy PKCS1 support for externally generated certificates
  • Corrected array issue with processing of deferred email transmissions
  • Corrected memory issue with TAB use on the Command Line

JANOS 1.6.5 Released May 22, 2018

  • Corrected FTP listing issue created by the v1.6.4 release
  • Corrected getRegistryList method memory leak
  • Corrected 412DMX light Flickering
  • Corrected 412DMX NAND Flash processing issue
  • Corrected FTP transfer restart issue

When creating a device in the Support Tool to send macros to, there is a predefined list of devices you can select from. If the device you are trying to send to isn’t listed, you can still send to it. The Doremi is one of these devices, and Cinema has preset commands implemented to send to it. This post should explain how to use these preset commands to communicate with it via Ethernet.

Note: This functionality requires that you have Cinema 6.0 or greater. Also, if you are unfamiliar with creating macro and device files, check out this post first to better understand how. 

To communicate with any device that doesn’t exist in the predefined device list, you need to choose the Raw Ethernet device from that list. This is placeholder that you can use to define whatever Ethernet device you are trying to connect to. In order to use the preset command for the Doremi, all you need to do is name the device “doremidcp”, and assign the IP of the Doremi and its Port number. Unless you changed the Doremi’s default port number, it should be 11730. With this the Doremi Device file should be good to save and publish.

Next you’ll want to link the device file in the Macro tab of the Support Tool, add and name a macro to the macro view, and then add and name an action to the action view. The Doremi has hex commands which it uses to let other devices send it commands. Cinema has been updated to convert 5 of these hex commands as preset strings for the Doremi commands: Play, Pause, Eject, Shutdown, and Reboot. In order to create an action in the action view for sending one of these Doremi commands, you’ll select the Doremi Device you created as the device in the action, choose the send action, and for the data being sent you’ll enter ‘command:’ followed by the command you want to send. For example, if you want to send the Play command to the Doremi, you’ll enter ‘command:play’. After that you simply add the action to the macro and publish it to the JNIOR. 

Note: As mentioned previously these preset commands were made from hex commands that the Doremi uses. There are other commands the Doremi can receive using hex, but these presets were made for the more commonly used ones.

With that, you should have a macro that sends to your Doremi via Ethernet! If you need other commands or additional assistance, reach out to our support team and we’ll help you further.

Sometimes when changing around the configuration on the JNIOR, you may be changing different registry keys to get your desired setup. Some point in the future, being able to check when those registry keys were changed can be useful. Doing the reg [registry key name] -m command allows you to get the timestamp of the last a time a registry key was changed. The timestamp format is [YYMMDDHHMM]

For example, if you wanted to see the last time the IP of your JNIOR changed, you can type ‘reg IpConfig/IPAddress -m’ in the JNIOR command line, and it will return the last time the registry key for the JNIOR’s IP changed.

You can also do this command for registry folders, which will return the last time each registry key in that folder has changed.

Name Version Release Date Size MD5
Cinema.jar - Update Project v6.4 Apr 25 2023 538.7 KB 1ed87c8c86a9f6f5f2ccfaa04daa1918
  • [!] External outputs as triggers beyond output 16
  • [!] Attempted fix for QSC DCP300.  Was sending ZEROS after each command and confusing the QSC when multiple commands were sent.
  • [!] Issue with logging to the errors log
  • [!] Fixed close pulse issue.  this was an issue reading the macro file.
  • [+] Added flush() to raw ethernet

Go to the Cinema.jar Application page for more information. The Cinema Knowledge-base has helpful information on how to use the features in Cinema.jar.

Cinema.jar 6.0 August 8, 2022

Name Version Release Date Size MD5
Cinema.jar - Update Project v6.0 Apr 25 2023 541.1 KB 7d422aae79bbe4d01eaa428a7f423b5e
  • [!] Handle ROUT 17 - 24 as internal macro action
  • [!] Only start the iolog monitors if we have listeners configured
  • [+] Add Doremi as a device
  • [+] Allow device commands to be sent using a raw ethernet device and the send command with the 'command:' prefix

Go to the Cinema.jar Application page for more information. The Cinema Knowledge-base has helpful information on how to use the features in Cinema.jar.

Cinema.jar 5.0 March 30, 2022

Name Version Release Date Size MD5
Cinema.jar - Update Project v5.0 Mar 30 2022 547.3 KB 6a1f8c4c9f470ccd303133aa10401579
  • [!] Ignoring white-space around schedule keys.
  • [!] Schedule keys no longer require a reboot when changed or added. removed schedules will require a reboot
  • [!] Fixing an issue with embedding quotes in macro action data field
  • [!] Allow comma delimited list of macros for input triggers
  • [!] A macro in a macro list can be delayed since the start of executing the list or the execution of the last macro
  • [!] Updating the http request to handle https responses better
  • [+] Added a UDP Client listener
  • [+] Added a device test event handler
  • [+] Added Web Pages for Cinema to make testing macros and editing registry keys easier.  Access by going to http://JNIOR_IP/cinema

Go to the Cinema.jar Application page for more information. The Cinema Knowledge-base has helpful information on how to use the features in Cinema.jar.

Cinema.jar 4.5 December 21, 2020

Name Version Release Date Size MD5
Cinema.jar - Update Project v6.9 Jan 03 2024 545.1 KB 0a2c670e461116768b75288e652c5253

4.0, 4 oct 2019

  • [+] added code to detect barco series 4 device and launch the barco pulse rpc application.

4.1, 03 dec 2019

  • [!] trim unwanted spaces.

4.2, 04 mar 2020

  • [!] fixed cp+8=1000 signed issue.

4.3, 29 apr 2020

  • [!] changing the logging to use .bak files.  the addition of the logarchiver application will compress the .bak files into zip archives.
  • [!] forcing cinema_ prefix on all log files"),

 4.4, 17 nov 2020

  • [!] Modified the macro web handler to get the list of loaded macros"),
                

4.5, 10 dec 2020

  • [!] Fixed issue working with outputs > 20.
  • [+] rolled the barco pulse api into cinema.jar.

Go to the Cinema.jar Application page for more information. The Cinema Knowledge-base has helpful information on how to use the features in Cinema.jar.

Cinema.jar 3.6 August 14, 2019

Name Version Release Date Size MD5
Cinema.jar - Update Project v3.6 Aug 14 2019 334.6 KB d96d4ae9b9adc4f0b8cdaf9bd87518f3

+ Adding web handlers for getDevice without a device for internal io getAll.

Cinema.jar 3.5 June 2, 2019

Name Version Release Date Size MD5
Cinema.jar - Update Project v3.5 Jun 02 2019 327.0 KB 57a834f2c5ac177b7b19b6dec52350ce

+ Added HTTP POST method to Macro Actions.

+ Added the ability the use HTTPS for GETs and POSTs

Cinema.jar 3.4.1 May 29, 2019

  Cinema.jar - Update Project v3.4.1 [ May 28 2019, 320.47 KB, MD5: 74f51ea7ccb40962eb2118bf16457c50 ]

  • Released May 28 2019

! Fixed a bug where the watchdog was no longer working. If the Cinema application crashed it would not be restarted.

 

Cinema.jar 3.4.0 May 16, 2019

  Cinema.jar - Update Project v3.4 [ May 16 2019, 320.36 KB, MD5: 63b627ede9c8a79710ddb3d7fd3ca852 ]

  • Released May 16 2019

+ Allow you to query the temperature sensor via a HTTP Request.  A JSON representation of the device will be returned.

As of now the only available devices are Type28 and Type7E...

Type28 is the temperature probe and Type7E is the environmental sensor.

To enable this you will need to set the AppData/Cinema/WebServer/Port registry key. The JNIOR will need to be rebooted after this key has been changed. In this example I chose 8081. Port 80 or 443 is normally the default web server port. This web server port is an additional web server that cinema is hosting to handle these types of requests.

Digitally triggering inputs on the JNIOR can be usefully for testing setups that use these inputs to trigger automation. A way to do this is by inverting an input. When an input is inverted, its state gets set to the opposite of what it should be. This post goes over two ways to invert an input on the JNIOR; using the configuration tab in the JNIOR Web Pages, and setting the invert registry key from a command line. 

Web Page Input Inversion

Inverting an input is done easily from the JNIOR Web Page. You can easily get to the JNIOR’s web page by opening an internet browser of your choosing, and in the URL enter your JNIOR’s IP address. Once on the JNIOR Web Page, you’ll want to select the Configuration Tab. Under the Inputs section of this tab is where inputs can be inverted. Each input has a row of options for it, and one these options is an invert checkbox. When the invert checkbox is selected, that input is inverted!

Command Line Input Inversion

NOTE: Editing the Registry as described below is for the Series 4 JNIOR. When editing the Series 3 JNIOR registry, use the ‘registry’ command and edit the same registry key as shown below for the Series 4, except use True/False instead of Enabled/Disabled.

There may be a situation where you can’t access the JNIOR Web Page to do inversion. Luckily, you can still invert the input through a command line connection. You’ll first need to create a command line connection. An easy way to do this is from the JNIOR support tool, by right clicking a JNIOR in the Beacon tab and selecting Tools->Open Telnet.

Once the command line connection is made to the JNIOR, you can now use it to set the registry key to invert the input. For this example, we will invert input one. To do this after we log into the JNIOR we will use the ‘reg’ command to edit the registry, entering the path to the registry key along with the value we want to set it to. So since we want to invert input 1, the command to do so would be ‘reg IO/Inputs/din1/Inversion = enabled’. To disable it, you just set the same registry key to ‘disabled’. To do this for other inputs, just change the number after ‘din’ to the input you want inverted.

While the Cinema application has the functionality to send a UDP command to another JNIOR, did you know that it can do a UDP broadcast command also? This allows the JNIOR to send a UDP command to any JNIORs listening on that UDP port at the same time. This post will explain how to set this up. This post assumes you’ve already installed the Cinema application on your JNIOR. If you haven’t, here is a post that shows you how to install Cinema on your JNIOR.

Device File

First, to setup the broadcast you need to create a RAW UDP device in the support tool under the device tab. Here you can add a device from the ‘Add’ button at the bottom of the Device tab, and after naming it (I’ve named it ‘UDP_Broadcast’ for this example) you assign it as a RAW UDP device type. For the IP Address, it needs to be set to 255.255.255.255 so when this device is sent to from a macro command, it will send to any device listening on the same UDP port. The UDP port will be whatever UDP port you want to broadcast on. Just make sure the devices you are broadcasting to are also listening on that same UDP port (This example uses port 5554).

Macro File

Once this device is setup, you’ll save the device file locally and publish it to the JNIOR that will be broadcasting the command. You’ll then move onto the Macro tab in the JNIOR support tool. The first thing to do here is to select the ‘Link Devices’ option and select the device file you just created. This allows you to reference the ‘UDP_Broadcast’ device you created in your macros. Here in the Macro tab, a macro can be made that sends a command out to JNIORs via the UDP_Broadcast device. You’ll select the ‘Add’ button at the bottom left of the Macro tab, and this will add a macro in the macro view. You’ll name the macro (I’ve named it ‘Hello’ for this example) and then you’ll add an action to this macro. You’ll select the ‘Add’ button at the bottom right of the Macro tab this time, and add an action to the action view. Here you’ll name the action (I’ve named it ‘Broadcast Hello’ for this example) and then you’ll set the action’s device to the ‘UDP_Broadcast’ device from the device file we created. After this you’ll select the ‘send’ action for the macro, and for the data you can enter the whatever data you want to broadcast to other devices (I’ve made the data ‘Hello’ for this example). Lastly, you’ll select the macro ‘Hello’ and the action ‘Broadcast Hello’ at the same time, and then select the ‘<-‘ button between the Macro and Action views. This will add the ‘Broadcast Hello’ action to the ‘Hello’ Macro. After this you’ll save the macro file locally and publish it to the JNIOR that will be broadcasting the command.

Setting Cinema UDP Port

Your JNIOR should now be setup so when the ‘Hello’ macro is activated, it will broadcast to any JNIOR listening on port 5554 the command ‘Hello’. If you are trying to broadcast to other JNIOR’s running Cinema, you can send UDP commands to their Cinema application directly. Just make sure you have Cinema’s UDP port setup for each JNIOR that should be listening for those UDP commands. You can do this by going to the registry of a JNIOR, and under AppData/Cinema/ you set the registry key UdpServerPortNumber to the UDP port Cinema should be listening on. After setting this registry key, make sure to reboot that JNIOR so the change takes effect.

Name Version Release Date Size MD5
Tasker v11.0 Feb 09 2023 2.9 MB a70599f2d48dbb91823b034aeeed0da7

[*] fixed where schedules in multiple workspaces were not working

[+] adding toggle relay action

Tasker 10.0 Release February 18, 2022

[+] creating a modbustag.update trigger

Tasker 9.0 Release December 20, 2021

Name Version Release Date Size MD5
Tasker v9.0 Dec 20 2021 2.9 MB b77374655a8d64ae9caf54183382a473

[+] now allowing you to compare the value of a string agains other primative types like numbers or booleans. \"false\" == false

[+] time zone offset from GMT now available in the date format. date(\"HH:mm Z\") will equate to \"16:30 -0500\" for Eastern DST

[+] checking the state of din and rout no loner need to be compared to 0 or 1. A simple din[#].state or !din[#].state is sufficient

[+] added date.now() to get the current millis

[+] added din.lasteventtime() to get the millis of the last input event

[+] added rout.lasteventtime() to get the millis of the last output event

[+] added iolog.lasteventtime() to get the millis of the latedt input or output event

[+] added task description to getTaskDevices

Tasker 8.1 July 29, 2021

Name Version Release Date Size MD5
Tasker v8.1 Jul 29 2021 2.9 MB 48f35fa8f1bd4fe285857cd55df99f49

[!] fixed addressing more than one LED modules

[+] added 10v Fade for percentage and voltage

[!] fixed an issue where new signals were not available until the page was reloaded

[~] new objects have a default name provided

[+] now indicating the Latitude and Longitude format

[!] fixed the user alert action

[!] fixed where object could be added twice quickly

[+] added a delay to the tool tips to prevent them from flashing

[+] email profile names can now be specified in a variable

Tasker 8.0 July 8, 2021

Name Version Release Date Size MD5
Tasker v8.0 Jul 12 2021 2.9 MB ada6b724f74b802fb5d880c1124209b8

New Help System! Take a look and give us your feedback!

[+] created a Workspace page to manage multiple Workspaces

[+] created a Workspace Pane on the right of the Tasker Page when a Workspace is open

[+] added a Registry Write Action

[+] added a Serial Send Action

[+] added a prompt for user when leaving the Tasker web page when Changes are in progress.

[+] new help system

[+] added notes for Workspaces

[+] added the ability to clone Workspaces and tasks

[+] added the ability to initialize variables via json task.execute handler

[~] all disabled objects now contain red font and a gray background

Lots of small UI tweaks for a better user experience

Go to the Tasker Application page for more information

Tasker 7.0 May 10, 2021

Name Version Release Date Size MD5
Tasker v7.0 May 10 2021 2.2 MB 796406e49d98e58119d9f39b94886b14
  • [!] corrected the Log Null On Boot checkbox.  It was showing unchecked though it should be checked by default.
  • [!] corrected an issue where a deleted workspace does not unload from tasker
  • [+] can now easily enable / disable an entire workspace via the File menu
  • [+] disabled workspaces will have a red banner and footer alerting the user that they are disabled
  • [+] added the ability to trigger on any input or any output
  • [+] added the ability to reorder the tasks in the Web App
  • [+] added a warning message when navigating away from the Web App to alert the user of unsaved changes.
  • [~] redesigned the "Add Action" dialog to be less busy
  • [+] previously selected Task will be reselected on page reload
  • [+] added Grapher to the Tasker install

Go to the Tasker Application page for more information

Tasker 6.1 April 30, 2021

  • [!] Fixed an issue where a blank DateFormat field in a Log Profile would cause the timestamp to not get logged
  • [+] added the ability to trigger on either high or low signals for digital inputs or relay outputs
  • [+] added a variable to task scope for the object that caused a task to execute. the variable can be referenced as task.caller
  • [+] adding get task devices web handler
  • [!] fixed issue where devices weren't found when loading tasks because tasks were being loaded before devices
  • [+] log what is being sent from an Ethernet device to tasker_devices.log
  • [!] corrected issue with the log profile file retention method. We were not correctly identifying the files matching the fileformat.
  • [!] corrected issue where getDoubleParam was expecting a variable to start with $. This is no longer a requirement.
  • [+] implemented Clear Input Latch action
  • [+] added the ability to trigger on ANY control panel switch
  • [*] Updated the status message that it is sent any time a task is executed with the name of the calling object

Tasker 6.0 March 18, 2021

Name Version Release Date Size MD5
Tasker v6.0 Mar 18 2021 1.3 MB dc9fd5f96047b8e946e67cfcab9d79cb

Warning: The Triggers tab functionality was reworked!  Any Triggers that are currently defined will need to be reconfigured.

  • [*] reworking triggers
  • [*] adding single switch control panel trigger
  • [*] adding multi-switch control panel trigger
  • [*] adding delayed reset
  • [+] added WebServerPort registry key Default -1 or meaning disabled
  • [+] adding ExecuteTask web request handler /executetask name=TASK_NAME
  • [+] adding GetLoadedTasks web request handler /getloadedtasks
  • [+] automatic upgrading of old trigger configuration

Go to the Tasker Application page for more information. The Cinema Knowledge-base has helpful information on how to use the features in Cinema.jar.

Tasker 5.0 May 5, 2021

  • [+] adding action to kill, cancel or abort a task
  • [+] adding HTTP request action
  • [+] adding MQTT publish action

Tasker 4.0 December 18, 2020

Name Version Release Date Size MD5
Tasker v4.0 Dec 18 2020 1.2 MB e0b99c9f4ffdb2294dab5596c9d9613f

4.0, 10 dec 2020

  • [+] variables that start with $$ are global variables.  These are global WITHIN the workspace.
  • [+] added Control Panel Switch implementation
  • [+] added a tasks.get WebSocket handler
  • [+] added a task.list WebSocket handler
  • [+] added http post functionality
  • [!] scheduling changes take effect immediately when a workspace is reloaded
  • [+] validation on task names, device names, logger names, signal names, trigger names, and schedule names to prevent spaces and bad characters.  Names can only be alphanumeric and can include underscores.

3.9, 18 nov 2020

  • [!] fix error where parameters used to have to be named starting with $.

3.8, 07 oct 2020

  • [!] fix error for only handling 8 output triggers.
  • [!] fix error where a temp probe couldnt be assigned to a variable.
  • [+] added http post functionality.

3.7, 02 oct 2020

  • [+] Added tracking the parent workspace name so that all of the tasks can be removed from the collection that belong to a workspace that is updated or removed.

3.6

  • [+] Added a tasks.get handler.
  • [+] Added a tasks.list message.

3.5

  • [+] Added a user.alert message.

3.4

  • [+] removed the requirement for the schedule start day.
  • [+] fixed the schedule reloading so that the new schedule takes effect and does not require a reboot.

Go to the Tasker Application page for more information. The Cinema Knowledge-base has helpful information on how to use the features in Cinema.jar.

Tasker 3.3 July 29, 2020

Name Version Release Date Size MD5
Tasker v3.3 Jul 30 2020 1.0 MB 5783b3bda071222b48775e5ffb9e4b3d
  • [+] adding duplicate instance check
  • [+] variables that start with :: shall be global
  • [+] add TCP Recv
  • [+] add TCP Close
  • [+] new execute script action
  • [+] uses new scripting engine
  • [!] fixed issue where dst timezone was not being logged
  • [+] adding action to prepend to file
  • [+] adding retry logic to external identifier objects. included creating external identifier parent class
  • [+] adding action to copy file
  • [+] adding action to move file
  • [+] add ascii tcp and serial servers for tasker control
  • [~] now preventing spaces in workspace names. current workspace files with spaces will be renamed with an UNDERSCORE

Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.

Tasker 3.2 June 18, 2020

Name Version Release Date Size MD5
Tasker v3.2 Jun 18 2020 958.1 KB 953712536000b330ad267047b7ee274d
  • + added 4-20ma modules
  • + added 10v modules
  • + added email send attachment option

Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.

Tasker 3.1 May 1, 2020

Name Version Release Date Size MD5
Tasker v3.1 May 05 2020 942.1 KB 47e03374e8a8791ec0a922f38e62f174
  • Added If / Else Block Task Action
  • Added While Loop Task Action
  • Added SNMP Trap Task Action - Tutorial
  • Help pages are in progress
  • Upload and download workspaces
  • Delete a workspace (Workspace is backed up)

Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.

Tasker 3.0 April 20, 2020

It has been a while since Tasker was released. Tasker was a quick attempt at making a replacement for the Task Manager application that has been around for more than a decade, starting on the Series 3.

Ample time has now been taken to create a fully capable application that will be every bit as functional as Task Manager but offer the benefits of a rewrite, using configuration files and the latest web technology.

Some of the changes and new features are as follows:

  • Faster– The tasks are executed much faster and the triggers and schedule are monitored in real-time instead of once every 5 – 10 seconds.
  • Workspaces - Separate configuration logic into multiple workspaces. Then multiple workspaces can be loaded on the JNIOR at the same time.
  • Tasks are now separate from triggers. In Task Manager a Task was created and a Trigger was configured to get the Task to execute. In Tasker 3.0 Tasks are a separate entity that can be executed several different way including manual execution from the configuration page and being requested via an ASCII TCP connection.
  • Tasks can now send data via an Ethernet connection. To do this, a Device must be created so that the action can specify which device to send the data to. Multiple devices can be configured.
  • New Actions – We implemented actions that were previously available in Task Manager but are introducing many new actions like external module control, TCP communication and control structures.
  • Drag n Drop – Drag and Drop functionality makes it easier to design your Task logic.
  • Signals are now created to assign a specific property of a I/O point or sensor a name. The name can then be used in Tasks, Triggers or Loggers.
  • Loggers can be created to define the file name and schema or what data should be logged to that file. Each line in a Logger will be prepended with a timestamp followed by a comma. Loggers also allow you to define the number of files that should be kept with the given naming pattern. Name patterns can include date patterns. This will help you create a file per day for example.
  • Schedule – The schedule has additional options.
  • JSON Configuration files are used now instead of registry keys. Registry keys were limiting in size. The Series 3 could only store 255 characters in a registry key. It is much easier to upload configuration files to other JNIORs to replicate setups.
  • User Interface – The User Interface is now a native HTML application that uses the latest web technology. The latest web technology uses native HTML controls and Web-sockets to communicate with the JNIOR from your browser. This will allow accessibility over remote connections as long as port 80 is available. This is now consistent with the communication method used by the DCP. Task Manager had always used Java Applets. The Java Applets have not been able to launch in browsers for several years as they became frowned upon as security vulnerabilities.

This was just a short list of changes and new features. The documentation for Tasker should explain these topics as well as many others. If there is anything you don't understand please reach out to us for help. Additionally, if you have any suggestions or need the JNIOR to do something specific for you, please let us know.

For more information go to the Tasker Page

The release fixed an issue with the Ethernet becoming “locked up”. The JNIOR could become unresponsive while servicing the network on busy networks.

Build 1.0

  • Corrected memory issue with KILL and message loop use
  • Corrected garbage collection issue with static classes in the JVM
  • Corrected memory issue with serial port buffer resizing
  • Delayed Java Thread startup to insure completion of initialization
  • Added KILL -A feature to terminate all applications

 

Initial (January 25 2023)

  • Initialized the Working Directory for command line scripting
  • Increased network frame buffers to improve throughput
  • Increased number of available application watchdogs from 8 to 16
  • Added WDT_SILENT so watchdogs can be used to schedule programs and not logged as triggered
  • Updated PS process listings to display pending watchdogs as scheduled execution
  • Improved PING statistics
  • Eliminated assertion in loading classes using InvokeDynamic
  • Eliminated memory leak in JVM class caching
  • Corrected IO signature performance with IO changes
  • Corrected TAB auto-complete issue with second parameter
  • PHP Registry lists now sorted by name
  • Eliminated chance of socket deadlock that would require a hard reboot
  • Added check for network during boot logging to avoid reboot loop

JANOS 2.2 Release June 28, 2022

This release was issued to support manufacturing and component changes forced by supply chain issues. Because of this, an update to the OS was required to handle this change. Units made June 22nd, 2022 or later will NOT be able to roll back to earlier version of JANOS.

  • Corrected bug in creating multidimensional arrays
  • Improved DEFLATE compression performance with binary files
  • Corrected issue with '%' sign when logging to the syslog
  • Fixed dropped serial character when port is closed
  • Added experimental debugging tools

JANOS 2.1.1 Release December 15, 2021

  • This release was issued to support manufacturing and component changes forced by supply chain issues and COVID

JANOS 2.1 Release August 10, 2021

All New Help system. Use the [Help Search] link in the lower right on the JNIOR Web UI.

  • Eliminated external SYSLOG Server related memory leak
  • Corrected Regex issue with the OR operation
  • Corrected PHP ereg() and eregi() functions
  • Implemented a greatly expanded Help System
  • Added PDF MIME type to the WebServer and Email systems
  • Corrected JRMON latched input [R]eset command, no longer affects relays
  • PHP read file access expanded to include ZIP virtual folders
  • Corrected PHP issues with JSON arrays
  • Corrected Order of Precedence issue with PHP mathematical expressions
  • Corrected the operation of Regex '*' and '+' quantifiers when used following a group
  • Corrected RENAME behavior when attempting to alter case of a filename
  • Enabled PHP logical string comparisons ==, !=, <, <=, >, and >=
  • Enhanced security for JANOS-Session-Id cookies
  • Corrected JANOS-Session-Id handling when multiple cookies are present
  • Improved non-volatile aspect of command line history
  • Corrected issue with network capture completion
  • Fixed issue introduced in v2.0 with IpConfig/Allow
  • Corrected issue with using EXIT in the Console tab of the WebUI
  • Added SHA256 (SHA2) to the MANIFEST database
  • Fixed issue resulting in blank Registry keys being displayed
  • Introduced new expanded Help System

JANOS 2.0 Release March 4, 2021

  • Improved serial diagnostics during boot
  • Added DST rules for New Zealand timezones
  • Added File Sharing. Disabled by default
  • Logs prior Registry key values along with changes
  • Enabled NetBIOS name resolution and disabled LLMNR
  • Allow product "Birthname" such as jr817120068 to be always valid in name resolution
  • Corrected Websockets login issue
  • Fixed issue with HTML Email content
  • Added SHA384 and SHA512
  • Added text form of IP address to certificate to appease Microsoft IE
  • Enhanced Registry key settings to inform as to reboot requirements
  • Improved Email error reporting
  • Added Galois/Counter Mode (GCM) to TLS security suites
  • Removed legacy Registry editor
  • JANOS renews its own self-signed certificates
  • Added JSON support to PHP
  • Added Command Line text editor
  • Added Elliptic Curve TLS suites
  • Added BAT file enhancements and scripting support
  • Added the ability to retrieve files from remote servers to JRUPDATE
  • IP address filtering overridden by SAFE MODE
  • Add capture filter information to pcapng capture file
  • PHP scandir() changed to return absolute file path
  • Issue with /etc folder content in scandir() corrected
  • Corrected issue with nested PHP foreach loops
  • Added PHP date and time formatting function date()
  • Console command line history search and selection enhancements
  • Added PING Flood Mode and addressing validation option
  • Corrected issue with ZIP/JAR decompression failing with some large binary files
  • Added support for the standard loopback address range
  • Default WebServer/Path is now /flash/www/config allowing relocation of the default configuration pages
  • Corrected Registry issue with of Type 10 temperature sensors
  • Batch parameter %0 now returns the command from the command line
  • Corrected runtime issue with PHP replacing existing array content
  • Addressed differences in Linux based terminal sessions
  • Extended the ECHO command for use in scripting
  • Added JMP Protocol port for use in defining capture filters
  • Added JMP port and BuildTag to Beacon protocol
  • Corrected PHP @strrpos()@ and syntax shortcomings
  • Enhanced ARC/ZIP/JAR command
  • Improved compatibility with Linux terminal emulators

JANOS 1.9 Release February 3, 2020

Release Notes

We have released JANOS v1.9 which has several changes and bug fixes. Most notably with TCP packet generation. While it is not wrong to send data in multiple TCP packets, many devices incorrectly implement TCP clients and fail when this case arises. This version adjusted the release of socket data to reduce the chances that a message might be split across separate TCP packets. This had been a recent issue with some MODBUS client devices.

  • Added support for Reverse LLMNR allowing network scanners to label IP addresses with hostnames
  • Adjusted the release of socket data to reduce the chances that a message might be split across separate TCP packets
  • Corrected Sockets race condition that caused occasional reception delays and blocking
  • Fixed the incorrect signed display of large input counter values in JRMON and JMP Protocol
  • Adds a BEACON announcement in the event of an IP conflict
  • Improved NONCE management eliminating possible issues in the presence of port scanners
  • Eliminated chance of buffer overrun occurring in FTP transfer
  • Beacon REBOOT now works in all cases
  • Eliminated potential difficulty in obtaining network capture file

JANOS 1.8 Released June 17, 2019

Release Notes

We have released JANOS v1.8 which adds the JMP Protocol. The JANOS Management Protocol (JMP) is essentially the JSON message interface utilized by JANOS Websockets. The JMP Protocol has been exposed on its own TCP/IP port. This encloses the JSON messaging in a JSON array along with the JSON Object length making reception of the messages easy. The JMP Protocol will be used by the QSC Q-SYS JNIOR component.

  • Implements the JANOS Management Protocol JMP
  • Adds "Block" command to JSON interfaces
  • Web Server limits the effects of extremely slow connections.

JANOS 1.7.1 Released December 3, 2018

Release Notes

  • Watchdog no longer causes reboot from foreground execution
  • REGEX Alternation '|' has been corrected to properly work in Group
  • Corrected NULL Pointer write issue when a Group which employs alternation appears at the start of a REGEX expression
  • Resolved message pump memory issue relating to process termination
  • Expand the channel range for setOutputRelay() from 0-11 to 0-15
  • Corrected network capture filtering when an IP address is to be excluded
  • Supports networks using Jumbo Frames
  • Eliminated assertion associated with improper use of '%n' in System.out.printf.

JANOS 1.7 Released July 26, 2018

Release Notes

  • Added ability to load single CA Certificate to be supplied on TLS connection
  • Support TLS Client Certificate Verification on outgoing connections
  • Added legacy PKCS1 support for externally generated certificates
  • Corrected array issue with processing of deferred email transmissions
  • Corrected memory issue with TAB use on the Command Line

JANOS 1.6.5 Released May 22, 2018

  • Corrected FTP listing issue created by the v1.6.4 release
  • Corrected getRegistryList method memory leak
  • Corrected 412DMX light Flickering
  • Corrected 412DMX NAND Flash processing issue
  • Corrected FTP transfer restart issue
--- Core ---
JANOS 2.3 build 1.0 UPDATED

DCP (WebUI) 3.2.1
MANPAGES

--- Bundled ---
FTP Client
JBakup UPDATED
MODBUS Server 1.9.268
Serial Control 7.2.61
Serial To Ethernet 6.2.70
Slaving Service 3.1.133
SNMP 3.1.667
Bundled Web Pages

All-In-One 230125 January 25, 2023

--- Core ---
JANOS 2.3 build 0.2 UPDATED

DCP (WebUI) 3.2.1
MANPAGES

--- Bundled ---
FTP Client
JBakup
MODBUS Server 1.9.268
Serial Control 7.2.61
Serial To Ethernet 6.2.70
Slaving Service 3.1.133
SNMP 3.1.667
Bundled Web Pages

All-In-One 220628 June 28, 2022

--- Core ---
JANOS 2.2 UPDATED

DCP (WebUI) 3.2.1 UPDATED
MANPAGES UPDATED

--- Bundled ---
FTP Client
JBakup
MODBUS Server 1.9.268 UPDATED
Serial Control 7.2.47 UPDATED
Serial To Ethernet 6.2.70 UPDATED
Slaving Service 3.1.120 UPDATED
SNMP 3.1.498 UPDATED
Bundled Web Pages ADDED

All-In-One 211215 December 15, 2021

This Update was pushed to support manufacturing and the supply chain issues brought on by COVID-19.  Component workarounds were needed and a bump to the OS was required to support those component changes.  Units built after this date will not be able to roll back to previous versions of the OS.

--- Core ---
JANOS 2.1.1 UPDATED

DCP (WebUI) 3.1.0
MANPAGES

--- Bundled ---
FTP Client
JBakup
MODBUS Server 1.7.236
Serial Control 7.0.31
Serial To Ethernet 6.1.53
Slaving Service 2.0.104
SNMP 3.1.667

All-In-One 210810 August 10, 2021

--- Core ---
JANOS 2.1 UPDATED

DCP (WebUI) 3.1.0 UPDATED
MANPAGES ADDED

--- Bundled ---
FTP Client
JBakup ADDED
MODBUS Server 1.7.236
Serial Control 7.0.31
Serial To Ethernet 6.1.53 UPDATED
Slaving Service 2.0.104
SNMP 3.1.667
Tasker REMOVED [Has its own installer]

All-In-One 210304 March 4, 2021

--- Core ---
JANOS 2.0 build 1.0 UPDATED

DCP 3.0.1 UPDATED (moved from flash/www.zip to flash/www/config/zip)

--- Bundled ---
FTP Client
MODBUS Server 1.7.236
Serial Control 7.0.31
Serial To Ethernet 6.0.48
Slaving Service 2.0.104
SNMP 3.1.667
Tasker 6.0.1601
Task Manager 7.0.351

All-In-One 210202 February 2, 2021

--- Core ---
JANOS 2.0 UPDATED

DCP 2.4

--- Bundled ---
FTP Client
MODBUS Server 1.7.236
Serial Control 7.0.31 UPDATED
Serial To Ethernet 6.0.48
Slaving Service 2.0.104 UPDATED
SNMP 3.1.667 UPDATED
Tasker 5.0.1505 ADDED
Task Manager 7.0.351

All-In-One 200501 May 1, 2020

--- Core ---
JANOS 1.9 UPDATED

DCP 2.4

--- Bundled ---
FTP Client
MODBUS Server 1.7.236
Serial Control 5.0.122.1501
Serial To Ethernet 6.0.48
Slaving Service 1.5.1810.225
SNMP 2.6.532 UPDATED
Task Manager 7.0.351

All-In-One 200203 February 3, 2020

--- Core ---
JANOS 1.9 UPDATED

DCP 2.4 UPDATED

--- Bundled ---
FTP Client
MODBUS Server 1.7.236
Serial Control 5.0.122.1501
Serial To Ethernet 6.0.48
Slaving Service 1.5.1810.225
SNMP 2.4.1.494
Task Manager 7.0.351

All-In-One 190618 June 18, 2019

--- Core ---
JANOS 1.8
DCP 2.3

--- Bundled ---
FTP Client
MODBUS Server 1.7.236
Serial Control 5.0.122.1501
Serial To Ethernet 6.0.48
Slaving Service 1.5.1810.225
SNMP 2.4.1.494
Task Manager 7.0.351
--- Core ---
JANOS 2.3 build 0.2 UPDATED

DCP (WebUI) 3.2.1
MANPAGES

--- Bundled ---
FTP Client
JBakup
MODBUS Server 1.9.268
Serial Control 7.2.61
Serial To Ethernet 6.2.70
Slaving Service 3.1.133
SNMP 3.1.667
Bundled Web Pages

All-In-One 220628 June 28, 2022

--- Core ---
JANOS 2.2 UPDATED

DCP (WebUI) 3.2.1 UPDATED
MANPAGES UPDATED

--- Bundled ---
FTP Client
JBakup
MODBUS Server 1.9.268 UPDATED
Serial Control 7.2.47 UPDATED
Serial To Ethernet 6.2.70 UPDATED
Slaving Service 3.1.120 UPDATED
SNMP 3.1.498 UPDATED
Bundled Web Pages ADDED

All-In-One 211215 December 15, 2021

This Update was pushed to support manufacturing and the supply chain issues brought on by COVID-19.  Component workarounds were needed and a bump to the OS was required to support those component changes.  Units built after this date will not be able to roll back to previous versions of the OS.

--- Core ---
JANOS 2.1.1 UPDATED

DCP (WebUI) 3.1.0
MANPAGES

--- Bundled ---
FTP Client
JBakup
MODBUS Server 1.7.236
Serial Control 7.0.31
Serial To Ethernet 6.1.53
Slaving Service 2.0.104
SNMP 3.1.667

All-In-One 210810 August 10, 2021

--- Core ---
JANOS 2.1 UPDATED

DCP (WebUI) 3.1.0 UPDATED
MANPAGES ADDED

--- Bundled ---
FTP Client
JBakup ADDED
MODBUS Server 1.7.236
Serial Control 7.0.31
Serial To Ethernet 6.1.53 UPDATED
Slaving Service 2.0.104
SNMP 3.1.667
Tasker REMOVED [Has its own installer]

All-In-One 210304 March 4, 2021

--- Core ---
JANOS 2.0 build 1.0 UPDATED

DCP 3.0.1 UPDATED (moved from flash/www.zip to flash/www/config/zip)

--- Bundled ---
FTP Client
MODBUS Server 1.7.236
Serial Control 7.0.31
Serial To Ethernet 6.0.48
Slaving Service 2.0.104
SNMP 3.1.667
Tasker 6.0.1601
Task Manager 7.0.351

All-In-One 210202 February 2, 2021

--- Core ---
JANOS 2.0 UPDATED

DCP 2.4

--- Bundled ---
FTP Client
MODBUS Server 1.7.236
Serial Control 7.0.31 UPDATED
Serial To Ethernet 6.0.48
Slaving Service 2.0.104 UPDATED
SNMP 3.1.667 UPDATED
Tasker 5.0.1505 ADDED
Task Manager 7.0.351

All-In-One 200501 May 1, 2020

--- Core ---
JANOS 1.9 UPDATED

DCP 2.4

--- Bundled ---
FTP Client
MODBUS Server 1.7.236
Serial Control 5.0.122.1501
Serial To Ethernet 6.0.48
Slaving Service 1.5.1810.225
SNMP 2.6.532 UPDATED
Task Manager 7.0.351

All-In-One 200203 February 3, 2020

--- Core ---
JANOS 1.9 UPDATED

DCP 2.4 UPDATED

--- Bundled ---
FTP Client
MODBUS Server 1.7.236
Serial Control 5.0.122.1501
Serial To Ethernet 6.0.48
Slaving Service 1.5.1810.225
SNMP 2.4.1.494
Task Manager 7.0.351

All-In-One 190618 June 18, 2019

--- Core ---
JANOS 1.8
DCP 2.3

--- Bundled ---
FTP Client
MODBUS Server 1.7.236
Serial Control 5.0.122.1501
Serial To Ethernet 6.0.48
Slaving Service 1.5.1810.225
SNMP 2.4.1.494
Task Manager 7.0.351

String Converter is an application that works as a middle man between two devices trying to communicate with each other, converting the commands between them so they can understand one another. This post aims to explain how this application is setup to work after installing it on your JNIOR.

To configure StringConverter, you’ll first open a web browser and enter the in the URL your JNIOR’s IP address followed by “stringconverter”. For example, if your JNIOR’s IP address is 10.0.0.100, StringConverter’s URL in the web browser will be “10.0.0.100/stringconverter”. 

After accessing StringConverter’s Web Page, the first thing you’ll need to do is setup the connection settings at the top of the page. There are two connections you are setting up: one for the device sending to the JNIOR (Server Settings), and one for device the JNIOR is sending to (Client Settings). This communication can go from Client, to JNIOR, to Server as well though.

String Converter handles the connection scheme of Server -> JNIOR -> Client AND Client -> JNIOR -> Server

Ethernet and Serial Connections

When settings up the connections for String Converter, you can either have a Serial connection or an Ethernet connection for the Server and Client. Serial and Ethernet connections will require different settings to connect, but will always have a field for the Termination String. So before explaining the settings of each type of connection we’ll go over the Termination String. The Termination String is used to determine when the end of a command has been reached. Termination Strings are not required, but if not entered String Converter will wait for a timeout. This means after a device has sent to a command to the String Converter application, it will wait for small amount of time and if nothing else was sent it assumes the command has been fully sent.

Ethernet Settings

For the Ethernet settings, for the Server Settings only the port number value is listed, because the IP will always be the JNIOR’s IP. The port value should be set to listen for the device sending to it. (If the device is sending on port 9222, the set the server port number value to 9222) For the Client, the IP field will be there and requires the IP and port number of the device the JNIOR is sending to.

Serial Settings

For both Server and Client Serial Settings, you only have to declare if the Serial connection is going to the AUX or COM (RS-232) port of the JNIOR. 

As the note says in the picture, both the Server and Client can’t be set to the same Serial port. StringConverter will not save if this happens.

If the device connecting to the JNIOR has specific Serial settings, you’ll need to set the JNIOR to match them. This is set on the JNIOR Web Page in the Serial I/O section under the Configuration Tab.

Lastly, when entering the connection settings for the Server and Client, fields other then the termination string can’t be left empty. This is true for both Serial AND Ethernet connections of the Server and Client, meaning if you are using a Serial connection for the Server or Client, the Ethernet settings for them cannot be left blank even while hidden. String Converter’s web page will not let you save if a field (other then the Termination String) in the Server or Client’s connections settings is left blank. Dummy data can be entered to get around this.

Conversions

Once the connection settings have been entered, the next section to setup is the Conversions. In this section there are conversions from the Server to the Client, and conversions from the Client to the Server. 

The arrows between the conversions indicate what the command is being converted to. For example if under Server to Client Conversions you have “test  >>>  testing”, that means that if the Server sends “test” to the String Converter application, it will convert it to “testing” and pass that command over to the Client. 

NOTE: When making conversions, make sure a command doesn’t have multiple conversions. An example would be having one conversion be “test  >>>  testing” and another conversion be “test  >>>  tester”. StringConverter wouldn’t know which conversion to use for test because it has more then one defined, and will not save if you do this.

Hex

Hex can be entered in conversions regardless if its being sent from the Server or Client. Hex values should be formatted as \x00 for each hex value with no spaces between them.

Regex

Regex or Regular Expression, is a sequence of characters that represents a search pattern in text. Regex can be used to represent certain parts of text without specifically entering them. A good example of how this is useful is if you are trying to make conversions in StringConverter for commands that set the volume of device. If the devices range of volume is 1 – 100, and you want conversions to handle each volume level, you’d have to make one hundred conversions! To avoid that, you can use a regex pattern to represent the digit of the volume, while specifying the rest of the command that would be used to set the volume. When implementing Regex for each grouping of values, they can each be substituted in for by order. In the order they are defined in the conversion from left to right, the first grouping is represented by %1, the second by %2, the third by %3, etc. regexr.com is a good place to try out testing and understanding regular expressions if you are unfamiliar with them.

Saving

After you have defined your connection settings and conversions correctly. You’ll want to save your settings for StringConverter. Either at the bottom right or top right of the page should have a Save button. Select this, and if there are no errors in your configuration it will save. If it doesn’t save, then that means you need to look back through and make sure you have everything filled out, that no commands have multiple conversions for themselves, and that the Serial setting aren’t set to the same Serial port. After saving, the last step is to restart the StringConverter application. The easiest way to do this is by rebooting the JNIOR. This is needed to make sure the JNIOR is listening and connecting on the right connection settings. Now StringConverter should be ready to convert commands between your two devices!

We have given the knowledge-bases a new look and feel. This is intended to make finding information easier. Once within the knowledge-base, a new vertical navigation menu on the left hand side will help you find similar posts while staying within that knowledge-base section. For every post, headers distinguish different sections on the right hand side of the page, allowing readers to jump to ones that they are interested in. Topics in each section focus on specific features that each Knowledge base highlights. There are 5 different Knowledge Bases that were created based off the amount of content on our site pertaining to an application or use for the JNIOR. Here is a brief overview of each knowledge base.

General Knowledge Base

The General Knowledge Base focuses on providing posts that explain configuring and using the JNIOR Web UI and Support Tool, the hardware capabilities of the JNIOR, and steps that can be taken to troubleshoot when things don’t work. This Knowledge Base is where general questions about the JNIOR can be solved.

Tasker Knowledge Base

The Tasker Knowledge Base contains posts going over specific features of the Tasker application. It explains creating and managing workspaces, setting up connections to different devices through Tasker, and setting up Triggers and Schedules to activate tasks in Tasker.

Cinema Knowledge Base

The Cinema Knowledge Based contains posts over specific features of the Cinema application. It can explain how to create and execute macros, setup the Preshow and Cinema Server Clients, and how to troubleshoot connections made to the Cinema application.

DMX Knowledge Base

The DMX Knowledge Based contains posts over specific features of the DMX application. It can explain how to create triggers, scripts, and fixtures, how to potentially use a JNIOR 410 as a DMX controller, and how to use the JNIOR as a DMX fixture itself.

Embedded Programming Knowledge Base

The Embedded Programming Knowledge Base contains a wide variety of coding examples to create applications that run on the JNIOR. Here the JANOS runtime library can be downloaded and used in projects. Each section contains examples of short applications that can show how to do certain functionality on the JNIOR.

What is the tail command?

The tail command is used to display the last n lines of a specified file.  By default the tail command displays the last 10 lines of a file.  This can be changed by using the -n argument and specifying a new value.  If the specified file does not contain at least n lines then a the .bak version of the file will be prepended, if it exists.

Another powerful feature of the tail command is its ability to monitor and display file changes in real-time.  The specified file in monitored for changes once a second and only the changed portion of the file is displayed.

How to Install tail

Below is an update project you can apply to your JNIOR to get the tail application.

Name Version Release Date Size MD5
Tail Command v1.0 Feb 20 2023 3.5 KB e0ce27e20c337000d8fd403c76b7ce80

Usage

tail [OPTION]... [FILE]...
Short OptionsLong OptionOption ValueDescription
-n–linesNUMBERThe number of lines that should be displayed from the end of the file
-f–followMonitor the file in real-time

Default Usage

The default usage will show the last 10 lines of the specified file.

Specify number of lines to show

We can use the -n or --lines option to specify 20 lines.

Update the file in real-time

Use -f or --follow to follow the file in real-time.  New entries will be displayed.  This command will not return to the prompt until ANY key is pressed.

The JNIOR 410 is capable of handling RS-485. To do this you need to wire it correctly.

While RS-485 is commonly referred to as 2 wire, it really should include a third wire for ground. You can get away with 2 wires as long as there is a common ground between all devices. This is hard to guarantee, especially on long runs. Including the third wire is always a good idea.

RS-485 should also include termination resistors at the end of the bus. This helps prevent reflection on the wire from corrupting the communications.

Here is an article from TI on Ten Ways to Bulletproof RS-485 Interfaces.

2 wire

Again, while referred to as 2 wire, a ground wire is good practice.  In this wiring scenario D- will be landed on pin 3 and a small jumper wire will be used to connect pin 3 to pin 2.  D+ will be landed on pin 7 or pin 8 and a small jumper wire will be used to connect pin 7 to pin 8.

        Signal         DB-9
--------------------  ------
Signal Ground (GND)      5
Data (D-)                2, 3
Data (D+)                7, 8

4 wire

While referred to as 4 wire, a ground wire is good practice.

        Signal         DB-9
--------------------  ------
Signal Ground (GND)      5
RS485 TX-                2
RS485 RX-                3
RS485 RX+                7
RS485 TX+                8

DB9 Breakout Connector

You can make wiring of the DB9 connector easier by obtaining a breakout board like this one from Amazon.

Here is an example of wires landing on pins 7 and 8 with a small jumper wire.

RS485 to RS232 converter

Use an RS485 to RS232 converter and let the JNIOR handle the RS232 data.  This will enable 412 and 414 JNIORs to handle RS485.

DMX requires RS485 communication at 500K baud.  The JNIOR 412 DMX handles this inherently.  The JNIOR 410 has the ability to handle RS485.  An additional application must be loaded to get the DMX data to be streamed out the AUX port.  You can read about using the JNIOR 410 and a 412 DMX Alternative.  The downside of this is that there is additional overhead on the JNIOR and that the AUX port is not properly isolated.  In most cases the lack of isolation is not an issue but it could be given certain circumstances.

At the time of writing this article, in 2022, we have found it hard to acquire the components needed to build the 412DMX unit due to supply chain issues and chip shortages.

While using the 410 as a DMX alternative would work, some people like the IO mix on the 412.  So we decided to look at what it would take to use the 412 as a DMX alternative.  It turns out that an RS232 to RS485 adapter with a NULL modem will do the trick.  Here are links to the components that we tested an commanded DMX fixtures with here in the office.

DTECH RS232 to RS485 / RS422 Serial Communication Data Converter Adapter Mini-Size

DB9 Null Modem Adapter Male to Male

View on GitHub

The PowerEventLog application uses an immutable array to keep track of when the JNIOR turns on and off. It takes the values in an immutable array and stores them in a log file called powereventlog.

The application starts by checking if another instance of  itself is already running. If there is one already running, the instance of it trying to launch terminates itself. After checking that, it then gets the time that the application started on the JNIOR. The Immutable block is then returned (or created if it doesn’t exist yet.) to hold/retrieve the values of when the JNIOR last turned off and when it booted up again. The stop and start times of the JNIOR are re-formatted as date strings to be more readable. The log files being created are then checked to see if a backup needs to be created. Lastly, the stop and start times of the JNIOR are written to the log file, and then the times are updated for the next time the JNIOR turns off.

View on GitHub

JBakup is an application that is running on the JNIOR to help extend the life of your log files.  It does this by monitoring the filesystem for the creating of a .log.bak file.  This logic runs just once every 15 minutes.  When a .log.bak file is found that has NOT been previously processed then it is added to the .zip of the same name in the flash/baks directory.

The JAVA application doesnt take care of the zipping of the backup file data but rather creates a script that the OS executes using the ARC command.

The code is small and should be easy to follow.

After configuring the JNIOR properly, a way to send an email from it is to use the MailComposer class. This function has the user define the email being sent by building different parts of the email (Email address being sent to, Attachments to add, anyone that needs CC’d, subject, message, etc). Once these are all defined, you can use the MailComposer’s send() function to submit the email.

package emailexample;

import com.integpg.system.JANOS;
import com.integpg.system.MailComposer;

public class EmailExample {

    public static MailComposer mail = new MailComposer();
    
    public static void main(String[] args) {
        
        mail.setToAddress("YOUR EMAIL HERE");
        mail.setSubject("MailComposer Test");
        mail.setMessage("This was built and sent using the MailComposer Class.");
        mail.send();
        
    }
    
}

I put the built jar file of this example application into the JNIOR’s flash folder and ran it from the Web UI’s console tab. After it had successfully run, I checked my email and received one from the MailComposer example.

After configuring the JNIOR properly, a way to send an email from it is to use the JANOS.sendmail() function. The .sendmail() function needs the name of a mail profile on the JNIOR that you defined earlier, the subject of the email, and the email’s message.

package emailexample;

import com.integpg.system.JANOS;
import com.integpg.system.MailComposer;

public class EmailExample {

    public static MailComposer mail = new MailComposer();
    
    public static void main(String[] args) {
        
        JANOS.sendMail("YOUR EMAIL-PROFILE HERE", "EmailExample", "This was built and sent from the JANOS class.");

    }
    
}

I put the built jar file of this example application into the JNIOR’s flash folder and ran it from the Web UI’s console tab. After it has successfully run, I check my email and have received one from the JANOS.sendmail() example.

The 410 has 8 inputs and 8 outputs, the 412 and 412DMX have 4 inputs and 12 outputs, and the 414 has 12 inputs and 4 outputs. Each digital input can accept AC or DC voltage sources in the 0 – 30 V range. The input voltage must be greater than 2 VDC for the input to register as “on” and then less than 1 VDC to register as “off”. The JNIOR uses a 2-piece terminal connector system for all power and I/O wiring connections allowing for easy installation and/or removal of the JNIOR. Digital Inputs are Optically Isolated.  

Controlling Digital Inputs

When controlling the JNIOR’s I/O, the JANOS class can be used to get/manipulate their statuses. In the following example the JANOS class is used to invert an input and print the input state mask, manipulate an input counter, and check an input’s usage meter.

View on GitHub

I put the built jar file of this example application into the JNIOR’s flash folder and ran it from the Web UI’s console tab. As you can see it displays different data about the inputs at the time of the application running.

Getting Inputs from the IO Log

Another way to interact with the I/O on the JNIOR is via the Iolog Monitor. The Iolog Monitor is an object that can be checked for I/O events that have occurred on the JNIOR. There is the IoEvent class and Iolog class. An IoEvent is when an input or output state changed on the JNIOR, and the Iolog is an object that contains all the IoEvents from a certain timestamp. The example below inverts an input, and then shows how the Iolog has recorded that input pulse as an IoEvent.

View on GitHub

I put the built jar file of this example application into the JNIOR’s flash folder and ran it from the Web UI’s console tab. As you can see it recorded the input change where input 1 turned on and again when it turned back off.