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); } }
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}"); } }
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; } }
public ACAttr(bool p, int temp, ACPower l) { power = p; this.temp = temp; level = l; }
public ACAttr(ACAttr prev, bool p) { temp = prev.temp; level = prev.level; power = p; }
//读入参数 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; } }