📄 form1.cs
字号:
this.txtCWL.Text = this.out_EL3.ToString();
}
private void setX()
{
this.txtAIX.Text = "1";
this.txtAVX.Text = "1";
this.txtAWX.Text = "1";
this.txtBIX.Text = "1";
this.txtBVX.Text = "1";
this.txtBWX.Text = "1";
this.txtCIX.Text = "1";
this.txtCVX.Text = "1";
this.txtCWX.Text = "1";
}
private void FrmshowinfoPower_Load(object sender, EventArgs e)
{
setL();
setX();
if (this.txtAIX.Text.Equals( "1") || this.txtBIX.Text.Equals ( "1"))
{
this.btnReadSet.Enabled = false;
}
this.SelectComNO = 1;
this.cmbCOMM.SelectedIndex = 0;
try
{
if (PrevInstance() == true)
{
MessageBox.Show("该服务已启动");
Application.Exit();
}
this.cmbCOMM.SelectedIndex = 0;
this.InitComPort();
timer1.Interval = 1000;
timer1.Enabled = true;
}
catch (Exception ex)
{
this.lblMsg.Text ="串口打开失败了";
}
}
private void InitComPort()
{
try
{
// This port is already open, close it to reset it.
if (com.PortOpen) com.PortOpen = false;
// Set the com port to be 1
com._CommPort = SelectComNO;
com.RThreshold = 1;
com.Settings = "1200,n,8,1";
// Force the DTR line high, used sometimes to hang up modems
com.DTREnable = true;
com.InBufferSize = 1024;//1K
com.OutBufferSize = 1024;
com.Handshaking = MSCommLib.HandshakeConstants.comNone;
com.InputMode = MSCommLib.InputModeConstants.comInputModeBinary;
com.InputLen = 0;
com.NullDiscard = false;
com.PortOpen = true;
this.lblMsg.Text ="成功打开COM" + SelectComNO + "!\n";
}
catch
{
if (com.PortOpen) com.PortOpen = false;
this.lblMsg.Text ="打开COM" + SelectComNO + "失败!";
}
}
private void sendinfo()//发送协议到设备读出其电流 电压
{
try
{
cmdReadData = new byte[9];
cmdReadData[0] = 0xFE;
cmdReadData[1] = 0xFE;
cmdReadData[2] = 0xFE;
cmdReadData[3] = 0x68;
cmdReadData[4] = 0x0A;
cmdReadData[5] = 0x01;
cmdReadData[6] = 0x00;
cmdReadData[7] = (byte)(cmdReadData[4] + cmdReadData[5] + cmdReadData[6]);//校验码,累加和
cmdReadData[8] = 0x16;
PageNO = 0;
sys_buf = "";
show_buf = "";
com.InBufferCount = 0;
com.Output = cmdReadData;
}
catch
{
this.lblMsg.Text = "发送信号错误!";
}
}
private void cmbCOMM_SelectedIndexChanged(object sender, EventArgs e)
{
if (iniFlag)
{
iniFlag = false;
}
else
{
SelectComNO = (short)(cmbCOMM.SelectedIndex + 1);
InitComPort();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
sendinfo();
}
private int Hex2Dec(string InputData)//十六进制转化为十进制
{
int DecOut;
int Lenhex;
int HexStep;
DecOut = 0;
InputData = InputData.ToUpper();
Lenhex = InputData.Length;
HexStep = 0;
for (int i = Lenhex; i > 0; i--)
{
HexStep = HexStep * 16;
if (HexStep == 0) HexStep = 1;
switch (InputData.Substring(i - 1, 1))
{
case "0":
DecOut = DecOut + (0 * HexStep);
break;
case "1":
DecOut = DecOut + (1 * HexStep);
break;
case "2":
DecOut = DecOut + (2 * HexStep);
break;
case "3":
DecOut = DecOut + (3 * HexStep);
break;
case "4":
DecOut = DecOut + (4 * HexStep);
break;
case "5":
DecOut = DecOut + (5 * HexStep);
break;
case "6":
DecOut = DecOut + (6 * HexStep);
break;
case "7":
DecOut = DecOut + (7 * HexStep);
break;
case "8":
DecOut = DecOut + (8 * HexStep);
break;
case "9":
DecOut = DecOut + (9 * HexStep);
break;
case "A":
DecOut = DecOut + (10 * HexStep);
break;
case "B":
DecOut = DecOut + (11 * HexStep);
break;
case "C":
DecOut = DecOut + (12 * HexStep);
break;
case "D":
DecOut = DecOut + (13 * HexStep);
break;
case "E":
DecOut = DecOut + (14 * HexStep);
break;
case "F":
DecOut = DecOut + (15 * HexStep);
break;
default:
break;
}
}
return DecOut;
}
private void btnSetL_Click(object sender, EventArgs e)
{
this.txtAIL.Text = out_I1.ToString();
this.txtAVL.Text = out_V1.ToString();
this.txtAWL.Text = out_E1.ToString();
this.txtBIL.Text = out_I2.ToString();
this.txtBVL.Text = out_V2.ToString();
this.txtBWL.Text = out_E2.ToString();
this.txtCIL.Text = out_I3.ToString();
this.txtCVL.Text = out_V3.ToString();
this.txtCWL.Text = out_E3.ToString();
}
double Bi = 0.0;//百分比
double FM = 0.0f;
double FZ = 0.0;
private void btnSetX_Click(object sender, EventArgs e)
{
try
{
StringBuilder myBuilder=new StringBuilder(256);
string path = Application.StartupPath + "\\app.ini";//读取配置文件的信息
GetPrivateProfileString("settings", "AV", "220", myBuilder, 256, path);
double AV=Int32.Parse(myBuilder.ToString());
Bi = AV / 220;//得到了电压的百分比
FM = Math.Abs(out_V1 - Convert.ToDouble(this.txtAVL.Text.Trim()));
FZ = Convert.ToDouble(Bi * 10E+12);
this.txtAVX.Text = Convert.ToInt64(FZ / FM).ToString();
GetPrivateProfileString("settings", "AI", "5", myBuilder, 256, path);
double AI = Int32.Parse(myBuilder.ToString());
Bi =AI /5;//得到了电压的百分比
FM = Math.Abs(out_I1 - Convert.ToDouble(this.txtAIL.Text.Trim()));
FZ = Convert.ToDouble(Bi * 10E+12);
this.txtAIX.Text = Convert.ToInt64(FZ / FM).ToString();
GetPrivateProfileString("settings", "AW", "1100", myBuilder, 256, path);
double AW = Int32.Parse(myBuilder.ToString());
Bi = AW / 1100;//得到了电压的百分比
FM = Math.Abs(out_E1 - Convert.ToDouble(this.txtAWL.Text.Trim()));
FZ = Convert.ToDouble(Bi * 10E+12);
this.txtAWX.Text = Convert.ToInt64(FZ / FM).ToString();
/*******************/
GetPrivateProfileString("settings", "BV", "220", myBuilder, 256, path);
double BV = Int32.Parse(myBuilder.ToString());
Bi = BV / 220;//得到了电压的百分比
FM = Math.Abs(out_V2 - Convert.ToDouble(this.txtBVL.Text.Trim()));
FZ = Convert.ToDouble(Bi * 10E+12);
this.txtBVX.Text = Convert.ToInt64(FZ / FM).ToString();
GetPrivateProfileString("settings", "BI", "5", myBuilder, 256, path);
double BI = Int32.Parse(myBuilder.ToString());
Bi = BI / 5;//得到了电压的百分比
FM = Math.Abs(out_I2 - Convert.ToDouble(this.txtBIL.Text.Trim()));
FZ = Convert.ToDouble(Bi * 10E+12);
this.txtBIX.Text = Convert.ToInt64(FZ / FM).ToString();
GetPrivateProfileString("settings", "BW", "5", myBuilder, 256, path);
double BW = Int32.Parse(myBuilder.ToString());
Bi = BW / 1100;//得到了电压的百分比
FM =Math.Abs ( out_E2 - Convert.ToDouble(this.txtBWL.Text.Trim()));
FZ = Convert.ToDouble(Bi * 10E+12);
this.txtBWX.Text = Convert.ToInt64(FZ / FM).ToString();
/*******************/
GetPrivateProfileString("settings", "CV", "220", myBuilder, 256, path);
double CV = Int32.Parse(myBuilder.ToString());
Bi = CV / 220;//得到了电压的百分比
FM =Math.Abs ( out_V3 - Convert.ToDouble(this.txtCVL.Text.Trim()));
FZ = Convert.ToDouble(Bi * 10E+12);
this.txtCVX.Text = Convert.ToInt64(FZ / FM).ToString();
GetPrivateProfileString("settings", "CI", "5", myBuilder, 256, path);
double CI = Int32.Parse(myBuilder.ToString());
Bi = CI / 5;//得到了电压的百分比
FM = Math.Abs (out_I3 - Convert.ToDouble(this.txtCIL.Text.Trim()));
FZ = Convert.ToInt64(Bi * 10E+12);
this.txtCIX.Text = Convert.ToInt64(FZ / FM).ToString();
GetPrivateProfileString("settings", "CW", "5", myBuilder, 256, path);
double CW = Int32.Parse(myBuilder.ToString());
Bi = CW / 1100;//得到了电压的百分比
FM = Math.Abs (out_E3 - Convert.ToDouble(this.txtCWL.Text.Trim()));
FZ = Convert.ToDouble(Bi * 10E+12);
this.txtCWX.Text = Convert.ToInt64(FZ / FM).ToString();
}
catch (Exception ex)
{
}
if (!this.txtAIX.Text.Equals("1") || !this.txtBIX.Text.Equals("1"))
{
this.btnReadSet.Enabled = true;
}
}
private void com_OnComm(object sender, EventArgs e)
{
bool flag = false;
string data_length;
string buf = "";
string aa;
string bb;
object objIN;
objIN = com.Input;
byte[] cc = (byte[])objIN;
for (int i = 0; i < cc.Length; i++)
{
string ff;
ff = string.Format("{0,2:X2}", cc[i]);
sys_buf += ff;
show_buf += ff + " ";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -