SIGVIEW - interface with DAQ via JULIA

I am working on a Condition Based Monitoring System for a small Marine Vessel. Need a FFT Software at the end of the line to keep a check on the Diesel Engines.
I have four sets of Piezo + DAQ to pick up vibrations; 24 bits ADC / 500 Ks/secs. The latter is SPI and I am reading it on a STM32H753 and intend to send data via an Ethernet protocol (I could modify this protocol subject to the software requirement) tied to a LAN switch. Also connected to the LAN switch is a LAPTOP which acts as a server too.
Need a suitable FFT software to view this data. REAL TIME & record.
SIGVIEW seems a good choice to start with.
But there is many a slip between the cup and the lip. I learnt that it could only be done via JULIA.

Contacted SIGVIEW and the reply was;

To implement your own DAQ protocol, there are 2 options:

1. Use Julia-based scripting to create custom signal source window:

Signal source windows

2. Use File-based DAQ simulation:

Data Acquisition Overview

If any one of you could kindly help me to get started in the right direction. I am a Mechanical Engineer / Hobbyist but an avid learner.

Sincerely,

I don’t know SIGVIEW, but from the linked resource (1) I’d try to use the Julia scripting to create a webserver that listens and stores the incoming data packages in memory via LAN. From this you would need to transform the data into the format as required by SIGVIEW. My first question would be if the scripting interface would generally allow such a long running process to collect the data via Sockets or HTTP.

Good Day Friend,
To be honest I am new to all this. I had asked SIGVIEW about the Protocol / signal format but that’s what they replied.
SIGVIEW, supposedly works in real time too so it should support a trail of data.
I am indebted by your help.
Apologies can’t be much help.

Since I am employing STM32 downstream of the 24 bits ADC, the format of the data could be well tailored. But what SIGVIEW merits, no idea.

From what I read you will need to use the two function hooks update and getUpdateIntervalMSec. The former will provide a SigviewSignalWindow object called output_signal as a function argument. Based on the example they provide you could use this as a starting point:

function update( output_signal:: SigviewSignalWindow ) # this is the argument that you will be able to manipulate it is provided by SIGVIEW but you will be allowed to change its properties
# in your implementation you might instead start a server listening on a port and collect the data instead 
  output_signal.samples = rand( -100 : 100, 1000 ) # the `rand` function generates an array of 1000 random values in the range of -100 and 100. The `=` assigns it to the `samples` property of `output_signal`
  output_signal.samplingRate = 10 # here other properties are written 
  output_signal.xAxisUnit = "sec"
  return true
end

I think you will need a basic understanding of Julia to follow the example and start making progress on ingesting you own data. To learn Julia you can chose one of the many tutorials: Tutorials

Thank you ever so much. I do need to get a further understanding of JULIA and must read more. Excuse my naivety, I have been sifting thru the SIGVIEW documents but couldn’t find any info on DAQ interface data.
Perhaps have to put in more hours.
Much obliged.

From the link as under;
https://sigview.com/help/Datatypes.html
I quote:

  • SigviewSignalWindow is probably the most important struct you will use. It describes one SIGVIEW signal window. Please remember that any sequence of values in SIGVIEW is considered to be a “signal”, for example time-domain signal from your sound card, FFT result (spectrum), octave plot,…

Only samples array and samplingRate values are mandatory.
The above / ARRAY appears to be a .csv type format ie voltages vs time.
Sampling rate, is undeniably very important. I have it at 500 Ks/sec.
No idea what SIGVIEW is tolerant with ?
Sincerely,

The samples properties of the SigviewSignalWindow is a Julia native array of Float32 and has no other structure like CSV. See Single- and multi-dimensional Arrays · The Julia Language and this tutorial I found on youtube: https://www.youtube.com/watch?v=-m2ZFPemSUg

Thank you so much. Shall have a look. Bless you. happy New Year to you.