Task Examples

Internal I/O

Using din[#].state == 1 and rout[#].state == 1 are for referencing if inputs and outputs of the JNIOR I/O are high or low. (1 being High, 0 being low) The example above shows an if block action checking if din[1].state == 1, which means the if block won't run unless Input 1 is High, and if it is, then pulse output 1 for 5 seconds.

Temperature and Enviromental I/O

Using the temperature and humidity taken from the environmental sensor, you can perform an action based on those values. The example above shows a while block, and with a environmental sensor module hooked up to the JNIOR, you can have a task that will run a loop that logs the temperature until the temperature of the room drops to a certain number.

Validate Days of the Week

When performing actions, you can reference the day of the week to control when certain actions will perform. The example above shows two if statements, one setting output 1 to high if its Monday - Friday, and another setting output 2 to high if its Saturday or Sunday.

Read and Write Registry

The registry can be modified using an expression in a Task. There are two ways to interact with the Registry. You can read the registry for a value, and write to the registry to set a value to it. In the example above, a set variable action is use to set a variable called TcpPort to the current registry value for the cinema server Tcp. It does this using the registry.read("") function, entering in the registry directory of the registry you are trying to read. Then it checks if the TcpPort value we just made is set to 9600. If the TcpPort value is not 9600 it then uses the registry.write(" "," "), describes where in the registry to change the registry in the first value, entering 9600 in the second value to set 9600 in the registry key.

Generate Random Number

A random number can be generated when needed. The example above logs 40 randomly generated numbers, and shows two ways you can define a randomly generated number. The expression is started by using int.random() which is the function that generates the number. After that two different types of parameters can be entered. The first parameter is a number, and then the function will generate a random number between the zero and the one you entered. The other parameter is using two numbers, and then the function will generate a random number between the first number and the second number. Since we are logging the variables, when they are entered into the log action they are given double curly braces.

Validate Time of Day

When performing actions, you can reference the time of day to control certain actions as well. The example above shows two if statements, setting output 1 to high for 5 seconds if its before 2:45pm, or setting output 2 to high for 5 seconds if its after 2:25pm. The time is based on 24 hours, so 11:59pm is 23:59.

4-20 and 10volt I/O

The 10volt and 4-20ma expansion modules I/O can be used to control actions based off their values. The example above shows that if the 10volt goes above 5, then it sets itself to zero, and if the 4-20ma output is greater then 10 then it sets itself back to 4.

Logical Operators

The Logical Operators are logic operations that succeed when certain conditions are met. The two Logic Operators available are the AND Operator (&&) and the OR Operator (||) The AND Operator succeeds when all conditions used for it are met. The OR Operator succeeds when at least one of its conditions are met. The example above uses both Logic Operators, starting with the Or Operator and then using the AND Operator. (rout[2].state == 1 || time.isAfter("14:00")) && rout[1].state == 1 evaluates as "If Relay Output 2 is on OR the Time is after 2:00pm, AND Relay Output 1 is on, close Relay Output 3." The parenthesis are needed because order of operations evaluates AND Operators before OR Operators.