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

📄 form1.cs

📁 开发C#串口实现了通讯功能好用的很 还有点小的问题要修改一下
💻 CS
📖 第 1 页 / 共 3 页
字号:
            if (sys_buf.Length >= 18)
            {

                data_length = sys_buf.Substring(12, 2);//有效数据长度
                if (sys_buf.Substring(0, 8) == "FEFEFE68" && sys_buf.Length == Hex2Dec(data_length) * 2 + 18)
                {

                    buf = sys_buf;
                    sys_buf = "";
                    show_buf = "";
                    flag = true;
                }
                if (flag)
                {
                    command = buf.Substring(10, 2);
                    switch (command)
                    {
                        case "81":
                            data[0] = buf.Substring(14, 2);//A箱电流
                            data[1] = buf.Substring(16, 2);
                            data[2] = buf.Substring(18, 2);

                            data[3] = buf.Substring(20, 2);//A箱电压
                            data[4] = buf.Substring(22, 2);
                            data[5] = buf.Substring(24, 2);

                            data[6] = buf.Substring(26, 2);//A箱功率
                            data[7] = buf.Substring(28, 2);
                            data[8] = buf.Substring(30, 2);

                            data[9] = buf.Substring(32, 2);//B箱电流
                            data[10] = buf.Substring(34, 2);
                            data[11] = buf.Substring(36, 2);

                            data[12] = buf.Substring(38, 2);//B箱电压
                            data[13] = buf.Substring(40, 2);
                            data[14] = buf.Substring(42, 2);

                            data[15] = buf.Substring(44, 2);//B箱功率
                            data[16] = buf.Substring(46, 2);
                            data[17] = buf.Substring(48, 2);

                            data[18] = buf.Substring(50, 2);//C箱电流
                            data[19] = buf.Substring(52, 2);
                            data[20] = buf.Substring(54, 2);

                            data[21] = buf.Substring(56, 2);//C箱电压
                            data[22] = buf.Substring(58, 2);
                            data[23] = buf.Substring(60, 2);

                            data[24] = buf.Substring(62, 2);//C箱功率
                            data[25] = buf.Substring(64, 2);
                            data[26] = buf.Substring(66, 2);
                            //data[8]="80";
                            int iData = Hex2Dec(data[8]);
                            double iP;
                            bool bS = Convert.ToBoolean(iData >> 7);
                            out_I1 = (Hex2Dec(data[2]) * 256 * 256 + Hex2Dec(data[1]) * 256 + Hex2Dec(data[0]));
                            out_V1 = (Hex2Dec(data[5]) * 256 * 256 + Hex2Dec(data[4]) * 256 + Hex2Dec(data[3]));

                            out_E1 = (Hex2Dec(data[8]) * 256 * 256 + Hex2Dec(data[7]) * 256 + Hex2Dec(data[6]));//A相功率
                            if(bS)
                                out_E1 -= 0x01000000L;
                      
                            out_I2 = (Hex2Dec(data[11]) * 256 * 256 + Hex2Dec(data[10]) * 256 + Hex2Dec(data[9]));
                            out_V2 = (Hex2Dec(data[14]) * 256 * 256 + Hex2Dec(data[13]) * 256 + Hex2Dec(data[12]));
                            out_E2 = (Hex2Dec(data[17]) * 256 * 256 + Hex2Dec(data[16]) * 256 + Hex2Dec(data[15]));
                            iData = Hex2Dec(data[17]);
                            bS = Convert.ToBoolean (iData>>7);
                            if (bS)
                                out_E2 -= 0x01000000L;
                            out_I3 = (Hex2Dec(data[20]) * 256 * 256 + Hex2Dec(data[19]) * 256 + Hex2Dec(data[18]));
                            out_V3 = (Hex2Dec(data[23]) * 256 * 256 + Hex2Dec(data[22]) * 256 + Hex2Dec(data[21]));
                            out_E3 = (Hex2Dec(data[26]) * 256 * 256 + Hex2Dec(data[25]) * 256 + Hex2Dec(data[24]));
                            iData = Hex2Dec(data[26]);
                            bS = Convert.ToBoolean(iData >> 7);
                            if (bS)
                                out_E3 -= 0x01000000L;
                            this.txtAIY.Text = out_I1.ToString();
                            this.txtAVY.Text = out_V1.ToString();
                            this.txtAWY.Text = out_E1.ToString();
                            this.txtBIY.Text = out_I2.ToString();
                            this.txtBVY.Text = out_V2.ToString();
                            this.txtBWY.Text = out_E2.ToString();
                            this.txtCIY.Text = out_I3.ToString();
                            this.txtCVY.Text = out_V3.ToString();
                            this.txtCWY.Text = out_E3.ToString();

                            this.txtAIC.Text = Convert.ToString(Math.Round(((out_I1 - Convert.ToDouble(this.txtAIL.Text) * Convert.ToDouble(this.txtAIX.Text)/10E+12)*5),0));
                            this.txtAVC.Text = Convert.ToString(Math.Round(((out_V1 - Convert.ToDouble(this.txtAVL.Text) * Convert.ToDouble(this.txtAVX.Text) / 10E+12) * 220), 0));
                            this.txtAWC.Text = Convert.ToString(Math.Round(((out_E1 - Convert.ToDouble(this.txtAWL.Text) * Convert.ToDouble(this.txtAWX.Text) / 10E+12) * 5), 0));
                            this.txtBIC.Text = Convert.ToString(Math.Round(((out_I2 - Convert.ToDouble(this.txtBIL.Text) * Convert.ToDouble(this.txtBIX.Text) / 10E+12) * 5), 0));
                            this.txtBVC.Text = Convert.ToString(Math.Round(((out_V2 - Convert.ToDouble(this.txtBVL.Text) * Convert.ToDouble(this.txtBVX.Text) / 10E+12) * 220), 0));
                            this.txtBWC.Text = Convert.ToString(Math.Round(((out_E2 - Convert.ToDouble(this.txtBWL.Text) * Convert.ToDouble(this.txtBWX.Text) / 10E+12) * 5), 0));
                            this.txtCIC.Text = Convert.ToString(Math.Round(((out_I3 - Convert.ToDouble(this.txtCIL.Text) * Convert.ToDouble(this.txtCIX.Text) / 10E+12) * 5), 0));
                            this.txtCVC.Text = Convert.ToString(Math.Round(((out_V3 - Convert.ToDouble(this.txtCVL.Text) * Convert.ToDouble(this.txtCVX.Text) / 10E+12) * 220), 0));
                            this.txtCWC.Text = Convert.ToString(Math.Round(((out_E3 - Convert.ToDouble(this.txtCWL.Text) * Convert.ToDouble(this.txtCWX.Text) / 10E+12) * 5), 0));
                      
                            break;
                        case "A1"://读系数和零偏
                            data[0] = buf.Substring(14, 2);//A箱电流系数
                            data[1] = buf.Substring(16, 2);
                            data[2] = buf.Substring(18, 2);

                            data[3] = buf.Substring(20, 2);//A箱电压系数
                            data[4] = buf.Substring(22, 2);
                            data[5] = buf.Substring(24, 2);

                            data[6] = buf.Substring(26, 2);//A箱功率系数
                            data[7] = buf.Substring(28, 2);
                            data[8] = buf.Substring(30, 2);

                            data[9] = buf.Substring(32, 2);//A箱电流零偏
                            data[10] = buf.Substring(34, 2);
                            data[11] = buf.Substring(36, 2);

                            data[12] = buf.Substring(38, 2);//A箱电压零偏
                            data[13] = buf.Substring(40, 2);
                            data[14] = buf.Substring(42, 2);

                            data[15] = buf.Substring(44, 2);//A箱功率零偏
                            data[16] = buf.Substring(46, 2);
                            data[17] = buf.Substring(48, 2);

                            data[18] = buf.Substring(50, 2);//B箱电流系数
                            data[19] = buf.Substring(52, 2);
                            data[20] = buf.Substring(54, 2);

                            data[21] = buf.Substring(56, 2);//B箱电压系数
                            data[22] = buf.Substring(58, 2);
                            data[23] = buf.Substring(60, 2);

                            data[24] = buf.Substring(62, 2);//B箱功率系数
                            data[25] = buf.Substring(64, 2);
                            data[26] = buf.Substring(66, 2);

                            data[27] = buf.Substring(68, 2);//B箱电流零偏
                            data[28] = buf.Substring(70, 2);
                            data[29] = buf.Substring(72, 2);

                            data[30] = buf.Substring(74, 2);//B箱电压零偏
                            data[31] = buf.Substring(76, 2);
                            data[32] = buf.Substring(78, 2);

                            data[33] = buf.Substring(80, 2);//B箱功率零偏
                            data[34] = buf.Substring(82, 2);
                            data[35] = buf.Substring(84, 2);

                            data[36] = buf.Substring(86, 2);//C箱电流系数
                            data[37] = buf.Substring(88, 2);
                            data[38] = buf.Substring(90, 2);

                            data[39] = buf.Substring(92, 2);//C箱电压系数
                            data[40] = buf.Substring(94, 2);
                            data[41] = buf.Substring(96, 2);

                            data[42] = buf.Substring(98, 2);//C箱功率系数
                            data[43] = buf.Substring(100, 2);
                            data[44] = buf.Substring(102, 2);

                            data[45] = buf.Substring(104, 2);//C箱电流零偏
                            data[46] = buf.Substring(106, 2);
                            data[47] = buf.Substring(108, 2);

                            data[48] = buf.Substring(110, 2);//C箱电压零偏
                            data[49] = buf.Substring(112, 2);
                            data[50] = buf.Substring(114, 2);

                            data[51] = buf.Substring(116, 2);//C箱功率零偏
                            data[52] = buf.Substring(118, 2);
                            data[53] = buf.Substring(120, 2);


                            int iDataX = Hex2Dec(data[8]);
                            double iPX;
                            bool bSX = Convert.ToBoolean(iDataX >> 7);
                            out_IX1 = (Hex2Dec(data[2]) * 256 * 256 + Hex2Dec(data[1]) * 256 + Hex2Dec(data[0]));
                            out_VX1 = (Hex2Dec(data[5]) * 256 * 256 + Hex2Dec(data[4]) * 256 + Hex2Dec(data[3]));
                            out_EX1 = (Hex2Dec(data[8]) * 256 * 256 + Hex2Dec(data[7]) * 256 + Hex2Dec(data[6]));
                            iDataX = Hex2Dec(data[8]);
                            bSX = Convert.ToBoolean(iDataX >> 7);
                            if (bSX)
                                out_EX1 -= 0x01000000L;

                            out_IL1 = (Hex2Dec(data[11]) * 256 * 256 + Hex2Dec(data[10]) * 256 + Hex2Dec(data[9]));
                            out_VL1 = (Hex2Dec(data[14]) * 256 * 256 + Hex2Dec(data[13]) * 256 + Hex2Dec(data[12]));
                            out_EL1 = (Hex2Dec(data[17]) * 256 * 256 + Hex2Dec(data[16]) * 256 + Hex2Dec(data[15]));
                            iDataX = Hex2Dec(data[17]);
                        
                            bSX = Convert.ToBoolean(iDataX >> 7);
                            if (bSX)
                                out_EL1 -= 0x01000000L;
                            out_IX2 = (Hex2Dec(data[20]) * 256 * 256 + Hex2Dec(data[19]) * 256 + Hex2Dec(data[18]));
                            out_VX2 = (Hex2Dec(data[23]) * 256 * 256 + Hex2Dec(data[22]) * 256 + Hex2Dec(data[21]));
                            out_EX2 = (Hex2Dec(data[26]) * 256 * 256 + Hex2Dec(data[25]) * 256 + Hex2Dec(data[24]));
                            iDataX = Hex2Dec(data[26]);

                            bSX = Convert.ToBoolean(iDataX >> 7);
                            if (bSX)
                                out_EX2 -= 0x01000000L;
                            out_IL2 = (Hex2Dec(data[29]) * 256 * 256 + Hex2Dec(data[28]) * 256 + Hex2Dec(data[27]));
                            out_VL2 = (Hex2Dec(data[32]) * 256 * 256 + Hex2Dec(data[31]) * 256 + Hex2Dec(data[30]));
                            out_EL2 = (Hex2Dec(data[35]) * 256 * 256 + Hex2Dec(data[34]) * 256 + Hex2Dec(data[33]));
                            iDataX = Hex2Dec(data[35]);

                            bSX = Convert.ToBoolean(iDataX >> 7);
                            if (bSX)
                                out_EL2 -= 0x01000000L;
                            out_IX3 = (Hex2Dec(data[38]) * 256 * 256 + Hex2Dec(data[37]) * 256 + Hex2Dec(data[36]));
                            out_VX3 = (Hex2Dec(data[41]) * 256 * 256 + Hex2Dec(data[40]) * 256 + Hex2Dec(data[39]));
                            out_EX3 = (Hex2Dec(data[44]) * 256 * 256 + Hex2Dec(data[43]) * 256 + Hex2Dec(data[42]));
                            iDataX = Hex2Dec(data[44]);

                            bSX = Convert.ToBoolean(iDataX >> 7);
                            if (bSX)
                                out_EX3 -= 0x01000000L;
                            out_IL3 = (Hex2Dec(data[47]) * 256 * 256 + Hex2Dec(data[46]) * 256 + Hex2Dec(data[45]));
                            out_VL3 = (Hex2Dec(data[50]) * 256 * 256 + Hex2Dec(data[49]) * 256 + Hex2Dec(data[48]));
                            out_EL3 = (Hex2Dec(data[53]) * 256 * 256 + Hex2Dec(data[52]) * 256 + Hex2Dec(data[51]));
                            iDataX = Hex2Dec(data[53]);

                            bSX = Convert.ToBoolean(iDataX >> 7);
                            if (bSX)
                                out_EL3 -= 0x01000000L;
                            this.txtAIX.Text = out_IX1.ToString();
                            this.txtAVX.Text = out_VX1.ToString();
                            this.txtAWX.Text = out_EX1.ToString();

                            this.txtBIX.Text = out_IX2.ToString();
                            this.txtBVX.Text = out_VX2.ToString();
                            this.txtBWX.Text = out_EX2.ToString();

                            this.txtCIX.Text = out_IX3.ToString();
                            this.txtCVX.Text = out_VX3.ToString();
                            this.txtCWX.Text = out_EX3.ToString();

                            this.txtAIL.Text = out_IL1.ToString();
                            this.txtAVL.Text = out_VL1.ToString();
                            this.txtAWL.Text = out_EL1.ToString();

                            this.txtBIL.Text = out_IL2.ToString();
                            this.txtBVL.Text = out_VL2.ToString();
                            this.txtBWL.Text = out_EL2.ToString();

                            this.txtCIL.Text = out_IL3.ToString();
                            this.txtCVL.Text = out_VL3.ToString();
                            this.txtCWL.Text = out_EL3.ToString();


                            this.timer1.Enabled = true;
                            break;

                    }
                }
            }
        }

        private void btnwriteSet_Click(object sender, EventArgs e)
        {

            this.timer1.Enabled = false;

            try
            {
                MycmdReadData = new byte[9];
                MycmdReadData[0] = 0xFE;
                MycmdReadData[1] = 0xFE;
                MycmdReadData[2] = 0xFE;
                MycmdReadData[3] = 0x68;
                MycmdReadData[4] = 0x0A;
                MycmdReadData[5] = 0x21;
                MycmdReadData[6] = 0x00;
                MycmdReadData[7] = (byte)(MycmdReadData[4] + MycmdReadData[5] + MycmdReadData[6]);//校验码,累加和
                MycmdReadData[8] = 0x16;
                PageNO = 0;
                sys_buf = "";
                show_buf = "";
                //com.InBufferCount = 0;
                com.Output = MycmdReadData;

            }
            catch
            {
                this.lblMsg.Text = "发送信号错误!";
            }
            
            
        }

        private void btnSetX_MouseMove(object sender, MouseEventArgs e)
        {
            this.lblxs.Visible = true ;
        }

        private void btnSetL_MouseMove(object sender, MouseEventArgs e)
        {
            this.lbllp.Visible = true;

        }

        private void btnSetL_MouseLeave(object sender, EventArgs e)
        {
            this.lbllp.Visible = false;
        }

        private void btnSetX_MouseLeave(object sender, EventArgs e)
        {
            this.lblxs.Visible = false;
        }

        private void groupBox5_Enter(object sender, EventArgs e)
        {

        }   
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -