WIDAR Classes

ca.nrc.widar.vciMapper
Class BaselineBoard

java.lang.Object
  extended by ca.nrc.widar.vciMapper.Board
      extended by ca.nrc.widar.vciMapper.BaselineBoard
All Implemented Interfaces:
java.io.Serializable

public class BaselineBoard
extends Board
implements java.io.Serializable

Class BaselineBoard

See Also:
Serialized Form
 

Nested Class Summary
static class BaselineBoard.Side
          Used to identify Baseline Board "side": X or Y.
static class BaselineBoard.St1PpOnDiagonal
           
static class BaselineBoard.WaferSet
          Used to identify set of input wafers: X or Y EVLA configuration uses X wafers for input.
 
Nested classes/interfaces inherited from class ca.nrc.widar.vciMapper.Board
Board.Type
 
Field Summary
static java.lang.String cfgFailed
           
static int DATA_STREAMS_PER_PATH
          Number of data streams per baseline board data path (so called rows/columns).
static boolean inputFromAntenna
           
static ca.nrc.widar.jaxb.vci.InterFrameDelayAlgType INTER_FRAME_DELAY_ALG_DEFAULT
           
static int INTER_FRAME_DELAY_DEFAULT
           
static int INTER_FRAME_DELAY_MAX
           
static int INTER_FRAME_DELAY_MIN
           
static boolean INTER_FRAME_DELAY_RANDOMIZER_ON
           
static java.lang.String invalidCfgForProduct
           
static int MAX_INPUT_WAFER_ID
           
static int MIN_INPUT_WAFER_ID
           
static int NUM_CC_COLUMNS
          Number of columns of Correlator Chips
static int NUM_CC_ROWS
          Number of rows of Correlator Chips
static int NUM_INPUT_WAFERS
          Number of input wafers
static java.lang.String numCccNotAsExpected
           
static boolean sumOfSubarray
           
 
Fields inherited from class ca.nrc.widar.vciMapper.Board
alertActive, alertConfigName, ASYNC_QUERY_TIME_OUT, CHANGE, configChange, configChangeStatus, configName, LOG_CHANGE, MAX_CRATE_ID, MAX_RACK_ID, MAX_SLOT_ID, MIN_CRATE_ID, MIN_RACK_ID, MIN_SLOT_ID, mlid, NL_ERROR, NL_INFO, NO_CHANGE, queryCounter, queryDelayCounter, reportNextCommFailure, retCounter, retDelayCounter, statusDescriptor, type, useStatus
 
Constructor Summary
BaselineBoard(Mlid inMlid, int numRecStreams)
          Create a Baseline Board with specified Mlid.
 
Method Summary
 void blockFramesForSubarray(java.lang.String forConfigId)
          Created by SV on 2011-11-25 Block frames in LTA for the specified subarray.
 void calculateVdifPacketDelay(int counter)
           
 void carryForwardChangeToBeTransmitted(BaselineBoard prevConfiguration)
          This method is called just before (or after) CorrModel becomes active.
 java.lang.String ccsToString()
           
 boolean cfgInProgressFor(int i, java.lang.String s)
           
 boolean cfgProductsStOnePerRowCross(java.lang.String configId, java.util.ArrayList<PolarizationProduct> ppList, int cellsPerSegment, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 void configChangeDeepChange(boolean newInd, ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)
          Set indicator configChange and configChangeStatus for this object, and for all objects (components) owned by the BaselineBoard.
 boolean configChangeStatusDeepChange(boolean oldInd, ca.nrc.widar.vciMapper.ConfigChangeStatus oldStatus, ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus, java.lang.String d)
          Updated in December 2012
 boolean configureSum(SummedArray summedArray, int rxpid, int inputStream, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Configure sum of subarray.
 boolean configureVdif(SummedArray summedArray, int rxpid, int inputStream, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 void finalize()
           
 boolean firstBlbLowerSumToCcArray(SummedArray summedArray, int sumInputStream, int numSegments, java.util.ArrayList<java.util.logging.LogRecord> logList)
          This method configures input switch on RC x7 and y7 so that input stream 0 is forwarded to internal stream 1.
 java.lang.String getBlbMlidAsString()
           
 java.lang.String getBoardIdAsString()
           
 boolean getCbeConfigFor4BitProducts(java.lang.String inCfgId, java.util.List<ca.nrc.widar.jaxb.cbe.Prd4> cfgList, java.util.concurrent.ConcurrentHashMap<java.lang.Integer,ProductLagChain> listOfProductLagChain, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Get JAXB configuration for products as a list of XML elements prd4.
 boolean getCbeConfigFor7BitProducts(java.lang.String inCfgId, java.util.List<ca.nrc.widar.jaxb.cbe.Prd7> cfgList, java.util.concurrent.ConcurrentHashMap<java.lang.Integer,ProductLagChain> listOfProductLagChain, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Get JAXB configuration for products as a list of XML elements prd4 or prd7.
 java.lang.String getColor()
          Returns color as a string - used for HTML interface.
 ca.nrc.widar.jaxb.component.BaselineBoard getConfigAsXml(javax.xml.datatype.XMLGregorianCalendar xActTime)
           
 CorrChip getCorrChip(int x, int y)
           
 int getIdleColumn()
           
 int getIdleRow()
           
 int getIdleRowColumn()
           
 java.lang.String getIdsAsString()
           
 XBarBoardOutputWafer getInputWafer(int i)
           
static java.lang.String getLagChainSegmentAsString(int blockSize, int totalBlocks, int xStartBlock, int xEndBlock, int yStartBlock, int yEndBlock)
           
 int getNumIdleColumns()
           
 int getNumIdleRowsColumns()
           
 int getPairId()
           
 java.lang.String getPortForLtaFrames()
           
 int getPositionInPair()
           
 int getQuadrantId()
           
 XBarBoardOutputWafer getRcInputWafer(int rcId, int index)
           
 int getRowForWafer(java.lang.String configId, int wid)
           
 int getRowForWaferOne(java.lang.String configId)
           
 BlbRxpFpga getRxp(int i)
           
 BlbRecFpga getXRecirculator(int i)
           
 BlbRecFpga getYRecirculator(int i)
           
 boolean ifdChangeToBeTransmitted()
           
 boolean inputForThisSubarrayConfigured(java.lang.String cfgId)
           
 void interFrameDelayConfigChangeStatusDeepChange(boolean oldInd, ca.nrc.widar.vciMapper.ConfigChangeStatus oldStatus, ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)
           
 boolean isIdle()
          Baseline Board is idle if all Recirculation Controllers are idle.
 void logRcInputAndOutput()
           
 boolean ltaChangeToBeTransmitted()
           
 void ltaPortChangeStatusDeepChange(boolean oldInd, ca.nrc.widar.vciMapper.ConfigChangeStatus oldStatus, ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)
           
 boolean modifySum(SummedArray summedArray, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Modify sum for existing subarray.
 boolean oneSegmentOnePpPerCorrChipRq4HalfStMaxProd(PolarizationProduct product, int numSegments, int cellsPerSegment, int segment, boolean aboveDiagonal, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Configure one segment.
 boolean oneSumOneProduct(SummedArray summedArray, PolarizationProduct pp, int ccqId, int cellsPerSegment, int numSegments, int segment, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 boolean packetDelayKnown(int i)
           
 java.lang.String printBaselinesAndProducts()
           
 java.lang.String printBoardPositionAndMlid()
           
 void printChangeIndicators(java.lang.StringBuilder cBuilder)
           
 java.lang.String printInputWafer(int i)
           
 java.lang.StringBuilder printInputWafers(boolean onlyIDs)
           
 java.lang.String printRCstatus()
           
 java.lang.String printStatusAndRcs()
           
 java.lang.String printStatusAndRcs2()
           
 java.lang.StringBuilder printUsedInpWafersAndRCs()
           
 java.lang.String printWafers()
           
 boolean rcXCfgInProgressFor(int i, java.lang.String s)
           
 boolean rcYCfgInProgressFor(int i, java.lang.String s)
           
 void releaseSubarray(java.lang.String subToRelease)
          Release resources used for the specified subarray
 java.lang.String reportConfigChangeStatus(BaselineBoardStatus blbStatus)
           
 void reportConfigChangeStatus(java.lang.StringBuilder sBuilder, BaselineBoardStatus blbStatus)
           
 void reportConfigChangeStatusHtml(java.lang.StringBuilder sBuilder, BaselineBoardStatus blbStatus)
           
 void revokeCmibCfg(BaselineBoardStatus blbStatus, long corrModelId, long actTime, javax.xml.datatype.XMLGregorianCalendar xActTime, java.lang.StringBuilder sBuilder)
          Revoke transmitted configuration by removing it from the CMIB input queue.
 boolean rowColumnSevenIdleAndAvailable()
          Baseline Board is idle if all Recirculation Controllers are idle.
 boolean rxpAndRcInputConfigured(java.lang.String forConfigId)
          Find if at least one RC is used for the specified subarray (configId).
 boolean secondBlbLowerSumToCcArray(SummedArray summedArray, int ds1, int numSegments, java.util.ArrayList<java.util.logging.LogRecord> logList)
          This method is used to get a cross-product A*B or B*A for the summed array.
 boolean sendConfiguration(BaselineBoardStatus blbStatus, long corrModelId, long actTime, javax.xml.datatype.XMLGregorianCalendar xActTime, boolean thisModelActive, boolean completeReport, java.lang.StringBuilder bBuilder)
          Dec.
 boolean setAutoCorrMode(java.lang.String forConfigId, PolarizationProduct aProd, PolarizationProduct bProd, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 boolean setBlb0InputForStMinPackOneCrossRq4(java.lang.String cfgId, java.util.List<java.lang.Integer> xStations, java.util.List<java.lang.Integer> yStations, int aBBID, int bBBID, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
          SV 2011-12-21 Configure the 1st Baseline Board for a pair that produces only cross-correlations, i.e.
 boolean setBlb0RcXInputForBlb1ForOnePerColumn(java.lang.String cfgId, int aBBID, int bBBID, java.util.List<java.lang.Integer> xStations, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 int setBlb0RcYInputForBlb1ForOnePerColumn(java.lang.String cfgId, int aBBID, int bBBID, int ySID, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 void setCfgNotInProgressFor(PolarizationProduct product, int numSegments, int segment)
           
 boolean setCorrChipInput(java.lang.String forConfigId, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Output of the Recirculation Controller is input for the Correlator Chips.
 void setCorrChipInputForCrossOnly(java.lang.String forConfigId, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Output of the Recirculation Controller is input for the Correlator Chips.
 void setDefaultConfiguration()
          This method is used only when reConfigureCompleteBaselineBoards=true to force CM to transmit (default) configuration even if there is no change.
 boolean setDumpTrigSource(java.lang.String cfgId, boolean forSum, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 void setInputFromRCsOnTheFirstBoard(BaselineBoard firstBlb)
           
 void setInputWafer(int i, XBarBoardOutputWafer inWafer)
           
 void setInputWaferFromRcOnTheFirstBoard(BaselineBoard blb0, int firstRcId, int firstRcInput)
           
 void setInputWaferFromRcOnTheFirstBoard(XBarBoardOutputWafer wafer, int firstRcId, int firstRcInput)
           
 boolean setInputWafersRxpAndRcInputFromRCsOnTheFirstBoard(BaselineBoard firstBlb, java.lang.String forConfigId, java.util.ArrayList<java.util.logging.LogRecord> logList)
          2012-03-19 SV: This method is used for stationPacking=onePerRowColumn
 boolean setInputWafersRxpAndRcInputFromTheFirstBoard(BaselineBoard firstBlb, java.lang.String forConfigId, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Used for summed array 2011-04-28 This method is called when input on the 2nd BLB is not already configured.
 boolean setInpWafersRxpsRcsFromRcsOnTheFirstBoard(BaselineBoard firstBlb, java.lang.String forConfigId, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 void setInterFrameDelayConfigChange(boolean newInd, ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)
           
 void setInterFrameDelayForConfigId(java.lang.String cid, ca.nrc.widar.jaxb.vci.InterFrameDelayAlgType a, int d, boolean r)
           
 void setLtaPortConfigChange(boolean newInd, ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)
           
 boolean setPairId(int i)
           
 void setPortForLtaFrames(java.lang.String inPort)
           
 boolean setPositionInPair(int p)
           
 boolean setQuadrantId(int q)
           
 boolean setRC7inputFromFirstBlb(java.lang.String forConfigId, BaselineBoard firstBlb, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 boolean setRcInputBlb0(java.lang.String forConfigId, java.util.ArrayList<java.lang.Integer> listOfStations, int aBBID, int bBBID, int SBID, int stPerRowColumn, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Older version before 09.09.2010 SonjaVrcic added autoCorrAlgorithm=allStations.
 boolean setRcInputBlb0FourStPerRowColumn(java.lang.String forConfigId, java.util.ArrayList<java.lang.Integer> listOfStations, int aBBID, int bBBID, int SBID, int stPerRowColumn, BlbRecFpga.RcUseMode rcUseMode, ca.nrc.widar.jaxb.vci.AutoCorrAlgorithmType autoCorrAlgorithm, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Replaced by setRcInputForFourStationsPerRowColumn() (setRcInputBlb0FourStPerRowColumnVersion3()).
 boolean setRcInputBlb0OneStationPerRowColumn(java.lang.String cfgId, java.util.List<java.lang.Integer> listOfStations, int aBBID, int bBBID, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 boolean setRcInputBlb0St1AcAllStMaxProd(int maxNumRowsToUse, java.util.List<java.lang.Integer> stationsToConfigure, java.util.List<java.lang.Integer> configuredStations, java.util.List<java.lang.Integer> stationsForAutoProdAb, java.lang.String cfgId, int aBBID, int bBBID, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
          This method is used to set Baseline Boards on the diagonal for:

station packing algorithm = MIN_PACK, one station per row/column.

 boolean setRcInputBlb0St1AcAllStMaxProd(java.lang.String cfgId, java.util.List<java.lang.Integer> listOfStations, java.util.List<java.lang.Integer> stationsForAutoProdAb, int aBBID, int bBBID, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Deprecated. This method is used to set Baseline Boards on the diagonal for:

station packing algorithm = MIN_PACK, one station per row/column.

product (lag chain) packing algorithm = MAX_PACK

correlation = 4-bits

with or without recirculation

auto-correlation algorithm = ALL_STATIONS_MAX_PROD

number of products = 4 (full polarization) single segment products For stationsToConfigure: 1st BLB: product above diagonal: product A*A, below diagonal:product A*B, on the diagonal: product A*A 2nd BLB: product above diagonal: product B*B, below diagonal:product B*A, on the diagonal: product B*B For stationsForAutoProdAb: On CorrChips on the diagonal configure product a*b. Each board (0 / 1) can produce different set of products. Set two stations per row/column, one for each BLB. This method sets RXP switch so that each row/column (i.e. Recirculation Controller) gets input from one station (subband pair from Baseband A and B).

 boolean setRcInputBlb0St2AcHalfStMaxProd(java.lang.String cfgId, java.util.List<java.lang.Integer> listOfStations, int aBBID, int bBBID, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
          stationPacking=twoPerRowColumn 2012-03-07 SV - need to re-write this method.
 boolean setRcInputBlb1(java.lang.String forConfigId, BaselineBoard blb0, java.util.ArrayList<java.util.logging.LogRecord> logList)
          This method is used to set the 2nd BLB in a BLB pair.
 boolean setRcInputBlb1OneStPerRowColumn(java.lang.String cfgId, java.util.ArrayList<java.lang.Integer> listOfStations, int aBBID, int bBBID, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
          One station per row/column.
 boolean setRcInputBlb1St2AcHalfStMaxProd(java.lang.String cfgId, java.util.List<java.lang.Integer> listOfStations, int aBBID, int bBBID, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
          stationPacking=twoPerRowColumn 2012-03-07 SV - need to re-write this method.
 void setRcInputDataStreams(java.lang.String forConfigId)
          Used for stationPacking=minPack, boards with cross-correlations only, 2nd BLB in a pair.
 boolean setRcInputForCompleteStOnePerRowCrossBlb0Rq4(int[][] rcInput, int rcIndex, java.lang.String cfgId, int aBBID, int bBBID, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Deprecated.  
 boolean setRcInputForCompleteStOnePerRowCrossBlb1Rq4(BaselineBoard firstBlb, int[][] inputForRcs, int rcIndex, java.lang.String forConfigId, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Deprecated.  
 boolean setRcInputForFourStationsPerRowColumn(java.lang.String forConfigId, java.util.ArrayList<java.lang.Integer> listOfStations, int aBBID, int bBBID, int SBID, BlbRecFpga.RcUseMode inRcUseMode, java.util.ArrayList<java.lang.Integer> autoCorrStations, int rowsColumnsToUseForAutoCorrOnly, java.util.ArrayList<java.util.logging.LogRecord> logList)
          For autoCorrAlgorithm=allStationsMaxProd and (number of stations MOD 4) > 0 add auto-corr only stations to the last row/column used for baselines.
 boolean setRcInputForSegmentStOnePerRowCrossBlb0Rq4(int[][][][] rcInput, int pair, java.lang.String cfgId, int aBBID, int bBBID, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Deprecated.  
 boolean setRcInputForStOnePerRowCrossBlb0Rq4(int[][][][] rcInput, int pair, int numSegments, java.lang.String cfgId, int aBBID, int bBBID, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 boolean setRcInputForStOnePerRowCrossBlb1Rq4(BaselineBoard firstBlb, int[][][][] rcInput, int pair, int numSegments, java.lang.String forConfigId, int aBBID, int bBBID, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Deprecated.  
 boolean setRcInputSt1AcHalfStMaxProdStartFromFirst(java.lang.String cfgId, java.util.List<java.lang.Integer> listOfStations, java.util.List<java.lang.Integer> cList, int aBBID, int bBBID, int SBID, boolean reportErrorIfInputNotFound, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 boolean setRcInputSt1AcHalfStMaxProdStartFromSecond(java.lang.String cfgId, java.util.List<java.lang.Integer> listOfStations, java.util.List<java.lang.Integer> cList, int aBBID, int bBBID, int SBID, boolean reportErrorIfInputNotFound, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 boolean setRcOutputForOnePerRowColumn(java.lang.String forConfigId, int numSegments, int segment, int cellsPerSegment, int rFactor, boolean recPhaseSerial, int subProd, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Mapping for:

station packing = one station per row/column.

 boolean setRcXInputForOneStationPerColumn(int cid, java.lang.String cfgId, int numSegments, int segmentId, int cellsPerSegment, int rFactor, boolean recPhaseSerial, ca.nrc.widar.vciMapper.Nibble xNibble, int aBBID, int bBBID, java.util.List<java.lang.Integer> xStations, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 boolean setRcYInputForOneStationPerRow(int rcId, int[] trio, java.lang.String cfgId, int numSegments, int segmentId, int cellsPerSegment, int rFactor, boolean recPhaseSerial, int aBBID, int bBBID, int SBID, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 boolean setRecContOutput_strightForward(java.lang.String forConfigId, int numSegments, int segment, int cellsPerSegment, int rFactor, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Set Recirculation Controller output for 4-bit correlation.
 boolean setRecContOutputFromWafers0And1(java.lang.String forConfigId, int numSegments, int segment, int cellsPerSegment, int rFactor, boolean recPhaseSerial, ca.nrc.widar.vciMapper.Nibble xNibble, ca.nrc.widar.vciMapper.Nibble yNibble, java.util.ArrayList<java.util.logging.LogRecord> logList)
          This method is used to set RC output for stationPacking=onePerRowColumn, halfStationsMaxProd
 void setRxpInputFromRCsOnTheFirstBoard(BaselineBoard firstBlb)
          This method is used for Autocorrelator Mode.
 boolean setSumProductOnCorrChip77(PolarizationProduct pp, int ccqId, int cellsPerSegment, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 boolean setTwoSumsOnCorrChip77(int rFactor, int numSegments, int segment, int cellsPerSegment, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 void setVdifConfigChange(boolean newInd, ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)
           
 boolean stMaxPackCfgSegmentForAllProducts(java.util.ArrayList<PolarizationProduct> listOfProducts, ca.nrc.widar.jaxb.vci.AutoCorrAlgorithmType autoCorrAlgorithm, int segment, int numSegments, int cellsPerSegment, int startFromCcq, int numCcqs, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 boolean stMaxPackSetRcOutput(java.lang.String configId, int numSegments, int segment, int cellsPerSegment, int rFactor, ca.nrc.widar.vciMapper.Nibble xNibble, ca.nrc.widar.vciMapper.Nibble yNibble, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Set Recirculation Controller output for 4-bit correlation.
 boolean stOnePerRowOneProdPerCorrChip(PolarizationProduct pa, PolarizationProduct pb, PolarizationProduct pd, int numSegments, int segment, int cellsPerSegment, java.util.ArrayList<java.util.logging.LogRecord> logList)
          Can be used for single or multi segment products.
 boolean sumEnabled(int i)
           
 boolean thisSumEnabled(int i, java.lang.String sumConfigId, int sumSid, int ds)
           
 java.lang.String toString()
           
 boolean twoSumsOneProduct(SummedArray summedArray, PolarizationProduct pp, int ccqId, int cellsPerSegment, int numSegments, int segment, java.util.ArrayList<java.util.logging.LogRecord> logList)
           
 void updateConfigChangeStatusForToBeTransmitted(ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus, java.lang.String desc)
          Same as configChangeStatusDeepChange for configChange=true and configChangeStatus ToBeTransmitted or CommFailure Used to when transmitting (or re-transmitting) BaselineBoard configuration.
 boolean useModeAutoCorrAbOneInputStation(int i, java.util.ArrayList<java.util.logging.LogRecord> listOfLogs)
          This method is used when setting RCs on the 2nd Baseline Board in a pair.
 boolean useRowColumnSeven(SummedArray summedArray, int ds)
           
 boolean vdifChangeToBeTransmitted()
           
 boolean vdifConfigChange()
           
 void vdifConfigChangeStatusDeepChange(boolean oldInd, ca.nrc.widar.vciMapper.ConfigChangeStatus oldStatus, ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)
           
 boolean vdifConfigured()
           
 boolean vdifConfigured(int i)
           
 boolean vdifEnabled(int i)
           
 
Methods inherited from class ca.nrc.widar.vciMapper.Board
changeToBeTransmitted, configChange, decQueryDelayCounter, decRetDelayCounter, getConfigChangeStatus, getConfigName, getCrateId, getErrorCode, getMlid, getMlidAsString, getName, getQueryCounter, getQueryDelayCounter, getRackId, getRetCounter, getRetDelayCounter, getSlotId, getStatusChangeRecord, getStatusDescriptor, getType, getUseStatus, incQueryCounter, incRetCounter, isUsed, parseAndCheckActiveConfig, reportNextCommFailure, resetQueryCounter, resetRetCounter, setConfigChange, setConfigChangeAccepted, setConfigChangeAccepted, setConfigChangeActive, setConfigChangeBoardDisabled, setConfigChangeCommFailure, setConfigChangeFailed, setConfigChangeRejected, setConfigChangeStatus, setConfigChangeTransmitted, setConfigName, setName, setNoConfigChange, setQueryDelayCounter, setReportNextCommFailure, setRetDelayCounter, setStatusDescriptor, setTransmitConfigChange, setUseStatus
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

cfgFailed

public static java.lang.String cfgFailed

invalidCfgForProduct

public static java.lang.String invalidCfgForProduct

numCccNotAsExpected

public static java.lang.String numCccNotAsExpected

NUM_INPUT_WAFERS

public static final int NUM_INPUT_WAFERS
Number of input wafers

See Also:
Constant Field Values

MIN_INPUT_WAFER_ID

public static final int MIN_INPUT_WAFER_ID
See Also:
Constant Field Values

MAX_INPUT_WAFER_ID

public static final int MAX_INPUT_WAFER_ID
See Also:
Constant Field Values

DATA_STREAMS_PER_PATH

public static final int DATA_STREAMS_PER_PATH
Number of data streams per baseline board data path (so called rows/columns). Data streams are grouped as 4 pairs (0/1, 2/3, 4/5 and 6/7). Usually, a data stream pair carry a pair od subbands from the same input wafer, i.e. from the same station. On the Correlator Chip, each data stream pair is input for a different CCQ.

See Also:
Constant Field Values

NUM_CC_ROWS

public static final int NUM_CC_ROWS
Number of rows of Correlator Chips

See Also:
Constant Field Values

NUM_CC_COLUMNS

public static final int NUM_CC_COLUMNS
Number of columns of Correlator Chips

See Also:
Constant Field Values

INTER_FRAME_DELAY_ALG_DEFAULT

public static final ca.nrc.widar.jaxb.vci.InterFrameDelayAlgType INTER_FRAME_DELAY_ALG_DEFAULT

INTER_FRAME_DELAY_DEFAULT

public static final int INTER_FRAME_DELAY_DEFAULT
See Also:
Constant Field Values

INTER_FRAME_DELAY_MIN

public static final int INTER_FRAME_DELAY_MIN
See Also:
Constant Field Values

INTER_FRAME_DELAY_MAX

public static final int INTER_FRAME_DELAY_MAX
See Also:
Constant Field Values

INTER_FRAME_DELAY_RANDOMIZER_ON

public static final boolean INTER_FRAME_DELAY_RANDOMIZER_ON
See Also:
Constant Field Values

inputFromAntenna

public static boolean inputFromAntenna

sumOfSubarray

public static boolean sumOfSubarray
Constructor Detail

BaselineBoard

public BaselineBoard(Mlid inMlid,
                     int numRecStreams)
              throws ca.nrc.widar.vciMapper.VciMapperException
Create a Baseline Board with specified Mlid. Input Data Streams have to be assigned before the board can be used to produce output products (as a part of a subarray).

Throws:
ca.nrc.widar.vciMapper.VciMapperException
Parameters:
inMlid - - Module Location ID (rack-crate-slot)
numRecStreams - - number of streams that can be recirulated by Recirculation Controller: 4 or 8.
Method Detail

finalize

public void finalize()
Overrides:
finalize in class java.lang.Object

getRxp

public BlbRxpFpga getRxp(int i)

getBlbMlidAsString

public java.lang.String getBlbMlidAsString()

getQuadrantId

public int getQuadrantId()

setQuadrantId

public boolean setQuadrantId(int q)

getPairId

public int getPairId()

setPairId

public boolean setPairId(int i)

getIdsAsString

public java.lang.String getIdsAsString()

getPositionInPair

public int getPositionInPair()

setPositionInPair

public boolean setPositionInPair(int p)

getPortForLtaFrames

public java.lang.String getPortForLtaFrames()

setPortForLtaFrames

public void setPortForLtaFrames(java.lang.String inPort)

setLtaPortConfigChange

public void setLtaPortConfigChange(boolean newInd,
                                   ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)

ltaPortChangeStatusDeepChange

public void ltaPortChangeStatusDeepChange(boolean oldInd,
                                          ca.nrc.widar.vciMapper.ConfigChangeStatus oldStatus,
                                          ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)

ltaChangeToBeTransmitted

public boolean ltaChangeToBeTransmitted()

vdifConfigChange

public boolean vdifConfigChange()

setVdifConfigChange

public void setVdifConfigChange(boolean newInd,
                                ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)

vdifConfigChangeStatusDeepChange

public void vdifConfigChangeStatusDeepChange(boolean oldInd,
                                             ca.nrc.widar.vciMapper.ConfigChangeStatus oldStatus,
                                             ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)

vdifChangeToBeTransmitted

public boolean vdifChangeToBeTransmitted()

setInterFrameDelayConfigChange

public void setInterFrameDelayConfigChange(boolean newInd,
                                           ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)

interFrameDelayConfigChangeStatusDeepChange

public void interFrameDelayConfigChangeStatusDeepChange(boolean oldInd,
                                                        ca.nrc.widar.vciMapper.ConfigChangeStatus oldStatus,
                                                        ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)

ifdChangeToBeTransmitted

public boolean ifdChangeToBeTransmitted()

getInputWafer

public XBarBoardOutputWafer getInputWafer(int i)

setInputWafer

public void setInputWafer(int i,
                          XBarBoardOutputWafer inWafer)

getRcInputWafer

public XBarBoardOutputWafer getRcInputWafer(int rcId,
                                            int index)

getCorrChip

public CorrChip getCorrChip(int x,
                            int y)

getXRecirculator

public BlbRecFpga getXRecirculator(int i)

getYRecirculator

public BlbRecFpga getYRecirculator(int i)

rcXCfgInProgressFor

public boolean rcXCfgInProgressFor(int i,
                                   java.lang.String s)

rcYCfgInProgressFor

public boolean rcYCfgInProgressFor(int i,
                                   java.lang.String s)

cfgInProgressFor

public boolean cfgInProgressFor(int i,
                                java.lang.String s)

getNumIdleRowsColumns

public int getNumIdleRowsColumns()

getNumIdleColumns

public int getNumIdleColumns()

getIdleRowColumn

public int getIdleRowColumn()

getIdleColumn

public int getIdleColumn()

getIdleRow

public int getIdleRow()

getRowForWaferOne

public int getRowForWaferOne(java.lang.String configId)

getRowForWafer

public int getRowForWafer(java.lang.String configId,
                          int wid)

isIdle

public boolean isIdle()
Baseline Board is idle if all Recirculation Controllers are idle.


rowColumnSevenIdleAndAvailable

public boolean rowColumnSevenIdleAndAvailable()
Baseline Board is idle if all Recirculation Controllers are idle.


sumEnabled

public boolean sumEnabled(int i)

thisSumEnabled

public boolean thisSumEnabled(int i,
                              java.lang.String sumConfigId,
                              int sumSid,
                              int ds)

useRowColumnSeven

public boolean useRowColumnSeven(SummedArray summedArray,
                                 int ds)

configChangeDeepChange

public void configChangeDeepChange(boolean newInd,
                                   ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus)
Set indicator configChange and configChangeStatus for this object, and for all objects (components) owned by the BaselineBoard. Used when new CorrModel is created as a copy of the previous CorrModel. Note: This method performs unconditional change, i.e. it sets new status regardless of the current status.

Specified by:
configChangeDeepChange in class Board
Parameters:
configChange - - true (change) or false (no change)
newStatus - - status of the configuration change.

configChangeStatusDeepChange

public boolean configChangeStatusDeepChange(boolean oldInd,
                                            ca.nrc.widar.vciMapper.ConfigChangeStatus oldStatus,
                                            ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus,
                                            java.lang.String d)
Updated in December 2012

Parameters:
oldInd - - set newStatus if configChange=oldInd
oldStatus - - set newStatus if configChangeStatus=oldStatus
newStatus - - status of the configuration change to be assigned if configChange and configChangeStatus are as specified by the first and second parameter.
d - - String that provides additional information regarding configChangeStatus.
Returns:
boolean - return true if status change at board level. Otherwise return false.

updateConfigChangeStatusForToBeTransmitted

public void updateConfigChangeStatusForToBeTransmitted(ca.nrc.widar.vciMapper.ConfigChangeStatus newStatus,
                                                       java.lang.String desc)
Same as configChangeStatusDeepChange for configChange=true and configChangeStatus ToBeTransmitted or CommFailure Used to when transmitting (or re-transmitting) BaselineBoard configuration.


carryForwardChangeToBeTransmitted

public void carryForwardChangeToBeTransmitted(BaselineBoard prevConfiguration)
This method is called just before (or after) CorrModel becomes active. Configuration changes that were not transmitted must be 'carried forward'. If there is no change from the previous CorrModel and in the previous CorrModel there is configuration change that was not transmitted set indicators so that change gets transmitted (when transmitting configuration for this CorrModel).

Parameters:
prevConfiguration - - Baseline Baord configuration from the previous CorrModel.

printChangeIndicators

public void printChangeIndicators(java.lang.StringBuilder cBuilder)

setInputFromRCsOnTheFirstBoard

public void setInputFromRCsOnTheFirstBoard(BaselineBoard firstBlb)

setInputWaferFromRcOnTheFirstBoard

public void setInputWaferFromRcOnTheFirstBoard(XBarBoardOutputWafer wafer,
                                               int firstRcId,
                                               int firstRcInput)

setInputWaferFromRcOnTheFirstBoard

public void setInputWaferFromRcOnTheFirstBoard(BaselineBoard blb0,
                                               int firstRcId,
                                               int firstRcInput)

inputForThisSubarrayConfigured

public boolean inputForThisSubarrayConfigured(java.lang.String cfgId)

setRC7inputFromFirstBlb

public boolean setRC7inputFromFirstBlb(java.lang.String forConfigId,
                                       BaselineBoard firstBlb,
                                       java.util.ArrayList<java.util.logging.LogRecord> logList)

setInputWafersRxpAndRcInputFromTheFirstBoard

public boolean setInputWafersRxpAndRcInputFromTheFirstBoard(BaselineBoard firstBlb,
                                                            java.lang.String forConfigId,
                                                            java.util.ArrayList<java.util.logging.LogRecord> logList)
Used for summed array 2011-04-28 This method is called when input on the 2nd BLB is not already configured. (Which happens when the BLB Pair is used for Summed Array only, and not for baseline products.


setInputWafersRxpAndRcInputFromRCsOnTheFirstBoard

public boolean setInputWafersRxpAndRcInputFromRCsOnTheFirstBoard(BaselineBoard firstBlb,
                                                                 java.lang.String forConfigId,
                                                                 java.util.ArrayList<java.util.logging.LogRecord> logList)
2012-03-19 SV: This method is used for stationPacking=onePerRowColumn


useModeAutoCorrAbOneInputStation

public boolean useModeAutoCorrAbOneInputStation(int i,
                                                java.util.ArrayList<java.util.logging.LogRecord> listOfLogs)
This method is used when setting RCs on the 2nd Baseline Board in a pair. RCs on the 2nd BLB receive the same input as RCs on the 1st BLB, for stationPacking-onePerRow, autoCorr-allStationsMaxPack, auto-corr. product A*B is obtained on additional rows/column using CorrChips on the diagonal. RCs in those rows/columns are set so that each row on each board proces auto-corr. product A*B for different station. Each RC received input for two stations, one to be used as input for the CorrChip on the 1st noard, and the other to be used as input for the CorrChip on the 2nd board. If the number of stations in the subarray is odd number, RCs in the last row/colum get input for only one station (i.e. all 4 input wafers cone from the same station). For CM, this is an indication that auto-corr product should be set on the 1st board only.


setRcInputDataStreams

public void setRcInputDataStreams(java.lang.String forConfigId)
Used for stationPacking=minPack, boards with cross-correlations only, 2nd BLB in a pair.


setRxpInputFromRCsOnTheFirstBoard

public void setRxpInputFromRCsOnTheFirstBoard(BaselineBoard firstBlb)
This method is used for Autocorrelator Mode. Set BLB input and set RXP so that RC input is as on the first board. Do not mark RC as used.


setRcInputBlb0

public boolean setRcInputBlb0(java.lang.String forConfigId,
                              java.util.ArrayList<java.lang.Integer> listOfStations,
                              int aBBID,
                              int bBBID,
                              int SBID,
                              int stPerRowColumn,
                              java.util.ArrayList<java.util.logging.LogRecord> logList)
Older version before 09.09.2010 SonjaVrcic added autoCorrAlgorithm=allStations. Naw obsolete. Set RXP FPGAs so that each Recirculation Controllers receives 4 Stations. a) For each station that belongs to the subarray, find the input wafer. b) If there is a row/colum already used for this subarray that has an unused input, add the station to that row/column c) if this is the 1st station for this subarray, or if rowes/columns already assigned to this subarray are fully used, find an unused (idle) row/column and forward the station to the RCs (X and Y).


setRcInputBlb1

public boolean setRcInputBlb1(java.lang.String forConfigId,
                              BaselineBoard blb0,
                              java.util.ArrayList<java.util.logging.LogRecord> logList)
This method is used to set the 2nd BLB in a BLB pair. The 2nd board receives input streams as they are arranged for Recirculation Controllers on the 1st BLB, only in reverse order. Set RXP so that we can use the same Rcs as on the 1st board, i.e. on the 2nd BLB: 1) input wafers 28,29,30 and 31 must be forwarded to RC0, ... 8) input wafers 0, 1, 2 and 3 must be forwarded to RC7. This applies for all configurations. 09.09.2010 SonjaVrcic: If AutoCorrAlgorithm is "allStationsMaxProd" and a corresponding RC on the 1st board is used to get auto corr products only, copy input streams but mark RC as "not used". We don't need CorrChips on the 2nd board. 30.03.2011 SonjaVrcic: deleted unused input parameter: ca.nrc.widar.jaxb.vci.AutoCorrAlgorithmType autoCorrAlgorithm


rxpAndRcInputConfigured

public boolean rxpAndRcInputConfigured(java.lang.String forConfigId)
Find if at least one RC is used for the specified subarray (configId). Do not take in consideration RC7; this method is used when configuring the sum, in order to configure the sum there must be at least two inputs for this subarray in addition to the sum..


setRcInputBlb0FourStPerRowColumn

public boolean setRcInputBlb0FourStPerRowColumn(java.lang.String forConfigId,
                                                java.util.ArrayList<java.lang.Integer> listOfStations,
                                                int aBBID,
                                                int bBBID,
                                                int SBID,
                                                int stPerRowColumn,
                                                BlbRecFpga.RcUseMode rcUseMode,
                                                ca.nrc.widar.jaxb.vci.AutoCorrAlgorithmType autoCorrAlgorithm,
                                                java.util.ArrayList<java.util.logging.LogRecord> logList)
Replaced by setRcInputForFourStationsPerRowColumn() (setRcInputBlb0FourStPerRowColumnVersion3()). This version still used for auto-corr mode and summed array. Set RXP FPGAs so that each Recirculation Controller receives input from 4 Stations. a) Find input wafer for every station that belongs to the subarray. b) If there is a row/colum already used for this subarray that has an unused input, add the station to that row/column. c) If this is the 1st station for the subarray, or if rows/columns already assigned to this subarray are fully used, find an unused (idle) row/column. This method can be used for products with or without recirculation.

Since:
09.09.2010

setRcInputForFourStationsPerRowColumn

public boolean setRcInputForFourStationsPerRowColumn(java.lang.String forConfigId,
                                                     java.util.ArrayList<java.lang.Integer> listOfStations,
                                                     int aBBID,
                                                     int bBBID,
                                                     int SBID,
                                                     BlbRecFpga.RcUseMode inRcUseMode,
                                                     java.util.ArrayList<java.lang.Integer> autoCorrStations,
                                                     int rowsColumnsToUseForAutoCorrOnly,
                                                     java.util.ArrayList<java.util.logging.LogRecord> logList)
For autoCorrAlgorithm=allStationsMaxProd and (number of stations MOD 4) > 0 add auto-corr only stations to the last row/column used for baselines. This method can be used for products with or without recirculation. Set RXP FPGAs so that each Recirculation Controller receives input from 4 Stations. a) Find input wafer for every station that belongs to the subarray. b) If there is a row/colum already used for this subarray that has an unused input, add the station to that row/column. c) If this is the 1st station for the subarray, or if rows/columns already assigned to this subarray are fully used, find an unused (idle) row/column. Old name: setRcInputBlb0FourStPerRowColumnVersion3()

Since:
2012.05.22

setRcInputSt1AcHalfStMaxProdStartFromFirst

public boolean setRcInputSt1AcHalfStMaxProdStartFromFirst(java.lang.String cfgId,
                                                          java.util.List<java.lang.Integer> listOfStations,
                                                          java.util.List<java.lang.Integer> cList,
                                                          int aBBID,
                                                          int bBBID,
                                                          int SBID,
                                                          boolean reportErrorIfInputNotFound,
                                                          java.util.ArrayList<java.util.logging.LogRecord> logList)
Since:
2011-12-21

setRcInputSt1AcHalfStMaxProdStartFromSecond

public boolean setRcInputSt1AcHalfStMaxProdStartFromSecond(java.lang.String cfgId,
                                                           java.util.List<java.lang.Integer> listOfStations,
                                                           java.util.List<java.lang.Integer> cList,
                                                           int aBBID,
                                                           int bBBID,
                                                           int SBID,
                                                           boolean reportErrorIfInputNotFound,
                                                           java.util.ArrayList<java.util.logging.LogRecord> logList)
Since:
2012-08-17

setRcInputBlb0OneStationPerRowColumn

public boolean setRcInputBlb0OneStationPerRowColumn(java.lang.String cfgId,
                                                    java.util.List<java.lang.Integer> listOfStations,
                                                    int aBBID,
                                                    int bBBID,
                                                    int SBID,
                                                    java.util.ArrayList<java.util.logging.LogRecord> logList)
Since:
2011-12-21

setBlb0InputForStMinPackOneCrossRq4

public boolean setBlb0InputForStMinPackOneCrossRq4(java.lang.String cfgId,
                                                   java.util.List<java.lang.Integer> xStations,
                                                   java.util.List<java.lang.Integer> yStations,
                                                   int aBBID,
                                                   int bBBID,
                                                   int SBID,
                                                   java.util.ArrayList<java.util.logging.LogRecord> logList)
SV 2011-12-21 Configure the 1st Baseline Board for a pair that produces only cross-correlations, i.e. not on the diagonal. stationPacking=minPack productPacking=maxPack re-qunatization=4-bits Each row/column (i.e. Recirculation Controller) gets input for a different pair of X/Y stations. Stations from the X list are set as input wafer 0 Stations from the Y list are set as input wafer 1 to 3. Recirculation Controller on the X side - xStation (wafer[0]) is forwarded to all internal data streams. Recirculation Controller on the Y side - yStation (wafer[1]) is forwarded to all internal data streams. Note: In this case we always need all 8 rows/columns, i.e. the whole board is used for one and only one subarray.


setRcInputForCompleteStOnePerRowCrossBlb0Rq4

public boolean setRcInputForCompleteStOnePerRowCrossBlb0Rq4(int[][] rcInput,
                                                            int rcIndex,
                                                            java.lang.String cfgId,
                                                            int aBBID,
                                                            int bBBID,
                                                            int SBID,
                                                            java.util.ArrayList<java.util.logging.LogRecord> logList)
Deprecated. 

Since:
2012-04-16
Parameters:
rcInput - - an array, each row represents RC input for one RcC on the first BLB in a pair: Each RC (row/column) gets input for two products: 1st product will be configured on the BLB0 2nd product will be configured on the BLB1 1st pp: index 0 - xStation SID , 1 - yStation SID, 2 - pp index in the listOfProducts (not used here) 2nd pp: index 3 - xStation SID , 4 - yStation SID, 5 - pp index in the listOfProducts (not used here)
rcIndex - - index in the rcInput from which we should start
configId - - configuration ID (string received in VCI message)
aBBID - - BBID for baseband A
bBBID - - BBID for baseband B
SBID - - Subband ID
logList - - list of LogRecords stationPacking=onePerRowColumn productPacking=maxPack re-qunatization=4-bits Configure RC input for the Baseline Board that produces only cross-correlations, i.e. not on the diagonal. Each row/column (i.e. Recirculation Controller) produces a single product for a pair of X/Y stations. Note: In this case we always need all 8 columns, i.e. Baseline Board is used for one subarray.

setRcInputForCompleteStOnePerRowCrossBlb1Rq4

public boolean setRcInputForCompleteStOnePerRowCrossBlb1Rq4(BaselineBoard firstBlb,
                                                            int[][] inputForRcs,
                                                            int rcIndex,
                                                            java.lang.String forConfigId,
                                                            java.util.ArrayList<java.util.logging.LogRecord> logList)
Deprecated. 

Since:
2012-04-16
Parameters:
firstBlb - - first BLB in a pair, from which this board gets input.
rcInput - - an array, each row represents RC input for one RcC on the first BLB in a pair: Each RC (row/column) gets input for two products: 1st product will be configured on the BLB0 2nd product will be configured on the BLB1 1st pp: index 0 - xStation SID , 1 - yStation SID, 2 - pp index in the listOfProducts (not used here) 2nd pp: index 3 - xStation SID , 4 - yStation SID, 5 - pp index in the listOfProducts (not used here)
rcIndex - - index in the rcInput from which we should start
logList - - list of LogRecords stationPacking=onePerRowColumn productPacking=maxPack re-qunatization=4-bits Configure RC input for the Baseline Board that produces only cross-correlations, i.e. not on the diagonal. Each row/column (i.e. Recirculation Controller) produces a single product for a pair of X/Y stations. Note: In this case we always need all 8 columns, i.e. Baseline Board is used for one subarray.

setRcInputForSegmentStOnePerRowCrossBlb0Rq4

public boolean setRcInputForSegmentStOnePerRowCrossBlb0Rq4(int[][][][] rcInput,
                                                           int pair,
                                                           java.lang.String cfgId,
                                                           int aBBID,
                                                           int bBBID,
                                                           int SBID,
                                                           java.util.ArrayList<java.util.logging.LogRecord> logList)
Deprecated. 

Since:
2012-04-18
Parameters:
rcInput - - an array of integers [pair][board][row][4] 4 integers: 0-xSID, 1-ySID, 3-polProd (index), 4-segment (index)
pair - - index of the Baseline Board pair to configure.
configId - - configuration ID (string received in VCI message)
aBBID - - BBID for baseband A
bBBID - - BBID for baseband B
SBID - - Subband ID
logList - - list of LogRecords stationPacking=onePerRowColumn productPacking=maxPack re-qunatization=4-bits Configure RC input for the Baseline Board that produces only cross-correlations, i.e. not on the diagonal. Each row/column (i.e. Recirculation Controller) produces a segment for a polarization product for a pair of X/Y stations. Note: In this case we always need all 8 columns, i.e. Baseline Board is used for one subarray.

cfgProductsStOnePerRowCross

public boolean cfgProductsStOnePerRowCross(java.lang.String configId,
                                           java.util.ArrayList<PolarizationProduct> ppList,
                                           int cellsPerSegment,
                                           java.util.ArrayList<java.util.logging.LogRecord> logList)
Since:
2012-05-10 This method is used to configure Corr. Chips on the Baseline Boards where X and Y inputs get different subset of stations. Baseline Board produces cross-correlations only, i.e. no auto-corr. products on this board.
Parameters:
configId - - confgId - identifies subarray
ppList - - list of polarization products to configure
cellsPerSegment - - number of CCCs to be used per segment.
logList - - list of LogRecords stationPacking=onePerRowColumn productPacking=maxPack re-qunatization=4-bits RCs on X side are set so that each gets input from one X station (already done). Rcs on Y side are set so that each row gets input for different product and/or station. CorrChips in the same row (y) produce the same segment for the same product for different baselines. This method is called when RCs are fully configured.

setRcInputForStOnePerRowCrossBlb0Rq4

public boolean setRcInputForStOnePerRowCrossBlb0Rq4(int[][][][] rcInput,
                                                    int pair,
                                                    int numSegments,
                                                    java.lang.String cfgId,
                                                    int aBBID,
                                                    int bBBID,
                                                    int SBID,
                                                    java.util.ArrayList<java.util.logging.LogRecord> logList)
Since:
2012-04-24
Parameters:
rcInput - - an array if integers [pair][board][row][4] 4 integers: 0-xSID, 1-ySID, 3-polProd (index), 4-segment (index)
pair - - index of the Baseline Board pair to configure.
configId - - configuration ID (string received in VCI message)
aBBID - - BBID for baseband A
bBBID - - BBID for baseband B
SBID - - Subband ID
logList - - list of LogRecords stationPacking=onePerRowColumn productPacking=maxPack re-qunatization=4-bits Configure RC input for the Baseline Board that produces only cross-correlations, i.e. not on the diagonal. Each row/column (i.e. Recirculation Controller) produces a segment for a polarization product for a pair of X/Y stations. Note: In this case we always need all 8 columns, i.e. Baseline Board is used for one subarray.

setRcInputForStOnePerRowCrossBlb1Rq4

public boolean setRcInputForStOnePerRowCrossBlb1Rq4(BaselineBoard firstBlb,
                                                    int[][][][] rcInput,
                                                    int pair,
                                                    int numSegments,
                                                    java.lang.String forConfigId,
                                                    int aBBID,
                                                    int bBBID,
                                                    int SBID,
                                                    java.util.ArrayList<java.util.logging.LogRecord> logList)
Deprecated. 

Since:
2012-04-24
Parameters:
firstBlb - - first BLB in a pair, from which this board gets input.
rcInput - - an array, each row represents RC input for one RcC on the first BLB in a pair: Each RC (row/column) gets input for two products: 1st product will be configured on the BLB0 2nd product will be configured on the BLB1 1st pp: index 0 - xStation SID , 1 - yStation SID, 2 - pp index in the listOfProducts (not used here) 2nd pp: index 3 - xStation SID , 4 - yStation SID, 5 - pp index in the listOfProducts (not used here)
rcIndex - - index in the rcInput from which we should start
logList - - list of LogRecords stationPacking=onePerRowColumn productPacking=maxPack re-qunatization=4-bits Configure RC input for the Baseline Board that produces only cross-correlations, i.e. not on the diagonal. Each row/column (i.e. Recirculation Controller) produces a single product for a pair of X/Y stations. Note: In this case we always need all 8 columns, i.e. Baseline Board is used for one subarray.

setRcInputBlb0St1AcAllStMaxProd

public boolean setRcInputBlb0St1AcAllStMaxProd(int maxNumRowsToUse,
                                               java.util.List<java.lang.Integer> stationsToConfigure,
                                               java.util.List<java.lang.Integer> configuredStations,
                                               java.util.List<java.lang.Integer> stationsForAutoProdAb,
                                               java.lang.String cfgId,
                                               int aBBID,
                                               int bBBID,
                                               int SBID,
                                               java.util.ArrayList<java.util.logging.LogRecord> logList)
This method is used to set Baseline Boards on the diagonal for:

station packing algorithm = MIN_PACK, one station per row/column.

product (lag chain) packing algorithm = MAX_PACK

correlation = 4-bits

with or without recirculation

auto-correlation algorithm = ALL_STATIONS_MAX_PROD

number of products = 4 (full polarization) single segment products For stationsToConfigure: 1st BLB: product above diagonal: product A*A, below diagonal:product A*B, on the diagonal: product A*A 2nd BLB: product above diagonal: product B*B, below diagonal:product B*A, on the diagonal: product B*B For stationsForAutoProdAb: On CorrChips on the diagonal configure product a*b. Each board (0/1) can produce different set of products. Set two stations per row/column, one for each BLB. This method sets RXP switch so that each row/column (i.e. Recirculation Controller) gets input from one station (subband pair from Baseband A and B).

Since:
2012-04-27 - version that can skip disabled rows/columns (adminStatus = disabled).
Parameters:
listOfStations - - List of SIDs for which BLB rows/columns should be configured to get products for baselines plus products A*A and B*B on the diagonal (if required).
configuredStations - - add SIDs for stations configured on this board to this list.
stationsForAutoProdAb - - List of SIDs for CorrChips on the diagonal for product a*b.
logList - - List of logs generated while parsing the subarray. Error logs generated by this method are added to the list.
Returns:
boolean - true if mapping was successfull.

setInpWafersRxpsRcsFromRcsOnTheFirstBoard

public boolean setInpWafersRxpsRcsFromRcsOnTheFirstBoard(BaselineBoard firstBlb,
                                                         java.lang.String forConfigId,
                                                         java.util.ArrayList<java.util.logging.LogRecord> logList)
Since:
2012-05-01 - version used to skip disabled rows/columns (adminStatus = disabled). This method is used for stationPacking=onePerRowColumn This method is able to skip disabled rows/columns. Set input wafers for teh 2nd BLB from the RC input for the 1ss BLB. Then set RXP so that each RC gets input for one station. Skip row/column if xRC, yRC or any CorrChip in that row/column is disabled.

setRcInputBlb0St1AcAllStMaxProd

public boolean setRcInputBlb0St1AcAllStMaxProd(java.lang.String cfgId,
                                               java.util.List<java.lang.Integer> listOfStations,
                                               java.util.List<java.lang.Integer> stationsForAutoProdAb,
                                               int aBBID,
                                               int bBBID,
                                               int SBID,
                                               java.util.ArrayList<java.util.logging.LogRecord> logList)
Deprecated. This method is used to set Baseline Boards on the diagonal for:

station packing algorithm = MIN_PACK, one station per row/column.

product (lag chain) packing algorithm = MAX_PACK

correlation = 4-bits

with or without recirculation

auto-correlation algorithm = ALL_STATIONS_MAX_PROD

number of products = 4 (full polarization) single segment products For stationsToConfigure: 1st BLB: product above diagonal: product A*A, below diagonal:product A*B, on the diagonal: product A*A 2nd BLB: product above diagonal: product B*B, below diagonal:product B*A, on the diagonal: product B*B For stationsForAutoProdAb: On CorrChips on the diagonal configure product a*b. Each board (0 / 1) can produce different set of products. Set two stations per row/column, one for each BLB. This method sets RXP switch so that each row/column (i.e. Recirculation Controller) gets input from one station (subband pair from Baseband A and B).

Since:
2012-03-19
Parameters:
listOfStations - - List of SIDs for which BLB rows/columns should be configured to get products for baselines plus products A*A and B*B on the diagonal (if required).
stationsForAutoProdAb - - List of SIDs for CorrChips on the diagonal for product a*b.
logList - - List of logs generated while parsing the subarray. Error logs generated by this method are added to the list.
Returns:
boolean - true if mapping was successfull.

setRcInputBlb1OneStPerRowColumn

public boolean setRcInputBlb1OneStPerRowColumn(java.lang.String cfgId,
                                               java.util.ArrayList<java.lang.Integer> listOfStations,
                                               int aBBID,
                                               int bBBID,
                                               int SBID,
                                               java.util.ArrayList<java.util.logging.LogRecord> logList)
One station per row/column. This method is used to set the 2nd BLB in a BLB pair. The only difference between the setup for the 1st and 2nd board is the order of input streams in the BLB input (on the 2nd BLB it is reversed). See setRcInputBlb0OneStPerRowColumn for more information.


setRcXInputForOneStationPerColumn

public boolean setRcXInputForOneStationPerColumn(int cid,
                                                 java.lang.String cfgId,
                                                 int numSegments,
                                                 int segmentId,
                                                 int cellsPerSegment,
                                                 int rFactor,
                                                 boolean recPhaseSerial,
                                                 ca.nrc.widar.vciMapper.Nibble xNibble,
                                                 int aBBID,
                                                 int bBBID,
                                                 java.util.List<java.lang.Integer> xStations,
                                                 int SBID,
                                                 java.util.ArrayList<java.util.logging.LogRecord> logList)
Since:
2012-05-10 This method is used for BLB0 and BLB1.
Parameters:
cfgId - - configId
numSegments - - number of segments per product
segment - - segment to be configured in this row
cellsPerSegment - - number of cells to be used for this segment
rFactor - - recirculation factor for this product
recPhaseSerial - - phase for recirculation, if true serial, if false parallel
xNibble - - LSN or MSN
aBBID - - Baseband ID for data stream a
bBBID - - Baseband ID for data stream b
xStations - - List of stations to be configured on X side
SBID - - Subband ID
logList - - list of LogRecords to be updated if an error is encountered in this method.
Returns:
boolean - true if OK. False if encountered error, in which case logList will contain LogRecord which describes the problem.

setRcYInputForOneStationPerRow

public boolean setRcYInputForOneStationPerRow(int rcId,
                                              int[] trio,
                                              java.lang.String cfgId,
                                              int numSegments,
                                              int segmentId,
                                              int cellsPerSegment,
                                              int rFactor,
                                              boolean recPhaseSerial,
                                              int aBBID,
                                              int bBBID,
                                              int SBID,
                                              java.util.ArrayList<java.util.logging.LogRecord> logList)
Since:
2012-05-10 There is only one station per row - input wafer zero.
Parameters:
rcId - - RC ID - row to be used for this Y station
trio - - three integers for yRC: SID, polarization product and nibble
cfgId - - configId
numSegments - - number of segment per product
segment - - segment to be configured in this row
cellsPerSegment - - number of cells to be used for this segment
rFactor - - recirculation factor
recPhaseSerial - - phase for recirculation, if true serial, if false parallel
aBBID - - Baseband ID for data stream a
bBBID - - Baseband ID for data stream b
ySID - - station ID
SBID - - Subband ID
logList - - list of LogRecords to be updated if an error is encountered in this method.
Returns:
boolean - true if OK. False if encountered error, in which case logList will contain LogRecord which describes the problem.

setBlb0RcXInputForBlb1ForOnePerColumn

public boolean setBlb0RcXInputForBlb1ForOnePerColumn(java.lang.String cfgId,
                                                     int aBBID,
                                                     int bBBID,
                                                     java.util.List<java.lang.Integer> xStations,
                                                     int SBID,
                                                     java.util.ArrayList<java.util.logging.LogRecord> logList)
Since:
2012-05-10 Replace getIdleColumn() with getIdleAndAvailableColumn() to skip disabled columns.
Parameters:
cfgId - - configId
numSegments - - number of segment per product
segment - - segment to be configured in this row
cellsPerSegment - - number of cells to be used for this segment
rFactor - - recirculation factor for this product
aBBID - - Baseband ID for data stream a
bBBID - - Baseband ID for data stream b
xStations - - List of stations to be configured on X side
SBID - - Subband ID
logList - - list of LogRecords to be updated if an error is encountered in this method.
Returns:
boolean - true if OK. False if encountered error, in which case logList will contain LogRecord which describes the problem.

setBlb0RcYInputForBlb1ForOnePerColumn

public int setBlb0RcYInputForBlb1ForOnePerColumn(java.lang.String cfgId,
                                                 int aBBID,
                                                 int bBBID,
                                                 int ySID,
                                                 int SBID,
                                                 java.util.ArrayList<java.util.logging.LogRecord> logList)
Since:
2012-05-10 Replace getIdleColumn() with getIdleAndAvailableColumn() to skip disabled columns.
Parameters:
cfgId - - configId
numSegments - - number of segment per product
segment - - segment to be configured in this row
cellsPerSegment - - number of cells to be used for this segment
rFactor - - recirculation factor for this product
aBBID - - Baseband ID for data stream a
bBBID - - Baseband ID for data stream b
xStations - - List of stations to be configured on X side
SBID - - Subband ID
logList - - list of LogRecords to be updated if an error is encountered in this method.
Returns:
boolean - true if OK. False if encountered error, in which case logList will contain LogRecord which describes the problem.

setRcInputBlb0St2AcHalfStMaxProd

public boolean setRcInputBlb0St2AcHalfStMaxProd(java.lang.String cfgId,
                                                java.util.List<java.lang.Integer> listOfStations,
                                                int aBBID,
                                                int bBBID,
                                                int SBID,
                                                java.util.ArrayList<java.util.logging.LogRecord> logList)
stationPacking=twoPerRowColumn 2012-03-07 SV - need to re-write this method. This method sets RXP switch so that each row/column gets input from two stations. To get auto-correlations, CorrChips on the diagonal have to be configured in a slightly different manner then the rest. This method configures Baseline Board for autoCorrAlgorithm=halfStations, starting from the 1st station. This method sets RXP so that:

i) Input from two stations is forwarded to one row/column.

ii) Input from the 1st of the two stations is set as inputWafer[0]

iii) Input from the 2nd of the two stations is set as inputWafer[1]

Since:
2012-03-07 (actually implemented before this date - not sure if this methos is usfull at all))

setRcInputBlb1St2AcHalfStMaxProd

public boolean setRcInputBlb1St2AcHalfStMaxProd(java.lang.String cfgId,
                                                java.util.List<java.lang.Integer> listOfStations,
                                                int aBBID,
                                                int bBBID,
                                                int SBID,
                                                java.util.ArrayList<java.util.logging.LogRecord> logList)
stationPacking=twoPerRowColumn 2012-03-07 SV - need to re-write this method. This method is used to set the 2nd BLB in a BLB pair. The only difference between the setup for the 1st and 2nd board is the order of input streams in the BLB input (on the 2nd BLB it is reversed). See setRcInputBlb0TwoStPerRowColumn for more information.

Since:
2012-03-07 (actually implemented before this date - not sure if this methos is usfull at all))

stMaxPackSetRcOutput

public boolean stMaxPackSetRcOutput(java.lang.String configId,
                                    int numSegments,
                                    int segment,
                                    int cellsPerSegment,
                                    int rFactor,
                                    ca.nrc.widar.vciMapper.Nibble xNibble,
                                    ca.nrc.widar.vciMapper.Nibble yNibble,
                                    java.util.ArrayList<java.util.logging.LogRecord> logList)
Set Recirculation Controller output for 4-bit correlation. Arrange Rec.Controller Output Data Streams to get all the baselines for 4 X and 4 Y stations.

Example: If row/column n receives input from stations 1,2,3 and 4 (in this oder)

on the 1st BLB the output should be arranged as follows :

xRecirculator[n] output : stations 1, 2, 3 and 4

yRecirculator[n] output : stations 2, 1. 4 and 3

on the 2nd BLB the output should be arranged as follows :

xRecirculator[n] output : stations 3, 4, 1 and 2

yRecirculator[n] output : stations 4, 3, 2 and 1.

Parameters:
configId - - String - subarray ID
rFactor - - int - recirculation factor
logList - - ArrayLins - list of LogRecords, LogRecords generated by this method will be added to the list.

setDumpTrigSource

public boolean setDumpTrigSource(java.lang.String cfgId,
                                 boolean forSum,
                                 java.util.ArrayList<java.util.logging.LogRecord> logList)

setCorrChipInput

public boolean setCorrChipInput(java.lang.String forConfigId,
                                java.util.ArrayList<java.util.logging.LogRecord> logList)
Output of the Recirculation Controller is input for the Correlator Chips.


setCorrChipInputForCrossOnly

public void setCorrChipInputForCrossOnly(java.lang.String forConfigId,
                                         java.util.ArrayList<java.util.logging.LogRecord> logList)
Output of the Recirculation Controller is input for the Correlator Chips.


setAutoCorrMode

public boolean setAutoCorrMode(java.lang.String forConfigId,
                               PolarizationProduct aProd,
                               PolarizationProduct bProd,
                               java.util.ArrayList<java.util.logging.LogRecord> logList)

setRecContOutput_strightForward

public boolean setRecContOutput_strightForward(java.lang.String forConfigId,
                                               int numSegments,
                                               int segment,
                                               int cellsPerSegment,
                                               int rFactor,
                                               java.util.ArrayList<java.util.logging.LogRecord> logList)
Set Recirculation Controller output for 4-bit correlation. Arrange Rec.Controller switches to send input stright forward.

Example: If row/column n receives input from stations 1,2,3 and 4 (in this oder)

RC output should also be 1, 2, 3, 4.

This method is used to set input for: one station per row/column, autoCorrAlgorithm=halfStationsMaxProd. Exception - used to set auto-corr product A*B for stOnePerRowColumn: if useMode=AutoCorrAb1 send the first input pair to all internal data streams. if useMode=AutoCorrAb2 send the second input pair to all internal data streams.

Parameters:
configId - - String - subarray ID
rFactor - - int - recirculation factor
logList - - ArrayLins list of LogRecords. LogRecords generated by this method will be added to the list.

setRecContOutputFromWafers0And1

public boolean setRecContOutputFromWafers0And1(java.lang.String forConfigId,
                                               int numSegments,
                                               int segment,
                                               int cellsPerSegment,
                                               int rFactor,
                                               boolean recPhaseSerial,
                                               ca.nrc.widar.vciMapper.Nibble xNibble,
                                               ca.nrc.widar.vciMapper.Nibble yNibble,
                                               java.util.ArrayList<java.util.logging.LogRecord> logList)
This method is used to set RC output for stationPacking=onePerRowColumn, halfStationsMaxProd

Parameters:
forConfigId - - config ID (a.k.a. subarray ID) - String
numSegments - - number of segments per product
segment - - segment ID
cellsPerSegment - - number of CC Cells per segment
rFactor - - int, recirculation factor
recPhaseSerial - - phase for recirculation, if true serial, if false parallel
xNibble - - nibble for xRC
yNibble - - nibble for yRC
logList - - list of LogRecords.
Returns:
boolean - true if success, false if failure.

setRcOutputForOnePerRowColumn

public boolean setRcOutputForOnePerRowColumn(java.lang.String forConfigId,
                                             int numSegments,
                                             int segment,
                                             int cellsPerSegment,
                                             int rFactor,
                                             boolean recPhaseSerial,
                                             int subProd,
                                             java.util.ArrayList<java.util.logging.LogRecord> logList)
Mapping for:

station packing = one station per row/column.

with or without recirculation

auto-correlation algorithm = ALL_STATIONS_MAX_PROD

Since:
2012-03-23 renamed on 2012-05-02 Set auto-corr product A*B for stOnePerRowColumn: if useMode=AutoCorrAb1 send the first input pair to all internal data streams. if useMode=AutoCorrAb2 send the second input pair to all internal data streams.
Parameters:
forConfigId - - String - subarray ID
segment - - index of the segment to be configured here (starts from 0)
numSegments - - number of segments in the lag chain (each segment on different Correlator Chip)
cellsPerSegment - - number of CCCs (Correlator Chip Cells) per segment
rFactor - - recirculation factor
recPhaseSerial - - indicator phase for recirculation serial/parallel
logList - - list of LogRecords. LogRecords generated by this method will be added to the list.

oneSegmentOnePpPerCorrChipRq4HalfStMaxProd

public boolean oneSegmentOnePpPerCorrChipRq4HalfStMaxProd(PolarizationProduct product,
                                                          int numSegments,
                                                          int cellsPerSegment,
                                                          int segment,
                                                          boolean aboveDiagonal,
                                                          java.util.ArrayList<java.util.logging.LogRecord> logList)
Configure one segment. stationPacking=onePerRowColumn autoCorrAlgorithm=halfStationsMaxProd

Returns:
int - number of cells used for this product (perhaps it would be better to return boolean)

setCfgNotInProgressFor

public void setCfgNotInProgressFor(PolarizationProduct product,
                                   int numSegments,
                                   int segment)

stOnePerRowOneProdPerCorrChip

public boolean stOnePerRowOneProdPerCorrChip(PolarizationProduct pa,
                                             PolarizationProduct pb,
                                             PolarizationProduct pd,
                                             int numSegments,
                                             int segment,
                                             int cellsPerSegment,
                                             java.util.ArrayList<java.util.logging.LogRecord> logList)
Can be used for single or multi segment products. Place each product (for this segment) on different Correlator Chip. 1st BLB: product above diagonal: product A*A, below diagonal:product A*B, on the diagonal: product A*A 2nd BLB: product above diagonal: product B*B, below diagonal:product B*A, on the diagonal: product B*B Remaining unused rows/columns (if there are any) may be used to configure auto-corr product A*B. For auto-corr. A*B product set two stations per row/column. Each BLB gets auto-corr. product A*B for different set of stations. Mapping for:

station packing algorithm = MIN_PACK, one station per row/column.

product (lag chain) packing algorithm = MAX_PACK

correlation = 4-bits

with or without recirculation

auto-correlation algorithm = ALL_STATIONS_MAX_PROD

multi-segment products.

Since:
2012-03-20 updated on 2012-05-02
Parameters:
pa - - polarization product to be configured above and on the diagonal for RC useMode=Baselines
pb - - polarization product to be configured below diagonal for RC useMode=Baselines
pd - - polarization product to be configured on the diagonal for RC useMode=AutoCorrAb1/AutoCorrAb2
numSegments - - number of segments per product
segment - - index of segment in the lag chain, starting from 0.
cellsPerSegment - - number of CCCs (orrelator Chip Cells) per product.
logList - - List of logs generated while parsing the subarray. Error logs generated by this method are added to the list.
Returns:
boolean - true if mapping was successfull.

stMaxPackCfgSegmentForAllProducts

public boolean stMaxPackCfgSegmentForAllProducts(java.util.ArrayList<PolarizationProduct> listOfProducts,
                                                 ca.nrc.widar.jaxb.vci.AutoCorrAlgorithmType autoCorrAlgorithm,
                                                 int segment,
                                                 int numSegments,
                                                 int cellsPerSegment,
                                                 int startFromCcq,
                                                 int numCcqs,
                                                 java.util.ArrayList<java.util.logging.LogRecord> logList)
Since:
June 2012
Parameters:
listOfProducts - - configure a segment for this product.
segment - - segment (index starting from zero)
numSegments - - total number of segments per product
cellsPerSegment - - number of CCCs to use for this segment.
logList - - List of logs. LogRecords generated by this method will be added to the list.
Returns:
boolean - true if mapping was successfull.

configureSum

public boolean configureSum(SummedArray summedArray,
                            int rxpid,
                            int inputStream,
                            java.util.ArrayList<java.util.logging.LogRecord> logList)
Configure sum of subarray.


modifySum

public boolean modifySum(SummedArray summedArray,
                         java.util.ArrayList<java.util.logging.LogRecord> logList)
Modify sum for existing subarray. Find if sum is configured on this board, if yes, modify list of stations included in the sum.


vdifConfigured

public boolean vdifConfigured()

vdifConfigured

public boolean vdifConfigured(int i)

vdifEnabled

public boolean vdifEnabled(int i)

packetDelayKnown

public boolean packetDelayKnown(int i)

configureVdif

public boolean configureVdif(SummedArray summedArray,
                             int rxpid,
                             int inputStream,
                             java.util.ArrayList<java.util.logging.LogRecord> logList)

calculateVdifPacketDelay

public void calculateVdifPacketDelay(int counter)
Since:
2012-05-29 Calculate VDIF packet delay. VDIF delay can be explicitely specified in VCI message, if not, it is calculated by CM. Algorithm updated on 2012-09-04
Parameters:
counter - - counter of VDIF streams is used to generate different delay for each stream.

firstBlbLowerSumToCcArray

public boolean firstBlbLowerSumToCcArray(SummedArray summedArray,
                                         int sumInputStream,
                                         int numSegments,
                                         java.util.ArrayList<java.util.logging.LogRecord> logList)
This method configures input switch on RC x7 and y7 so that input stream 0 is forwarded to internal stream 1. This method is used when auto-correlation products for the sum of the array are required. Explanation: To get auto-correlation products A*B and/or B*A CM uses the lower RXP on both BLB boards. The sum generated by the lower RXP is forwarded to the RC7, input 7. That's determined by the hardware design and cannot be changed. Configured of the 1st board: a) use lower RXP to generate the sum for A. The hardware forwards the sum to RC7 (X and Y), input 7. Configuration of the 2nd BLB board: a) set RXP switch to forward the input "wafer" 3 comming from the RC7 on the 1st board to RC7, all input wafers, on the 2nd board, which means that the sum for A is forwarded to RC7, input 1, 3 and 5 (for x and y). b) lower RXP is configured to generate the sum for input stream B the sum is, by default, forwarded to the RC7, input 7. c) RC7 (x and y) input 5 and 7, receive the sum for A and B. d) Correlator Chip 7,7 on the second noard is used to produce auto-correlation products.

Parameters:
summedArray - - Summed Array configuration
sumInputStream - - input stream A or B
logList - - list of logs.
Returns:
boolean - return OK if the board is successfully configured configured.

secondBlbLowerSumToCcArray

public boolean secondBlbLowerSumToCcArray(SummedArray summedArray,
                                          int ds1,
                                          int numSegments,
                                          java.util.ArrayList<java.util.logging.LogRecord> logList)
This method is used to get a cross-product A*B or B*A for the summed array. It can be called only for the 2nd BLB in a BLB pair. The sum for ds0 is already configured on the 1st BLB. Configure the sum for the ds1. The sum generated by the 1st BLB (lower RXP) is received on input wafer 3, stream 1. The sum generated on the 2nd board will be forwarded to RC7, data stream 7 (and will override the sum generated on the 1st board). Configure RXP switch to send input wafer 3 to all 4 inputs of RC7 X and Y. That is required: a) to get DUMPTRIG for the sum from the 1st board. b) to preserve the ds0 sum generated on the 1st board, Configure RC7 to send: - ds0 sum (generated on the 1st board) to datastreams 0, 2, 4 and 6, and - ds1 sum (generated on the 2nd board) to data streams 1, 3, 5 and 7.


oneSumOneProduct

public boolean oneSumOneProduct(SummedArray summedArray,
                                PolarizationProduct pp,
                                int ccqId,
                                int cellsPerSegment,
                                int numSegments,
                                int segment,
                                java.util.ArrayList<java.util.logging.LogRecord> logList)

twoSumsOneProduct

public boolean twoSumsOneProduct(SummedArray summedArray,
                                 PolarizationProduct pp,
                                 int ccqId,
                                 int cellsPerSegment,
                                 int numSegments,
                                 int segment,
                                 java.util.ArrayList<java.util.logging.LogRecord> logList)

setTwoSumsOnCorrChip77

public boolean setTwoSumsOnCorrChip77(int rFactor,
                                      int numSegments,
                                      int segment,
                                      int cellsPerSegment,
                                      java.util.ArrayList<java.util.logging.LogRecord> logList)

setSumProductOnCorrChip77

public boolean setSumProductOnCorrChip77(PolarizationProduct pp,
                                         int ccqId,
                                         int cellsPerSegment,
                                         java.util.ArrayList<java.util.logging.LogRecord> logList)

releaseSubarray

public void releaseSubarray(java.lang.String subToRelease)
Release resources used for the specified subarray


setDefaultConfiguration

public void setDefaultConfiguration()
This method is used only when reConfigureCompleteBaselineBoards=true to force CM to transmit (default) configuration even if there is no change. This was intorduced to re-configure hardware which may have been configured using GUIs or other means (for testing). Normally, CM transmits configuration only if there was a change. Modified by Sonja.Vrcic@nrc.gc.ca in October 2012 to set default configuration for unused components only. Do not overwrite exiting subarray (known to CM). Set default configuration on RXPs and Ethernet FPGA only when all RC are idle (i.e. not used by previously configured subarray).


setInterFrameDelayForConfigId

public void setInterFrameDelayForConfigId(java.lang.String cid,
                                          ca.nrc.widar.jaxb.vci.InterFrameDelayAlgType a,
                                          int d,
                                          boolean r)
Since:
2012-10-15 Set Inter-Frame Delay for all RCs used for this Config ID. Used when creating subarray.
Parameters:
cid - - config ID - string
a - - inter frame delay algorithm
d - - inter frame delay
r - - randomizer ON (true or false)

getConfigAsXml

public ca.nrc.widar.jaxb.component.BaselineBoard getConfigAsXml(javax.xml.datatype.XMLGregorianCalendar xActTime)
                                                         throws ca.nrc.widar.vciMapper.VciMapperException
Throws:
ca.nrc.widar.vciMapper.VciMapperException

sendConfiguration

public boolean sendConfiguration(BaselineBoardStatus blbStatus,
                                 long corrModelId,
                                 long actTime,
                                 javax.xml.datatype.XMLGregorianCalendar xActTime,
                                 boolean thisModelActive,
                                 boolean completeReport,
                                 java.lang.StringBuilder bBuilder)
Dec. 2012 CM is now able to track status for individual components (FPGAs etc.). CMIB configuration is transmitted only if configChangeStatus is ToBeTransmitted or CommFailure. Updated on 2012-04-20 by Sonja.Vrcic@nrc.gc.ca : a) do not log 'board disabled' every time we get here - that generates log once a second. b) set 'success' for every call of method transmitActQuery() and asyncTransmitCmibCfg(). c) set success=false when board is disabled d) check admin status of the board. Note: all of the above was already implemented for Station Board (except adminStatus).

Parameters:
blbOpStatus - - Operation status of this Baseline Board.
corrModelId - - CorrModel ID, instance identifier for debuging purposes.
xActTime - - XMLGregorianCalendar: activation time
completeReport - - If false reports succes/failure only if status changed. If true generate LogRecord even if the transmission need not be performed now, due to the fact that the configuration was accepted or rejected earlier.
listOfLogs - - list of LogRecords, add to this list logs generated by this method.
Returns:
boolean - true if at least one configuration request was transmitted and accepted. If "send to CMIB is disabled" (test mode) return true to indicated that the configuration would have been transmitted at this time.

revokeCmibCfg

public void revokeCmibCfg(BaselineBoardStatus blbStatus,
                          long corrModelId,
                          long actTime,
                          javax.xml.datatype.XMLGregorianCalendar xActTime,
                          java.lang.StringBuilder sBuilder)
Revoke transmitted configuration by removing it from the CMIB input queue.


blockFramesForSubarray

public void blockFramesForSubarray(java.lang.String forConfigId)
Created by SV on 2011-11-25 Block frames in LTA for the specified subarray.


getCbeConfigFor4BitProducts

public boolean getCbeConfigFor4BitProducts(java.lang.String inCfgId,
                                           java.util.List<ca.nrc.widar.jaxb.cbe.Prd4> cfgList,
                                           java.util.concurrent.ConcurrentHashMap<java.lang.Integer,ProductLagChain> listOfProductLagChain,
                                           java.util.ArrayList<java.util.logging.LogRecord> logList)
Get JAXB configuration for products as a list of XML elements prd4.

Parameters:
inCfgId - - configId. Get configuration for this subarray.
cfgList - - list of products. If configuration of this board is a part of the product lag chain, add lag chain segment to the elements in this list.
logList - - list of LogRecords. Add Logrecords generated by this method to the list.
Returns:
List - List of XML elements ca.nrc.widar.jaxb.cbe.Prd4 or ca.nrc.widar.jaxb.cbe.Prd7

getCbeConfigFor7BitProducts

public boolean getCbeConfigFor7BitProducts(java.lang.String inCfgId,
                                           java.util.List<ca.nrc.widar.jaxb.cbe.Prd7> cfgList,
                                           java.util.concurrent.ConcurrentHashMap<java.lang.Integer,ProductLagChain> listOfProductLagChain,
                                           java.util.ArrayList<java.util.logging.LogRecord> logList)
Get JAXB configuration for products as a list of XML elements prd4 or prd7.

Parameters:
inCfgId - - configId. Get configuration for this subarray.
cfgList - - list of 7-bit products. If configuration of this board is a part of the product lag chain, add lag chain segment to the elements in this list.
logList - - list of LogRecords. Add Logrecords generated by this method to the list.
Returns:
List - List of XML elements ca.nrc.widar.jaxb.cbe.Prd4 or ca.nrc.widar.jaxb.cbe.Prd7

getColor

public java.lang.String getColor()
Returns color as a string - used for HTML interface.


getLagChainSegmentAsString

public static java.lang.String getLagChainSegmentAsString(int blockSize,
                                                          int totalBlocks,
                                                          int xStartBlock,
                                                          int xEndBlock,
                                                          int yStartBlock,
                                                          int yEndBlock)

toString

public java.lang.String toString()
Overrides:
toString in class Board

reportConfigChangeStatus

public java.lang.String reportConfigChangeStatus(BaselineBoardStatus blbStatus)

reportConfigChangeStatus

public void reportConfigChangeStatus(java.lang.StringBuilder sBuilder,
                                     BaselineBoardStatus blbStatus)

printRCstatus

public java.lang.String printRCstatus()

printWafers

public java.lang.String printWafers()

reportConfigChangeStatusHtml

public void reportConfigChangeStatusHtml(java.lang.StringBuilder sBuilder,
                                         BaselineBoardStatus blbStatus)

logRcInputAndOutput

public void logRcInputAndOutput()

printBoardPositionAndMlid

public java.lang.String printBoardPositionAndMlid()

getBoardIdAsString

public java.lang.String getBoardIdAsString()
Overrides:
getBoardIdAsString in class Board

printStatusAndRcs2

public java.lang.String printStatusAndRcs2()

printStatusAndRcs

public java.lang.String printStatusAndRcs()

ccsToString

public java.lang.String ccsToString()

printInputWafer

public java.lang.String printInputWafer(int i)

printInputWafers

public java.lang.StringBuilder printInputWafers(boolean onlyIDs)

printUsedInpWafersAndRCs

public java.lang.StringBuilder printUsedInpWafersAndRCs()

printBaselinesAndProducts

public java.lang.String printBaselinesAndProducts()

NRAO/DRAO

National Radio Astronomy Observatory