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 rainwormPower = new RainwormPower(); //PcmControl pcm = new PcmControl(); ThreadStart SeriesPortChildref = null; Thread SeriesPortChildThread = null; public DebuggingForm() { InitializeComponent(); Thread.Sleep(100); FrmMain.gpio.SwitchControl(0); for (int i = 1; i <= 8; i++) { FrmMain.dio.SupplySwitch(i, DioControlClass.State.OFF);//将所有供电开关关闭 } FrmMain.rainwormPower.powerOnoff(RainwormPower.State.OFF); SeriesPortThread(); rbtnUartMode.Checked = true; if (!FrmMain.rainwormPower.UnlockKey()) { txtbMsg.Text = "内部蚯蚓电源未连接成功!"; } } private void DebuggingForm_FormClosed(object sender, FormClosedEventArgs e) { //FrmMain.dio.portClose(); //FrmMain.rainwormPower.portClose(); //FrmMain.pcm.portClose(); SeriesPortChildThread.Abort(); } #region 8路供电开关控制(+28V)代码 private void btnPowCh_1_Click(object sender, EventArgs e) { if (led1.Value == false) { FrmMain.dio.SupplySwitch(1, DioControlClass.State.ON); } else { FrmMain.dio.SupplySwitch(1, DioControlClass.State.OFF); } led1.Value = !led1.Value; } private void btnPowCh_2_Click(object sender, EventArgs e) { if (led2.Value == false) { FrmMain.dio.SupplySwitch(2, DioControlClass.State.ON); } else { FrmMain.dio.SupplySwitch(2, DioControlClass.State.OFF); } led2.Value = !led2.Value; } private void btnPowCh_3_Click(object sender, EventArgs e) { if (led3.Value == false) { FrmMain.dio.SupplySwitch(3, DioControlClass.State.ON); } else { FrmMain.dio.SupplySwitch(3, DioControlClass.State.OFF); } led3.Value = !led3.Value; } private void btnPowCh_4_Click(object sender, EventArgs e) { if (led4.Value == false) { FrmMain.dio.SupplySwitch(4, DioControlClass.State.ON); } else { FrmMain.dio.SupplySwitch(4, DioControlClass.State.OFF); } led4.Value = !led4.Value; } private void btnPowCh_5_Click(object sender, EventArgs e) { if (led5.Value == false) { FrmMain.dio.SupplySwitch(5, DioControlClass.State.ON); } else { FrmMain.dio.SupplySwitch(5, DioControlClass.State.OFF); } led5.Value = !led5.Value; } private void btnPowCh_6_Click(object sender, EventArgs e) { if (led6.Value == false) { FrmMain.dio.SupplySwitch(6, DioControlClass.State.ON); } else { FrmMain.dio.SupplySwitch(6, DioControlClass.State.OFF); } led6.Value = !led6.Value; } private void btnPowCh_7_Click(object sender, EventArgs e) { if (led7.Value == false) { FrmMain.dio.SupplySwitch(7, DioControlClass.State.ON); } else { FrmMain.dio.SupplySwitch(7, DioControlClass.State.OFF); } led7.Value = !led7.Value; } private void btnPowCh_8_Click(object sender, EventArgs e) { if (led8.Value == false) { FrmMain.dio.SupplySwitch(8, DioControlClass.State.ON); } else { FrmMain.dio.SupplySwitch(8, DioControlClass.State.OFF); } led8.Value = !led8.Value; } #endregion /// /// byte[]数据转字符串输出 /// /// byte[]数据 /// 16进制字符串 public string BytesToHexString(byte[] data) { if (data == null) return ""; StringBuilder sb = new StringBuilder(100); for (int i = 0; i < data.Length; i++) { sb.Append(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 = FrmMain.dio.ReadAllVolt(); dblc = FrmMain.dio.ReadAllCurr(); dblp = FrmMain.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; FrmMain.gpio.SwitchControl(1); } else { FrmMain.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; FrmMain.gpio.SwitchControl(2); } else { FrmMain.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; FrmMain.gpio.SwitchControl(3); } else { FrmMain.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; FrmMain.gpio.SwitchControl(4); } else { FrmMain.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; FrmMain.gpio.SwitchControl(5); } else { FrmMain.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; FrmMain.gpio.SwitchControl(6); } else { FrmMain.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; FrmMain.gpio.SwitchControl(7); } else { FrmMain.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; FrmMain.gpio.SwitchControl(8); } else { FrmMain.gpio.SwitchControl(0); } } private void chkAllSwitchDo_CheckedChanged(object sender, EventArgs e) { if (chkAllSwitchDo.Checked == true) { FrmMain.gpio.AllSwitchBandstopft(); chkAyCh_1.Enabled = false; chkAyCh_2.Enabled = false; chkAyCh_3.Enabled = false; chkAyCh_4.Enabled = false; chkAyCh_5.Enabled = false; chkAyCh_6.Enabled = false; chkAyCh_7.Enabled = false; chkAyCh_8.Enabled = false; } else { FrmMain.gpio.AllSwitchAttenuator(); chkAyCh_1.Enabled = true; chkAyCh_2.Enabled = true; chkAyCh_3.Enabled = true; chkAyCh_4.Enabled = true; chkAyCh_5.Enabled = true; chkAyCh_6.Enabled = true; chkAyCh_7.Enabled = true; chkAyCh_8.Enabled = true; } } #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; FrmMain.dio.OneToEight(1, DioControlClass.State.ON); } else { FrmMain.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; FrmMain.dio.OneToEight(2, DioControlClass.State.ON); } else { FrmMain.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; FrmMain.dio.OneToEight(3, DioControlClass.State.ON); } else { FrmMain.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; FrmMain.dio.OneToEight(4, DioControlClass.State.ON); } else { FrmMain.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; FrmMain.dio.OneToEight(5, DioControlClass.State.ON); } else { FrmMain.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; FrmMain.dio.OneToEight(6, DioControlClass.State.ON); } else { FrmMain.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; FrmMain.dio.OneToEight(7, DioControlClass.State.ON); } else { FrmMain.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; FrmMain.dio.OneToEight(8, DioControlClass.State.ON); } else { FrmMain.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; FrmMain.dio.OneToFour(1, DioControlClass.State.ON); } else { FrmMain.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; FrmMain.dio.OneToFour(2, DioControlClass.State.ON); } else { FrmMain.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; FrmMain.dio.OneToFour(3, DioControlClass.State.ON); } else { FrmMain.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; FrmMain.dio.OneToFour(4, DioControlClass.State.ON); } else { FrmMain.dio.OneToFour(4, DioControlClass.State.OFF); } } #endregion #region 射频开关4(一分二)代码[调制解调通道切换] private void chkCzCh_CheckedChanged(object sender, EventArgs e) { if (chkCzCh.Checked == true) { FrmMain.dio.OneToTwo(DioControlClass.State.ON); } else { FrmMain.dio.OneToTwo(DioControlClass.State.OFF); } } #endregion #region 内部电源控制代码 private void ChkPowerOnOff_CheckedChanged(object sender, EventArgs e) { if (ChkPowerOnOff.Checked == true) { FrmMain.rainwormPower.powerOnoff(RainwormPower.State.ON); } else { FrmMain.rainwormPower.powerOnoff(RainwormPower.State.OFF); } } private void btnPowerSetting_Click(object sender, EventArgs e) { FrmMain.rainwormPower.powerSetting(Convert.ToDouble(txtbVoltSetValue.Text),Convert.ToDouble(txtbCurrSetValue.Text)); } #endregion #region PCM控制代码 string tamp = ""; public void Displaywhile() { string st; while (true) { byte[] byrd = FrmMain.pcm.OnlyRead(); //if (byrd != null && byrd[0] == 0xF0 && byrd[1] == 0x0F && byrd[2] == 0x03) { //byte[] br = new byte[byrd.Length-6]; //for (int i = 0; i < br.Length; i++) //{ // br[i] = byrd[6 + i]; //} st = BytesToHexString(byrd); if (st != "" && st != tamp) { tamp = st; } } Thread.Sleep(100); } } public void SeriesPortThread() { SeriesPortChildref = new ThreadStart(Displaywhile); SeriesPortChildThread = new Thread(SeriesPortChildref); SeriesPortChildThread.Start(); } 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 = FrmMain.pcm.DataSend(bytx,0).ToString(); } } private void btnCleartxtbPcmRd_Click(object sender, EventArgs e) { tamp =""; } 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); FrmMain.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; } } private void chkTimerEn_CheckedChanged(object sender, EventArgs e) { timer2.Interval = int.Parse(txtbTimer2Num.Text); timer2.Enabled = chkTimerEn.Checked; } /// /// 定时器1:定时刷新PCM接收文本窗口 /// /// /// private void timer1_Tick(object sender, EventArgs e) { txtbPcmRd.Text = tamp; } /// /// 定时器2:PCM定时发送 /// /// /// private void timer2_Tick(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 = FrmMain.pcm.DataSend(bytx,0).ToString(); } } private void txtbTimer2Num_TextChanged(object sender, EventArgs e) { timer2.Interval = int.Parse(txtbTimer2Num.Text); } #endregion } }