示例#1
0
        private Task SetElectrometer(ExcelJob job)
        {
            return(Task.Run(() =>
            {
                if (el == null)
                {
                    MessageBox.Show("No electrometer available!"); return;
                }

                ////ZERO
                //if (!el.IsZeroed() && !alreadyZeroed)
                //{
                //    logger.Log("Zeroing electrometer...");
                //    await el.Zero();
                //}

                //SET RANGE
                if (el.GetRange() != Autodrive.Electrometers.Enums.Range.HIGH)
                {
                    el.SetRange(Autodrive.Electrometers.Enums.Range.HIGH);
                }

                //SET BIAS
                Bias reqBias = Bias.UNKNOWN;
                var currentBias = this.el.GetBias();
                switch (job.Bias)
                {
                case -100:
                case -300: reqBias = Bias.NEG_100PERC; break;

                case -50:
                case -150: reqBias = Bias.NEG_50PERC; break;

                case 0: reqBias = Bias.ZERO; break;

                case 50:
                case 150: reqBias = Bias.POS_50PERC; break;

                case 100:
                case 300: reqBias = Bias.POS_100PERC; break;
                }

                if (reqBias != currentBias)
                {
                    logger.Log($"Settng Bias {reqBias.ToString()} + 10 sec delay");
                    el.SetBias(reqBias);
                    Thread.Sleep(10000);
                }

                //SET MODE
                if (el.GetMode() != MeasureMode.CHARGE)
                {
                    el.SetMode(MeasureMode.CHARGE);
                }
                ;
                el.StopMeasurement();
                el.Reset();
            }));
        }
示例#2
0
 private Task SetLinacState(ExcelJob job)
 {
     return(Task.Run(() =>
     {
         if (linac != null)
         {
             job.MachineStateRun.Time = 99;
             linac.SetMachineState(job.MachineStateRun);
         }
     }));
 }
        /// <summary>
        /// Parses the spreadsheet to pull Autodrive jobs
        /// </summary>
        /// <param name="ss"></param>
        /// <returns></returns>
        public static List <ExcelJob> GetExcelJobs(this SfSpreadsheet ss)
        {
            var             rows = ss.ToXCelRows();
            List <ExcelJob> jobs = new List <ExcelJob>();

            foreach (var row in rows.Skip(1).Where(r => r[0] != null && !((string)r[0]).StartsWith("//")).ToList())
            {
                var state  = new MachineState();
                var index  = rows.IndexOf(row);
                var header = rows[0];
                state.Accessory     = XCelRowParser.GetAccessory(header, row);
                state.CollimatorRot = XCelRowParser.GetCollimatorRot(header, row);
                state.CouchLat      = XCelRowParser.GetCouchLat(header, row);
                state.CouchVert     = XCelRowParser.GetCouchVert(header, row);
                state.CouchLng      = XCelRowParser.GetCouchLng(header, row);
                state.CouchRot      = XCelRowParser.GetCouchRot(header, row);
                state.DoseRate      = XCelRowParser.GetDoseRate(header, row);
                state.Energy        = XCelRowParser.GetEnergy(header, row);
                state.GantryRot     = XCelRowParser.GetGantryRot(header, row);
                state.MU            = XCelRowParser.GetMU(header, row);
                state.Time          = XCelRowParser.GetTime(header, row);
                state.X1            = XCelRowParser.GetX1(header, row);
                state.X2            = XCelRowParser.GetX2(header, row);
                state.Y1            = XCelRowParser.GetY1(header, row);
                state.Y2            = XCelRowParser.GetY2(header, row);
                var excelJob = new ExcelJob(state, index);
                excelJob.Bias         = XCelRowParser.GetBias(header, row);
                excelJob.Notification = XCelRowParser.GetNotification(header, row);
                foreach (var measurement in XCelRowParser.ReadMeasurements(header, row))
                {
                    excelJob.AddMeasurement(measurement);
                }
                excelJob.DepthOfMeasurentMM          = XCelRowParser.GetMeasurementDepth(header, row);
                excelJob.NumberOfMeasurementsDesired = XCelRowParser.GetNMeasurements(header, row);
                jobs.Add(excelJob);
            }
            return(jobs);
        }
示例#4
0
 private Task Set1DScannerState(ExcelJob job)
 {
     return(MoveChamber(job.DepthOfMeasurentMM));
 }