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(); })); }
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); }
private Task Set1DScannerState(ExcelJob job) { return(MoveChamber(job.DepthOfMeasurentMM)); }