📄 form1.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Data.OleDb;
using System.Drawing.Drawing2D;
using System.Runtime.InteropServices;
namespace GetPower
{
public partial class FrmshowinfoPower : Form
{
[DllImport("kernel32")]//读取ini文件信息
private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
[DllImport("kernel32")]//向ini文件中写入信息
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
public FrmshowinfoPower()
{
InitializeComponent();
}
byte[] cmdReadData;
byte[] MycmdReadData;
byte[] cmdWriteData;
double out_I1 = 0, out_I2 = 0, out_I3 = 0, out_V1 = 0, out_V2 = 0, out_V3 = 0, out_E1 = 0, out_E2 = 0, out_E3 = 0;
double out_IX1 = 0, out_IX2 = 0, out_IX3 = 0, out_VX1 = 0, out_VX2 = 0, out_VX3 = 0, out_EX1 = 0, out_EX2 = 0, out_EX3 = 0, out_IL1 = 0, out_IL2 = 0, out_IL3 = 0, out_VL1 = 0, out_VL2 = 0, out_VL3 = 0, out_EL1 = 0, out_EL2 = 0, out_EL3 = 0;
string[] data = new string[54];
string command;
bool iniFlag = true;
int PageNO = 0;
string sys_buf = "";
string show_buf = "";//读内存的值
short SelectComNO;
byte[] b1;//写设备值
ArrayList list = new ArrayList();
private void Dec2Hex(int InputData)//将十进制转化为十六进制
{ //将的到的整数来除16
string Hex = InputData.ToString("x");
//b1 = BitConverter.GetBytes(int.Parse(Hex,System.Globalization.NumberStyles.AllowHexSpecifier));//十六进制字符串为byte
int len = Hex.Length / 2;
if (len * 2 < Hex.Length)
{
len += 1;
b1 = new byte[len];
for (int i = 0; i < len; i++)
{
if (i == 0 || i == 1)
{
b1[i] = Convert.ToByte(Hex.Substring(i * 2, 2), 16);
}
if (i == 2)
{
b1[i] = Convert.ToByte(Hex.Substring(i * 2), 16);
}
list.Add(b1[i].ToString("x"));
}
}
else
{
b1 = new byte[len];
for (int i = 0; i < len; i++)
{
b1[i] = Convert.ToByte(Hex.Substring(i * 2, 2), 16);
list.Add(b1[i].ToString("x"));
}
}
}
private void btnReadSet_Click(object sender, EventArgs e)//保存他的零偏和系数
{
try
{
cmdWriteData = new byte[54];
for (int i = 60; i < 66; i++)
{
switch (i)
{
case 60://写电流系数
cmdWriteData[0] = 0xFE;
cmdWriteData[1] = 0xFE;
cmdWriteData[2] = 0xFE;
cmdWriteData[3] = 0x68;
cmdWriteData[4] = 0x0A;
cmdWriteData[5] = (byte)Convert.ToByte(i);
cmdWriteData[6] = 0x09;
Dec2Hex(Convert.ToInt32(this.txtAIX.Text));
cmdWriteData[7] = (byte)Convert.ToByte(b1[2]);//低字节在前
cmdWriteData[8] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[9] = (byte)Convert.ToByte(b1[0]);
Dec2Hex(Convert.ToInt32(this.txtBIX.Text));
cmdWriteData[10] = (byte)Convert.ToByte(b1[2]);
cmdWriteData[11] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[12] = (byte)Convert.ToByte(b1[0]);
Dec2Hex(Convert.ToInt32(this.txtCIX.Text));
cmdWriteData[13] = (byte)Convert.ToByte(b1[2]);
cmdWriteData[14] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[15] = (byte)Convert.ToByte(b1[0]);
cmdWriteData[16] = (byte)(cmdWriteData[4] + cmdWriteData[5] + cmdWriteData[6] + cmdWriteData[7] + cmdWriteData[8] + cmdWriteData[9] + cmdWriteData[10] + cmdWriteData[11] + cmdWriteData[12] + cmdWriteData[13] + cmdWriteData[14] + cmdWriteData[15]);//校验码,累加和
cmdWriteData[17] = 0x16;
break;
case 61://写电压系数
cmdWriteData[0] = 0xFE;
cmdWriteData[1] = 0xFE;
cmdWriteData[2] = 0xFE;
cmdWriteData[3] = 0x68;
cmdWriteData[4] = 0x0A;
cmdWriteData[5] = (byte)Convert.ToByte(i);
cmdWriteData[6] = 0x09;
Dec2Hex(Convert.ToInt32(this.txtAVX.Text));
cmdWriteData[7] = (byte)Convert.ToByte(b1[2]);//低字节在前
cmdWriteData[8] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[9] = (byte)Convert.ToByte(b1[0]);
Dec2Hex(Convert.ToInt32(this.txtBVX.Text));
cmdWriteData[10] = (byte)Convert.ToByte(b1[2]);
cmdWriteData[11] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[12] = (byte)Convert.ToByte(b1[0]);
Dec2Hex(Convert.ToInt32(this.txtCVX.Text));
cmdWriteData[13] = (byte)Convert.ToByte(b1[2]);
cmdWriteData[14] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[15] = (byte)Convert.ToByte(b1[0]);
cmdWriteData[16] = (byte)(cmdWriteData[4] + cmdWriteData[5] + cmdWriteData[6] + cmdWriteData[7] + cmdWriteData[8] + cmdWriteData[9] + cmdWriteData[10] + cmdWriteData[11] + cmdWriteData[12] + cmdWriteData[13] + cmdWriteData[14] + cmdWriteData[15]);//校验码,累加和
cmdWriteData[17] = 0x16;
break;
case 62://写功率系数
cmdWriteData[0] = 0xFE;
cmdWriteData[1] = 0xFE;
cmdWriteData[2] = 0xFE;
cmdWriteData[3] = 0x68;
cmdWriteData[4] = 0x0A;
cmdWriteData[5] = (byte)Convert.ToByte(i);
cmdWriteData[6] = 0x09;
Dec2Hex(Convert.ToInt32(this.txtAWX.Text));
cmdWriteData[7] = (byte)Convert.ToByte(b1[2]);//低字节在前
cmdWriteData[8] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[9] = (byte)Convert.ToByte(b1[0]);
Dec2Hex(Convert.ToInt32(this.txtBWX.Text));
cmdWriteData[10] = (byte)Convert.ToByte(b1[2]);
cmdWriteData[11] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[12] = (byte)Convert.ToByte(b1[0]);
Dec2Hex(Convert.ToInt32(this.txtCWX.Text));
cmdWriteData[13] = (byte)Convert.ToByte(b1[2]);
cmdWriteData[14] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[15] = (byte)Convert.ToByte(b1[0]);
cmdWriteData[16] = (byte)(cmdWriteData[4] + cmdWriteData[5] + cmdWriteData[6] + cmdWriteData[7] + cmdWriteData[8] + cmdWriteData[9] + cmdWriteData[10] + cmdWriteData[11] + cmdWriteData[12] + cmdWriteData[13] + cmdWriteData[14] + cmdWriteData[15]);//校验码,累加和
cmdWriteData[17] = 0x16;
break;
case 63://写电流零偏
cmdWriteData[0] = 0xFE;
cmdWriteData[1] = 0xFE;
cmdWriteData[2] = 0xFE;
cmdWriteData[3] = 0x68;
cmdWriteData[4] = 0x0A;
cmdWriteData[5] = (byte)Convert.ToByte(i);
cmdWriteData[6] = 0x09;
Dec2Hex(Convert.ToInt32(this.txtAIL.Text));
cmdWriteData[7] = (byte)Convert.ToByte(b1[2]);//低字节在前
cmdWriteData[8] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[9] = (byte)Convert.ToByte(b1[0]);
Dec2Hex(Convert.ToInt32(this.txtBIL.Text));
cmdWriteData[10] = (byte)Convert.ToByte(b1[2]);
cmdWriteData[11] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[12] = (byte)Convert.ToByte(b1[0]);
Dec2Hex(Convert.ToInt32(this.txtCIL.Text));
cmdWriteData[13] = (byte)Convert.ToByte(b1[2]);
cmdWriteData[14] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[15] = (byte)Convert.ToByte(b1[0]);
cmdWriteData[16] = (byte)(cmdWriteData[4] + cmdWriteData[5] + cmdWriteData[6] + cmdWriteData[7] + cmdWriteData[8] + cmdWriteData[9] + cmdWriteData[10] + cmdWriteData[11] + cmdWriteData[12] + cmdWriteData[13] + cmdWriteData[14] + cmdWriteData[15]);//校验码,累加和
cmdWriteData[17] = 0x16;
break;
case 64://写电压零偏
cmdWriteData[0] = 0xFE;
cmdWriteData[1] = 0xFE;
cmdWriteData[2] = 0xFE;
cmdWriteData[3] = 0x68;
cmdWriteData[4] = 0x0A;
cmdWriteData[5] = (byte)Convert.ToByte(i);
cmdWriteData[6] = 0x09;
Dec2Hex(Convert.ToInt32(this.txtAVL.Text));
cmdWriteData[7] = (byte)Convert.ToByte(b1[2]);//低字节在前
cmdWriteData[8] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[9] = (byte)Convert.ToByte(b1[0]);
Dec2Hex(Convert.ToInt32(this.txtBVL.Text));
cmdWriteData[10] = (byte)Convert.ToByte(b1[2]);
cmdWriteData[11] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[12] = (byte)Convert.ToByte(b1[0]);
Dec2Hex(Convert.ToInt32(this.txtCVL.Text));
cmdWriteData[13] = (byte)Convert.ToByte(b1[2]);
cmdWriteData[14] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[15] = (byte)Convert.ToByte(b1[0]);
cmdWriteData[16] = (byte)(cmdWriteData[4] + cmdWriteData[5] + cmdWriteData[6] + cmdWriteData[7] + cmdWriteData[8] + cmdWriteData[9] + cmdWriteData[10] + cmdWriteData[11] + cmdWriteData[12] + cmdWriteData[13] + cmdWriteData[14] + cmdWriteData[15]);//校验码,累加和
cmdWriteData[17] = 0x16;
break;
case 65://写功率零偏
cmdWriteData[0] = 0xFE;
cmdWriteData[1] = 0xFE;
cmdWriteData[2] = 0xFE;
cmdWriteData[3] = 0x68;
cmdWriteData[4] = 0x0A;
cmdWriteData[5] = (byte)Convert.ToByte(i);
cmdWriteData[6] = 0x09;
Dec2Hex(Convert.ToInt32(this.txtAWL.Text));
cmdWriteData[7] = (byte)Convert.ToByte(b1[2]);//低字节在前
cmdWriteData[8] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[9] = (byte)Convert.ToByte(b1[0]);
Dec2Hex(Convert.ToInt32(this.txtBWL.Text));
cmdWriteData[10] = (byte)Convert.ToByte(b1[2]);
cmdWriteData[11] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[12] = (byte)Convert.ToByte(b1[0]);
Dec2Hex(Convert.ToInt32(this.txtCWL.Text));
cmdWriteData[13] = (byte)Convert.ToByte(b1[2]);
cmdWriteData[14] = (byte)Convert.ToByte(b1[1]);
cmdWriteData[15] = (byte)Convert.ToByte(b1[0]);
cmdWriteData[16] = (byte)(cmdWriteData[4] + cmdWriteData[5] + cmdWriteData[6] + cmdWriteData[7] + cmdWriteData[8] + cmdWriteData[9] + cmdWriteData[10] + cmdWriteData[11] + cmdWriteData[12] + cmdWriteData[13] + cmdWriteData[14] + cmdWriteData[15]);//校验码,累加和
cmdWriteData[17] = 0x16;
break;
default://默认错误信息提示
break;
}
PageNO = 0;
sys_buf = "";
show_buf = "";
com.InBufferCount = 0;
com.Output = cmdWriteData;
}
this.lblMsg.Text = "数据已经存储到设备!";
}
catch (Exception ex)
{
this.lblMsg.Text = "数据验证不对,没有存储成功!";
}
}
private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
private bool PrevInstance()
{
string procName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
if ((System.Diagnostics.Process.GetProcessesByName(procName)).GetUpperBound(0) > 0)
{
return true;
}
else
{
return false;
}
}
private void setL()
{
this.txtAIL.Text = this.out_IL1.ToString();
this.txtAVL.Text = this.out_VL1.ToString();
this.txtAWL.Text = this.out_EL1.ToString();
this.txtBIL.Text = this.out_IL2.ToString();
this.txtBVL.Text = this.out_VL2.ToString();
this.txtBWL.Text = this.out_EL2.ToString();
this.txtCIL.Text = this.out_IL3.ToString();
this.txtCVL.Text = this.out_VL3.ToString();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -