Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ îðèãèíàëüíîãî äîêóìåíòà : http://www.eso.org/projects/www.eso.org.projects.ngc/Software/INS_SW_WS_2008_NGCIR_jstegmei.pdf
Äàòà èçìåíåíèÿ: Wed Oct 29 15:30:21 2008
Äàòà èíäåêñèðîâàíèÿ: Sun Apr 10 23:48:10 2016
Êîäèðîâêà:

Ïîèñêîâûå ñëîâà: annular solar eclipse
ESO New General detector Controller (NGC) (NGC)
Base Software And Infrared Detector Control Software
07/10/2008 J. Stegmeier


System Overview
Detector 4 - ADC ADC Detector [N] - ADC ADC Down Up AQ Clock/Bias Driver Sequencer Down FEB Up NGC LLCU (Linux)

[N] - ADC ADC 23 Detector Detector Detector Detector Detector Detector

Up NGC LLCU (Linux)

Up [N] - ADC ADC Down 2 3 [N] - ADC Up Down 2 3 [N] - ADC Up ADC Down 2 3 [N] - ADC Up ADC Down 23 Up [N] - ADC ADC Down Down AQ


Computing Architecture
IWS (Linux/ HP) Instrument LAN Fast Ethernet/ Gigabit-Ethernet -Ethernet

NGC LLCU (Linux)

...

NGC LLCU (Linux)

With the current Linux-PC model current Linux we can achieve 200 Mbytes/s sustained input data-rate with co-adding data-rate co-adding (double correlated read-out) ad-out)


The Processes
IWS Config.-Files
Command/ Reply

GUI

Error-System Database Log-System FITS-Files Control Server Server RTD

Driver-Interface-Process

Acquisition Process (Pre-Processing, Sorting,...)

Device Driver Data Commands

NGC LLCU

PCI-Bus Interface

Fiber-Optic-Link to NGC Front End


Software Hierarchy
Base Software re
SetVoltage() GetVoltage() SetClockPattern() GetClockPattern() StartSequencer() StopSequencer() Enable/DisableADC() GetStatus() ...

OPT/IR Software

open() close() read() write() ioctl()

Reset()/Initialize() SetTimeout() ReadBuffer(address, buffer, size, ...) WriteBuffer(address, buffer, size, ...)

Graphical User Interface & RTD

SingleDmaRead(buffer, size,...) size ConfigureSustainedDma() StartSustainedDma() WaitForData() AbortSustainedDma() GetDmaStatus() ...

CaptureData() ProcessData() TransferData() ...

StartAcquisition() StopAcquisition() RequestImage() ReceiveImage() ...

ReadConfigFile() SetReadoutMode() SetupExposure() StartExposure() AbortExposure() CreateFitsFile() UpdateDatabase() DisplayImage() ...

Driver Level

Driver Interface Level

Acquisition it Process

Controller ll Interface Level

Control Server Level


Software Modules
dicNGC ngcdrv ngcb ngcpp ngcdcs ngcgui ngcrtd
Dictionary (both OPT/IR) Dictionary Device Driver Device Driver Interface and Basic Routines Basic Pre-Processing Pre-Processing Control Software & Server Control
Base SW

- Engineering & IR GUI Engineering - Engineering & IR Real-Time Display Engineering Real-Time

IR SW + Opt. SW (engineering)

ngciracq - IR Acquisition Processes IR ngcircon - IR Control SW & Server IR ngclcu - NGC-LCU Interface SW (IR, for VLTI) Interface
205726 lines of code

IR SW

The modules will be part of the VLTSW Releases. All modules contain Test Procedures for TAT (automated testing).


Installation Procedure IWS and NGC LLCU
Via installation scripts: scripts
cmmCopy ngcarch ngcarch cd ngcarch/src/ make all install (fixed versions) make update install (latest versions) ll (l

ngcins software module contains a pkgin installation-configuration installation-configuration (for both NGC IR and OPT software).


Installation Procedure Device Driver
Retrieve the driver module from the archive (if not yet done):
cmmCopy ngcdrv ngcdrv cp ­r ngcdrv /tmp ­r /tmp

Login as "root" to continue the installation (Attention: use telnet or as installation use telnet or "su ­" to ensure proper root session): ­"
cd /tmp/ngcdrv/src /tmp/ngcdrv/src make all install

Now you can load/unload the driver with:
/usr/local/bin/ngcdrv_load /usr/local/bin/ngcdrv_load /usr/local/bin/ngcdrv_unload /usr/local/bin/ngcdrv_unload

Add the following line to the file "/etc/rc.local" to load the driver at /etc/rc.local boot-time: boot-time:
/usr/local/bin/ngcdrv_load /usr/local/bin/ngcdrv_load

The device driver creates two independent devices:
"/dev/ngc_com" "/dev/ngc_com" and "/dev/ngc_dma". "/dev/ngc_dma".


Configuration Files Overview
Startup Configuration Sets (xxdcfgCONFIG.cfg)
Specifies... Executes...

Server Startup Configuration (xxdcfg.cfg)

Reads...

Server Command Line Options

System Configuration (.cfg)

Control Server

Detector Configuration (.dcf )

IR-Applications

Voltages (.v)

Clock-Patterns (.clk)

Seq.-Programs (.seq)


Startup Procedure
Startup tools:
ngcdcsStartServer [-gui] [other options] [-gui] ngcdcsStopServer (only GUI)
[other options] for maintenance (verbose mode etc.) or for overriding the keywords defined in the Startup-Configuration-Set. Startup-Configuration-Set The control server startup configuration is described by a unique name (configuration-set (configuration-set name). The refers to the name of a Startup-Configuration-Set which is defined efe to the in the main configuration file:
$INS_ROOT/SYSTEM/COMMON/CONFIGFILES/xxdcfgCONFIG.cfg

The Startup-Configuration-Set describes the Startup-Configuration-File and Startup-Configuration-Set Startup-Configuration-File some administrative options:
CONFIG.SET1.NAME "KMDCS"; CONFIG.SET1.DICT "NGCCON"; CONFIG.SET1.FILE1 "kmdcfg.cfg"; CONFIG.SET1.PERM1 664; # all CONFIG.SET1.BACKUP T; CONFIG.SET1.LOG T;

The Startup-Configuration-File defines the server startup options - e.g. autoStartup-Configuration-File e.g. autoonline, auto-start, database-point (if not default), server instance and the auto-start, database-point controller electronics system configuration file (i.e. HW-confi uration) to be ll fi ti fil (i HW-config loaded at startup.


Startup Procedure
Startup-Confi uration-File Startup-Configuration-File:
# Control server name DET.CON.SERVER "ngcdcsEvh"; "ngcdcsEvh"; # Database point Database point DET.CON.DATABASE "ngcdcs"; "ngcdcs"; # Instance label for server and OLDB DET.CON.INSTANCE ""; # HW system configuration file DET.CON.SYSCFG "NGCIRSW/my_ngc.cfg"; # Startup mode (NORMAL, HW-SIM, LCU-SIM) HW-SIM, LCU-SIM) DET.CON.DFEMODE "HW-SIM"; "HW-SI # Go online after start DET.CON.AUTONLIN F; # Auto-start at online Auto-start DET.CON.AUTOSTRT F; # Enable sub-system status polling sub-system DET.CON.POLL T; # Detector system index (DETi.XXX) DET.CON.DETIDX 1; # Dictionaries to load for this detector system DET.CON.DICT "NGCDCS"; CON # GUI name DET.CON.GUI "ngcgui"; "ngcgui";


NGC System Configuration
The System-Configuration-File describes System-Configuration-File the physical NGC system architecture. physical Defines the interfaces (PCI-boards). (PCI-boards). Defines the Sequencer-, CLDC-, ADC- and Sequencer-, CLDC-, ADC- and Shutter-modules in the system. system Defines the default setup for all modules (e.g. number of clocks, auto-enable, ADCauto-enable, ADCoperation mode, ...).


NGC System Configuration (Example)
# Device description DET.DEV1.NAME "/dev/ngc0_com"; DET.DEV1.HOST "$HOST"; DET.DEV1.ENV "$RTAPENV"; DET.DEV2.NAME DET.DEV2.HOST DET.DEV2.ENV "/dev/ngc1_com"; "$HOST"; "$RTAPENV"; 1; "2"; "T"; 0.2; 2.0; 1.0; 2; "2"; "T"; 1; "2"; 1; "2"; 4; 16; "T"; 1; 1; "5,2"; 32; 16; "F"; 0; # associated device name # host where interface resides # server environment name # associated device name # host where interface resides # server environment name # # # # # # associated device index route to module auto-enable at online margin for voltage check (in volts) bias gain clock gain

# CLDC modules DET.CLDC1.DEVIDX DET.CLDC1.ROUTE DET.CLDC1.AUTOENA DET.CLDC1.MARGIN DET.CLDC1.DCGN DET.CLDC1.CLKGN DET.CLDC2.DEVIDX DET.CLDC2.ROUTE DET.CLDC2.AUTOENA # Sequencers DET.SEQ1.DEVIDX DET.SEQ1.ROUTE # ADC modules DET.ADC1.DEVIDX DET.ADC1.ROUTE DET.ADC1.NUM DET.ADC1.BITPIX DET.ADC1.FIRST DET.ADC1.PKTCNT DET.ADC2.DEVIDX DET.ADC2.ROUTE DET.ADC2.NUM DET.ADC2.BITPIX DET.ADC2.FIRST DET.ADC2.PKTCNT

# associated device index # route to module # auto-enable at online # associated device index # route to module # # # # # # # # # # # # associated device index route to module number of enabled ADC units on board number of bits per pixel first in chain packet routing length (# of packets from down-link) associated device index route to module number of enabled ADC units on board number of bits per pixel first in chain packet routing length (# of packets from down-link)


Controller Programming
The Clock-Patterns can be defined both in ASCII-Format Clock-Patterns ASCII-Format (xxx.clk, IRACE-style) and in a new Binary Format (xxx.bclk, IRACE-style output of the Graphical Editing Tool BlueWave). The formats can be converted automatically. Synchronization with external events (e.g. trigger) can be done after any state in any clock-pattern. kA new Sequencer Programming Language has been defined to make maximum use of the new HW capabilities (all code is executed at the same speed-level within the firmware). File same speed within the extension is "xxx.seq". Multiple Sequencer Instances within one system are supported. The detector voltages are defined in a Voltage Configuration File in Short-FITS format (xxx.v). Short-FITS The voltage configuration files can be loaded to any CLDC instance in the system.


Clock-Pattern Clock-Pattern Generation
# Clock mapping (can be spread over several lines). # This maps the clocks described below onto physical clock lines. # Mechanism is: Phys. clock line for logical clock n = MAP[n]. DET.CLK.MAP1 "1,2,3,33"; # Mapping list DET.CLK.MAP2 "37,4"; # Mapping list # Clock pattern definitions DET.PAT1.NAME "FrameStart"; DET.PAT1.NSTAT 5; DET.PAT1.CLK1 "00000"; DET.PAT1.CLK2 "00000"; DET.PAT1.CLK3 "00000"; DET.PAT1.CLK4 "00000"; DET.PAT1.CLK5 "00110"; DET.PAT1.CLK6 "00000"; DET.PAT1.DTV "2,2,2,2,2"; DET.PAT1.DTM "0,0,0,0,0"; DET.PAT2.NAME DET.PAT2.NSTAT DET.PAT2.CLK1 DET.PAT2.CLK2 DET.PAT2.CLK3 DET.PAT2.CLK4 DET.PAT2.CLK5 DET.PAT2.CLK6 DET.PAT2.DTV DET.PAT2.DTM

# Convert # Start pulse # Dwell-Time vector # Dwell-Time modification flags

"ReadPix"; 6; "000111"; "111000"; "000000"; "000010"; "000000"; "000000"; "5,5,5,5,5,5"; "1,1,1,1,1,1";

# Convert # Start pulse # Dwell-Time vector # Dwell-Time modification flags

# Up to ngcdcsSEQ_MAX_PAT (=2048) clock patterns in this format...


Sequencer Programs
The sequencer program defines the order of execution of the defined clock patterns.
The sequencer programs are fully driven by Setup h ll Parameters (e.g. DET.DIT, DET.NDIT, window parameters, ...). Support of Arithmetic Expression Evaluation (TCL(TCLsyntax) to derive any program-loop parameter from the program-loop setup parameters and to compute attributes like exposure time estimations and minimum DIT. DIT Support of Sub-Routines and Include-Files to minimize Sub-Routines Include-Files the code length. The program complexity can be scaled:
Simply do not "USE" any setup parameter. Simply omit the "SCRIPT" part for arithmetic expression arithmetic expression evaluation.


Sequencer Program Example
# PATTERN DECLARATION # PARAMETER DECLARATION USE DET.NDIT DET.SEQ.DIT DET.DITDELAY DET.NDITSKIP # SUBROUTINE DECLARATION SUBRT RESET DELAY FRAME # EVALUATE SCRIPT if {$svar(DET.NDIT) <= 0} { set svar(DET.NDIT) 1 } set tr [expr {$time_r(RESET) / 1000.0}] set tf [expr {$time_r(FRAME) / 1000.0}] set td [expr {$time_r(DELAY) / 1000.0}] set svar(DET.SEQ.MINDIT) $tf set t1 [expr {($svar(DET.NDIT) + $svar(DET.NDITSKIP))}] set svar(delFac) [expr {($svar(DET.SEQ.DIT) - $tf) / $td}] set svar(ditDelay) [expr {($svar(DET.DITDELAY) / $td)}] if {$svar(delFac) < 0} { set svar(delFac) 0 set svar(DET.SEQ.DIT) $svar(DET.SEQ.MINDIT) } set svar(DET.SEQ.EXPTIME) [expr {($t1 * ($tr + $svar(DET.DITDELAY) + $svar(DET.SEQ.DIT) + $tf))}] SCRIPT_END # EXECUTE LOOP INFINITE JSR RESET JSR DELAY $ditDelay JSR FRAME JSR DELAY $delFac JSR FRAME END RETURN # SUBROUTINES RESET: INCLUDE "Hawaii2RGReset.seq" DELAY: INCLUDE "Hawaii2RGDelay.seq" FRAME: INCLUDE "Hawaii2RGFrame.seq"


Sequencer Program Example
Hawaii2RGFrame.seq:
#PATTERN DECLARATION FRAME_START = 1 ROW_START = 2 PIXEL = 3 RESET = 4 DELAY = 5 TRIGGER = 6 DUMMYPIXEL = 7 PIXELRESET = 8 VERTICALCLOCK = 9 EN_UNBUF_B = 10 MAINRESETB = 11 # PARAMETER DECLARATION # EVALUATE # EXECUTE (readout of full frame) EXEC TRIGGER 1 EXEC MAINRESETB 1 EXEC EN_UNBUF_B 1 EXEC FRAME_START 1 LOOP 2048 EXEC ROW_START 1 EXEC DUMMYPIXEL 2 EXEC PIXEL 64 #EXEC DUMMYPIXEL 8 END EXEC VERTICALCLOCK 1 RETURN


Detector Voltage Setup
# Offsets: DET.CLDC.CLKOFF 10.0; DET.CLDC.DCOFF 10.0; # Clock Voltages: DET.CLDC.CLKHINM1 DET.CLDC.CLKHI1 DET.CLDC.CLKHIGN1 DET.CLDC.CLKHIRA1 DET.CLDC.CLKLONM1 DET.CLDC.CLKLO1 DET.CLDC.CLKLOGN1 DET.CLDC.CLKLORA1 # Global clock voltage offset # Global DC voltage offset

"clk1Hi"; 3.000; 1.0; "[-9.000, 9.000]"; "clk1Lo"; 0.000; 1.0; "[-9.000, 9.000]";

# # # # # # # #

Name Setup value Gain (optional) Allowed range Name Setup value Gain (optional) Allowed range

# Up to 16 clock voltages like this ... # DC Voltages: DET.CLDC.DCNM1 DET.CLDC.DC1 DET.CLDC.DCGN1 DET.CLDC.DCRA1

"DC1"; 0.000; 1.0; "[-9.000, 9.000]";

# # # #

Name Setup value Gain (optional) Allowed range

# Up to 20 DC-voltages like this ...


External Synchronization
Synchronization points can be inserted at any place in any clock pattern executed by the sequencer program (i.e. set the "wait-for-trigger" bit in the particular state). "wait-for-trigger" When reaching such a point, the pattern execution is suspended after the dwell-time dwell-time of this state until the arrival of an external trigger signal. arrival of an external signal Example:
# Clock mapping (can be spread over several lines). # This maps the clocks described below onto physical clock lines. # Mechanism is: Phys. clock line for logical clock n = MAP[n]. DET.CLK.MAP1 "1,2,3,33"; # Mapping list DET.CLK.MAP2 "37,4,61"; # Mapping list # Clock pattern DET.PAT1.NAME DET.PAT1.NSTAT DET.PAT1.CLK1 DET.PAT1.CLK2 DET.PAT1.CLK3 DET.PAT1.CLK4 DET.PAT1.CLK5 DET.PAT1.CLK6 DET.PAT1.CLK7 DET.PAT1.DTV DET.PAT1.DTM definitions "FrameStartSync"; Wait for Trigger 5; "00000"; "00000"; "00000"; "00000"; # Convert "00110"; # Start pulse "00000"; "10000"; # Sync "2,2,2,2,2"; # Dwell-Time vector "0,0,0,0,0"; # Dwell-Time modification flags


NGC-DCS NGC-DCS Control Server
The controller interface provides Modular Objects for Sequencer-, CLDC- and ADC-, and Control, for interfacing to the Acquisition Process and for the Asynchronous Data Reception (software module "ngcdcs"). These objects can be assembled in the Control Server in an arbitrary way to reflect all objects be in the Server all functionality of any NGC hardware configuration (i.e. Multiple Instances of Sequencer-, CLDC-, ADC-modules and any number of Acquisition Processes). The r-, CLDC-, ADC-modules module configuration is done through the System Configuration File. The control server can be used as NGC-HW Control Sub-System of the NGCOSW. control be used as Sub That is the maximum degree of communality as the same compiled and linked object is used by both applications to access the HW. It can be configured at Run-Time for Run-Time the one or the other purpose.

IWS Config.-Files
Command/ Reply

GUI

Error-System Database

Log-System FITS-Files

Control Server

Infrared Applications


Database
The file ngcdcs.db contains the database branch definition for the control server. This file has to be included in the DATABASE.db file of the CCS environment. The following macros can be defined before each inclusion: h ll fi
#define ngcdcsINSTANCE ngcdcs_myInstance ngcdcsINSTANC #define ngcdcsROOT :Appl_data:...:myPoint :Appl_data:...:myPoi #include "ngcdcs.db" "ngcdcs.db"

The basic structure of the database is as follows:
--o ---o -|--o |--o |--o |--o |--o --o |--o |--o |--o |--o |--o |--o |--o |--o |--o |--o |--o system exposure mode guiding chopper seq_ seq_ cldc_ acq_ acq_
The branches for the Sequencer-, CLDC-, ADC-, and Acquisition- modules Sequencer-, CLDC-, ADC-, Acquisition- modules are indexed. One branch will be created per module.


Database ­ Multiple Instances
Define the instance in the Startup-Configuration-File: Startup-Configuration-File
# Control server name DET.CON.SERVER "ngcdcsEvh"; CON # Database point DET.CON.DATABASE "ngcdcs"; "ngcdcs"; # Instance label for server and OLDB label server and DET.CON.INSTANCE "myInst"; "myInst";

In the DATABASE.db file:
#define ngcdcsINSTANCE ngcdcs_myInst #define ngcdcsROOT :Appl_data:...:myPointForMyInstance :Appl_data:...:myPointForMyInstance #include "ngcdcs.db" "ngcdcs.db"

You get the following interface:
Database: ngcdcs_myInst ngcdcs_myInst Server Process: ngcdcsEvh_myInst


Example for a 2 Camera-System for
xxdcfgCONFIG.cfg:
CONFIG.SET1.NAME CONFIG.SET1.FILE1 CONFIG.SET2.NAME CONFIG.SET2.FILE1 "CAM1"; "xxdcfg1.cfg"; "xxdcfg1.cfg"; "CAM2"; "xxdcfg2.cfg"; "xxdcfg2.cfg"; "ngcdcsEvh"; "ngcdcsEvh # -> ngcdcsEvh_cam1 -> "ngcdcs"; "ngcdcs # -> ngcdcs_cam1 -> "cam1"; "NGCIRSW/xxdcfgCam1.cfg"; # NGC HW-system configuration g"; HW-system "ngcdcsEvh"; "ngcdcsEvh # -> ngcdcsEvh_cam2 -> "ngcdcs"; "ngcdcs # -> ngcdcs_cam2 -> "cam2 "; "NGCIRSW/xxdcfgCam2.cfg"; # NGC HW-system configuration g"; HW-system

Database

xxdcfg1.cfg:
DET.CON.SERVER DET.CON.DATABASE DET.CON.INSTANC DET.CON.INSTANCE DET.CON.SYSCFG

xxdcfg2.cfg:
DET.CON.SERVER DET.CON.DATABASE DET.CON.INSTANCE DET.CON.SYSCFG

In the DATABASE.db file: th
#define ngcdcsINSTANCE ngcdcs_cam1 #define ngcdcsROOT :Appl_data:...:CAMERA1 :Appl_data:...:CAMERA1 #include "ngcdcs.db" "ngcdcs.db" #undef #undef ngcdcsINSTANCE #undef ngcdcsROOT #define ngcdcsINSTANCE ngcdcs_cam2 #define ngcdcsROOT :Appl_data:...:CAMERA2 :Appl_data:...:CAMERA2 #include "ngcdcs.db" "ngcdcs.db"


Commands
State Switching:
STANDBY ­ ONLINE ­ OFF ­ EXIT SIMULAT [-function HW|LCU] [-function STOPSIM

System Setup/Status:
SETUP ­function ­function STATUS ­function ­function

Exposure Control:
START ­ WAIT (wait until exposure completes) ABORT ­ WAIT (wait until exposure is aborted) posu abo ted)

Hardware Control:
SEQ -start, SEQ -stop -start, -stop CLDC ­enable, CLDC -disable ­enable,


Graphical User Interface (ngcguiHw) (ngcguiHw)


NGC Infrared Software
IWS Config.-Files
Command/ Reply

GUI

Error-System Database Log-System FITS-Files Control Server Server RTD

Driver-Interface-Process

Acquisition Process (Pre-Processing, Sorting,...)

Device Driver Data Commands

NGC LLCU

PCI-Bus Interface

Fiber-Optic-Link to NGC Front End


Data Acquisiton Processes
The pre-processing framework for the multi-threaded pre-processing multi-threaded Acquisition Process has been taken over from IRACE (software module "ngcpp "). Currently this is required mainly for the data prepreprocessing in IR applications. Template Processes have been developed, which are an easy-to-use and stand-alone tool to visualize NGC rawand tool data on the RTD. The acquisition processes for the ESO Standard IR Detectors (HAWAII 1Kx1K, HAWAII2-RG 2Kx2K, ...) are HAWAII2-RG assembled in a separate software module ("ngciracq "). Special setups (e.g. mosaics) for specific instruments may require special software modules ("xxacq ").


Frame Types
User-definable Frame-Types User-definable Frame-Types (DIT, STDEV, HCYCLE, intermediate results...). The types can be selected to be generated and/or stored during an "exposure". /or Exposure Break-Conditions can be set per "per frameBreak-Conditions frametype". This is the number of frames of a certain type to be stored during the exposure. The exposure terminates -conditions when all break-conditions are met. A zero value indicates to store as much as possible frames of that type until all other break-conditions are met. break-conditions Individual SW-Windows per frame-type. A zero value for SW-Windows frame-type. the dimension (nx, ny) indicates that the full frame will be requested from the acquisition process. from the process


Data Formats
Default data format is "Binary Image Extension". Data Cubes for Burst-Mode or for fast data acquisitions.
Minimum overhead overhead May require post-processing post-processing One cube per frame-type cube per

Single files
For detector tests in the lab To optimize merging process: start merging already before exposure is completed (e.g. VISTA-instrument). (e


Data Interface
FITS-Files FITS-Files
Wait for exposure termination and read the generated it FITS-file(s). FITS-file(s).

Direct connection to Acquisition Process (e.g. RTD) to Acquisition (e
Retrieve the binary image data with just minimum header information (dimension, type, sequential number).

Post-Processing Call-Back Post-Processing Call-Back
The control server calls a user-defined procedure before control user before the frame is stored.


NGC Real Time Display ("ngcrtd ")


Post-Processing Call-Back Post-Processing Call-Back
The post-processing call-back is executed whenever a new data frame is received by post-processing call-back the data acquisition thread of the control server:
int PostProcCB(void *buffer, ngcdcs_finfo_t *finfo, eccsERROR *error); PostProcCB(void *finfo, *error);

The ngcdcs_finfo_t structure finfo contains all information for the buffer:
int type; char name[64]; int fcnt; fcnt; int scaleFactor; scaleFactor; int bitPix; bitPix; int sx; sx; int sy; sy; int nx; nx; int ny; ny; double crpix1; double crpix2; int detIdx; detIdx; int expCnt; expCnt; char utc[64]; ]; ngcdcsCUBE *cube; Unique frame type Unique frame name Frame counter Scaling factor to be applied to normalize Bits per pixel as defined in the FITS-standard FITS-standard Lower left corner (x-direction) (x-direction) Lower left corner (y-direction) (y-direction) Dimension in x-direction x-direction Dimension in y-direction Reference pixel in x-direction x-direction Reference pixel in y-direction y-direction Detector index (for mosaics) Exposure counter for this type Time when frame was ready in the pre-processor Data cube object to be used for storing to a cube

The post-processing call-back may return one of the following values: post-processing call-back
ngcbSUCCESS ngcbFAILURE ngcbSKIP - Successful operation Successful - Failure (add an error string to the error stack) Failure - Successful operation - but skip all further actions on the frame (no storage to file,...) Successful but


Graphical User Interface ("ngcgui ")


Application Specific Issues
State Switching Call-Backs Call-Backs
The following call-backs are provided when the server state changes (i.e. upon call-backs reception of an ONLINE, STANDBY or OFF command):
ccsCOMPL_STAT ccsCOMPL_STAT ccsCOMPL_STAT ccsCOMPL_STAT STAT ccsCOMPL_STAT ccsCOMPL_STAT OnlineCB1(); OnlineCB2(); StandbyCB1(); StandbyCB2(); OffCB1(); OffCB2();

The xxxCB1() functions are called before the state changes, the xxxCB2() functions are called after internal state switching.

Setup/Status Call-Backs Call-Backs
The following call-backs are provided upon reception of a SETUP command: call-backs
ccsCOMPL_STAT SetupCB1(char **list, vltINT32 *size); ccsCOMPL_STAT SetupCB2();

The following call-back is provided upon reception of a STATUS command: call-back
int LookupCB(const char *name, char *value); LookupCB(const


Infrared Setup
The data-taking is defined through "Read-Out Modes": data-taking Read-Out
Read-out modes are defined by the Sequencer Program(s) modes Program(s) running on the sequencer module(s) and by the corresponding Acquisiton Process(es) to be launched. Process(es) Read-out Read-out modes are selected by Name or a Unique ID (a Default Mode can be given).

Window Read-Out is done by evaluating the window parameters within the sequencer program. The read-out modes and the voltage- and clock-patternread modes the clock configuration files to be loaded when going ON-LINE are ON-LINE defined in a Detector Configuration File. This also defines the detector parameters (size, type, name, mosaic arrangement, ...).


Infrared "Exposures"
Sustained Detector Read-Out and Video Display on the Read-Out RTD (display remains active during the "Exposure"). Sustained Data-Transfer between NGC-LLCU and IWS for Data-Transfer NGC-LLCU application specific Post-Processing (slow control loops, Post-Processing e.g. secondary auto-guiding). auto-guiding). Starting an "Exposure" basically means "starting to transfer data to disk". Burst-Mode Burst-Mode for fast raw data acquisition.


VLTI-System VLTI-System
LCU MVME6100 (VxWorks) PCI Interface NGC LLCU (Linux)

PMC Interface

NGC Detector Front-End


PMC Interface (for VLTI)
PCI-Bus Interface 64 Bit/33 Mhz UpStream

FIFO (Video Data)

Link Manager

DownStream

Commands & Replies

Video-Data


NGC-LCU NGC-LCU Interface Software
Software module "ngclcu". VxWorks Device Driver for the NGC PMC Interface card. Device Sustained DMA (64 Bit / 33 MHz, 128 MPixels/s) MPixels/s) Data Capture Library Possibility to install a User-Defined Interrupt Service User-Defined Routine (to minimize the latency). Latency: min. 4 µs, max. 6 µs depending on the configurable DMA-Blocksize (32 ­ 512 Bytes). DMA-Blocksize (32 Maintenance & Test Tools Remote access from NGC-LLCU to board registers NGC-LLCU Visualize data on RTD data on RTD Check data integrity


Preview
Integration into VLTSW-Release. VLTSW-Release New Detectors (Aquarius). Control SW for Sidecar ASIC. General procedure for Multiple Window Read-Out. Read-Out Handling of the Guide-Window for the HAWAII2-RG of the the array (parallel exposures). Acquisition processes for AO-Applications. processes for


Documentation
VLT-MAN-ESO-13660-4510 VLT-MAN-ESO-13660-4510 VLT-MAN-ESO-13660-4085 VLT-MAN-ESO-13660-4086 VLT-MAN-ESO-13660-4086 VLT-MAN-ESO-13660-4560 VLT-MAN-ESO-13660-4560 VLT-LIS-ESO-13660-3907 VLT-LIS-ESO-13660-3908 VLT-LIS-ESO-13660-3908 NGC - User Manual User NGC Infrared DCS - User Manual DCS NGC Optical DCS - User Manual User NGC-LCU Interface SW ­ User Manual NGC-LCU User NGC Project Glossary Glossary NGC Project Acronyms