Exemplo n.º 1
0
        private void button25_Click(object sender, EventArgs e)//复旦微:退出厂内模式
        {
            string      result = null;
            Protocol645 p645   = new Protocol645();

            p645.FDWBroad("AA0F", "00", out result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 设参数
        /// </summary>
        /// <param name="tbObj">要输入数据的文本框控件name</param>
        /// <param name="dataId"></param>
        private void SetParameter(object tbObj, string dataId)
        {
            if (!(tbObj is TextBox))
            {
                return;
            }

            TextBox tb      = (TextBox)tbObj;
            string  strDate = tb.Text;

            if (strDate.Length != tb.MaxLength)
            {
                MessageBox.Show("数据长度过长或不足!");
                return;
            }

            if (dataId == "04000101" || strDate.Length == 6)//如果是日期,则要判断星期
            {
                strDate = Method.JustWeek(strDate);
            }
            if (!Protocol645.WriteData(dataId, strDate))
            {
                tb.ForeColor = Color.Red;
                tb.Text      = "Err";
            }
        }
Exemplo n.º 3
0
        private void btnReadStatus3_Click(object sender, EventArgs e)//电表运行状态字3
        {
            tbRunStatus3.Text = null;
            Protocol645 p645 = new Protocol645();

            p645.ReadParameter(tbRunStatus3, "04000503");
            string str = tbRunStatus3.Text;

            if (str.Length == 4)
            {
                List <string> list = new List <string>();
                list.Add("电表运行状态字3:");
                list.Add("预跳闸报警状态\r\n(0无,1有)");
                list.Add("继电器命令状态\r\n(0通,1断)");
                list.Add("当前运行时区\r\n(0第一套,1第二套");
                list.Add("继电器状态\r\n(0通,1断)");
                list.Add("红外认证/编程\r\n允许状态\r\n(0失效,1有效)");
                list.Add("供电方式");
                list.Add("(00主电源\r\n01辅助电源\r\n10电池供电)");
                list.Add("当前运行时段\r\n(0第一套,1第二套)");
                list.Add("远程开户\r\n(0开户,1未开户)");
                list.Add("本地开户\r\n(0开户,1未开户)");
                list.Add("身份认证状态\r\n(0失效,1有效)");
                list.Add("保电状态\r\n(0非保电,1保电)");
                list.Add("保留");
                list.Add("保留");
                list.Add("电能表类型");
                list.Add("(00非预付费\r\n01电量型预付费表\r\n10电费型预付费表)");
                DrawGrid(str, list);
            }
        }
Exemplo n.º 4
0
        private void btnSdSet_Click(object sender, EventArgs e)
        {
            string      sData = null;
            Protocol645 p645  = new Protocol645();

            for (int i = 14; i > 0; i--)
            {
                TextBox tmpTextBox = this.gBSd.Controls.Find("txtSd" + i.ToString(), true)[0] as TextBox;
                sData += tmpTextBox.Text.Trim();
            }
            if (rBtnSd1.Checked)
            {
                for (int i = 1; i < 9; i++)
                {
                    if ((this.gBSd.Controls.Find("rBtnSd_" + i.ToString(), true)[0] as RadioButton).Checked)
                    {
                        p645.SetParameter("0401000" + i.ToString(), sData);
                    }
                }
            }
            if (rBtnSd2.Checked)
            {
                for (int i = 1; i < 9; i++)
                {
                    if ((this.gBSd.Controls.Find("rBtnSd_" + i.ToString(), true)[0] as RadioButton).Checked)
                    {
                        p645.SetParameter("0402000" + i.ToString(), sData);
                    }
                }
            }
        }
Exemplo n.º 5
0
        private void btnReadStatus2_Click(object sender, EventArgs e)//电表运行状态字2
        {
            tbRunStatus2.Text = null;
            Protocol645 p645 = new Protocol645();

            p645.ReadParameter(tbRunStatus2, "04000502");
            string str = tbRunStatus2.Text;

            if (str.Length == 4)
            {
                List <string> list = new List <string>();
                list.Add("电表运行状态字2:");
                list.Add("保留");
                list.Add("C相无功功率方向\r\n(0正向,1反向)");
                list.Add("B相无功功率方向\r\n(0正向,1反向)");
                list.Add("A相无功功率方向\r\n(0正向,1反向)");
                list.Add("保留");
                list.Add("C相有功功率方向\r\n(0正向,1反向)");
                list.Add("B相有功功率方向\r\n(0正向,1反向)");
                list.Add("A相有功功率方向\r\n(0正向,1反向)");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                DrawGrid(str, list);
            }
        }
Exemplo n.º 6
0
        private void btn插卡状态字_Click(object sender, EventArgs e)
        {
            tbCkztz.Text = null;
            Protocol645 p645 = new Protocol645();

            p645.ReadParameter(tbCkztz, "04001502");
            string str = tbCkztz.Text;

            if (str.Length == 4)
            {
                List <string> list = new List <string>();
                list.Add("插卡状态字:");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("插卡状态\r\n(00未知,01成功,10失败)");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                DrawGrid(str, list);
            }
        }
Exemplo n.º 7
0
        private void btnReadStatus6_Click(object sender, EventArgs e)//电表运行状态字6
        {
            tbRunStatus6.Text = null;
            Protocol645 p645 = new Protocol645();

            p645.ReadParameter(tbRunStatus6, "04000506");
            string str = tbRunStatus6.Text;

            if (str.Length == 4)
            {
                List <string> list = new List <string>();
                list.Add("电表运行状态字6:\r\nC相故障状态");
                list.Add("断相");
                list.Add("潮流反向");
                list.Add("过载");
                list.Add("过流");
                list.Add("失流");
                list.Add("过压");
                list.Add("欠压");
                list.Add("失压");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("断流");
                DrawGrid(str, list);
            }
        }
Exemplo n.º 8
0
        private void btnReadStatus7_Click(object sender, EventArgs e)//电表运行状态字7
        {
            tbRunStatus7.Text = null;
            Protocol645 p645 = new Protocol645();

            p645.ReadParameter(tbRunStatus7, "04000507");
            string str = tbRunStatus7.Text;

            if (str.Length == 4)
            {
                List <string> list = new List <string>();
                list.Add("电表运行状态字7:\r\n合相故障状态");
                list.Add("总功率因数\r\n超下限\r\n(0无故障,1故障)");
                list.Add("需量超限");
                list.Add("掉电");
                list.Add("辅助电源失电");
                list.Add("电流不平衡");
                list.Add("电压不平衡");
                list.Add("电流逆相序");
                list.Add("电压逆相序");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("保留");
                list.Add("开端钮盖\r\n(0无故障,1故障)");
                list.Add("开表盖\r\n(0无故障,1故障)");
                list.Add("电流严重不平衡\r\n(0无故障,1故障)");
                DrawGrid(str, list);
            }
        }
Exemplo n.º 9
0
 private void btnRead_Click(object sender, EventArgs e)
 {
     dataId.Clear();
     dataName.Clear();
     dgvReadData.Rows.Clear();
     foreach (TreeNode n in treeView1.Nodes)
     {
         GetChildNodeValue(n);
     }
     for (int i = 0; i < dataId.Count; i++)
     {
         dgvReadData.Rows.Add();
         dgvReadData[dataid, i].Value   = dataId[i].Substring(2);
         dgvReadData[dataname, i].Value = dataName[i];
         if (!cbIsReadIdOnly.Checked)
         {
             string      result = null;
             Protocol645 p645   = new Protocol645();
             if (p645.ReadData(dataId[i].Substring(2), out result))
             {
                 dgvReadData[datavalue, i].Value = result;
             }
         }
         dgvReadData.Update();
     }
 }
Exemplo n.º 10
0
        private void btnReadStatus1_Click(object sender, EventArgs e)//电表运行状态字1
        {
            tbRunStatus1.Text = null;
            Protocol645 p645 = new Protocol645();

            p645.ReadParameter(tbRunStatus1, "04000501");
            string str = tbRunStatus1.Text;

            if (str.Length == 4)
            {
                List <string> list = new List <string>();
                list.Add("电表运行状态字1:");
                list.Add("保留");
                list.Add("保留");
                list.Add("无功功率方向\r\n(0正向,1反向)");
                list.Add("有功功率方向\r\n(0正向,1反向)");
                list.Add("停电抄表电池\r\n(0正常,1欠压)");
                list.Add("时钟电池\r\n(0正常,1欠压)");
                list.Add("需量积算方式\r\n(0滑差,1区间)");
                list.Add("保留");
                list.Add("时钟故障");
                list.Add("透支状态");
                list.Add("存储器故障\r\n或损坏");
                list.Add("内部程序错误");
                list.Add("保留");
                list.Add("保留");
                list.Add("ESAM错误");
                list.Add("控制回路错误");
                DrawGrid(str, list);
            }
        }
        private void button3_Click(object sender, EventArgs e)//读电量并判断总电量-尖峰平谷的误差
        {
            foreach (Control tb in this.gbEnergy.Controls)
            {
                if (tb is TextBox)
                {
                    tb.Text = "";
                }
            }

            string      result = null;
            Protocol645 p645   = new Protocol645();

            for (int i = 0; i < 5; i++)
            {
                if (p645.ReadData("00000" + i.ToString() + "00", out result))
                {
                    (this.gbEnergy.Controls.Find("tbEnergy" + i.ToString(), true))[0].Text =
                        Convert.ToString(Convert.ToDouble(result) / 100);
                }
            }

            double sum = 0;

            sum            = Convert.ToDouble(tbEnergy1.Text) + Convert.ToDouble(tbEnergy2.Text) + Convert.ToDouble(tbEnergy3.Text) + Convert.ToDouble(tbEnergy4.Text);
            tbEnergy5.Text = Convert.ToString(sum);
            tbEnergy6.Text = ((Convert.ToDouble(tbEnergy0.Text) - sum)).ToString("F4");
        }
 private void TextBoxInputEnterEvent(object sender, KeyEventArgs e)
 {
     if (e.KeyCode == Keys.Enter)
     {
         TextBox     tbVal = new TextBox();
         TextBox     tbId  = (TextBox)sender;
         Protocol645 p645  = new Protocol645();
         if (tbId == textBox13)
         {
             tbVal = textBox12;
         }
         else if (tbId == textBox16)
         {
             tbVal = textBox17;
         }
         else if (tbId == textBox14)
         {
             tbVal = textBox15;
         }
         else if (tbId == textBox18)
         {
             tbVal = textBox19;
         }
         else
         {
             return;
         }
         p645.ReadParameter(tbVal, tbId.Text);
     }
 }
        private void btnReadBlock_Click(object sender, EventArgs e)
        {
            tbBlockData.Text = "";
            tbBlockData.Refresh();
            byte        ctl;
            string      ret;
            byte        seq  = 1;
            string      id   = tbReadBlockID.Text;
            Protocol645 p645 = new Protocol645();

            if (p645.ReadBlockData(id, out ctl, out ret))
            {
                tbBlockData.AppendText("第" + seq.ToString() + "帧数据(" + ret.Length / 2 + "字节):\r\n");
                tbBlockData.AppendText(ret + "\r\n---------------------------------\r\n");
                if (ctl == 0xb1)
                {
                    do
                    {
                        if (p645.ReadNextBlock(id, seq, out ctl, out ret))
                        {
                            tbBlockData.AppendText("第" + (seq + 1).ToString() + "帧数据(" + ret.Length / 2 + "字节):\r\n");
                            tbBlockData.AppendText(ret + "\r\n---------------------------------\r\n");
                            seq++;
                        }
                        else
                        {
                            break;
                        }
                    } while (ctl == 0xb2);
                }
            }
        }
        private void TongyongReadAndSet(object sender, EventArgs e)
        {
            Button      btn   = (Button)sender;
            TextBox     tbVal = new TextBox();
            TextBox     tbId  = new TextBox();
            Protocol645 p645  = new Protocol645();

            if (btn == button4 || btn == button9)
            {
                tbVal = textBox12; tbId = textBox13;
            }
            if (btn == button12 || btn == button13)
            {
                tbVal = textBox17; tbId = textBox16;
            }
            if (btn == button10 || btn == button11)
            {
                tbVal = textBox15; tbId = textBox14;
            }
            if (btn == button14 || btn == button15)
            {
                tbVal = textBox19; tbId = textBox18;
            }
            if (btn == button4 || btn == button12 || btn == button10 || btn == button14)
            {
                p645.ReadParameter(tbVal, tbId.Text);
            }
            else
            {
                p645.SetParameter(tbId.Text, tbVal.Text);
            }
        }
Exemplo n.º 15
0
        private void btnSqRead_Click(object sender, EventArgs e)
        {
            for (int i = 1; i < 15; i++)
            {
                TextBox tmpTextBox = this.Controls.Find("txtSq" + i.ToString(), true)[0] as TextBox;
                tmpTextBox.Text = "";
            }
            Functions.Delay(10);

            string      sqStr = null;
            Protocol645 p645  = new Protocol645();

            if (rBtnSq1.Checked)
            {
                p645.ReadData("04010000", out sqStr);
            }
            if (rBtnSq2.Checked)
            {
                p645.ReadData("04020000", out sqStr);
            }
            if (sqStr.Length > 0)
            {
                for (int i = 0; i < sqStr.Length / 6; i++)
                {
                    TextBox tmpTextBox = this.gBSq.Controls.Find("txtSq" + (i + 1).ToString(), true)[0] as TextBox;
                    tmpTextBox.Text = sqStr.Substring(sqStr.Length - (i + 1) * 6, 6);
                }
            }
        }
Exemplo n.º 16
0
        private void button24_Click(object sender, EventArgs e)//复旦微:厂内模式使能命令
        {
            string      result = null;
            Protocol645 p645   = new Protocol645();

            p645.FDWBroad("550F", "FF", out result);
        }
Exemplo n.º 17
0
        private void button21_Click(object sender, EventArgs e)//复旦微:电表初始化
        {
            string      result = null;
            Protocol645 p645   = new Protocol645();

            p645.FDWBroad("1413", "8054", out result);
        }
Exemplo n.º 18
0
        private void btnKM三相表清EEPROM_Click(object sender, EventArgs e)
        {
            string strVol          = (float.Parse(tbVol.Text) * 100).ToString().PadLeft(8, '0');
            string strCurr         = (float.Parse(tbCurr.Text) * 1000).ToString().PadLeft(8, '0');
            string strMaxCurr      = (float.Parse(tbMaxCurr.Text) * 1000).ToString().PadLeft(8, '0');
            string strYouGongLevel = (float.Parse(tbYouGongLevel.Text) * 10).ToString().PadLeft(2, '0');
            string strWuGongLevel  = (float.Parse(tbWuGongLevel.Text) * 10).ToString().PadLeft(2, '0');
            string strYouGongConst = tbYouGongConst.Text.PadLeft(8, '0');
            string strWuGongConst  = tbWuGongConst.Text.PadLeft(8, '0');
            string strMeterModel   = comboBoxMeterModel.SelectedIndex.ToString().PadLeft(2, '0');
            string strProductDate  = tbProductDate.Text.PadLeft(8, '0');
            string strProtocalVer  = comboBoxProtocalVer.SelectedIndex.ToString().PadLeft(2, '0');

            Protocol645 p645 = new Protocol645();

            if (p645.KM3PhaseClrEEP(strVol, strCurr, strMaxCurr, strYouGongLevel, strWuGongLevel, strYouGongConst, strWuGongConst,
                                    strMeterModel, strProductDate, strProtocalVer))
            {
                MessageBox.Show("命令已发送!");
            }
            else
            {
                MessageBox.Show("命令发送失败!");
            }
        }
Exemplo n.º 19
0
        private void btnKMClrEEP_Click(object sender, EventArgs e)
        {
            string      result = null;
            Protocol645 p645   = new Protocol645();

            p645.KMClrEEP(out result);
        }
Exemplo n.º 20
0
        private void btnReadAndSet(object sender, EventArgs e)//大读写按钮
        {
            Button btn = (Button)sender;

            foreach (Control ckb in this.splitContainer4.Panel2.Controls)
            {
                if (ckb is CheckBox)
                {
                    if (((CheckBox)ckb).Checked)
                    {
                        object      obj    = this.splitContainer4.Panel2.Controls.Find("tb" + ckb.Name.Substring(2, 8), true)[0];
                        string      dataId = ckb.Name.Substring(2, 8);
                        Protocol645 p645   = new Protocol645();
                        if (btn == btnR)
                        {
                            p645.ReadParameter(obj, dataId);
                        }
                        if (btn == btnS)
                        {
                            p645.SetParameter(obj, dataId);
                        }
                    }
                }
            }
        }
Exemplo n.º 21
0
        private void _97IdReadSet(object sender, EventArgs e)
        {
            Button      btn   = (Button)sender;
            TextBox     tbVal = new TextBox();
            TextBox     tbId  = new TextBox();
            string      res   = string.Empty;
            Protocol645 p645  = new Protocol645();

            if (btn == btnRead1 || btn == btnSet1)
            {
                tbId = txtId1; tbVal = txtData1;
            }
            if (btn == btnRead2 || btn == btnSet2)
            {
                tbId = txtId2; tbVal = txtData2;
            }
            if (btn == btnRead1 || btn == btnRead2)
            {
                tbVal.Text = "";
                Functions.Delay(10);
                p645.SF_ReadData(tbId.Text, out res);
                tbVal.Text = res;
            }
            if (btn == btnSet1 || btn == btnSet2)
            {
                if (!p645.SF_SetData(tbId.Text, tbVal.Text))
                {
                    //statusReturn.Text = "";
                }
            }
        }
        private void btn设显示内容_Click(object sender, EventArgs e)
        {
            Protocol645 p645 = new Protocol645();

            if (rbDisplayAuto.Checked)
            {
                int displayautoNum = Convert.ToInt16(tbXunxianNum.Text);
                if (dgvDisplay.Rows.Count == displayautoNum)
                {
                    //progressBar.Maximum = displayautoNum;
                    //progressBar.Value = 0;
                    for (int i = 0; i < displayautoNum; i++)
                    {
                        if (dgvDisplay[0, i].Value.ToString().Length == 8 && dgvDisplay[1, i].Value.ToString().Length == 2)
                        {
                            p645.SetParameter("040401" + (i + 1).ToString("X2"), dgvDisplay[1, i].Value.ToString() + dgvDisplay[0, i].Value.ToString());
                            //progressBar.Value++;
                        }
                        else
                        {
                            MessageBox.Show("输入数据长度错误,请检查!");
                            return;
                        }
                    }
                    MessageBox.Show("设表完毕!");
                }
                else
                {
                    MessageBox.Show("表格内容与要设置的屏数不相符");
                }
            }
            if (rbDisplayButton.Checked)
            {
                int displaybuttonNum = Convert.ToInt16(tbJianxianNum.Text);
                if (dgvDisplay.Rows.Count == displaybuttonNum)
                {
                    //progressBar.Maximum = displaybuttonNum;
                    //progressBar.Value = 0;
                    for (int i = 0; i < displaybuttonNum; i++)
                    {
                        if (dgvDisplay[0, i].Value.ToString().Length == 8 && dgvDisplay[1, i].Value.ToString().Length == 2)
                        {
                            p645.SetParameter("040402" + (i + 1).ToString("X2"), dgvDisplay[1, i].Value.ToString() + dgvDisplay[0, i].Value.ToString());
                            //progressBar.Value++;
                        }
                        else
                        {
                            MessageBox.Show("输入数据长度错误,请检查!");
                            return;
                        }
                    }
                    MessageBox.Show("设表完毕!");
                }
                else
                {
                    MessageBox.Show("表格内容与要设置的屏数不相符");
                }
            }
        }
Exemplo n.º 23
0
        private void button23_Click(object sender, EventArgs e)//福建:设表时间
        {
            Protocol645 p645 = new Protocol645();

            p645.SetParameter(textBox24, "04000101");
            Functions.Delay(10);
            p645.SetParameter(textBox23, "04000102");
        }
Exemplo n.º 24
0
        private void button22_Click(object sender, EventArgs e)//福建:读表时间
        {
            Protocol645 p645 = new Protocol645();

            p645.ReadParameter(textBox24, "04000101");
            textBox24.Text = textBox24.Text.Substring(0, 6);
            p645.ReadParameter(textBox23, "04000102");
        }
Exemplo n.º 25
0
        /// <summary>
        /// 设数据
        /// </summary>
        /// <param name="obj"></param>
        private void Set(object obj)
        {
            //_ret2 = "test";
            Ret2 = "test";
            Protocol645 p645 = new Protocol645();

            p645.WriteData(obj.ToString(), "");
        }
Exemplo n.º 26
0
        /// <summary>
        /// 读数据
        /// </summary>
        /// <param name="obj"></param>
        private void Read(object obj)
        {
            Ret = string.Empty;
            Protocol645 p645 = new Protocol645();

            p645.ReadData(obj.ToString(), out _ret);
            //Ret = obj.ToString();
        }
        private void btnSetMeterTime_Click(object sender, EventArgs e)
        {
            Protocol645 p645 = new Protocol645();

            p645.SetParameter(txtMeterTime1, "04000101");
            Functions.Delay(10);
            p645.SetParameter(txtMeterTime2, "04000102");
        }
        private void btnReadMeterTime_Click(object sender, EventArgs e)
        {
            Protocol645 p645 = new Protocol645();

            p645.ReadParameter(txtMeterTime1, "04000101");
            txtMeterTime1.Text = txtMeterTime1.Text.Substring(0, 6);
            p645.ReadParameter(txtMeterTime2, "04000102");
        }
Exemplo n.º 29
0
        private void btnSetPcDataTime_Click(object sender, EventArgs e)//设当前电脑日期时间
        {
            Protocol645 p645     = new Protocol645();
            string      dataDate = DateTime.Now.ToString("yyMMdd");

            dataDate = Functions.JustWeek(dataDate);
            p645.SetParameter("04000101", dataDate);
            p645.SetParameter("04000102", DateTime.Now.ToString("HHmmss"));
        }
Exemplo n.º 30
0
        private void ButtonParameterSet(object sender, EventArgs e)
        {
            Button      btn    = (Button)sender;
            object      obj    = splitContainer4.Panel2.Controls.Find("tb" + btn.Name.Substring(4), true)[0];
            string      dataId = btn.Name.Substring(4);
            Protocol645 p645   = new Protocol645();

            p645.SetParameter(obj, dataId);
        }