Exemple #1
0
 public static bool SendAC(int temp, bool power, ACPower level)
 {
     try
     {
         Debug.WriteLine((power ? 50 : 0) + temp);
         SerialPort port = new SerialPort(GetACSerialName(), 9600);
         port.Open();
         char[] c = { (char)((power ? 50 : 0) + temp), (char)level };
         port.Write(c, 0, 2);
         //Debug.WriteLine(port.ReadByte());
         port.Close();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
Exemple #2
0
 public void Execute(Message message, string onoff, int temp, ACPower level)
 {
     if (onoff.Equals("on") || onoff.Equals("off"))
     {
         LastUsedAttr = new ACAttr(onoff.Equals("on"), temp, level);
         if (ACManager.SendAC(LastUsedAttr.temp, LastUsedAttr.power, LastUsedAttr.level))
         {
             message.Reply("Transmitted!");
         }
         else
         {
             message.Reply("An error occurred while transmitting!");
         }
     }
     else
     {
         message.Reply("Usage: /ac [on/off] {temp} {low/med/high/auto/turbo}");
     }
 }
Exemple #3
0
        private void NewElecCompFromListIndex(int Index)
        {
            switch (Index)
            {
            case 0:
                Resistance r = new Resistance();
                elecCompSet.AddCompAndShow(r, Mycanvas);
                r.Move(100, 100);
                break;

            case 1:
                Capacity c = new Capacity();
                elecCompSet.AddCompAndShow(c, Mycanvas);
                c.Move(100, 100);
                break;

            case 2:
                Wire w = new Wire();
                elecCompSet.AddCompAndShow(w, Mycanvas);
                w.Move(100, 100);
                break;

            case 3:
                Inductance i = new Inductance();
                elecCompSet.AddCompAndShow(i, Mycanvas);
                i.Move(100, 100);
                break;

            case 4:
                OhmMeter o = new OhmMeter();
                elecCompSet.AddCompAndShow(o, Mycanvas);
                o.Move(100, 100);
                break;

            case 5:
                VoltMeter ee = new VoltMeter();
                elecCompSet.AddCompAndShow(ee, Mycanvas);
                ee.Move(100, 100);
                break;

            case 6:
                ElecGround eg = new ElecGround();
                elecCompSet.AddCompAndShow(eg, Mycanvas);
                eg.Move(100, 100);
                break;

            case 7:
                oscilloscopeData myOscilloscopeData = new
                                                      oscilloscopeData(Brushes.Red, oscilloscopeData.Volt_Index,
                                                                       myOscilloscope.m_SyncContext);
                Probe pb = new Probe(Brushes.Red, myOscilloscopeData);
                if (!myOscilloscope.IsVisible)
                {
                    myOscilloscope.Show();
                }
                myOscilloscope.AddData(myOscilloscopeData);
                myOscilloscope.SyncSettings();
                elecCompSet.AddCompAndShow(pb, Mycanvas);
                pb.Move(100, 100);
                break;

            case 8:
                myOscilloscopeData = new
                                     oscilloscopeData(Brushes.Blue, oscilloscopeData.Volt_Index,
                                                      myOscilloscope.m_SyncContext);
                pb = new Probe(Brushes.Blue, myOscilloscopeData);
                if (!myOscilloscope.IsVisible)
                {
                    myOscilloscope.Show();
                }
                myOscilloscope.AddData(myOscilloscopeData);
                myOscilloscope.SyncSettings();
                elecCompSet.AddCompAndShow(pb, Mycanvas);
                pb.Move(100, 100);
                break;

            case 9:
                Power p = new Power();
                elecCompSet.AddCompAndShow(p, Mycanvas);
                p.Move(100, 100);
                break;

            case 10:
                ACPower ap = new ACPower(0, 0.1, 10);
                elecCompSet.AddCompAndShow(ap, Mycanvas);
                ap.Move(100, 100);
                break;
            }
        }
Exemple #4
0
 public ACAttr(bool p, int temp, ACPower l)
 {
     power     = p;
     this.temp = temp;
     level     = l;
 }
Exemple #5
0
 public ACAttr(ACAttr prev, bool p)
 {
     temp  = prev.temp;
     level = prev.level;
     power = p;
 }
Exemple #6
0
        //读入参数
        private void EndInput()
        {
            //MessageBox.Show(textBox1.Text);
            switch (elecComp.Comp)
            {
            case ElecComp.Comp_Resistance:
                double R;
                if (IsNumeric(textBox1.Text, out R))
                {
                    Resistance resistance = (Resistance)elecComp;
                    resistance.R = R;
                    ReleaseChooses();
                }
                else
                {
                    MessageBox.Show("输入不是数字");
                }
                break;

            case ElecComp.Comp_Capacity:
                double C;
                if (IsNumeric(textBox1.Text, out C))
                {
                    Capacity capacity = (Capacity)elecComp;
                    capacity.C = C;
                    ReleaseChooses();
                }
                else
                {
                    MessageBox.Show("输入不是数字");
                }
                break;

            case ElecComp.Comp_Inductance:
                double L;
                if (IsNumeric(textBox1.Text, out L))
                {
                    Inductance inductance = (Inductance)elecComp;
                    inductance.L = L;
                    ReleaseChooses();
                }
                else
                {
                    MessageBox.Show("输入不是数字");
                }
                break;

            case ElecComp.Comp_Power:
                double V;
                if (IsNumeric(textBox1.Text, out V))
                {
                    Power power = (Power)elecComp;
                    power.voltage = V;
                    ReleaseChooses();
                }
                else
                {
                    MessageBox.Show("输入不是数字");
                }
                break;

            case ElecComp.Comp_ACPower:
                double Vpp;
                double fre;
                if (IsNumeric(textBox1.Text, out Vpp))
                {
                    ACPower acpower = (ACPower)elecComp;
                    acpower.pp_value = Vpp;
                }
                else
                {
                    MessageBox.Show("输入不是数字");
                }
                if (IsNumeric(textBox2.Text, out fre))
                {
                    ACPower acpower = (ACPower)elecComp;
                    acpower.frequency = fre;
                    ReleaseChooses();
                }
                else
                {
                    MessageBox.Show("输入不是数字");
                }
                //@d这里只写了调整频率和幅值,建议加一个选择的组件选择波形
                break;

            default:
                break;
            }
        }