OpenVLBI server sample
OpenVLBI can be tested using the built vlbi_server_dummy application, which creates a subshell or takes arguments from the standard input. the source files of the sample application make use of the vlbi_server.h source header, which contains a base class to be inherited in case that you want to build your own server or implementation.
OpenVLBI server using INDI libraries
OpenVLBI comes with vlbi_server_indi, a server that connects to an INDI server whose drivers will be treated by OpenVLBI as nodes. OpenVLBI nodes must contain informations about location, aperture, focal length, samplerate and observed frequency preferably, and should permit to slew their telescopes or antennas to the same celestial coordinates. tracking must be supported by the mounts and each node should capture and run at the same bit depth, frequency and possibly bandwidth and gain. After each capture is done, a new node will be added to the OpenVLBI context by parsing the received FITS.
The needed INDI interfaces are so:
- INDI::BaseDevice::TELESCOPE_INTERFACE
- INDI::BaseDevice::GPS_INTERFACE
- INDI::BaseDevice::DETECTOR_INTERFACE
- INDI::BaseDevice::RECEIVER_INTERFACE
and optionally, also for autoguiding:
- INDI::BaseDevice::CCD_INTERFACE
- INDI::BaseDevice::GUIDER_INTERFACE
The properties used by this server are:
- "EQUATORIAL_EOD_COORDS" RA and DEC from telescope for gotos and slews
- "TELESCOPE_TRACK_STATE" from telescope for tracking
- "GEOGRAPHIC_COORDS" LATITUDE, LONGITUDE and ELEVATION to fill the UV plane and plot the frequency response
- "DETECTOR_CAPTURE" to start capture
- "DETECTOR_SETTINGS" set up frequency, bandwidth, sampling rate and depth, and gain of the detectors
OpenVLBI servers usage
The vlbi server applications open a command shell and read from stdin. Format of commands is: cmd arg value:type where type can be string or numeric.
Here is the current command list:
add context name:string - add an OpenVLBI context to the internal list
set context name:string - set current OpenVLBI context selecting it by name from the internal list
set mask name,model,mask:string,string,sting - mask the model with mask, and save the masked model into name
set shifted name:
string - shift the model by
its dimensions
add node name,geo|xyz,latitude|x,longitude|y,elevation|z,datafile,observationdate:string - add a node to the internal list
add plot name,projection,synch,type:string,string,string,string - add a model with the plot of the perspective projection of all nodes during the observation in format ([synthesis|movingbase],[delay|nodelay],[raw|coverage]) synthesis for aperture synthesis observation or to plot the UV coverage. delay to automatically calculate delays between nodes, nodelay means that they are already synchronized, raw will fill the perspective path with the correlation degree of the respective baseline, coverage will create a mask to apply to a phase model or a simulated magnitude.
add idft idft,magnitude,phase:string,string,string add a model named idft from the magnitude and phase models passed
add dft idft,magnitude,phase:string,string,string add the phase and magnitude models obtained from the model passed as idft
add model name,format,data:string,string,string add a new model from the base64 encoded string containing the picture file buffer, and format as [jpeg|png|fits]
set frequency value:numeric - set detectors frequency
set bitspersample value:numeric - set detectors sample bit depth
set samplerate value:numeric - set detectors sampling rate
set target ra,dec:numeric,numeric - set telescopes celestial target
set resolution WxH:numeric,numeric - set the resolution of the output picture of the Fourier plane
set location latitude,longitude,elevation:numeric,numeric - set the reference station coordinates for xyz node locations relative to this
get models - get the models list with names and dimensions
get nodes - get the nodes list with their data
get baselines - get the baselines list with their data
get model name,format:string,string get the model with name in ([png|jpeg|fits]) format, base64 encoded
del model name:string - remove a model from the current context
del node name:string - remove a node from the current context
del context name:string - remove a context from the internal list
INDI server specific commands
set gain value:numeric - set detectors gain
set bandwidth value:numeric - set detectors bandwidth
set parking state:string - set telescopes parking state (on, off)
set tracking state:string - set telescopes tracking state (on, off)
set capture value:numeric - set detectors capture time in seconds
set exposure value:numeric - set ccd cameras exposure time in seconds
set connection state:string - set nodes connection state (on, off)