Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Analog Presets | v2.3 | Sep 27 2021 | 434.1 KB | 65e1d1d380dd03f9e7d019c3d2d37e34 |
[!] Caught a condition where external module exceptions were being suppressed and the retry logic was not
being utilized.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Analog Presets | v2.3 | Sep 27 2021 | 434.1 KB | 65e1d1d380dd03f9e7d019c3d2d37e34 |
[!] Caught a condition where external module exceptions were being suppressed and the retry logic was not
being utilized.
This version contained a bug that prevented the TCP Client from being able to send commands. The download has been removed. If you are using this version, please update.
[*] Made the Web Server port configurable. Was hard coded to 8080 but this conflicted with
Cinema’s web server default port.
[*] Made the termination string configurable.
The JNIOR has Dry Contact Relays. Dry contact relays must have power supplied from an external source.
The relays can be set for Normally open or Normally Closed operation. They are normally open when manufactured.
Controlling the relay is the same regardless of the mode that they are in. Switching the relay to Normally Closed basically causes the relay to be inverted. When you command the relay to close it will open. Sounds backward right? By commanding the relay to close you are basically energizing the relay. Energizing the relay puts it in the opposite state of its normal condition. Normally Opened relays will Close and Normally Closed relays will Open.
There are internal jumpers that allow you to change the operation of some of the internal relays depending on the model. On the Model 410 and Model 414, output channels 1 and 2 have jumpers to select the mode of operation. The Model 412 and Model 412 DMX have outputs channels 1, 2, 9, and 10 that can be either Normally Open or Normally Closed.
To change the relay from Normally Open to Normally Closed you need to open the JNIOR and move the factory-supplied JNIOR from the outermost pins (as shown on the upper jumper) to the innermost pins (as shown on the lower jumper).
The Power 4 Relay Output Module has both the Normally Open and Normally Closed pins available on the connector. There is no need to move a jumper.
This post goes over an application that checks the current devices connected to the JNIOR, and if any of them are temperature probes logs there device index and current temperature.
Log Temperature starts off by declaring a string builder, which will be used later to log our information. We start with a while loop set to true so our program runs unless exited. We then perform a for loop that iterates 10 times. This checks the indexes of devices connected to the JNIOR from 1 – 10. Each time the loop iterates, it checking the JNIOR’s registry for connected temperature probes using the isTempPresent function. This returns the index of a temperature probe connected to the JNIOR. Once the index is returned its then used to get the temperature of that temperature probe, and then uses the string builder to construct a sentence listing time, index, and temperature from the temperature probe. This is then logged to a log file called tempLog.log. The while loop returns re-logging the values every minute.
The Book of JANOS is now in print here in the office. This is the official JNIOR users manual. You can access it on your JNIOR running JANOS version 2.1 or later by using the [Help Search]
link in the lower right of your WebUI.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
JNIOR Users Manual | v2.5 | Jun 14 2024 | 3.1 MB | 63582175dfaac8ee0c9dae0c8e76cef8 |
--- 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]
--- 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
--- 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
--- 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 New Help system. Use the [Help Search] link in the lower right on the JNIOR Web UI.
scandir()
changed to return absolute file path/etc
folder content in scandir()
correctedforeach
loopsdate()
WebServer/Path
is now /flash/www/config
allowing relocation of the default configuration pages%0
now returns the command from the command lineWe 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.
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.
System.out.printf
.This post goes over an application that goes through the Iolog, grabs IoEvents that occur every second, reports their Input States as a String out the AUX Port.
It starts by declaring a class object that has functions we can use to report our input states. The program first calls a constructor function to open the serial port to report our inputs. After the AUX port opens, another function is called to return the IO events from the Iolog monitor. This function then calls another function to build a message containing the IO events as string values. Once again this function calls one last function, this one then sending off the string we built to the AUX port to report the IO events.
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
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
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v7.0 | May 10 2021 | 2.2 MB | 796406e49d98e58119d9f39b94886b14 |
Go to the Tasker Application page for more information
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.
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.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v4.0 | Dec 18 2020 | 1.2 MB | e0b99c9f4ffdb2294dab5596c9d9613f |
4.0, 10 dec 2020
3.9, 18 nov 2020
3.8, 07 oct 2020
3.7, 02 oct 2020
3.6
3.5
3.4
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.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v3.3 | Jul 30 2020 | 1.0 MB | 5783b3bda071222b48775e5ffb9e4b3d |
Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v3.2 | Jun 18 2020 | 958.1 KB | 953712536000b330ad267047b7ee274d |
Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v3.1 | May 05 2020 | 942.1 KB | 47e03374e8a8791ec0a922f38e62f174 |
Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.
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:
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
When working within Tasker, if you’ve created a workspace you no longer want, you can delete it using the file menu or workspace pane. But what if you delete it and then realize that was a mistake? The good news is that it’s recoverable. To re-obtain the workspace you need to open the JNIOR Web Page and access the Folder Tab and go to the directory /flash/tasker/workspaces.
In this example, the workspace we are trying to recover is called “Example_Workspace”. While all workspace files are JSON files, you’ll notice that the file we are looking for has a “.bak” at the end of it. This is a backup of the workspace you made. To recover it, you simply need to rename the file without the .bak. Once you’ve done that, the workspace should be accessible again!
When using Tasker, there may be an instance where something isn’t working properly. Here is a list of solutions for different issues where your Tasker setup might not be running correctly.
When waiting for a schedule to activate, pressing a control panel to activate a trigger, or executing a task in the Task tab, all three of these things can be disabled so they don’t activate when you don’t want them to. Even the entire workspace can be disabled. Make sure that when activating something in Tasker that it isn’t disabled. You can make sure by looking at the checkbox next to them and making sure they are checked. Checked means enabled, unchecked means disabled.
Being able to use variables and reference I/O on the JNIOR in Tasker is major factor in Tasker’s usefulness. Sometimes though, if these variables/values aren’t entered correctly, it can lead to errors in Tasker. If you are logging variables/values in Tasker, make sure that you are encasing each one in {{}}. This denotes the value as not just a string of letters but the actual value its supposed to represent.
One of the ways variables in a workspace are useful, is that they can be referenced from other tasks. You can create a Global Variable by putting “$$” in front of it. For example, if you wanted the word “number” to be a Global Variable, when you declare it you’ll put “$$number”.
An easy way to test a Task is by manually executing it in the Task Tab. When you are currently within a workspace that has changes being made to it though, the play buttons to execute tasks are grayed out. This is because the workspace needs to save the changes made before it can execute Tasks.
In Tasker, you can reference External Modules that you have connected to the JNIOR in Tasker. Sometimes though, Tasker might have trouble interacting with your External Modules. This is because when you connect an External Module to the JNIOR, its information is saved. Then if a different External Module is connected, it may still be trying to connect to the previous one that was there. To avoid this issue, make sure when a External Module is removed that you perform the “extern -r” command in the JNIOR console. This will clear any information in the JNIOR of External Modules that are no longer connected, and Tasker will then reference only Modules currently connected to the JNIOR.
Tasker has the functionality to communicate with other devices, sending them data or commands. When communicating with an external device though, you need to make sure that the device you are sending to is configured to receive data the same way the device in your device tab is configured to. Make sure if its a TCP send that the device has the IP and TCP port you set for the Ethernet Device in the Device Tab. Same goes for SNMP with its IP and UDP port.
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
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v7.0 | May 10 2021 | 2.2 MB | 796406e49d98e58119d9f39b94886b14 |
Go to the Tasker Application page for more information
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.
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.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v4.0 | Dec 18 2020 | 1.2 MB | e0b99c9f4ffdb2294dab5596c9d9613f |
4.0, 10 dec 2020
3.9, 18 nov 2020
3.8, 07 oct 2020
3.7, 02 oct 2020
3.6
3.5
3.4
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.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v3.3 | Jul 30 2020 | 1.0 MB | 5783b3bda071222b48775e5ffb9e4b3d |
Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v3.2 | Jun 18 2020 | 958.1 KB | 953712536000b330ad267047b7ee274d |
Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v3.1 | May 05 2020 | 942.1 KB | 47e03374e8a8791ec0a922f38e62f174 |
Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.
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:
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
When the JNIOR Boots up we may want to define an initial state. Sure, the JNIOR WebUI gives you a way to configure this for the Internal Outputs. Setting a value of ZERO causes the relay to get close while a value greater than ZERO is the number of milliseconds to pulse the relay for.
An application like this is extremely easy to write. You can set the states for up to 16 outputs using the .setOutputStates(bits, mask)
in the JANOS Runtime Library.
How do we know what outputs to set you ask? Well we will take an argument that supplies a mask
containing which outputs to close. The mask can be represented as HEX
or DECIMAL
. To specify the mask in HEX we must prefix the value with 0x
. For example, flash/closeoutputsonboot 0x7
will close outputs 1, 2, and 3 when the application executes.
Here is the code for this application.
package closeoutputsonboot;
import com.integpg.system.JANOS;
import java.io.IOException;
public class CloseOutputsOnBoot {
public static void main(String[] args) throws IOException {
// make sure one argument was supplied
if (1 != args.length) {
// print the usage string to the stdout. This isnt useful when the
// application is executed on boot. So we will also log it to the
// syslog in case the argument is not supplied in the run key. Then
// exit with -1 indicating an error occurred.
String usage = "MUST supply an argument that contains the "
+ "MASK of OUTPUTS that should be closed.";
System.out.println(usage);
JANOS.syslog(usage);
System.exit(-1);
}
// get the binary mask and set the ALL of the output states. we
// allow the mask to be specified in HEX or DECIMAL
int binaryMask;
if (args[0].startsWith("0x")) {
// HEX representation
binaryMask = Integer.valueOf(args[0].substring(2), 16);
} else {
// DECIMAL representation
binaryMask = Integer.valueOf(args[0]);
}
JANOS.setOutputStates(binaryMask, 0xffff);
}
}
To get this application to run on boot we set a run key. My run key will close output 13 on boot. I chose to specify the mask in hexadecimal. This will cause the application to execute on boot for a brief period of time while is reads the mask argument and sets the outputs. Once that has been completed the application will finish.
The JAR file below can be loaded into the flash/
directory on the JNIOR.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
CloseOutputsOnBoot.jar | v1.0 | Jul 01 2021 | 2.0 KB | 774c7b1cb6a7dda818ee02c2242ada13 |
Tasker implements lots of different logic. One such instance are Logic Operators, specifically the AND Operator (&&) and OR Operator (||). We will start with the AND Operator, which will succeed if separate conditions are met simultaneously. For example, lets say we want to close Relay Output 3, but only if Relay Outputs 1 AND 2 are closed. To create this logic in Tasker, we’ll create an empty Task and add an If Statement to it, followed by adding a Close Relay 3 action inside the If Statement. Here we’ll enter the following:
rout[1].state == 1 && rout[2].state ==1
This statement evaluates as “If Relay Output 1 AND Relay Output 2 are closed, then close Relay Output 3”. Now if Relay Outputs 1 and 2 were closed when this Task runs, it will pass the If Statement condition and close Output 3.
Next is the OR Operator which is less strict then the AND Operator, as its condition succeeds when at least one of multiple conditions are met. Lets use a similar example as before where we want to close Relay Output 3, but this time if EITHER Relay Outputs 1 and 2 are closed. We’ll do the same thing we did for the AND Operator by creating an empty task and adding an If Statement to it along with a Close Relay 3 action inside the If Statement. Here we’ll enter the following:
rout[1].state == 1 || rout[2].state ==1
This statement evaluates as “If either Relay Output 1 or Relay Output 2 are on, then close Relay Output 3”.
Lastly, a more advanced example can use both Operators in a logic statement at once. For example, lets say we want close Relay Output 3 if Relay Outputs 1 AND 2 are closer, OR if the time of day is past 2:00pm. We’ll add another if statement in an empty Task and add a Close Relay 4 action inside of it. Here we’ll enter the following:
(rout[1].state == 1 && rout[2].state == 1) || time.isAfter(“14:00”)
This statement evaluates as “If either Relay Output 1 and Relay Output 2 are on, or the current time is past 2:00pm, close Relay Output 3”.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v4.0 | Dec 18 2020 | 1.2 MB | e0b99c9f4ffdb2294dab5596c9d9613f |
4.0, 10 dec 2020
3.9, 18 nov 2020
3.8, 07 oct 2020
3.7, 02 oct 2020
3.6
3.5
3.4
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.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v3.3 | Jul 30 2020 | 1.0 MB | 5783b3bda071222b48775e5ffb9e4b3d |
Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v3.2 | Jun 18 2020 | 958.1 KB | 953712536000b330ad267047b7ee274d |
Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.
Name | Version | Release Date | Size | MD5 |
---|---|---|---|---|
Tasker | v3.1 | May 05 2020 | 942.1 KB | 47e03374e8a8791ec0a922f38e62f174 |
Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.
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:
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
When you have a JNIOR with a Temperature sensor connected to it, you can have Tasker trigger a Task when the temperature reaches a certain degree. This post shows an example doing this.
You’ll start by going to the Tasker web page, and once there we can start by creating a new workspace and then going to the Task tab. Here we’ll create the task we want to execute when the temperature reaches a certain temperature. In this example, we’ll pulse relay 1 for 7 seconds. You can do this by clicking the ‘new task’ button to create and name a new task, and then clicking the ‘add action’ button. This will open the action dialog box. You’ll want to go to the Output Relay section and select Pulse Relay. You’ll then set the first field of the action you added to 1 for output 1 and the second field to 7 for 7 seconds. We did this in the example below, naming the Task ‘Pulse_Relay_1’
After creating a task, we’ll then go to the Signal Tab. Here we’ll click ‘add signal’ and name the new signal we are creating. Once its created we’ll want to select the Signal type as Temperature probe, or Environmental sensor depending on which one you are using. The JNIOR can handle up to two Temperature sensors connected at one time, so unless you have two Temperature sensors connected the channel for the Signal will be 1. If you have two connected, set the channel according to which temperature sensor is first in the Registry order. One way to check this is by going to the External section of the Input/Output tab of the JNIOR web page, and seeing which expansion module is at the top as that one should be channel 1 and the one below it should be channel 2. Lastly you’ll want to determine what measurement of temperature you wish to use, (or humidity if you are using the environmental sensor). Once these values are set, you’ll then want to move to the Trigger Tab. Here is an example of the signal we created below, naming it Temperature_Sensor.
In the Trigger Tab you’ll want to click ‘add trigger’, giving it a name and selecting it as a continuous signal for its trigger type. Once the trigger is created you’ll want to set the trigger to the temperature sensor signal we created previously, along with what temperature will activate the trigger. Lastly, you’ll set the Task Name to the Task that you want executed when the trigger activates. We created this trigger below, naming it Temp_Trigger. The Task we set for this trigger is the one we created earlier, “Pulse_Relay_1”.
After that, you’ll save the the workspace and then should have a task that executes when your temperature sensor reaches a certain degree or humidity!
--- 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
--- 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
--- 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