Writing Tables Files

From ICE Enterprises
Jump to navigation Jump to search
This page is under construction; as such, the information presented herein is not complete: please do not rely of this documentation before it is completed. Thank you.

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.

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 ______.

SNAPPER Fields

The recognized fields in the configuration table and their defaults are:

Field Description Possible Values Default Value
PORT Data source port name MODULE1, MODULE2, MODULE3 (both), ... MODULE1
FORMAT Data source format SB, SI, CB, CI SB
RATE1 Samplerate in MHz Module-dependent 10
CLOCK Clock source N, PRefX, P N
LENGTH RAM buffer length in seconds Depends on the size of the circle memory buffer 1.0
DEC Tuner decimation 512
FREQ Tuner frequency in MHz Arbitrary, module-dependent 1
GAIN Tuner gain in dB Module-dependent 0
NFFT PSD FFT size 1024
PSDR PSD production rate in Hz 10
PSDA PSD averages before plotting 1
FRAME Frame size for time series plots 512
AFNAME Archive filename Arbitrary string "archive"
AFQUAL Archive filename qualifiers -
WAVE Output waveform none

Table File 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
}

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.

CONTROLS

Global (pulling out controls/widgets):

CONTROLS={
  ADDR={}
  AFNAME={}
}

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