using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; using Tps_LQ_Transmitter.com; using System.Threading; using System.Text.RegularExpressions; namespace Tps_LQ_Transmitter { /// /// 调试界面 /// public partial class DebuggingForm : Form { DioControlClass dio = new DioControlClass(); PcGpio gpio = new PcGpio(); RainwormPower power = new RainwormPower(); PcmControl pcm = new PcmControl(); ThreadStart SeriesPortChildref = null; Thread SeriesPortChildThread = null; public DebuggingForm() { InitializeComponent(); gpio.InitSetOut(); Thread.Sleep(100); gpio.SwitchControl(0); for (int i = 1; i <= 8; i++) { dio.SupplySwitch(i, DioControlClass.State.OFF);//将所有供电开关关闭 } power.powerOnoff(RainwormPower.State.OFF); SeriesPortThread(); } public void SeriesPortThread() { SeriesPortChildref = new ThreadStart(Displaywhile); SeriesPortChildThread = new Thread(SeriesPortChildref); SeriesPortChildThread.Start(); } private void DebuggingForm_FormClosed(object sender, FormClosedEventArgs e) { dio.portClose(); power.portClose(); pcm.portClose(); } string tamp=""; public void Displaywhile() { string st; while (true) { st = BytesToHexString(pcm.OnlyRead()); if (st != "" && st != tamp) { tamp = st; } } } #region 8路供电开关控制(+28V)代码 private void btnPowCh_1_Click(object sender, EventArgs e) { if (led1.Value == false) { dio.SupplySwitch(1, DioControlClass.State.ON); } else { dio.SupplySwitch(1, DioControlClass.State.OFF); } led1.Value = !led1.Value; } private void btnPowCh_2_Click(object sender, EventArgs e) { if (led2.Value == false) { dio.SupplySwitch(2, DioControlClass.State.ON); } else { dio.SupplySwitch(2, DioControlClass.State.OFF); } led2.Value = !led2.Value; } private void btnPowCh_3_Click(object sender, EventArgs e) { if (led3.Value == false) { dio.SupplySwitch(3, DioControlClass.State.ON); } else { dio.SupplySwitch(3, DioControlClass.State.OFF); } led3.Value = !led3.Value; } private void btnPowCh_4_Click(object sender, EventArgs e) { if (led4.Value == false) { dio.SupplySwitch(4, DioControlClass.State.ON); } else { dio.SupplySwitch(4, DioControlClass.State.OFF); } led4.Value = !led4.Value; } private void btnPowCh_5_Click(object sender, EventArgs e) { if (led5.Value == false) { dio.SupplySwitch(5, DioControlClass.State.ON); } else { dio.SupplySwitch(5, DioControlClass.State.OFF); } led5.Value = !led5.Value; } private void btnPowCh_6_Click(object sender, EventArgs e) { if (led6.Value == false) { dio.SupplySwitch(6, DioControlClass.State.ON); } else { dio.SupplySwitch(6, DioControlClass.State.OFF); } led6.Value = !led6.Value; } private void btnPowCh_7_Click(object sender, EventArgs e) { if (led7.Value == false) { dio.SupplySwitch(7, DioControlClass.State.ON); } else { dio.SupplySwitch(7, DioControlClass.State.OFF); } led7.Value = !led7.Value; } private void btnPowCh_8_Click(object sender, EventArgs e) { if (led8.Value == false) { dio.SupplySwitch(8, DioControlClass.State.ON); } else { dio.SupplySwitch(8, DioControlClass.State.OFF); } led8.Value = !led8.Value; } #endregion /// /// byte[]数据转字符串输出 /// /// byte[]数据 /// 字符串 public string BytesToHexString(byte[] data) { if (data == null) return ""; StringBuilder sb = new StringBuilder(100); for (int i = 0; i < data.Length; i++) { sb.Append("0x" + data[i].ToString("X2") + " "); } return sb.ToString(); } #region JSY电压电流模拟量采集模块读取代码 /// /// 点击"读取"按钮执行模拟量(电压、电流)采集 /// /// /// private void btnOther_Click(object sender, EventArgs e) { double[] dblv = new double[8]; double[] dblc = new double[8]; double[] dblp = new double[8]; string st=""; dblv = dio.ReadAllVolt(); dblc = dio.ReadAllCurr(); dblp = dio.ReadAllPower(); txtbVoltCh_1.Text = dblv[0].ToString(); txtbCurrCh_1.Text = dblc[0].ToString(); txtbVoltCh_2.Text = dblv[1].ToString(); txtbCurrCh_2.Text = dblc[1].ToString(); txtbVoltCh_3.Text = dblv[2].ToString(); txtbCurrCh_3.Text = dblc[2].ToString(); txtbVoltCh_4.Text = dblv[3].ToString(); txtbCurrCh_4.Text = dblc[3].ToString(); txtbVoltCh_5.Text = dblv[4].ToString(); txtbCurrCh_5.Text = dblc[4].ToString(); txtbVoltCh_6.Text = dblv[5].ToString(); txtbCurrCh_6.Text = dblc[5].ToString(); txtbVoltCh_7.Text = dblv[6].ToString(); txtbCurrCh_7.Text = dblc[6].ToString(); txtbVoltCh_8.Text = dblv[7].ToString(); txtbCurrCh_8.Text = dblc[7].ToString(); for (int i = 0; i < 8; i++) { st += dblp[0].ToString()+";"; } txtbMsg.Text ="供电功率:"+ st; } #endregion #region 射频开关2控制(一分二)代码[衰减器/陷波器] //此处是切换衰减器与陷波器的一分二开关控制代码[off为衰减器/ON为陷波器] private void chkAyCh_1_CheckedChanged(object sender, EventArgs e) { if (chkAyCh_1.Checked== true) { //chkAyCh_1.Checked = true; chkAyCh_2.Checked = false; chkAyCh_3.Checked = false; chkAyCh_4.Checked = false; chkAyCh_5.Checked = false; chkAyCh_6.Checked = false; chkAyCh_7.Checked = false; chkAyCh_8.Checked = false; gpio.SwitchControl(1); } else { gpio.SwitchControl(0); } } private void chkAyCh_2_CheckedChanged(object sender, EventArgs e) { if (chkAyCh_2.Checked == true) { chkAyCh_1.Checked = false; //chkAyCh_2.Checked = false; chkAyCh_3.Checked = false; chkAyCh_4.Checked = false; chkAyCh_5.Checked = false; chkAyCh_6.Checked = false; chkAyCh_7.Checked = false; chkAyCh_8.Checked = false; gpio.SwitchControl(2); } else { gpio.SwitchControl(0); } } private void chkAyCh_3_CheckedChanged(object sender, EventArgs e) { if (chkAyCh_3.Checked == true) { chkAyCh_1.Checked = false; chkAyCh_2.Checked = false; //chkAyCh_3.Checked = false; chkAyCh_4.Checked = false; chkAyCh_5.Checked = false; chkAyCh_6.Checked = false; chkAyCh_7.Checked = false; chkAyCh_8.Checked = false; gpio.SwitchControl(3); } else { gpio.SwitchControl(0); } } private void chkAyCh_4_CheckedChanged(object sender, EventArgs e) { if (chkAyCh_4.Checked == true) { chkAyCh_1.Checked = false; chkAyCh_2.Checked = false; chkAyCh_3.Checked = false; //chkAyCh_4.Checked = false; chkAyCh_5.Checked = false; chkAyCh_6.Checked = false; chkAyCh_7.Checked = false; chkAyCh_8.Checked = false; gpio.SwitchControl(4); } else { gpio.SwitchControl(0); } } private void chkAyCh_5_CheckedChanged(object sender, EventArgs e) { if (chkAyCh_5.Checked == true) { chkAyCh_1.Checked = false; chkAyCh_2.Checked = false; chkAyCh_3.Checked = false; chkAyCh_4.Checked = false; //chkAyCh_5.Checked = false; chkAyCh_6.Checked = false; chkAyCh_7.Checked = false; chkAyCh_8.Checked = false; gpio.SwitchControl(5); } else { gpio.SwitchControl(0); } } private void chkAyCh_6_CheckedChanged(object sender, EventArgs e) { if (chkAyCh_6.Checked == true) { chkAyCh_1.Checked = false; chkAyCh_2.Checked = false; chkAyCh_3.Checked = false; chkAyCh_4.Checked = false; chkAyCh_5.Checked = false; //chkAyCh_6.Checked = false; chkAyCh_7.Checked = false; chkAyCh_8.Checked = false; gpio.SwitchControl(6); } else { gpio.SwitchControl(0); } } private void chkAyCh_7_CheckedChanged(object sender, EventArgs e) { if (chkAyCh_7.Checked == true) { chkAyCh_1.Checked = false; chkAyCh_2.Checked = false; chkAyCh_3.Checked = false; chkAyCh_4.Checked = false; chkAyCh_5.Checked = false; chkAyCh_6.Checked = false; //chkAyCh_7.Checked = false; chkAyCh_8.Checked = false; gpio.SwitchControl(7); } else { gpio.SwitchControl(0); } } private void chkAyCh_8_CheckedChanged(object sender, EventArgs e) { if (chkAyCh_8.Checked == true) { chkAyCh_1.Checked = false; chkAyCh_2.Checked = false; chkAyCh_3.Checked = false; chkAyCh_4.Checked = false; chkAyCh_5.Checked = false; chkAyCh_6.Checked = false; chkAyCh_7.Checked = false; //chkAyCh_8.Checked = false; gpio.SwitchControl(8); } else { gpio.SwitchControl(0); } } #endregion #region 射频开关1控制(一分八)代码 private void chkStCh_1_CheckedChanged(object sender, EventArgs e) { if (chkStCh_1.Checked == true) { //chkStCh_1.Checked = false; chkStCh_2.Checked = false; chkStCh_3.Checked = false; chkStCh_4.Checked = false; chkStCh_5.Checked = false; chkStCh_6.Checked = false; chkStCh_7.Checked = false; chkStCh_8.Checked = false; dio.OneToEight(1, DioControlClass.State.ON); } else { dio.OneToEight(1,DioControlClass.State.OFF); } } private void chkStCh_2_CheckedChanged(object sender, EventArgs e) { if (chkStCh_2.Checked == true) { chkStCh_1.Checked = false; //chkStCh_2.Checked = false; chkStCh_3.Checked = false; chkStCh_4.Checked = false; chkStCh_5.Checked = false; chkStCh_6.Checked = false; chkStCh_7.Checked = false; chkStCh_8.Checked = false; dio.OneToEight(2, DioControlClass.State.ON); } else { dio.OneToEight(2, DioControlClass.State.OFF); } } private void chkStCh_3_CheckedChanged(object sender, EventArgs e) { if (chkStCh_3.Checked == true) { chkStCh_1.Checked = false; chkStCh_2.Checked = false; //chkStCh_3.Checked = false; chkStCh_4.Checked = false; chkStCh_5.Checked = false; chkStCh_6.Checked = false; chkStCh_7.Checked = false; chkStCh_8.Checked = false; dio.OneToEight(3, DioControlClass.State.ON); } else { dio.OneToEight(3, DioControlClass.State.OFF); } } private void chkStCh_4_CheckedChanged(object sender, EventArgs e) { if (chkStCh_4.Checked == true) { chkStCh_1.Checked = false; chkStCh_2.Checked = false; chkStCh_3.Checked = false; //chkStCh_4.Checked = false; chkStCh_5.Checked = false; chkStCh_6.Checked = false; chkStCh_7.Checked = false; chkStCh_8.Checked = false; dio.OneToEight(4, DioControlClass.State.ON); } else { dio.OneToEight(4, DioControlClass.State.OFF); } } private void chkStCh_5_CheckedChanged(object sender, EventArgs e) { if (chkStCh_5.Checked == true) { chkStCh_1.Checked = false; chkStCh_2.Checked = false; chkStCh_3.Checked = false; chkStCh_4.Checked = false; //chkStCh_5.Checked = false; chkStCh_6.Checked = false; chkStCh_7.Checked = false; chkStCh_8.Checked = false; dio.OneToEight(5, DioControlClass.State.ON); } else { dio.OneToEight(5, DioControlClass.State.OFF); } } private void chkStCh_6_CheckedChanged(object sender, EventArgs e) { if (chkStCh_6.Checked == true) { chkStCh_1.Checked = false; chkStCh_2.Checked = false; chkStCh_3.Checked = false; chkStCh_4.Checked = false; chkStCh_5.Checked = false; //chkStCh_6.Checked = false; chkStCh_7.Checked = false; chkStCh_8.Checked = false; dio.OneToEight(6, DioControlClass.State.ON); } else { dio.OneToEight(6, DioControlClass.State.OFF); } } private void chkStCh_7_CheckedChanged(object sender, EventArgs e) { if (chkStCh_7.Checked == true) { chkStCh_1.Checked = false; chkStCh_2.Checked = false; chkStCh_3.Checked = false; chkStCh_4.Checked = false; chkStCh_5.Checked = false; chkStCh_6.Checked = false; //chkStCh_7.Checked = false; chkStCh_8.Checked = false; dio.OneToEight(7, DioControlClass.State.ON); } else { dio.OneToEight(7, DioControlClass.State.OFF); } } private void chkStCh_8_CheckedChanged(object sender, EventArgs e) { if (chkStCh_8.Checked == true) { chkStCh_1.Checked = false; chkStCh_2.Checked = false; chkStCh_3.Checked = false; chkStCh_4.Checked = false; chkStCh_5.Checked = false; chkStCh_6.Checked = false; chkStCh_7.Checked = false; //chkStCh_8.Checked = false; dio.OneToEight(8, DioControlClass.State.ON); } else { dio.OneToEight(8, DioControlClass.State.OFF); } } #endregion #region 射频开关3控制(一分四)代码 private void chkBxCh_1_CheckedChanged(object sender, EventArgs e) { if (chkBxCh_1.Checked == true) { //chkBxCh_1.Checked = false; chkBxCh_2.Checked = false; chkBxCh_3.Checked = false; chkBxCh_4.Checked = false; dio.OneToFour(1, DioControlClass.State.ON); } else { dio.OneToFour(1, DioControlClass.State.OFF); } } private void chkBxCh_2_CheckedChanged(object sender, EventArgs e) { if (chkBxCh_2.Checked == true) { chkBxCh_1.Checked = false; //chkBxCh_2.Checked = false; chkBxCh_3.Checked = false; chkBxCh_4.Checked = false; dio.OneToFour(2, DioControlClass.State.ON); } else { dio.OneToFour(2, DioControlClass.State.OFF); } } private void chkBxCh_3_CheckedChanged(object sender, EventArgs e) { if (chkBxCh_3.Checked == true) { chkBxCh_1.Checked = false; chkBxCh_2.Checked = false; //chkBxCh_3.Checked = false; chkBxCh_4.Checked = false; dio.OneToFour(3, DioControlClass.State.ON); } else { dio.OneToFour(3, DioControlClass.State.OFF); } } private void chkBxCh_4_CheckedChanged(object sender, EventArgs e) { if (chkBxCh_4.Checked == true) { chkBxCh_1.Checked = false; chkBxCh_2.Checked = false; chkBxCh_3.Checked = false; //chkBxCh_4.Checked = false; dio.OneToFour(4, DioControlClass.State.ON); } else { dio.OneToFour(4, DioControlClass.State.OFF); } } #endregion #region 射频开关4(一分二)代码[调制解调通道切换] private void chkCzCh_CheckedChanged(object sender, EventArgs e) { if (chkCzCh.Checked == true) { dio.OneToTwo(DioControlClass.State.ON); } else { dio.OneToTwo(DioControlClass.State.OFF); } } #endregion #region 内部电压控制代码 private void ChkPowerOnOff_CheckedChanged(object sender, EventArgs e) { if (ChkPowerOnOff.Checked == true) { power.powerOnoff(RainwormPower.State.ON); } else { power.powerOnoff(RainwormPower.State.OFF); } } private void btnPowerSetting_Click(object sender, EventArgs e) { power.powerSetting(Convert.ToDouble(txtbVoltSetValue.Text),Convert.ToDouble(txtbCurrSetValue.Text)); } #endregion private void btnPcmSendx_Click(object sender, EventArgs e) { string str = txtbPcmSend.Text; if (str!="" && str!=null) { string[] sArray = Regex.Split(str, " ", RegexOptions.IgnoreCase); byte[] bytx = new byte[sArray.Length]; for (int i = 0; i < sArray.Length; i++) { bytx[i] = Convert.ToByte(sArray[i], 16); } txtbMsg.Text = pcm.DataSend(bytx).ToString(); } } private void btnPcmSetting_Click(object sender, EventArgs e) { string mode = "UART"; string choice = "NONE"; int baud = 230400; if (rbtnUartMode.Checked==true && rbtnHdlcMode.Checked==false) { mode = "UART"; gpbHdlcTr.Enabled = false; gpbUartCheck.Enabled = true; } else if (rbtnUartMode.Checked == false && rbtnHdlcMode.Checked == true) { mode = "HDLC"; gpbHdlcTr.Enabled = true; gpbUartCheck.Enabled = false; } if (rbtnRise.Checked == true && rbtnHdlcMode.Checked == true) { choice = "RISE"; } else if (rbtnRise.Checked == false && rbtnHdlcMode.Checked == true) { choice = "FALL"; } if (rbtnOdd.Checked==true && rbtnUartMode.Checked == true) { choice = "ODD"; } else if (rbtnEven.Checked==true && rbtnUartMode.Checked == true) { choice = "EVEN"; } else if (rbtnNone.Checked==true && rbtnUartMode.Checked == true) { choice = "NONE"; } baud = int.Parse(txtbBaudrate.Text); pcm.Setting(mode, choice, baud); } private void rbtnUartMode_CheckedChanged(object sender, EventArgs e) { if (rbtnUartMode.Checked == true) { gpbHdlcTr.Enabled = false; gpbUartCheck.Enabled = true; rbtnNone.Checked = true; } else if (rbtnHdlcMode.Checked == true) { gpbHdlcTr.Enabled = true; gpbUartCheck.Enabled = false; rbtnRise.Checked = true; } } private void rbtnHdlcMode_CheckedChanged(object sender, EventArgs e) { if (rbtnUartMode.Checked == true) { gpbHdlcTr.Enabled = false; gpbUartCheck.Enabled = true; rbtnNone.Checked = true; } else if (rbtnHdlcMode.Checked == true) { gpbHdlcTr.Enabled = true; gpbUartCheck.Enabled = false; rbtnRise.Checked = true; } } } }