ICE Help STATUS

From ICE Enterprises
Jump to navigation Jump to search
Go to the full list of ICE Help pages.

Summary: Status interface to various ICE products

Newer ICE products often involve systems and cards that may be polled for status.

SERVICE - communications with ICE services using SNAPAPP or SNAPPER macros

The /SERVER=port switch runs the NeXtMidas SNAPPER macro in server mode. The /SERVICE=port switch runs the NeXtMidas SNAPAPP macro and its SNAPPER children in server mode.

It then has a browser interface at http://localhost:<port>. This page has links to /System, /Controls, /Registry, /Results, /Files, /System, and /Displays.

The Http /System interface supports any parameter with results access. The GC result is a table of all control widgets for the macro.

For example, to start a real time SNAPPER archive:

http://<host>:<port>/System/Set?GC.MODE.ACTION=RTARCHIVE

To get the current state of a 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.

The Http /Controls, /Results and /Registry interfaces support a table syntax for control also used by the ICENET interface. Developers may write their own code to exercise this control mechanism.

For example: To start a SNAPPER macro in archive mode:

http://<host>:<port>/Controls/Set?MODE=RTARCHIVE

To change the freq and decimation control widgets of the macro:

http://<host>:<port>/Controls/Set?{FREQ=1.2,DEC=256}

To access members of the snapper macro's sourcepic primitive directly:

http://<host>:<port>/Registry/SP/Get?{FREQ=,DEC=,GAIN=}

To set and get multiple parameters in an atomic manner:

http://<host>:<port>/Controls/Set?{CHAN=11,FREQ=,DEC=}

where the entries without values execute as Gets.

If snapper is invoked with the /NBX=chns switch, the tuner export sourcepics are accessed as:

http://<host>:<port>/Registry/SPX<n>/Get?{FREQ=,DEC=,GAIN=,REPLAY=}

where <n> is the 1 based channel number. For example:

http://<host>:<port>/Registry/SPX5/Set?{FREQ=1.23,DEC=32,GAIN=0,REPLAY=Cont}

will start channel 5 in continuous mode with the given freq/dec/gain parameters.

http://<host>:<port>/Registry/SPX30/Set?{REPLAY=Stop}

will stop channel 30.

There are two special keys intercepted by the HTTP server:

/WAIT=n waits for N seconds before processing the next key
/SYNC   waits until the previous key has been processed

If /SYNC is the last key, the socket will not return an HTTP status ACK until the command has been processed.

The system status of the machine hosting an ICE service is available at:

http://<host>:<port>/System/

where is:

Top       - CPU usage
Ice-Disks - status of disk drives
Ice-Health - low-level status on an Ice-Block
Ice-Driver - card status and temps recorded by the driver
Ice-PICs - configuration of ICE-PICS
Ice-NICs - configuration of ICE-NICS
Ice-QICs - configuration of ICE-QICS

If ".tbl" is appended to the output will be in serialized table format for easy parsing. For example:

http://<host>:<port>/System/Ice-PICs.tbl

gets the ICEPIC configuration in table form.


DRIVER - status of the ICE cards via the driver interface

Accessing the card status via the driver interface does not actually touch the cards. The processes using the cards deposit status to the driver roughly every 10 seconds. This interface can be polled as often as desired without affecting card performance. It shows the status of the special iceram buffers and devices on this system.

Here is an example readout:

RamStart : 68496 Mby RamDisk : 9000 Mby RamMapped : 96 Mby RamPage : 4 Kby RamAlloc : 2 RamAddr : Start=0x10b9000000 End=0x12f1800000 Buffers : 1 Buffer#0 : Addr=0x10b9000000 Size=0x232800000 Devices : 5 Device#0 : Revision=0x80 MemBase=0xdf700000 CardTemp=43 MJS=1491551801 PeakTemp=48 PMJS=1491390847 CompTemp=(43,-1,-1,24,24) Flags=0x00000000 Active=0 Device#1 : Revision=0x6b MemBase=0xdf600000 CardTemp=-1 MJS=1491551814 PeakTemp=-1 PMJS=1491390678 CompTemp=(-1,-1,-1,-1,-1) Flags=0x00000000 Active=0 Device#2 : Revision=0x71 MemBase=0xfb300000 CardTemp=48 MJS=1491551839 PeakTemp=48 PMJS=1491549735 CompTemp=(48,-1,-1,42,39) Flags=0x0000000c Active=0 Device#3 : Revision=0x71 MemBase=0xfb200000 CardTemp=47 MJS=1491552632 PeakTemp=47 PMJS=1491552577 CompTemp=(47,-1,-1,35,0) Flags=0x00000000 Active=20 Device#4 : Revision=0x6b MemBase=0xfb100000 CardTemp=-1 MJS=1491551860 PeakTemp=-1 PMJS=1491390679 CompTemp=(-1,-1,-1,-1,-1) Flags=0x00000000 Active=0 Version : 398

In this case there is only one ram Buffer#0 which is the Midas ramdisk. The partitioning of this buffer is managed by the Midas file system services. Dynamically mapped buffers will show up as buffers 1-N in this readout.

There are 5 devices in this system. Only one of them, Device#3, is currently active.

Revision - gives the card type (upper nibble) and PCI engine rev (lower nibble).

MemBase - shows the PCIe address of the device's mailbox registers.

CardTemp - shows the max of the temp sensors on the card at the ModifiedJulianSeconds MJS.

PeakTemp - shows the max of CardTemp since the last system boot (or driver reload) occurred at PMJS.

CompTemp - shows the individual temp sensor for each component (or -1 for no sensor) as follows:

(MainBoard,IOModule1,IOModule2,ProcessorModule1,ProcessorModule2)

Flags - shows operational flags as follows:

Bit#0 - has 10MHz  on MainBoard XSync port
Bit#1 - has 1PPS   on MainBoard XSync port
Bit#2 - has IRIG-B on MainBoard XSync port
Bit#8 - has 10MHz  on IO-Module1
Bit#9 - has 1PPS   on IO-Module1
Bit#12 - has 10MHz  on IO-Module2
Bit#13 - has 1PPS   on IO-Module2

The C defines for these flags are in $ICEROOT/inc/icelib.h as DRV_FLG_*.

Active - counts the number of DMA channels currently running on the card (or -1 if halted or never reset)

Version - is the software version number of the driver