Internal Outputs⚓︎
The JNIORs have outputs isolated from one another. You can find out a lot more about the inputs on our website. The main thing to know about the outputs is that they are dry contact and need an external power source to provide power. Each internal output can handle between 5-30volts. The different models have a different number of inputs.
The 410 has 8 outputs, the 412 and 412 DMX have 12 outputs, and the 414 has only 4 outputs.
Get Output States⚓︎
Since: Version 26.0.0 - May 19, 2026
Authentication Level: Any
There are two options when it comes to getting the JNIOR's output states. You can get the state of a specific channel or you can get the states of all the channels at once.
int output_state;
const int error_code = ipg::get_output_state(m_uuid, channel_number, &output_state);
if (ipg::OK == error_code) {
std::printf("the output state for %d is: %d\n", channel_number, output_state);
} else {
std::printf("getting the output state threw %s\n", ipg::get_last_error());
}
int output_states;
const int error_code = ipg::get_output_states(m_uuid, &output_states);
if (ipg::OK == error_code) {
std::printf("the output states are: %d\n", output_states);
} else {
std::printf("getting the output states threw %s\n", ipg::get_last_error());
}
Usage Meter⚓︎
Since: Version 26.0.0 - May 19, 2026
Authentication Level: Administrator
General Output Control⚓︎
Since: Version 26.0.0 - May 19, 2026
Authentication Level: Administrator
This is a generalized way to control outputs. It allows you to choose the command you wish to perform on the output in the function call.
You must be logged in as a USER or ADMINISTRATOR to control the outputs.
// Example that sets output 1's state on
// Referencing outputs using this call is zero based
// First parameter is the command to perform, Second is the
// output you are controlling
//
// Commands are (Close, Open, Close Pulse, Close Open, Toggle)
_jmpConnection.ControlOutput("Close", 0);
// Example that sets all outputs on
//
// First parameter is the state mask, and defines which
// outputs to activate, Second parameter is the channel mask
// that defines the range of outputs to evaluate. Outputs
// not specified in the state mask, but are within the range
// of the channel mask are turned off
_jmpConnection.SetOutputs(15, 15);
// hex can be used to represent mask values as well
_jmpConnection.SetOutputs(0xf, 0xf);
// Example that sets output 1's state on
// Referencing outputs using this call is zero based
// First parameter is the command to perform, Second is the
// output you are controlling
//
// Commands are (Close, Open, Close Pulse, Close Open, Toggle)
jmpConnection.controlOutput("close", 0);
// Example that sets outputs 1 - 4 on
//
// First parameter is the state mask, and defines which
// outputs to activate, Second parameter is the channel mask
// that defines the range of outputs to evaluate. Outputs
// not specified in the state mask, but are within the range
// of the channel mask are turned off
jmpConnection.setOutputs(15, 15);
// hex can be used to represent mask values as well
jmpConnection.setOutputs(0xf, 0xf);
# Example that sets output 1's state on
# Referencing outputs using this call is zero based
# First parameter is the command to perform, Second is the
# output you are controlling
#
# Commands are (Close, Open, Close Pulse, Close Open, Toggle)
jmp_connection.control_output("Close", 0)
# Example that sets outputs 1 - 4 on
#
# First parameter is the state mask, and defines which
# outputs to activate, Second parameter is the channel mask
# that defines the range of outputs to evaluate. Outputs
# not specified in the state mask, but are within the range
# of the channel mask are turned off
jmp_connection.set_outputs(15, 15)
# hex can be used to represent mask values as well
jmp_connection.set_outputs(0xf, 0xf)
Close, Open, Toggle⚓︎
Since: Version 26.0.0 - May 19, 2026
Authentication Level: Administrator
These control commands are more specific. You specify the Open, Close, and Toggle command you wish to perform as part of the function call.
// Example that sets output 1's state on
// Referencing outputs using this call is zero based
_jmpConnection.CloseOutput(0);
// Example that sets output 1's state off
// Referencing outputs using this call is zero based
_jmpConnection.OpenOutput(0);
// Example that sets output 1's state opposite of what it currently is
// Referencing outputs using this call is zero based
_jmpConnection.ToggleOutput(0);
// Example that sets output 1's state on
// Referencing outputs using this call is zero based
jmpConnection.closeOutput(0);
// Example that sets output 1's state off
// Referencing outputs using this call is zero based
jmpConnection.openOutput(0);
// Example that sets output 1's state opposite of what it currently is
// Referencing outputs using this call is zero based
jmpConnection.toggleOutput(0);
# Example that closes output 1's state
# Referencing outputs using this call is zero based
jmp_connection.close_output(0)
# Example that opens output 1's state
# Referencing outputs using this call is zero based
jmp_connection.open_output(0)
# Example that sets output 1's state opposite of what it currently is
# Referencing outputs using this call is zero based
jmp_connection.toggle_output(0)
General Control with Pulsing⚓︎
Since: Version 26.0.0 - May 19, 2026
Authentication Level: Administrator
This is similar to the generalized way to control outputs mentioned previously, but with the ability to specify a duration for the command in milliseconds. It allows you to choose the command you wish to perform on the output in the function call.
// Example that sets output 1's state on for 3 seconds
// Referencing outputs using this call is zero based
//
// First parameter is the command to perform, Second is the
// output you are controlling, Third is the duration in milliseconds
//
// Commands are (Close, Open, Toggle)
_jmpConnection.PulseOutput("close", 0, 3000);
// Example that sets outputs 1 - 4 on for 3 seconds
//
// First parameter is the state mask, and defines which
// outputs to activate, Second parameter is the channel mask
// that defines the range of outputs to evaluate. Outputs
// not specified in the state mask, but are within the range
// of the channel mask are turned off,
// Third is the duration in milliseconds
_jmpConnection.PulseOutputs(15, 15, 3000);
// hex can be used to represent mask values as well
_jmpConnection.PulseOutputs(0xf, 0xf, 3000);
// Example that sets output 1's state on for 3 seconds
// Referencing outputs using this call is zero based
//
// First parameter is the command to perform, Second is the
// output you are controlling, Third is the duration in milliseconds
//
// Commands are (Close, Open, Toggle)
jmpConnection.pulseOutput("close", 0, 3000);
// Example that sets outputs 1 - 4 on for 3 seconds
//
// First parameter is the state mask, and defines which
// outputs to activate, Second parameter is the channel mask
// that defines the range of outputs to evaluate. Outputs
// not specified in the state mask, but are within the range
// of the channel mask are turned off,
// Third is the duration in milliseconds
jmpConnection.pulseOutputs(15, 15, 3000);
// hex can be used to represent mask values as well
jmpConnection.pulseOutputs(0xf, 0xf, 3000);
# Example that sets output 1's state on for 3 seconds
# Referencing outputs using this call is zero based
#
# First parameter is the command to perform, Second is the
# output you are controlling, Third is the duration in milliseconds
#
# Commands are (Close, Open, Toggle)
jmp_connection.pulse_output("Close", 0, 3000)
# Example that sets outputs 1 - 4 on for 3 seconds
#
# First parameter is the state mask, and defines which
# outputs to activate, Second parameter is the channel mask
# that defines the range of outputs to evaluate. Outputs
# not specified in the state mask, but are within the range
# of the channel mask are turned off,
# Third is the duration in milliseconds
jmp_connection.pulse_output(15, 15, 3000)
# hex can be used to represent mask values as well
jmp_connection.pulse_output(0xf, 0xf, 3000)
Close, Open, and Toggle Pulse⚓︎
Since: Version 26.0.0 - May 19, 2026
Authentication Level: Administrator
These are specific commands for controlling outputs with the ability to specify how long they last in milliseconds. You specify the Close, Open, or Toggle command you wish to perform as part of the function call.
// Example that sets output 1's state on for 3 seconds
// Referencing outputs using this call is zero based
//
// First parameter is the output to pulse closed, Second is the
// duration in milliseconds
_jmpConnection.ClosePulseOutput(0, 3000);
// Example that sets output 1's state off for 3 seconds
// Referencing outputs using this call is zero based
//
// First parameter is the output to pulse open, Second is the
// duration in milliseconds
_jmpConnection.OpenPulseOutput(0, 3000);
// Example that sets output 1's state opposite of its current state
// for 3 seconds
// Referencing outputs using this call is zero based
//
// First parameter is the output to pulse toggle, Second is the
// duration in milliseconds
_jmpConnection.TogglePulseOutput(0, 3000);
// Example that sets output 1's state on for 3 seconds
// Referencing outputs using this call is zero based
//
// First parameter is the output to pulse closed, Second is the
// duration in milliseconds
jmpConnection.closePulseOutput(0, 3000);
// Example that sets output 1's state off for 3 seconds
// Referencing outputs using this call is zero based
//
// First parameter is the output to pulse open, Second is the
// duration in milliseconds
jmpConnection.openPulseOutput(0, 3000);
// Example that sets output 1's state opposite of its current state
// for 3 seconds
// Referencing outputs using this call is zero based
//
// First parameter is the output to pulse toggle, Second is the
// duration in milliseconds
jmpConnection.togglePulseOutput(0, 3000);
# Example that sets output 1's state on for 3 seconds
# Referencing outputs using this call is zero based
#
# First parameter is the output to pulse closed, Second is the
# duration in milliseconds
jmp_connection.close_pulse_output(0, 3000)
# Example that sets output 1's state off for 3 seconds
# Referencing outputs using this call is zero based
#
# First parameter is the output to pulse open, Second is the
# duration in milliseconds
jmp_connection.open_pulse_output(0, 3000)
# Example that sets output 1's state opposite of its current state
# for 3 seconds
# Referencing outputs using this call is zero based
#
# First parameter is the output to pulse toggle, Second is the
# duration in milliseconds
jmpConnection.toggle_pulse_output(0, 3000)