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
}
}