qclicomp Manual

qclicomp is a waveform compiler. It generates machine instructions to be downloaded to the Quantum Cascade Laser Current Driver (QCLI).

Invocation

qclicomp [options] inputfile
    --help, -h  : Print usage message
    -o filename : Write compiled code to filename
    -c filename : Write .cmd source to filename
    -m filename : Write .m source to filename
    -d filename : Write display .tmc to filename
    -v filename : Write verbose summary to filename

Notes

The following are clarifications about the meanings of various definitions in the syntax that follows:

Nsample
Whenever Nsample is defined explicitly, it refers to the net number of samples reported per scan after applying Naverage. The number of raw samples per scan is always equal to Nsample * Naverage.
Matlab NetSamples
In the Matlab output from qclicomp, RawSamples always refers to the number of raw samples per single scan, before Naverage. For ICOS waveforms, NetSamples is then RawSamples/NAverage. For Ringdown waveforms, NetSamples is the number of steps in the overall ringdown sequence. The total number of raw scans in the overall sequence will be NetSamples * NCoadd. Note that for Ringdown, we need to use the 32-bit scan SerialNumber from the scan header to keep careful track of where we are in the sequence. If we successfully receive each transmission, the SerialNumber of each successive report should advance by NCoadd.

Syntax

The following grammar is specified in the syntax of the Extended Backus Naur Form or EBNF. This shows you what you can legally specify in the source file. Discussion of what these things actually do will follow.

SourceFile : [ QCLIConfig ] [ Digitizer ] Wave+ .
QCLIConfig : QCLIConfig QCLIConfigType ';' .
QCLIConfigType :
  Standard / StandardxP33 / FastRamp / FastRampx10 / FastRampx25 .
Digitizer : Digitizer DigitizerType ';' .
DigitizerType : CPCI14 / CS210 / SSP .
 
Wave : ICOSWave / RingWave .
ICOSWave : ICOS Waveform Ident '{' ICOSCmds '}' .
ICOSCmds : ( ICOSCmd ';' )+ .
ICOSCmd : TzDef / IzDef / NcoaddDef / ICOSNsampleDef / ICOSRateDef / dIdt / ICOSRamp .
TzDef : Tz '=' TzSpec .
TzSpec : Time / SampleSpec / Percent .
SampleSpec : Integer Raw Samples / Integer Samples .
Percent : FloatVal '%' .
IzDef : Iz '=' Current .
NcoaddDef : Ncoadd '=' Integer .
ICOSNsampleDef : NsampleDef .
ICOSRateDef : RateDef .
NsampleDef : Nsample '=' Integer .
RateDef : SampleRate '=' Integer RateUnit Naverage .
Naverage : / '/' Integer .
dIdt : dI '/' dt '=' Current '/' TimeUnit .
 
ICOSRamp :
  Ramp Istart Istop PrepTime /
  Ramp Istart Istop /
  Ramp Istart PrepTime /
  Ramp Istop PrepTime .
 
Istart : from Current .
Istop : to Current .
PrepTime : ( in / for ) Time .
 
Current : FloatVal CurrentUnit .
Time : FloatVal TimeUnit .
 
FloatVal : Integer / Float .
CurrentUnit : A / mA / uA .
TimeUnit : sec / msec / usec .
RateUnit : Hz / kHz / MHz / '/' TimeUnit .
 
RingWave : Ringdown Waveform Ident '{' RingCmds '}' .
RingCmds : ( RingCmd ';' )+ .
RingCmd : TonDef / ToffDef / TpreDef / IzDef / RingNsampleDef / NcoaddDef /
  RingRateDef / RingData .
RingNsampleDef : NsampleDef .
RingRateDef : RateDef .
TonDef : Ton '=' TonVal .
TonVal : Time / FloatVal '%' .
ToffDef : Toff '=' Time .
TpreDef : Tpre '=' TpreVal .
TpreVal : Time / Integer Samples .
RingData : I '=' ( RingCurrent / CurrentSteps ) .
RingCurrent : Current .
CurrentSteps : Current to Current in RingStep Steps .
RingStep : RingCount / RingStepsize .
RingCount : Integer .
RingStepsize : Current .

Terminals

Integer : C_INTEGER
Float : C_FLOAT
Ident : C_IDENTIFIER
  C_COMMENT
  AWK_COMMENT
  $"//" (auxEOL)
C_INTEGER :
C_IDENTIFIER :
AWK_COMMENT :
C_COMMENT :
C_FLOAT :

Return to Manuals Guide


last updated: Wed Apr 24 15:36 2013 webmaster@huarp.harvard.edu
© 2013 by the President and Fellows of Harvard College