Arithmetics with multiple input signals
This example shows how to process multiple input signals. You can create such script windows only by using Control Window.
In the process function, we expect to get two input signals. The resulting signal will contain maximal values from these two signals by using element-wise comparison. Other signal properties like units, x-axis, length etc. will be taken from the first input signal.
function process( input_windows::Array{SigviewWindow}, output_signal::SigviewSignalWindow )
#create empty array for the result
output_signal.samples = Array{Float32}( undef, length(input_windows[1].samples) )
#iterate through both input arrays (until the length of the first one) and place the max value in result array
#can be done more efficient with Julia, loop example for simplicity
for i= 1:length(input_windows[1].samples)
output_signal.samples[i] = input_windows[1].samples[i] > input_windows[2].samples[i] ? input_windows[1].samples[i] : input_windows[2].samples[i]
end
#set sample rate and x axis the same as in the first input signal
output_signal.samplingRate = input_windows[1].samplingRate
output_signal.xAxisBegin = input_windows[1].xAxisBegin
output_signal.xAxisUnit = input_windows[1].xAxisUnit
output_signal.yAxisUnit = input_windows[1].yAxisUnit
return true
end