コード例 #1
0
        //Calibration in general
        public void SetCalibration(CalibrationItem item)
        {
            Calibration cal;
            UsbCommand  cmd = new UsbCommand(0xFF);

            //Get calibration object
            switch ((byte)item & 0xF0)
            {
            case 0x00:
                cal = this.InputVoltageCalibration;
                break;

            case 0x10:
                cal = this.OutputVoltageCalibration;
                break;

            case 0x20:
                cal = this.InputCurrentCalibration;
                break;

            case 0x30:
                cal = this.OutputCurrentCalibration;
                break;

            case 0x40:
                cal = this.OnboardTemperatureCalibration;
                break;

            case 0x50:
                cal = this.ExternalTemperature1Calibration;
                break;

            case 0x60:
                cal = this.ExternalTemperature2Calibration;
                break;

            default:
                cal = this.InputVoltageCalibration;
                break;
            }
            //Assemble command
            switch ((byte)item & 0x0F)
            {
            case 0x00:
                byte[] offset = BitConverter.GetBytes(cal.Offset);
                cmd = new UsbCommand(0x60, (byte)item, offset[1], offset[0], 0x00);
                break;

            case 0x01:
                byte[] multiplier = BitConverter.GetBytes(cal.Multiplier);
                cmd = new UsbCommand(0x60, (byte)item, multiplier[1], multiplier[0], cal.Shift);
                break;
            }
            //Add command to cue
            PendingCommands.Add(cmd);
        }
コード例 #2
0
        public CalibrationItem[] GetCalibrations()
        {
            List <Calibration>     calibrations = _DataAccessAgent.GetAllCalibrations();
            List <CalibrationItem> items        = new List <CalibrationItem>();

            foreach (Calibration item in calibrations)
            {
                CalibrationItem ci = new CalibrationItem();

                ci.CalibrationTime = item.CalibrationTime.ToString();
                ci.Comments        = item.Comments;
                ci.Username        = item.Username;
                ci.Workstation     = item.Workstation;
                items.Add(ci);
            }

            return(items.ToArray());
        }
コード例 #3
0
ファイル: Main.cs プロジェクト: kingofcrabs/Biobanking
        private void btnSave_Click(object sender, EventArgs e)
        {
            var sFolder = Utility.GetExeFolder();
            var sFile   = sFolder + stringRes.calibFileName;

            calibItems = new List <CalibrationItem>();
            foreach (ListViewItem itm in lvCalibration.Items)
            {
                int             volume    = int.Parse(itm.SubItems[0].Text);
                double          height    = Math.Round(double.Parse(itm.SubItems[1].Text), 2);
                CalibrationItem calibItem = new CalibrationItem(height, volume);
                calibItems.Add(calibItem);
            }
            CalibrationItems items = new CalibrationItems(calibItems);

            Utility.SaveSettings(items, sFile);
            SetInfo("保存成功!", false);
        }
コード例 #4
0
        private void GetTipVolumeAndHegiht(double v, ref int tipVol, ref double height)
        {
            double          maxV   = calibItems.Max(x => x.volumeUL);
            double          minV   = calibItems.Min(x => x.volumeUL);
            CalibrationItem higher = calibItems.Last();
            CalibrationItem lower  = calibItems.First();

            if (v < maxV)//find first higher
            {
                for (int i = 1; i < calibItems.Count; i++)
                {
                    if (v < calibItems[i].volumeUL)
                    {
                        higher = calibItems[i];
                        lower  = calibItems[i - 1];
                        break;
                    }
                }
            }
            else
            {
                higher = calibItems.Last();
                lower  = calibItems[calibItems.Count - 2];
            }
            double vDiff = higher.volumeUL - lower.volumeUL;
            //double tipVDiff = higher.tipVolume - lower.tipVolume;
            double hDiff   = higher.height - lower.height;
            double hvRatio = hDiff / vDiff;
            //double tipVVRatio = tipVDiff / vDiff;
            double currentVDiff = v - lower.volumeUL;
            double heightOffset = currentVDiff * hvRatio;

            //double tipVOffset = currentVDiff * tipVVRatio;
            height = heightOffset + lower.height;
            //tipVol = (int)(tipVOffset + lower.tipVolume);
        }
コード例 #5
0
        private void GetVolumeAndTipVolume(double height, ref int volume, ref int tipVolume)
        {
            double          maxH   = calibItems.Max(x => x.height);
            double          minH   = calibItems.Min(x => x.height);
            CalibrationItem higher = calibItems.Last();
            CalibrationItem lower  = calibItems.First();

            if (height < maxH)//find first higher
            {
                for (int i = 1; i < calibItems.Count; i++)
                {
                    if (height < calibItems[i].height)
                    {
                        higher = calibItems[i];
                        lower  = calibItems[i - 1];
                        break;
                    }
                }
            }
            else
            {
                higher = calibItems.Last();
                lower  = calibItems[calibItems.Count - 2];
            }
            double vDiff = higher.volumeUL - lower.volumeUL;
            //double tipVDiff = higher.tipVolume - lower.tipVolume;
            double hDiff   = higher.height - lower.height;
            double vhRatio = vDiff / hDiff;
            //double tipVhRatio = tipVDiff / hDiff;
            double currentDiff  = height - lower.height;
            double volumeOffset = currentDiff * vhRatio;

            //int tipVOffset = (int)(currentDiff * tipVhRatio);
            volume = lower.volumeUL + (int)volumeOffset;
            //tipVolume = lower.tipVolume + tipVOffset;
        }
コード例 #6
0
        public void AddCalibration(CalibrationItem item)
        {
            Calibration calibration = new Calibration(DateTime.Parse(item.CalibrationTime), item.Username, item.Workstation, item.Comments);

            _DataAccessAgent.AddCalibration(calibration);
        }
コード例 #7
0
        public void AddCalibration(string authenticationCookie, CalibrationItem calibration)
        {
            ServiceUtils.Authorize(authenticationCookie, null);

            _MonitorCalibration.AddCalibration(calibration);
        }
コード例 #8
0
        public void AddCalibration(string authenticationCookie, CalibrationItem calibration)
        {
            AuthHandler.Authorize(authenticationCookie, null);

            _MonitorCalibration.AddCalibration(calibration);
        }