⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 开发C#串口实现了通讯功能好用的很 还有点小的问题要修改一下
💻 CS
📖 第 1 页 / 共 3 页
字号:
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 + -