SNAPPER
Simple snapshot/analysis/archive/playback macro for a single ICE card.
SNAPPER - simple snapshot/analysis/archive/playback macro for a single ICE card
<card> Name of card alias in hardware config file
<flags> List of flags to append to the card's config
<config> Configuration table, if blank uses a global results SNAPSET
This macro is a GUI to deploy various resources on an ICE card, to snapshot or
continuously acquire to memory or disk, and then to play them back if the card
is configured to do so. There are also a few simple analysis tools.
The recognized fields in the configuration table and their defaults are:
port=MODULE1 Data source port name
format=SB Data source format
rate=10 Samplerate in MHz
clock=N Clock source
length=1.0 RAM buffer length in seconds
dec=512 Tuner decimation
freq=1 Tuner frequency in MHz
gain=0 Tuner gain in dB
nfft=1024 PSD FFT size
psdr=10 PSD production rate in Hz
psda=1 PSD averages before plotting
frame=512 Frame size for time series plots
afname="archive" Archive filename
afqual="" Archive filename qualifiers
wave=none Output waveform
The XMidas version of this macro is graphical only and rather limited in functionality.
The remainder of this explain files covers the NeXtMidas version only.
Controls:
gcontrol label "FUNC" "Acquire|Playback"
gcontrol button "MODE" "" "Setup,RTMemory,Snapshot,Exit,RTArchive,Archive"
gcontrol choice "REPLAY" "Replay" "One,Cont,Stop,ReStart" "Stop"
gcontrol choice "WAVE" "Waveform"
gcontrol tval "TIME" "TC"
gcontrol label "ARCH" "Archive"
gcontrol prompt "AFNAME" "File"
gcontrol tval "ATCT" "Top"
gcontrol tval "ATCL" "Len"
gcontrol lval "AUXU" "Disk"
gcontrol label "CFG" "Port Config"
gcontrol prompt "CARD" "Card " card
gcontrol choice "PORT" "Port "
gcontrol choice "FORMAT" "Format"
gcontrol choice "RATE" "Rate "
gcontrol choice "LENGTH" "Length"
gcontrol choice "CLOCK" "Clock "
gcontrol choice "DEC" "Dec "
gcontrol dval "FREQ" "Freq "
gcontrol lval "GAIN" "Gain "
gcontrol label "DISP" "Displays"
gcontrol choice "FRAME" "Frame Size"
gcontrol choice "NFFT" "Fft Size "
gcontrol choice "PSDR" "Disp Rate "
gcontrol choice "PSDA" "Disp Avg "
gcontrol label "ANAL" "Analysis"
gcontrol button "APLOT" "Plots " "TD-Line,TD-Raster,Histogram,FD-Line,FD-Raster,Stats"
gcontrol label "OPTS" "Options"
gcontrol prompt "FLAGS" "Flags String"
gcontrol choice "AOVER" "Overlay" "Ask,Erase,OverWrite,Append,Leave,Abort" "Ask"
gcontrol choice "ATAG" "ArchTag" "None,Date,MJS" "None"
gcontrol choice "HDR" "Headers" "Attached,Detached" "Det"
gcontrol choice "APKT" "Packets" "On,Off" "Off"
gcontrol lval "STATS" "Stats "
gcontrol choice "COMP" "Compression" "Off,Data,Plot" "Plot"
gcontrol label "SYS" "System"
gcontrol choice "AUX0" "Aux-0 "
gcontrol lval "AUX0U" "Used-0"
gcontrol lval "FULL" "FullAt"
gcontrol dval "MAXFS" "MaxFileSize" 2e9 1e6 8e12 1e6 /units="by"
gcontrol lval "CPU" "Total CPU " 0 0 100 1 /gauge
gcontrol lval "LOST" "LostBuffers" 0 1 -1 1 /edit=f
gcontrol lval "CYCLE" "CurrCycle" 0 1 -1 1 /edit=f /mon=reg.sp.cycle
These controls can be initialized using the /GC={MODE=xx,...} syntax.
A Midas log file is created by the name <card>_<port>.mlog. This file can be filtered
for error messages, up/down times, performance metrics, etc. It can be retrieved via
NFS, FTP, HTTP, MFTP, etc.
In archive mode, the macro creates a report in the form of a table of contents file
named <archive>_toc. This is a midas file containing a record for each file archived
to disk. The file can be filtered by the user for files of interest which can then be
retrieved via NFS, FTP, HTTP or MFTP.
The /RCVR=alias switch adds widgets for controlling a receiver. If alias=ICE, the
receiver is an ICE I/O Module. Otherwise, the alias must exist in the Hardware Config
file and have commands for frequency (F=MHz) and attenuation (ATN=dB).
The /SERVER=port switch runs the NeXtMidas macro in server mode.
It then has a browser interface at http://localhost:<port> .
An Http interface is supports any parameter with results access.
The GC result is a table of all control widgets.
For example to start a real time archive:
http://<host>:<port>/System/Set?GC.MODE.ACTION=RTARCHIVE
To get the current state of an transfer:
http://<host>:<port>/System/Get?GC.MODE.ACTION
To get the current state of an ARCHIVE file transfer:
http://<host>:<port>/System/Get?REG.NOOP.PROGRESS
this returns REG.NOOP.PROGRESS=frac or null if completed.
See the HELP on HTTP for the HTTP or Hyper Text Transfer Protocol syntax.
See the HELP on RMIF for the MFTP or Midas File Transfer Protocol syntax.
Messages:
These are RMIF messages sent in UDP packets. The results are returned to the calling host:port
in UDP packets with an RMIF header. See help on RMIF for information on RMIF payload headers.
GET - Get information from the macro - message is copied back in a RET message
DOWNLOAD={NAME=localFileName,TIME=start,LENGTH=len} - Causes client macro to download a piece of the archive file
This basically hits the download menu item with the dialog box filled in with these parameters.
+ all other controls listed above
where n is a channel number, start is in J1950 seconds, and len is in seconds.
SET Set information in the macro - message is copied back in an ACK message
VLAN=address - sets the VLAN for the input port (do before JOIN)
JOIN=address - connect the UDP address to the input port
LEAVE=address - disconnect the UDP address from the input port
INFO=TEXT - text line to be added to the report file (ex. Receiver freq change messages, latches, ...)
+ all other controls listed above
DOWNLOAD={NAME=localFileName,TIME=start,LENGTH=len} - Causes client macro to download a piece of the archive file
This basically hits the download menu item with the dialog box filled in with these parameters.
Switches:
/PLAY Use this macro for output or playback mode
/WRAP ReStart play back at beginning of file when end is reached
/DUAL Runs both ports 1|2 to separate files with Master/Slave relationship
/NORESET Bypass reset of card so multiple instances can be run at once
/CLIENT Run this macro as a client
/SERVER=p Run this macro as a server on port p
/REMOTE=h:p The server host and port to feed this client
/HEADLESS Run this server without graphics
/AUTOEXIT Exit when the SETUP mode is reached
/AUTOCONF Automatically configure settings to match selected Archive file
/ATL=n Archive transfer length (in samples) tuned to maximize disk performance
(usually 1-2Mby, but less than 1/4 of the RAM buffer length)
/AAUX=n Archive auxiliary for single channel archives
/AAUX1=n Archive auxiliary for channel 1 in dual channel archives
/AAUX2=n Archive auxiliary for channel 2 in dual channel archives
/RAUX=n List of auxiliaries for graphical selection of Archive playback files
/ARCHSF=n Causes each N ICE ram buffers to be archived to a separate file. Files
may be APPENDed to each other to reconstruct larger blocks of data.
Each filename gets a one-up suffix of the form _###.
/AUTOARCHIVE Archive immediately after SNAPSHOT
/TSP Use Time Series Plots only instead of mixed time/frequency
/FDP Use Frequency Domain Plots only instead of mixed time/frequency
/NBP Add Narrowband plot with click tune capability
/WBP Add Wideband plot with click tune capability
/LTYPE=x Line type for time series plots def=line (see PLOT command)
/FIXRANGE=x Use fixed range of x dB from format max for Freq Domain Plots
/NEWPSD Use new order for PSDA and PSDR where display averaging is done before the display rate calculation
/CHECKTC Dumps timecode once per second to dumptcstat and dumptcdata for debug
/FREQADJ Adjust marker freq for upfront offset in Hz
/MARKER Add frequency marker widget to display actual freq of mouse marker
/MODES=list Override the function menu list
/NIC=addr Use NIC card instead of PIC card to monitor SDDS data
/OVERLAY=mode Switch form of Archive Overlay mode for inheriting from parent macro
/OVSR=n Set oversampling ratio for tuners
/PKT Produce additional archive files <archname>.pkt of packet headers
corresponding to archive buffers with timecode, channel #, etc.
/PMFFT Use FFT on processor module to replace PSD decimate on host with PSD maximum
/RF Add widgets to control an RF section (D2AWG)
/RCVR=alias Add widgets to control a front end receiver frequency and gain
/SDDS Add control widgets for SDDS VLAN and Address
/SDDSMULTI=n Setup archiver for Multi-channel SDDS mode to separate files.
/TB=N TunerBank mode with number channels N from 4 to 4K
/TIVO=len Operates archive in circular mode with disk buffer of <len> seconds.
/GPS=iom Specifies IO Module number with GPS module to query for GPS state vector
/EMT=n Adds Envelope Measure and Track widget to monitor signal level
/GC={} Table of default parameters for any of the controls.
This has the form {MODE=RTARCHIVE,HDR=ATTACH,...}
/NM Runs the NeXtMidas version of snapper from XMidas