Writing Tables Files
A table file contains all information necessary to run complex ICE signal process applications of many varieties and can be custom tailored for all of the ICE hardware platforms and modules. Tables files are used to provides configuration settings to SNAPAPP, which runs one or more instances of SNAPPER. The result is that a particular scenario may be implemented for a system that employs everything from a single I/O channel up to as many I/O channels and ICE-PIC cards as the system can support. For example, if your system uses one input module and one output module, even on multiple PIC cards, they can be monitored and controlled from a single GUI window when using a correctly configured table file.
Contents
Assumptions
This document assumes that NeXtMidas and the ICE Option Tree are already install and functional, and that a graphical environment is being used.
For instructions on how to accomplish this, please refer to ______.
Structure
SNAPSET
The required SNAPSET section provides the global defaults for the application. All more specific cases inherit this configuration.
SNAPSET={ FORMAT=CI CLOCK=P RATE=62.5 LENGTH=1 NFFT=4k FREQ=1.71875 PSDR=25 PSDA=10 EXPA=0 FRAME=512 AFLAGS=VERBOSE|BLOCK=128k AFNAME=archive WAVE=NONE }
CONTROLS
Global (pulling out controls/widgets):
CONTROLS={ ADDR={} AFNAME={} }
A note on capitalization: by convention, field names and options with a list of predefined values, e.g., FORMAT options, are normally capitalized, while file names and other arbitrary values are not; however, the table file will run whether or not these conventions are followed.
CASE
Cases extend and may override settings in the SNAPSET. While entire configurations may be written in cases, the only necessary settings are those that do not already have desired default values. Typical minimalistic cases may override settings such as CARD, PORT, and AFNAME.
The syntax for defining a case is
CASE_<CASE NAME>={ <SETTINGS> ... }
CASE_XXX={ ... }
CASE_YYY={ SWITCHES=$CASE/SOME_SWITCH ! Inheritance from case above }
Inheritance
CASE=<PARENT CASE>
APPLIST
APPLIST={ APP_NAME="A,B,C" (common-separated list of cases) }
SERVER_DEFAULTS
SERVER_DEFAULTS={ SCENE=<SCENE> MODE=OPEN }
Miscellaneous
- Left hand side switches override right ones
- Good practice to use PIC<N>AUTO alias (obtained from ICE AUTO)
- The PIC card is divided between A and B sides, where the A side has
odd numbers and the B even. - A side: Module 1, odd numbered tuners on processor modules - B side: Module 2, even numbered tuners on processor modules
- Auto-start with ACTION=X, where X is the name or unique abbreviation
of the snapper button corresponding to the desired action, e.g., ACTION=mon to bring up snapper and start monitoring
- V6Ms have Tuner Banks using onboard memory
Switches with SNAPAPP
- Switches with SnapApp
nM> snapapp/use={CARD=PIC1AUTO,PORT=MODULE1}
^^^Table file syntax^^^
Network Applications
Often the intended destination or source of data for the application is another machine over the network rather than the local disk.
(Flags is a Switch)
Streaming:
nM> res hwalias -> show PIC cards and NIC ports
ATL=8M
Network/Streaming Interface
Multicaster:
Examples
SERVER_DEFAULTS={ SCENE=<SCENE> MODE=OPEN }
AFNAME="udp:^{hwalias.nic1port}/224.1.10.1:7777" AFQUAL="FUNC=ICEMULTI,PKTLEN=8K" WAVE=NONE FLAGS=BLOCK=1M SWITCHES=RF/ADLM/GC={APKT=OFF,RFFREQ=900,RFBW=80,RFGAIN=10,RFOPTS=ENABLE|LNA|DCS|AIS}
CASE_CH1={ CARD=PIC1AUTO PORT=MODULE1 AFNAME="udp:^{hwalias.nic1port}/224.1.10.1:7777" }
Catcher:
SERVER_DEFAULTS={ SCENE=MONALL MODE=OPEN }
PORT=STREAM1 SWITCHES=NIC/GC={ADDR=224.10.0.1,SOCK=7777}/PKTLEN=8K
AFNAME=archive AFQUAL="RG=IFS" WAVE=none FLAGS=NONE SWITCHES=ACQ CONTROLS={ ADDR={} AFNAME={} }
CASE_MCH1={ CARD=NIC1AUTO PORT=STREAM1 SWITCHES=NIC/GC={ADDR=224.1.10.1,SOCK=7777}/PKTLEN=8K/ATL=8M/AAUX=11 AFNAME=mon1arch }
CASE_MCH2={ CARD=NIC2AUTO PORT=STREAM2 SWITCHES=NIC/GC={ADDR=224.1.10.2,SOCK=7777}/PKTLEN=8K/ATL=8M/AAUX=12 AFNAME=mon2arch }
See Also