Difference between revisions of "Writing Tables Files"

From ICE Enterprises
Jump to navigation Jump to search
Line 27: Line 27:
 
}
 
}
  
 +
<p class="info">A note on capitalization: by convention, field names and options with a list of defined 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.</p>
  
 
=== CASE ===
 
=== CASE ===

Revision as of 15:36, 17 July 2020

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

Structure

SNAPSET

The required SNAPSET section provides the global defaults for the application. All more specific cases inherit this configuration.

SNAPSET={
 ...
}

CONTROLS

Global (pulling out controls/widgets): CONTROLS={

 ADDR={}
 AFNAME={}

}

A note on capitalization: by convention, field names and options with a list of defined 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