ScanMaster.Acquire.Patterns.PulsedRFScanPatternBuilder2.Shot C# (CSharp) Method

Shot() public method

public Shot ( int startTime, int valvePulseLength, int valveToQ, int flashToQ, int delayToDetectorTrigger, int rf1CentreTime, int rf1Length, int rf2CentreTime, int rf2Length, int piFlipTime, int fmCentreTime, int fmLength, int attCentreTime, int attLength, int scramblerCentreTime, int scramblerLength, int rf1BlankingCentreTime, int rf1BlankingLength, int rf2BlankingCentreTime, int rf2BlankingLength, bool modulated ) : int
startTime int
valvePulseLength int
valveToQ int
flashToQ int
delayToDetectorTrigger int
rf1CentreTime int
rf1Length int
rf2CentreTime int
rf2Length int
piFlipTime int
fmCentreTime int
fmLength int
attCentreTime int
attLength int
scramblerCentreTime int
scramblerLength int
rf1BlankingCentreTime int
rf1BlankingLength int
rf2BlankingCentreTime int
rf2BlankingLength int
modulated bool
return int
        public int Shot( int startTime, int valvePulseLength, int valveToQ, int flashToQ,
            int delayToDetectorTrigger, int rf1CentreTime, int rf1Length, int rf2CentreTime, int rf2Length,
            int piFlipTime, int fmCentreTime, int fmLength, int attCentreTime, int attLength,
            int scramblerCentreTime, int scramblerLength, int rf1BlankingCentreTime , int rf1BlankingLength,
            int rf2BlankingCentreTime, int rf2BlankingLength, bool modulated)
        {
            int time = 0;
            int tempTime = 0;

            // piFlip off
            AddEdge(piChannel, startTime, false);

            // valve pulse
            tempTime = Pulse(startTime, 0, valvePulseLength,
                ((DigitalOutputChannel)Environs.Hardware.DigitalOutputChannels["valve"]).BitNumber);
            if (tempTime > time) time = tempTime;
            // Flash pulse
            tempTime = Pulse(startTime, valveToQ - flashToQ, FLASH_PULSE_LENGTH,
                ((DigitalOutputChannel)Environs.Hardware.DigitalOutputChannels["flash"]).BitNumber);
            if (tempTime > time) time = tempTime;
            // Q pulse
            tempTime = Pulse(startTime, valveToQ, Q_PULSE_LENGTH,
                ((DigitalOutputChannel)Environs.Hardware.DigitalOutputChannels["q"]).BitNumber);
            if (tempTime > time) time = tempTime;

            // pulse rf amp blanking for rf1
            if (rf1BlankingLength != 0)
            {
                tempTime = Pulse(startTime, valveToQ + rf1BlankingCentreTime - (rf1BlankingLength / 2), rf1BlankingLength, ampBlankingChannel);
                if (tempTime > time) time = tempTime;
            }
            // pulse rf1
            if (rf1Length != 0)
            {
                tempTime = Pulse(startTime, valveToQ + rf1CentreTime - (rf1Length/2), rf1Length, rfSwitchChannel);
                if (tempTime > time) time = tempTime;
            }
            // pulse rf amp blanking for rf2
            if (rf2BlankingLength != 0)
            {
                tempTime = Pulse(startTime, valveToQ + rf2BlankingCentreTime - (rf2BlankingLength / 2), rf2BlankingLength, ampBlankingChannel);
                if (tempTime > time) time = tempTime;
            }
            // pulse rf2
            if (rf2Length != 0)
            {
                tempTime = Pulse(startTime, valveToQ + rf2CentreTime - (rf2Length/2), rf2Length, rfSwitchChannel);
                if (tempTime > time) time = tempTime;
            }
            // pulse fm
            tempTime = Pulse(startTime, valveToQ + fmCentreTime - (fmLength/2), fmLength, fmChannel);
            if (tempTime > time) time = tempTime;

            // pulse attenuators
            tempTime = Pulse(startTime, valveToQ + attCentreTime - (attLength / 2), attLength, attChannel);
            if (tempTime > time) time = tempTime;

            // pulse scrambler
            tempTime = Pulse(startTime, valveToQ + scramblerCentreTime - (scramblerLength / 2),
                                scramblerLength, scramblerChannel);
            if (tempTime > time) time = tempTime;

            // piFlip on
            AddEdge(piChannel, startTime + valveToQ + piFlipTime, true);

            // Detector trigger
            if (modulated)
            {
                tempTime = Pulse(startTime, delayToDetectorTrigger + valveToQ, DETECTOR_TRIGGER_LENGTH,
                    ((DigitalOutputChannel)Environs.Hardware.DigitalOutputChannels["detector"]).BitNumber);
                if (tempTime > time) time = tempTime;
            }
            else
            {
                tempTime = Pulse(startTime, delayToDetectorTrigger + valveToQ, DETECTOR_TRIGGER_LENGTH,
                    ((DigitalOutputChannel)Environs.Hardware.DigitalOutputChannels["detectorprime"]).BitNumber);
                if (tempTime > time) time = tempTime;
            }

            return time;
        }
PulsedRFScanPatternBuilder2