Пример #1
0
        public void CreatBeamSet()
        {
            IDeviceConfiguration deviceConfiguration = device.GetConfiguration();

            ultrasoundConfiguration = deviceConfiguration.GetUltrasoundConfiguration();
            digitizerTechnology     = ultrasoundConfiguration.GetDigitizerTechnology(UltrasoundTechnology.Conventional);
            IBeamSetFactory beamSetFactory = digitizerTechnology.GetBeamSetFactory();

            beamSet = beamSetFactory.CreateBeamSetConventional("Conventional");
        }
Пример #2
0
        public void CreatPABeamSet(ProbeModel probe)
        {
            IDeviceConfiguration deviceConfiguration = device.GetConfiguration();

            ultrasoundConfiguration = deviceConfiguration.GetUltrasoundConfiguration();
            digitizerTechnology     = ultrasoundConfiguration.GetDigitizerTechnology(UltrasoundTechnology.PhasedArray);
            IBeamSetFactory beamSetFactory = digitizerTechnology.GetBeamSetFactory();
            var             beamFormations = GetBeamFormationCollection(beamSetFactory, probe);

            beamSet = beamSetFactory.CreateBeamSetPhasedArray("Phased Array", beamFormations);
        }
Пример #3
0
        public IBeamFormationCollection GetFocusedBeamFormationCollection(
            IBeamSetFactory beamSetFactory,
            ProbeModel probe,
            double[] elementDelays)
        {
            var  beamFormations     = beamSetFactory.CreateBeamFormationCollection();
            uint usedElementPerBeam = probe.UsedElementsPerBeam;
            uint totalElements      = probe.TotalElements;

            // Add Focused beam formations
            for (uint beamIndex = 0; beamIndex < totalElements - usedElementPerBeam + 1; beamIndex++)
            {
                var beamFormation = beamSetFactory.CreateBeamFormation(
                    usedElementPerBeam,
                    usedElementPerBeam,
                    beamIndex + 1,
                    beamIndex + 1);

                // Add element delays
                var pulserDelays   = beamFormation.GetPulserDelayCollection();
                var receiverDelays = beamFormation.GetReceiverDelayCollection();

                for (uint elemIndex = 0; elemIndex < usedElementPerBeam; elemIndex++)
                {
                    // Add pulser delay
                    pulserDelays.GetElementDelay(elemIndex).SetElementId(elemIndex + beamIndex + 1);
                    pulserDelays.GetElementDelay(elemIndex).SetDelay(elementDelays[elemIndex]);

                    //Add receiver delay
                    receiverDelays.GetElementDelay(elemIndex).SetElementId(elemIndex + beamIndex + 1);
                    receiverDelays.GetElementDelay(elemIndex).SetDelay(elementDelays[elemIndex]);
                }

                beamFormations.Add(beamFormation);
            }

            // Add unfocused beam formations
            for (uint beamIndex = 0; beamIndex < totalElements - usedElementPerBeam + 1; beamIndex++)
            {
                var beamFormation = beamSetFactory.CreateBeamFormation(
                    usedElementPerBeam,
                    usedElementPerBeam,
                    beamIndex + 1,
                    beamIndex + 1);

                beamFormations.Add(beamFormation);
            }

            return(beamFormations);
        }
Пример #4
0
        public IBeamFormationCollection GetBeamFormationCollection(IBeamSetFactory beamSetFactory, ProbeModel probe)
        {
            var  beamFormations     = beamSetFactory.CreateBeamFormationCollection();
            uint usedElementPerBeam = probe.UsedElementsPerBeam;
            uint totalElements      = probe.TotalElements;

            for (uint beamIndex = 0; beamIndex < totalElements - usedElementPerBeam + 1; beamIndex++)
            {
                var beamFormation = beamSetFactory.CreateBeamFormation(
                    usedElementPerBeam,
                    usedElementPerBeam,
                    beamIndex + 1,
                    beamIndex + 1);

                beamFormations.Add(beamFormation);
            }

            return(beamFormations);
        }
Пример #5
0
        public IBeamFormationCollection GetSscanBeamFormationCollection(
            IBeamSetFactory beamSetFactory,
            ProbeModel probe,
            double[][] elementDelays) // sscan delay 2-d array
        {
            var  beamFormations     = beamSetFactory.CreateBeamFormationCollection();
            uint usedElementPerBeam = probe.UsedElementsPerBeam;
            uint totalElements      = probe.TotalElements;

            // Add Focused beam formations
            for (uint beamIndex = 0; beamIndex < elementDelays.GetLength(0); beamIndex++)
            {
                var beamFormation = beamSetFactory.CreateBeamFormation(
                    usedElementPerBeam,
                    usedElementPerBeam,
                    1,  // pulser element starts from 1
                    1); // receiver element starts from 1

                // Add element delays
                var pulserDelays   = beamFormation.GetPulserDelayCollection();
                var receiverDelays = beamFormation.GetReceiverDelayCollection();

                for (uint elemIndex = 0; elemIndex < usedElementPerBeam; elemIndex++)
                {
                    // Add pulser delay
                    pulserDelays.GetElementDelay(elemIndex).SetElementId(elemIndex + 1); // element starts from 1
                    pulserDelays.GetElementDelay(elemIndex).SetDelay(elementDelays[beamIndex][elemIndex]);

                    //Add receiver delay
                    receiverDelays.GetElementDelay(elemIndex).SetElementId(elemIndex + 1); // element starts from 1
                    receiverDelays.GetElementDelay(elemIndex).SetDelay(elementDelays[beamIndex][elemIndex]);
                }

                beamFormations.Add(beamFormation);
            }
            return(beamFormations);
        }