コード例 #1
0
ファイル: Acquisitor.cs プロジェクト: JamesNgai/EDMSuite
 // calling this method starts acquisition
 public void Start(BlockConfig config)
 {
     this.config = config;
     acquireThread = new Thread(new ThreadStart(this.Acquire));
     acquireThread.Name = "BlockHead Acquisitor";
     acquireThread.Priority = ThreadPriority.Normal;
     backendState = AcquisitorState.running;
     acquireThread.Start();
 }
コード例 #2
0
ファイル: Controller.cs プロジェクト: ColdMatter/EDMSuite
        // this function creates a default BlockConfig that is sufficient to
        // get BlockHead running. The recommended way of making a new config
        // is to use BlockHead to save this config and then modify it.
        private void MakeDefaultBlockConfig()
        {
            const int CODE_LENGTH = 12;
            config = new BlockConfig();

            DigitalModulation dm = new DigitalModulation();
            dm.Name = "E";
            dm.Waveform = new Waveform("E Modulation", CODE_LENGTH);
            dm.Waveform.Code = new bool[] { true, true, false, false, false, false, false, false, false, false, false, false };
            config.DigitalModulations.Add(dm);

            DigitalModulation pi = new DigitalModulation();
            pi.Name = "PI";
            pi.Waveform = new Waveform("Pi Modulation", CODE_LENGTH);
            pi.Waveform.Code = new bool[] { false, false, false, false, false, false, false, false, false, false, false, true };
            config.DigitalModulations.Add(pi);

            AnalogModulation b = new AnalogModulation();
            b.Name = "B";
            b.Waveform = new Waveform("B Modulation", CODE_LENGTH);
            b.Waveform.Code = new bool[] { false, false, false, false, false, false, false, false, false, false, false, true };
            b.DelayAfterSwitch = 5;
            b.Centre = 0;
            b.Step = 0.46;
            config.AnalogModulations.Add(b);

            AnalogModulation db = new AnalogModulation();
            db.Name = "DB";
            db.Waveform = new Waveform("DB Modulation", CODE_LENGTH);
            db.Waveform.Code = new bool[] { false, false, false, false, false, false, false, false, false, false, true, false };
            db.DelayAfterSwitch = 5;
            db.Centre = 0;
            db.Step = 0.1;
            config.AnalogModulations.Add(db);

            AnalogModulation rf1A = new AnalogModulation();
            rf1A.Name = "RF1A";
            rf1A.Waveform = new Waveform("rf1 Amplitude modulation", CODE_LENGTH);
            rf1A.Waveform.Code = new bool[] { false, false, false, false, false, false, false, false, false, false, true, false };
            rf1A.DelayAfterSwitch = 0;
            rf1A.Centre = 1.5;
            rf1A.Step = 0.1;
            config.AnalogModulations.Add(rf1A);

            AnalogModulation rf2A = new AnalogModulation();
            rf2A.Name = "RF2A";
            rf2A.Waveform = new Waveform("rf2 Amplitude modulation", CODE_LENGTH);
            rf2A.Waveform.Code = new bool[] { false, false, false, false, false, false, false, false, false, false, true, false };
            rf2A.DelayAfterSwitch = 0;
            rf2A.Centre = 2.5;
            rf2A.Step = 0.1;
            config.AnalogModulations.Add(rf2A);

            AnalogModulation rf1F = new AnalogModulation();
            rf1F.Name = "RF1F";
            rf1F.Waveform = new Waveform("rf1 frequency modulation", CODE_LENGTH);
            rf1F.Waveform.Code = new bool[] { false, false, false, false, false, false, false, false, false, false, true, false };
            rf1F.DelayAfterSwitch = 0;
            rf1F.Centre = 2.5;
            rf1F.Step = 0.1;
            config.AnalogModulations.Add(rf1F);

            AnalogModulation rf2F = new AnalogModulation();
            rf2F.Name = "RF2F";
            rf2F.Waveform = new Waveform("rf2 frequency modulation", CODE_LENGTH);
            rf2F.Waveform.Code = new bool[] { false, false, false, false, false, false, false, false, false, false, true, false };
            rf2F.DelayAfterSwitch = 0;
            rf2F.Centre = 2.5;
            rf2F.Step = 0.1;
            config.AnalogModulations.Add(rf2F);

            AnalogModulation lf1 = new AnalogModulation();
            lf1.Name = "LF1";
            lf1.Waveform = new Waveform("laser frequency 1 modulation", CODE_LENGTH);
            lf1.Waveform.Code = new bool[] { false, true, false, true, false, false, false, false, false, false, false, false };
            lf1.DelayAfterSwitch = 0;
            lf1.Centre = 2.5;
            lf1.Step = 0.05;
            config.AnalogModulations.Add(lf1);

            AnalogModulation lf2 = new AnalogModulation();
            lf2.Name = "LF2";
            lf2.Waveform = new Waveform("laser frequency 2 modulation", CODE_LENGTH);
            lf2.Waveform.Code = new bool[] { false, false, false, false, false, false, false, false, false, false, true, false };
            lf2.DelayAfterSwitch = 0;
            lf2.Centre = 1.0;
            lf2.Step = 0.01;
            config.AnalogModulations.Add(lf2);

            config.Settings["codeLength"] = CODE_LENGTH;
            config.Settings["numberOfPoints"] = 4096;
            config.Settings["pgClockFrequency"] = 1000000;
            config.Settings["eDischargeTime"] = 1000;
            config.Settings["eBleedTime"] = 1000;
            config.Settings["eSwitchTime"] = 500;
            config.Settings["eChargeTime"] = 1000;
            config.Settings["magnetCalibration"] = 16.5;

            config.Settings["eState"] = true;
            config.Settings["bState"] = true;
            config.Settings["rfState"] = true;
            config.Settings["ePlus"] = 8.0;
            config.Settings["eMinus"] = -8.0;
            config.Settings["gtPlus"] = 1.6;
            config.Settings["gtMinus"] = -1.6;
            config.Settings["gbPlus"] = 1.6;
            config.Settings["gbMinus"] = -1.6;
        }
コード例 #3
0
ファイル: BlockStore.cs プロジェクト: ColdMatter/EDMSuite
 private BlockConfig getBlockConfig(int blockID)
 {
     BlockConfig bc = new BlockConfig();
     using (BlockDatabaseDataContext dc = new BlockDatabaseDataContext())
     {
         IEnumerable<DBBlock> bs = from DBBlock dbb in dc.DBBlocks
                                   where (dbb.blockID == blockID)
                                   select dbb;
         // there should only be one item - better to check or not?
         DBBlock dbbb = bs.First();
         bc = deserializeBC(dbbb.configBytes.ToArray());
     }
     return bc;
 }
コード例 #4
0
ファイル: Controller.cs プロジェクト: ColdMatter/EDMSuite
 private void LoadConfig(FileStream fs)
 {
     config = (BlockConfig)serializer.Deserialize(fs);
 }