Ejemplo n.º 1
0
 private void SaveDA()
 {
     //sleep 500 ms, then reset configuration
     Thread.Sleep(600);
     DeviceMgr.Action("daoutput", new byte[] { 0x55, 0x64, 0xfc, 0x00, 0x00, 0x00, 0x04 }); //set control
     Thread.Sleep(100);
 }
Ejemplo n.º 2
0
        public void RefreshOutput()
        {
            if (iRange < 0 || iRange > 3) //real res case
            {
                return;
            }

            DeviceMgr.CollectCurrent(out Current);
        }
Ejemplo n.º 3
0
        private bool UpdateCurrentOnly()
        {
            double va;

            if (!DeviceMgr.CollectCurrent(out va))
            {
                return(false);
            }
            Current = va;
            return(true);
        }
Ejemplo n.º 4
0
        public void ZeroON()
        {
            int i = 0;

            while (i++ < 5)
            {
                double va;
                if (CollectVoltage(out va))
                {
                    DeviceMgr.Action("navzero", 0);
                    System.Threading.Thread.Sleep(1000);
                    return;
                }
                System.Threading.Thread.Sleep(1000);
            }
        }
Ejemplo n.º 5
0
 public void RefreshOutput()
 {
     UpdateCurrentOnly();
     if (bOn)
     {
         if (lastsetting != _setting)
         {
             DeviceMgr.SetCurrent(_setting, true);
             lastsetting = _setting;
         }
     }
     else
     {
         lastsetting = -1;
     }
 }
Ejemplo n.º 6
0
        public void ZeroON()
        {
            int i = 0;

            while (i++ < 5)
            {
                double va;
                if (CollectVoltage(out va))
                {
                    if (Math.Abs(va) < 0.00001) // < 10uV
                    {
                        DeviceMgr.Action("navzero", 0);
                    }
                    break;
                }
                System.Threading.Thread.Sleep(1000);
            }
        }
Ejemplo n.º 7
0
 internal void pc_cmd(string cmd)
 {
     Logger.SysLog(cmd);
     if (cmd == "H")
     {
         DeviceMgr.Reset();
         return;
     }
     if (cmd == "resi?")
     {
         if (processor.bOn)
         {
             DeviceMgr.Report("resi: " + led_rx.Value + " on");
         }
         else
         {
             DeviceMgr.Report("resi: " + led_rx.Value + " off");
         };
         return;
     }
     Match m;
     //TODO add command list
 }
Ejemplo n.º 8
0
 public void ZeroON()
 {
     DeviceMgr.SetZero();
 }
Ejemplo n.º 9
0
        internal void pc_cmd(string cmd)
        {
            Logger.SysLog(cmd);
            if (cmd == "*IDN?")
            {
                DeviceMgr.Report("RAYSTING RT" + s_scale + "A");
                return;
            }
            if (cmd == "H")
            {
                DeviceMgr.Reset();
                return;
            }
            if (cmd == "ZERO")
            {
                processor.ZeroON();
                return;
            }
            if (cmd == "curr?")
            {
                if (processor.bOn)
                {
                    DeviceMgr.Report("curr: " + led_current.Value + " on");
                }
                else
                {
                    DeviceMgr.Report("curr: " + led_current.Value + " off");
                }
                return;
            }
            Match m;

            m = resi_set_mode.Match(cmd);
            if (m.Success)
            {
                string  rvalue = m.Groups[1].ToString();
                Decimal a;
                if (!Util.TryDecimalParse(m.Groups[1].ToString(), out a))
                {
                    return;
                }
                if (!IsValidCurrent(a))     //range check
                {
                    return;
                }

                int rng = Int32.Parse(m.Groups[3].ToString());
                if (a > rng)
                {
                    return;
                }
                processor.range   = rng;
                processor.setting = a;
                processor.bOn     = (m.Groups[2].ToString() == "on");
                RefreshDisplay(true);
                cmd = "setting?";
            }
            if (cmd == "setting?")
            {
                if (processor.bOn)
                {
                    DeviceMgr.Report("setting: " + led_setting.Value + " on " + processor.range.ToString());
                }
                else
                {
                    DeviceMgr.Report("setting: " + led_setting.Value + " off " + processor.range.ToString());
                }
                return;
            }
        }
Ejemplo n.º 10
0
        public Form1()
        {
            InitializeComponent();
            //ShowCursor(0);
            processor = new Processor();

            digi_upbtns = new RectButton[] { rbtn_1up, rbtn_2up, rbtn_3up, rbtn_4up, rbtn_5up, rbtn_6up };
            digi_dnbtns = new RectButton[] { rbtn_1dn, rbtn_2dn, rbtn_3dn, rbtn_4dn, rbtn_5dn, rbtn_6dn };
            real_btns   = new RectButton[] { rbtn_real1, rbtn_real2, rbtn_real3, rbtn_real4, rbtn_real5, rbtn_real6, rbtn_real7, rbtn_real8, rbtn_real9, rbtn_real10,
                                             rbtn_real11, rbtn_real12, rbtn_real13, rbtn_real14, rbtn_real15 };
            dlg_choice = new ChoiceWnd();
            dlg_kbd    = new kbdWnd();
            range_btns = new RectButton[] { btn_rangeReal, btn_range0, btn_range1, btn_range2, btn_range3 };
            string[] range_string = new String[] { "实物电阻", "20mΩ", "200mΩ", "2Ω", "20Ω" };
            led_ohm.ColorLight      = Color.Red;
            led_ohm.ColorBackground = this.BackColor;
            led_ohm.ElementWidth    = 6;

            led_current.ColorLight      = Color.DarkGreen;
            led_current.ColorBackground = this.BackColor;
            led_current.ElementWidth    = 6;

            led_current.Value = "0.0000";

            btn_zeroon.BackColor   = this.BackColor;
            btn_zeroon.ForeColor   = Color.Bisque;
            btn_zeroon.Style       = MyButtonType.rectButton;
            btn_zeroon.Text        = "清零";
            btn_zeroon.ValidClick += new EventHandler((o, e) =>
            {
                led_current.Value = "     ";
                processor.ZeroON();
            });

            btn_turnon.BackColor = this.BackColor;
            btn_turnon.colorTop  = Color.Green;
            btn_turnon.Style     = MyButtonType.roundButton;
            btn_turnon.Text      = "OFF";
            btn_turnon.Click    += new EventHandler((o, e) =>
            {
                if (!processor.bOn)
                {
                    dt_lastoutput = DateTime.Now.AddSeconds(2);
                }
                processor.bOn = !processor.bOn;
                RefreshDisplay(false);
            });


            tm          = new Timer();
            tm.Interval = 1000;
            tm.Tick    += new EventHandler((o, e) =>
            {
                lbl_datetime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
                if (DateTime.Now.Subtract(dt_lastoutput).TotalSeconds < 1)
                {
                    dt_lastoutput = DateTime.Now;
                    return;
                }
                processor.RefreshOutput();
                if (processor.Current > -999)
                {
                    UpdateCurrent(processor.Current);
                    processor.Current = -9999;
                }
            });
            tm.Enabled = true;
            tm.Start();
            DeviceMgr.Reset();

            RefreshDisplay(true);
        }
Ejemplo n.º 11
0
 public void Reset()
 {
     DeviceMgr.Reset();
 }
Ejemplo n.º 12
0
        public Form1()
        {
            InitializeComponent();
            //ShowCursor(0);
            processor = new Processor();

            digi_upbtns = new RectButton[] { rbtn_1up, rbtn_2up, rbtn_3up, rbtn_4up, rbtn_5up, rbtn_6up };
            digi_dnbtns = new RectButton[] { rbtn_1dn, rbtn_2dn, rbtn_3dn, rbtn_4dn, rbtn_5dn, rbtn_6dn };
            real_btns   = new RectButton[] { rbtn_real1, rbtn_real2, rbtn_real3, rbtn_real4, rbtn_real5, rbtn_real6, rbtn_real7, rbtn_real8, rbtn_real9, rbtn_real10,
                                             rbtn_real11, rbtn_real12, rbtn_real13, rbtn_real14, rbtn_real15 };
            dlg_choice = new ChoiceWnd();
            dlg_kbd    = new kbdWnd();
            range_btns = new RectButton[] { btn_rangeReal, btn_range0, btn_range1, btn_range2, btn_range3 };
            string[] range_string = new String[] { "实物电阻", "20mΩ", "200mΩ", "2Ω", "20Ω" };
            led_ohm.ColorLight      = Color.Red;
            led_ohm.ColorBackground = this.BackColor;
            led_ohm.ElementWidth    = 12;
            led_ohm.RecreateSegments(led_ohm.ArrayCount);
            led_current.ColorLight      = Color.DarkGreen;
            led_current.ColorBackground = this.BackColor;
            led_current.ElementWidth    = 8;
            led_current.RecreateSegments(led_current.ArrayCount);
            led_current.Value = "0.0000";

            btn_zeroon.bgColor = this.BackColor;
            btn_zeroon.SetStyle(Color.Bisque, MyButtonType.roundRectButton);
            btn_zeroon.Text        = "清零";
            btn_zeroon.ValidClick += new EventHandler((o, e) =>
            {
                led_current.Value = "     ";
                processor.ZeroON();
            });

            btn_turnon.bgColor = this.BackColor;
            for (int i = 0; i < digi_upbtns.Length; i++)
            {
                RectButton rb = digi_upbtns[i];
                rb.bgColor = this.BackColor;
                rb.SetStyle(Color.DarkOrange, MyButtonType.triangleupButton);

                rb.ValidClick += new EventHandler((o, e) =>
                {
                    if (processor.iRange >= 0)
                    {
                        TickDigit(digi_upbtns.Length - NameInArray(o, digi_upbtns), true);
                        RefreshDisplay(false);
                    }
                });
            }
            for (int i = 0; i < digi_dnbtns.Length; i++)
            {
                RectButton rb = digi_dnbtns[i];
                rb.bgColor = this.BackColor;
                rb.SetStyle(Color.DarkOrange, MyButtonType.trianglednButton);
                rb.ValidClick += new EventHandler((o, e) =>
                {
                    if (processor.iRange >= 0)
                    {
                        TickDigit(digi_upbtns.Length - NameInArray(o, digi_dnbtns), false);
                        RefreshDisplay(false);
                    }
                });
            }
            for (int i = 0; i < real_btns.Length; i++)
            {
                RectButton rb = real_btns[i];
                rb.bgColor = this.BackColor;
                rb.SetStyle(Color.DarkOrange, MyButtonType.roundButton);
                rb.Text        = Processor.real_title[i] + "Ω";
                rb.ValidClick += new EventHandler((o, e) =>
                {
                    processor.iReal = NameInArray(o, real_btns);
                    RefreshDisplay(false);
                });
            }
            btn_turnon.SetStyle(Color.Green, MyButtonType.round2Button);
            btn_turnon.Text   = "OFF";
            btn_turnon.Click += new EventHandler((o, e) =>
            {
                if (!processor.bOn)
                {
                    dt_lastoutput = DateTime.Now.AddSeconds(2);
                }
                processor.bOn = !processor.bOn;
                RefreshDisplay(false);
            });

            for (int i = 0; i < range_btns.Length; i++)
            {
                RectButton rb = range_btns[i];
                rb.bgColor = this.BackColor;
                rb.Text    = range_string[i];
                rb.SetStyle(Color.Green, MyButtonType.roundRectButton);

                rb.ValidClick += new EventHandler((o, e) =>
                {
                    int newrange = NameInArray(o, range_btns) - 1;
                    if (newrange == processor.iRange)
                    {
                        return;
                    }

                    processor.iRange = newrange;
                    RefreshDisplay(true);
                });
            }
            tm          = new Timer();
            tm.Interval = 500;
            tm.Tick    += new EventHandler((o, e) =>
            {
                lbl_datetime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
                if (DateTime.Now.Subtract(dt_lastoutput).TotalSeconds < 1)
                {
                    dt_lastoutput = DateTime.Now;
                    return;
                }
                processor.RefreshOutput();
                if (processor.Current > -999)
                {
                    UpdateCurrent(processor.Current);
                    processor.Current = -9999;
                }
            });
            tm.Enabled = true;
            tm.Start();
            led_ohm.Click += new EventHandler(led_ohm_Click);
            DeviceMgr.Reset();

            RefreshDisplay(true);
        }
Ejemplo n.º 13
0
        internal void pc_cmd(string cmd)
        {
            Logger.SysLog(cmd);
            if (cmd == "H")
            {
                DeviceMgr.Reset();
                return;
            }
            if (cmd == "resi?")
            {
                if (processor.bOn)
                {
                    DeviceMgr.Report("resi: " + led_ohm.Value + " on");
                }
                else
                {
                    DeviceMgr.Report("resi: " + led_ohm.Value + " off");
                };
                return;
            }
            if (cmd == "current?")
            {
                DeviceMgr.Report("curr: " + led_current.Value);
                return;
            }
            Match m;

            m = resi_set_mode.Match(cmd);
            if (m.Success)
            {
                string rvalue = m.Groups[1].ToString();
                if (Processor.real_title.Contains(rvalue))
                {
                    int i = 0;
                    for (i = 0; i < Processor.real_title.Length; i++)
                    {
                        if (rvalue == Processor.real_title[i])
                        {
                            break;
                        }
                    }
                    if (i >= Processor.real_title.Length)
                    {
                        return;
                    }

                    processor.iReal  = i;
                    processor.iRange = -1; //real case
                }
                else
                {
                    Decimal a;
                    if (!Util.TryDecimalParse(m.Groups[1].ToString(), out a))
                    {
                        return;
                    }
                    int newrange = Processor.CheckRange(a, -1);
                    if (newrange < 0)
                    {
                        return;
                    }
                    processor.iRange     = newrange;
                    processor.resistance = a;
                }
                processor.bOn = (m.Groups[2].ToString() == "on");
                return;
            }
        }
Ejemplo n.º 14
0
        public Form1()
        {
            InitializeComponent();
            s_scale               = this.label1.Text.Substring(0, this.label1.Text.IndexOf('A'));
            this.BackColor        = Color.LightSkyBlue;
            led_current.ColorDark = this.BackColor;
            led_setting.ColorDark = this.BackColor;
            btn_turnon.BackColor  = this.BackColor;
            rectMeter1.BackColor  = this.BackColor;
            btn_turnon.BackColor  = this.BackColor;
            rectMeter1.BgResId    = "BGMETER";
            //ShowCursor(0);
            processor = new Processor();
            data      = new StringBuilder(10);
            kbd_btns  = new RectButton[] { lbButton0, lbButton1, lbButton2, lbButton3, lbButton4, lbButton5, lbButton6, lbButton7, lbButton8, lbButton9,
                                           lbButtonCancel, lbButtonOK, lbButtonPT, lbButtonPercent };
            string[] btn_cap = "0,1,2,3,4,5,6,7,8,9,取消,确定,.,%".Split(new char[] { ',' });
            for (int i = 0; i < kbd_btns.Length; i++)
            {
                RectButton lbt = kbd_btns[i];
                lbt.BackColor   = Color.Transparent;
                lbt.colorTop    = Color.LightPink;
                lbt.colorShadow = Color.DarkGray;
                lbt.Label       = btn_cap[i];
                lbt.Style       = MyButtonType.raiseButton;
                lbt.Click      += new EventHandler((o, e) =>
                {
                    KeypadTick(NameInArray(o, kbd_btns));
                });
            }
            #region (NO USE) digi up and down

            /*
             * digi_upbtns = new RectButton[] { rbtn_1up, rbtn_2up, rbtn_3up, rbtn_4up, rbtn_5up, rbtn_6up  };
             * digi_dnbtns = new RectButton[] { rbtn_1dn, rbtn_2dn, rbtn_3dn, rbtn_4dn, rbtn_5dn, rbtn_6dn  };
             * for (int i = 0; i < digi_upbtns.Length; i++)
             * {
             *  RectButton rb = digi_upbtns[i];
             *  rb.bgColor = this.BackColor;
             *  rb.SetStyle(Color.DarkOrange, MyButtonType.triangleupButton);
             *
             *  rb.ValidClick += new EventHandler((o, e) =>
             *  {
             *      if (processor.iRange >= 0)
             *      {
             *          TickDigit(digi_upbtns.Length - NameInArray(o, digi_upbtns), true);
             *          RefreshDisplay(false);
             *      }
             *  });
             * }
             * for (int i = 0; i < digi_dnbtns.Length; i++)
             * {
             *  RectButton rb = digi_dnbtns[i];
             *  rb.bgColor = this.BackColor;
             *  rb.SetStyle(Color.DarkOrange, MyButtonType.trianglednButton);
             *  rb.ValidClick += new EventHandler((o, e) =>
             *  {
             *      if (processor.iRange >= 0)
             *      {
             *          TickDigit(digi_upbtns.Length - NameInArray(o, digi_dnbtns), false);
             *          RefreshDisplay(false);
             *      }
             *  });
             * }
             * */
            #endregion

            dlg_choice                  = new ChoiceWnd();
            dlg_kbd                     = new kbdWnd();
            led_setting.ColorLight      = Color.Red;
            led_setting.ColorBackground = this.BackColor;
            led_setting.ElementWidth    = 12;
//            led_setting.RecreateSegments(led_setting.ArrayCount);
            led_current.ColorLight      = Color.DarkGreen;
            led_current.ColorBackground = this.BackColor;
            led_current.ElementWidth    = 10;
//          led_current.RecreateSegments(led_current.ArrayCount);
            led_current.Value      = "0.0000";
            btn_zeroon.Style       = MyButtonType.rectButton;
            btn_zeroon.colorShadow = this.BackColor;
            btn_zeroon.colorTop    = Color.Bisque;
            btn_zeroon.Label       = "电流表清零";
            btn_zeroon.ValidClick += new EventHandler((o, e) =>
            {
                led_current.Value = "     ";
                processor.ZeroON();
            });

            //btn_turnon.bgColor = this.BackColor;
            //btn_turnon.SetStyle(Color.Green, MyButtonType.round2Button);
            btn_turnon.Label  = "OFF";
            btn_turnon.Click += new EventHandler((o, e) =>
            {
                if (!processor.bOn)
                {
                    dt_lastoutput = DateTime.Now.AddSeconds(0.5);
                }
                processor.bOn = !processor.bOn;
                RefreshDisplay(false);
            });

            tm          = new Timer();
            tm.Interval = 1000;
            tm.Tick    += new EventHandler((o, e) =>
            {
                lbl_datetime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");

                /*
                 * if (DateTime.Now.Subtract(dt_lastoutput).TotalSeconds < 1)
                 * {
                 *  dt_lastoutput = DateTime.Now;
                 *  return;
                 * }*/
                if (data.Length == 0)
                {
                    processor.RefreshOutput();
                    if (processor.Current > -999)
                    {
                        UpdateCurrent(processor.Current);
                        processor.Current = -9999;
                    }
                }
            });
            tm.Enabled = true;
            tm.Start();
            DeviceMgr.Reset();

            RefreshDisplay(true);
        }
Ejemplo n.º 15
0
        internal void pc_cmd(string cmd)
        {
            Logger.SysLog(cmd);
            if (cmd == "resi?")
            {
                if (processor.bOn)
                {
                    DeviceMgr.Report("resi: " + processor.resistance.ToString() + " on");
                }
                else
                {
                    DeviceMgr.Report("resi: " + processor.resistance.ToString() + " off");
                };
                return;
            }
            if (cmd == "current?")
            {
                DeviceMgr.Report("curr: " + led_current.Value);
                return;
            }
            if (cmd == "ZERO")
            {
                Program.mainwnd.processor.ZeroON();
            }
            if (cmd == "H")
            {
                DeviceMgr.Reset();
            }
            Match m;

            m = resi_set_mode.Match(cmd);
            if (m.Success)
            {
                string rvalue   = m.Groups[1].ToString();
                int    newrange = Int32.Parse(m.Groups[3].ToString());
                if (newrange < -1 || newrange > 3)
                {
                    return;
                }

                if (newrange == -1)
                {
                    int i = 0;
                    for (i = 0; i < Processor.real_title.Length; i++)
                    {
                        if (rvalue == Processor.real_title[i])
                        {
                            break;
                        }
                    }
                    if (i >= Processor.real_title.Length)
                    {
                        return;
                    }
                    processor.iRange = -1;
                    processor.iReal  = i;
                }
                else
                {
                    Decimal a;
                    if (!Util.TryDecimalParse(m.Groups[1].ToString(), out a))
                    {
                        return;
                    }
                    processor.iRange     = newrange;
                    processor.resistance = a;
                }
                processor.bOn = (m.Groups[2].ToString() == "on");
            }
            RefreshDisplay(true);
        }
Ejemplo n.º 16
0
        public Form1()
        {
            DisablePowerSleep();
            InitializeComponent();
            label5.Text = "VERSION: 2014-09-27";
            //if(!(myBeep is Beep))
            myBeep = new Beep("PWM1:");
//          myBeep = new Beep("PWM4:");
            btn_capture.Click += new EventHandler(btn_capture_Click);
            string mypath = Path.Combine(GlobalConfig.udiskdir2, "screen");

            if (Directory.Exists(mypath))
            {
                btn_capture.Visible = true;
            }
            Cursor.Hide();
            processor = new Processor();

            dlg_choice    = new ChoiceWnd();
            dlg_kbd       = new kbdWnd();
            led_rx.Value  = "0.000000";
            led_rx.Click += new EventHandler((o, e) => {
                DoBeep();
                dlg_choice.bNo0Choice = true;
                dlg_choice.param      = "selectrx";
                dlg_choice.Init(StringResource.str("selectrx"), Processor._RxTitles, -1, null, new KbdDataHandler(KbdData));
            });

            led_rx.ColorLight      = Color.Pink;
            led_rx.ColorDark       = this.BackColor;
            led_rx.ColorBackground = this.BackColor;
            led_rx.ElementWidth    = 12;
            led_rx.RecreateSegments(led_rx.ArrayCount);

            led_rs.ColorLight      = Color.Black;
            led_rs.ColorDark       = this.BackColor;
            led_rs.ColorBackground = this.BackColor;
            led_rs.ElementWidth    = 10;
            led_rs.RecreateSegments(led_rs.ArrayCount);
            led_rs.Click += new EventHandler((o, e) =>
            {
                DoBeep();
                dlg_kbd.Init(String.Format(StringResource.str("inputrs"), Processor._RsTitles[processor.RsIndex]), "inputrs", false, new KbdDataHandler(KbdData));
            });

            led_vx.ColorLight      = Color.Black;
            led_vx.ColorDark       = this.BackColor;
            led_vx.ColorBackground = this.BackColor;
            led_vx.ElementWidth    = 10;
            led_vx.RecreateSegments(led_vx.ArrayCount);
            led_vx.Value  = "0.000";
            led_vx.Click += new EventHandler((o, e) =>
            {
                DoBeep();
                dlg_choice.bNo0Choice = true;
                dlg_choice.param      = "selectvx";
                dlg_choice.Init(StringResource.str("selectvx"), Processor._MulTitles, -1, null, new KbdDataHandler(KbdData));
            });


            led_es.ColorLight      = Color.Black;
            led_es.ColorDark       = this.BackColor;
            led_es.ColorBackground = this.BackColor;
            led_es.ElementWidth    = 10;
            led_es.RecreateSegments(led_es.ArrayCount);
            led_es.Click += new EventHandler((o, e) =>
            {
                DoBeep();
                dlg_choice.bNo0Choice = true;
                dlg_choice.param      = "selectes";
                dlg_choice.Init(StringResource.str("selectes"), Processor._EsTitles, -1, null, new KbdDataHandler(KbdData));
            });

            btn_hvout.BackColor   = this.BackColor;
            btn_hvout.colorTop    = Color.LightYellow;
            btn_hvout.Style       = MyButtonType.rectButton;
            btn_hvout.Label       = StringResource.str("hvout");
            btn_hvout.ValidClick += new EventHandler((o, e) =>
            {
                DoBeep();
                if (!processor.bDirectOutputOn)
                {
                    this.Invoke(new Action(() =>
                    {
                        dlg_choice.bNo0Choice = true;
                        dlg_choice.param      = "selecthvport";
                        dlg_choice.Init(StringResource.str("selecthvport"), new string[] { "10 - 100V  端子输出", "100 - 1kV  端子输出", "500 - 5kV  端子输出", "1k - 10kV 端子输出" }, -1, null, new KbdDataHandler(KbdData));
                    }));
                }
                else
                {
                    processor.DirectOutputClose();
                    RefreshDisplay(true);
                }
                return;
            });


            btn_zeroon.BackColor = this.BackColor;
            btn_zeroon.colorTop  = Color.Bisque;
            btn_zeroon.Style     = MyButtonType.rectButton;
            btn_zeroon.Label     = StringResource.str("vxzero");

            btn_zeroon.ValidClick += new EventHandler((o, e) =>
            {
                DoBeep();
                processor.ZeroON2();
                if (btn_zeroon.colorTop != Color.LightSlateGray)
                {
                    btn_zeroon.colorTop = Color.LightSlateGray;
                }
                else
                {
                    btn_zeroon.colorTop = Color.Bisque;
                }
            });

            btn_zeroon2.BackColor = this.BackColor;
            btn_zeroon2.colorTop  = Color.Bisque;
            btn_zeroon2.Style     = MyButtonType.rectButton;
            btn_zeroon2.Label     = StringResource.str("vgzero");

            btn_zeroon2.ValidClick += new EventHandler((o, e) =>
            {
                DoBeep();
                processor.ZeroON();
                if (btn_zeroon2.colorTop != Color.LightSlateGray)
                {
                    btn_zeroon2.colorTop = Color.LightSlateGray;
                }
                else
                {
                    btn_zeroon2.colorTop = Color.Bisque;
                }
            });


            btn_turnon.BackColor = this.BackColor;
            btn_turnon.colorTop  = Color.Green;
            btn_turnon.Style     = MyButtonType.roundButton;
            btn_turnon.Text      = "OFF";
            btn_turnon.Click    += new EventHandler((o, e) =>
            {
                DoBeep();
                if (!processor.bOn)
                {
                    dt_lastoutput = DateTime.Now.AddSeconds(2);
                }
                processor.bOn = !processor.bOn;
                RefreshDisplay(true);
            });

            rectMeter1.BgResId = "BGMETER";
            DeviceMgr.Reset();
            processor.ToDAValue(0);

            tm          = new Timer();
            tm.Interval = 500;
            tm.Tick    += new EventHandler((o, e) =>
            {
                //lbl_datetime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
                if (DateTime.Now.Subtract(dt_lastoutput).TotalSeconds < 1)
                {
                    return;
                }
                dt_lastoutput = DateTime.Now;
                if (processor.bDirectOutputOn)
                {
                    DateTime.Now.AddSeconds(processor.RefreshDirectOutput());
                    string newv = processor.VxMeasure.ToString("F7").Substring(0, 6);
                    if (led_vx.Value != newv)
                    {
                        led_vx.Value     = newv;
                        rectMeter1.Angle = processor.Percent;
                    }
                    if (processor.bDirectStable)
                    {
                        if (led_vx.ColorLight != Color.Red)
                        {
                            led_vx.ColorLight = Color.Red;
                        }
                    }
                    else
                    {
                        if (led_vx.ColorLight != Color.Orange)
                        {
                            led_vx.ColorLight = Color.Orange;
                        }
                    }
                }
                else if (processor.bOn)
                {
                    dt_lastoutput = DateTime.Now.AddSeconds(processor.RefreshOutput());
                    double v      = Convert.ToDouble(processor.Rx);
                    string newv;
                    newv = Util.GMKFormat(ref v);
                    if (lbl_ohm.Text != newv)
                    {
                        lbl_ohm.Text = newv;
                    }

                    newv = v.ToString("F8").Substring(0, 7);
                    if (led_rx.Value != newv)
                    {
                        led_rx.Value = newv;
                    }
                    this.lbl_datetime.Text = processor.Vg.ToString() + "," + processor.Vx.ToString();
                    if (processor.bStable)
                    {
                        if (led_rx.ColorLight != Color.Red)
                        {
                            led_rx.ColorLight = Color.Red;
                        }
                    }
                    else
                    {
                        if (led_rx.ColorLight != Color.Pink)
                        {
                            led_rx.ColorLight = Color.Pink;
                        }
                    }


                    newv = processor.VxMeasure.ToString("F7").Substring(0, 6);
                    if (led_vx.Value != newv)
                    {
                        led_vx.Value     = newv;
                        rectMeter1.Angle = processor.Percent;
                    }
                }
            });
            tm.Enabled = true;
            DeviceMgr.Reset();

            RefreshDisplay(true);
        }
Ejemplo n.º 17
0
        private bool ToDAValue(double voltage)
        {
            // Vout = (Vrefp-Vrefn)*D/(2^20-1)+Vrefn =>  D= (Vout-Vrefn)*(2^20-1)/(Vrefp-Vrefn)
            // when BUF is enabled , Vrefp = 10V;  Vrefn = -10V; D = (Vout+10)*(2^20-1)/(20)
            // D = Vout*(2^20-1)/10;
            byte[] tosend  = new Byte[] { 0x55, 0x64, 0xff, 0x00, 0x00, 0x00, 0x01 };
            byte[] tosend2 = new Byte[] { 0x55, 0x64, 0x55, 0xff, 0x00, 0x00, 0x00, 0x01 };//special case for 0x55 leading value

            bool changed = false;

            double volt = voltage - Convert.ToDouble(daoffset);

            if (Math.Abs(volt) > 2.5) //turn off output or invalid adreading
            {
                return(false);
            }


            Int32 d = Convert.ToInt32(Math.Round((volt + 10) * (1048576 - 1) / 20.0));

            tosend[5]  = Convert.ToByte(d % 256); d = d / 256;
            tosend2[6] = tosend[5];
            if (tosend[5] != lasttosend[5])
            {
                lasttosend[5] = tosend[5];
                changed       = true;
            }
            tosend[4]  = Convert.ToByte(d % 256);
            tosend2[5] = tosend[4];
            d          = d / 256;
            if (tosend[4] != lasttosend[4])
            {
                lasttosend[4] = tosend[4];
                changed       = true;
            }
            tosend[3]  = Convert.ToByte(d % 256);
            tosend2[4] = tosend[3];
            if (tosend[3] != lasttosend[3])
            {
                lasttosend[3] = tosend[3];
                changed       = true;
            }
            tosend[2]  = Convert.ToByte((256 * 3 - 1 - Convert.ToInt32(tosend[3] + tosend[4] + tosend[5])) % 256);
            tosend2[3] = tosend[2];
            if (changed)
            {
                if (tosend[2] == 0x55)
                {
                    DeviceMgr.Action("daoutput", tosend2);
                }
                else
                {
                    DeviceMgr.Action("daoutput", tosend);
                }
                return(DeviceMgr.success);
            }
            else
            {
                return(true);
            }
        }
Ejemplo n.º 18
0
        private bool CollectVoltage(out double reading)
        {
            int badcount = 0; //count of bad communication

            reading = 0;

            while (badcount < 3)
            {
                DeviceMgr.Action("navread", 0);
                if (DeviceMgr.reading < -999)
                {
                    if (DeviceMgr.nav_range != "navto1v")
                    {
                        badcount++;
                        if (badcount < 3)
                        {
                            Thread.Sleep(500);
                            continue;
                        }
                        badcount = 0;
                        DeviceMgr.Action("navto1v", "");
                        Thread.Sleep(3000);
                        continue;
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                }
                //disable range change
                if (false && (DeviceMgr.nav_range == "navto1v") && (Math.Abs(DeviceMgr.reading) < 0.1) && bOn)
                {
                    badcount++;
                    if (badcount < 3)
                    {
                        Thread.Sleep(500);
                        continue;
                    }

                    badcount = 0;
                    DeviceMgr.Action("navto120mv", "");
                    Thread.Sleep(3000);
                    continue;
                }
                if (DeviceMgr.nav_range == "navto120mv")
                {
                    datafilter.Enqueue(DeviceMgr.reading / 1000);
                }
                else
                {
                    datafilter.Enqueue(DeviceMgr.reading);
                }
                if (datafilter.Count < 5)
                {
                    continue;
                }
                double sqr;
                sqr = GetSqrt3(10);
                datafilter.Dequeue();
                if ((DeviceMgr.nav_range == "navto120mv") && (sqr > 0.05)) //1mV
                {
                    badcount++;
                    continue;
                }
                if ((DeviceMgr.nav_range == "navto1v") && (sqr > 0.05)) //10mv
                {
                    badcount++;
                    continue;
                }
                badcount = 0;
                reading  = datafilter.Skip(2).Take(2).Average();
                return(true);
            }
            return(false);
        }