//N5751A
        private void button3_Click(object sender, EventArgs e)
        {
            string strIP;
            UInt32 nPort;
            string resourceName;
            int    error = 0;

            if (button3.Text == "打开")//用户要连接仪器
            {
                strIP = this.ipAddressControl3.Text;
                nPort = (UInt32)this.Port3.Value;
                //连接设备
                resourceName = "TCPIP0::" + strIP + "::inst0::INSTR";

                error = CDll.ConnectSpecificInstrument(CGloabal.g_curInstrument.strInstruName, resourceName);
                if (error < 0)//连接失败
                {
                    button3.Text = "打开";
                }
                else//连接成功,则要将当前用户输入的IP地址和端口号保存到ini文件中
                {
                    CDll.SaveInputNetInforsToIniFile(CGloabal.g_curInstrument.strInstruName, strIP, nPort);
                    button3.Text = "关闭";
                }
            }
            else//此时用户要断开连接
            {
                error = CDll.CloseSpecificInstrument(CGloabal.g_curInstrument.strInstruName);
                if (error < 0)//断开失败,则还要将switchConnect恢复为连接状态
                {
                    button3.Text = "关闭";
                }
            }
        }
Example #2
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            //居中显示
            this.StartPosition   = FormStartPosition.CenterScreen;
            this.FormBorderStyle = FormBorderStyle.Fixed3D;
            //显示应用程序在任务栏中的图标
            this.ShowInTaskbar = true;

            //首先要从ini文件读取仪器的参数信息
            CDll.GetAlltheInstumentsParasFromIniFile();
            ipAddressControl.Text = CGloabal.g_InstrPowerModule.ipAdress;
            port.Value            = CGloabal.g_InstrPowerModule.port;

            ipAddressControl2.Text = CGloabal.g_InstrPowerModule.ipAdress;
            port2.Value            = CGloabal.g_InstrScopeModule.port;

            multiNum.Value = CGloabal.g_InstrMultimeterModule.port;

            //dt.Columns.Add("序号");
            dt.Columns.Add("时间"); dt.Columns.Add("电压1"); dt.Columns.Add("电流1"); dt.Columns.Add("电压2"); dt.Columns.Add("电流2"); dt.Columns.Add("速率");
            dt.Columns.Add("芯片1通道1发"); dt.Columns.Add("芯片1通道1收"); dt.Columns.Add("芯片1通道1错误"); dt.Columns.Add("芯片2通道1发"); dt.Columns.Add("芯片2通道1收"); dt.Columns.Add("芯片2通道1错误");
            dt.Columns.Add("芯片1通道2发"); dt.Columns.Add("芯片1通道2收"); dt.Columns.Add("芯片1通道2错误"); dt.Columns.Add("芯片2通道2发"); dt.Columns.Add("芯片2通道2收"); dt.Columns.Add("芯片2通道2错误");
            dt.Columns.Add("芯片1通道3发"); dt.Columns.Add("芯片1通道3收"); dt.Columns.Add("芯片1通道3错误"); dt.Columns.Add("芯片2通道3发"); dt.Columns.Add("芯片2通道3收"); dt.Columns.Add("芯片2通道3错误");
            dt.Columns.Add("芯片1通道4发"); dt.Columns.Add("芯片1通道4收"); dt.Columns.Add("芯片1通道4错误"); dt.Columns.Add("芯片2通道4发"); dt.Columns.Add("芯片2通道4收"); dt.Columns.Add("芯片2通道4错误");



            //暂时隐藏数据加载
            tabPage5.Parent = null;
            //bgWork.DoWork += Fn_RunBack;
            //bgWork.ProgressChanged += Fn_ProgressChanged;
        }
Example #3
0
        private void btnChipSet_Click(object sender, EventArgs e)
        {
            setLabel.Text = "";

            ChipModel CHIPMODEL = new ChipModel();

            CHIPMODEL.chipSelect = chipSelect.SelectedIndex;
            CHIPMODEL.pathSelect = pathSelect.SelectedIndex;

            CHIPMODEL.baudRate    = baudRate.SelectedItem.ToString();
            CHIPMODEL.parityCheck = parityCheck.SelectedItem.ToString();
            CHIPMODEL.stopBit     = stopBit.SelectedItem.ToString();
            CHIPMODEL.byteLength  = byteLength.SelectedItem.ToString();

            CHIPMODEL.FIFOSelect = FIFOSelect.SelectedItem.ToString();

            CHIPMODEL.DMAPattern  = DMAPattern.SelectedItem.ToString();
            CHIPMODEL.receiveFIFO = receiveFIFO.SelectedItem.ToString();
            CHIPMODEL.sendTarget  = sendTarget.SelectedItem.ToString();

            CHIPMODEL.receiveInterrupt = receiveInterrupt.SelectedItem.ToString();
            CHIPMODEL.sendInterrupt    = sendInterrupt.SelectedItem.ToString();
            CHIPMODEL.receiveCache     = receiveCache.SelectedItem.ToString();

            int error = CDll.ChipSet(CHIPMODEL);

            if (error >= 0)
            {
                setLabel.Text = "设置成功...";
            }
        }
Example #4
0
        private void reg_write_Click(object sender, EventArgs e)
        {
            int chipsel;
            int channel;

            if (reg_chipsel.ToString() == "芯片2")
            {
                chipsel = 0x01;
            }
            else
            {
                chipsel = 0x00;
            }

            if (reg_channelSel.ToString() == "通道2")
            {
                channel = 1;
            }
            else if (reg_channelSel.ToString() == "通道3")
            {
                channel = 2;
            }
            else if (reg_channelSel.ToString() == "通道4")
            {
                channel = 3;
            }
            else
            {
                channel = 0;
            }

            //THR
            //IER 中断使能寄存器
            //FCR FIFO 控制寄存器
            //LCR 线控寄存器
            //SCR 备用寄存器
            //DLL 分频器波特率
            //DLM 分频器波特率
            //EFR 增强特性寄存器
            label109.Text = "写入进行中";
            this.Refresh();

            CDll.RegWriteData(chipsel, channel, 08, Convert.ToInt32(DLL_W.Text));
            CDll.RegWriteData(chipsel, channel, 09, Convert.ToInt32(DLM_W.Text));
            CDll.RegWriteData(chipsel, channel, 10, Convert.ToInt32(EFR_W.Text));
            CDll.RegWriteData(chipsel, channel, 03, Convert.ToInt32(LCR_W.Text));
            CDll.RegWriteData(chipsel, channel, 0, Convert.ToInt32(THR_W.Text));
            CDll.RegWriteData(chipsel, channel, 01, Convert.ToInt32(IER_W.Text));
            CDll.RegWriteData(chipsel, channel, 02, Convert.ToInt32(FCR_W.Text));
            CDll.RegWriteData(chipsel, channel, 07, Convert.ToInt32(SCR_W.Text));

            label109.Text = "写入完毕";
            this.Refresh();
        }
Example #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void reg_read_Click(object sender, EventArgs e)
        {
            int chipsel;
            int channel;

            if (reg_chipsel.ToString() == "芯片2")
            {
                chipsel = 0x01;
            }
            else
            {
                chipsel = 0x00;
            }

            if (reg_channelSel.ToString() == "通道2")
            {
                channel = 1;
            }
            else if (reg_channelSel.ToString() == "通道3")
            {
                channel = 2;
            }
            else if (reg_channelSel.ToString() == "通道4")
            {
                channel = 3;
            }
            else
            {
                channel = 0;
            }
            label109.Text = "读取进行中";
            this.Refresh();
            // label109.f
            byte[] readByte = CDll.regReadData(chipsel, channel, 0);       //RBR
            RBR_R.Text    = readByte[5].ToString();
            readByte      = CDll.regReadData(chipsel, channel, 1);
            IER_R.Text    = readByte[5].ToString();
            readByte      = CDll.regReadData(chipsel, channel, 2);
            IIR_R.Text    = readByte[5].ToString();
            readByte      = CDll.regReadData(chipsel, channel, 3);
            LCR_R.Text    = readByte[5].ToString();
            readByte      = CDll.regReadData(chipsel, channel, 5);
            LSR_R.Text    = readByte[5].ToString();
            readByte      = CDll.regReadData(chipsel, channel, 7);  //SCR
            SCR_R.Text    = readByte[5].ToString();
            readByte      = CDll.regReadData(chipsel, channel, 8);  //DLL
            DLL_R.Text    = readByte[5].ToString();
            readByte      = CDll.regReadData(chipsel, channel, 9);  //DLM
            DLM_R.Text    = readByte[5].ToString();
            readByte      = CDll.regReadData(chipsel, channel, 10); //EFR
            EFR_R.Text    = readByte[5].ToString();
            label109.Text = "读取完毕";
            this.Refresh();
        }
Example #6
0
        private void btnLSRRead1_Click(object sender, EventArgs e)
        {
            this.lsrList1.GridLines     = true;                        //显示表格线
            this.lsrList1.View          = View.Details;                //显示表格细节
            this.lsrList1.LabelEdit     = false;                       //是否可编辑,ListView只可编辑第一列。
            this.lsrList1.Scrollable    = true;                        //有滚动条
            this.lsrList1.HeaderStyle   = ColumnHeaderStyle.Clickable; //对表头进行设置
            this.lsrList1.FullRowSelect = true;                        //是否可以选择行

            lsrList1.Columns.Clear();

            //读取数据
            byte[] readByte = CDll.BaseTestReadData(0, basePath1.Text, "LSR");

            this.lsrList1.Columns.Add("FIFOERR", 70);
            this.lsrList1.Columns.Add("TEMT", 50);
            this.lsrList1.Columns.Add("THRE", 50);
            this.lsrList1.Columns.Add("BI", 36);
            this.lsrList1.Columns.Add("FE", 36);
            this.lsrList1.Columns.Add("PE", 36);
            this.lsrList1.Columns.Add("OE", 36);
            this.lsrList1.Columns.Add("DR", 36);

            ListViewItem[] p   = new ListViewItem[1];
            string[]       ass = new string[8] {
                "", "", "", "", "", "", "", ""
            };

            //添加

            {
                ass[7] = ((readByte[5] & 0x01)).ToString();
                ass[6] = ((readByte[5] & 0x02) >> 1).ToString();
                ass[5] = ((readByte[5] & 0x04) >> 2).ToString();
                ass[4] = ((readByte[5] & 0x08) >> 3).ToString();
                ass[3] = ((readByte[5] & 0x10) >> 4).ToString();
                ass[2] = ((readByte[5] & 0x20) >> 5).ToString();
                ass[1] = ((readByte[5] & 0x40) >> 6).ToString();
                ass[0] = ((readByte[5] & 0x80) >> 7).ToString();
            }
            p[0] = new ListViewItem(ass);

            if (lsrList1.Items.Count > 0)
            {
                this.lsrList1.Items.Remove(this.lsrList1.Items[0]);
            }

            this.lsrList1.Items.AddRange(p);
        }
Example #7
0
        private void btnIIRRead2_Click(object sender, EventArgs e)
        {
            this.iirList2.GridLines     = true;                        //显示表格线
            this.iirList2.View          = View.Details;                //显示表格细节
            this.iirList2.LabelEdit     = false;                       //是否可编辑,ListView只可编辑第一列。
            this.iirList2.Scrollable    = true;                        //有滚动条
            this.iirList2.HeaderStyle   = ColumnHeaderStyle.Clickable; //对表头进行设置
            this.iirList2.FullRowSelect = true;                        //是否可以选择行

            iirList2.Columns.Clear();

            //读取数据
            byte[] readByte = CDll.BaseTestReadData(1, basePath2.Text, "IIR");


            this.iirList2.Columns.Add("FIFOE", 60);
            this.iirList2.Columns.Add("FIFOE", 60);
            this.iirList2.Columns.Add("ID4", 40);
            this.iirList2.Columns.Add("ID3", 40);
            this.iirList2.Columns.Add("ID2", 40);
            this.iirList2.Columns.Add("ID1", 40);
            this.iirList2.Columns.Add("ID0", 40);
            this.iirList2.Columns.Add("NINT", 45);

            ListViewItem[] p   = new ListViewItem[1];
            string[]       ass = new string[8] {
                "", "", "", "", "", "", "", ""
            };

            //添加
            {
                ass[7] = ((readByte[5] & 0x01)).ToString();
                ass[6] = ((readByte[5] & 0x02) >> 1).ToString();
                ass[5] = ((readByte[5] & 0x04) >> 2).ToString();
                ass[4] = ((readByte[5] & 0x08) >> 3).ToString();
                ass[3] = ((readByte[5] & 0x10) >> 4).ToString();
                ass[2] = ((readByte[5] & 0x20) >> 5).ToString();
                ass[1] = ((readByte[5] & 0x40) >> 6).ToString();
                ass[0] = ((readByte[5] & 0x80) >> 7).ToString();
            }

            p[0] = new ListViewItem(ass);

            if (iirList2.Items.Count > 0)
            {
                this.iirList2.Items.Remove(this.iirList2.Items[0]);
            }
            this.iirList2.Items.AddRange(p);
        }
        private void MainForm_Load(object sender, EventArgs e)
        {
            //居中显示
            this.StartPosition   = FormStartPosition.CenterScreen;
            this.FormBorderStyle = FormBorderStyle.Fixed3D;
            //显示应用程序在任务栏中的图标
            this.ShowInTaskbar = true;
            //获取应用程序的运行路径
            CGloabal.strExecuteBeginDir = System.Windows.Forms.Application.StartupPath;
            //从ini文件中读取仪器的参数
            CDll.GetAlltheInstumentsParasFromIniFile();

            //模拟点击该按钮
            button测试仪器管理.PerformClick();
        }
Example #9
0
        private void btnOscill_Click(object sender, EventArgs e)
        {
            string strIP;
            UInt32 nPort;
            string resourceName;
            int    error = 0;

            if (btnOscill.Text == "打开")//用户要连接仪器
            {
                strIP = this.ipAddressControl2.Text;
                nPort = (UInt32)this.port2.Value;
                //连接设备
                resourceName = "TCPIP0::" + strIP + "::inst0::INSTR";

                error = CDll.ConnectSpecificInstrument(CGloabal.g_InstrScopeModule.strInstruName, resourceName);
                if (error < 0)//连接失败
                {
                    CCommonFuncs.ShowHintInfor(eHintInfoType.error, "示波器打开失败!");
                    btnOscill.Text = "打开";
                }
                else//连接成功,则要将当前用户输入的IP地址和端口号保存到ini文件中
                {
                    CDll.SaveInputNetInforsToIniFile(CGloabal.g_InstrScopeModule.strInstruName, strIP, nPort);
                    btnOscill.Text = "关闭";
                }
            }
            else//此时用户要断开连接
            {
                error = CDll.CloseSpecificInstrument(CGloabal.g_InstrScopeModule.strInstruName);
                if (error < 0)//断开失败,则还要将switchConnect恢复为连接状态
                {
                    btnOscill.Text = "关闭";
                }
                else
                {
                    btnOscill.Text = "打开";
                }
            }
        }
Example #10
0
        private void btnRead2_Click(object sender, EventArgs e)
        {
            this.list2.GridLines     = true;                        //显示表格线
            this.list2.View          = View.Details;                //显示表格细节
            this.list2.LabelEdit     = false;                       //是否可编辑,ListView只可编辑第一列。
            this.list2.Scrollable    = true;                        //有滚动条
            this.list2.HeaderStyle   = ColumnHeaderStyle.Clickable; //对表头进行设置
            this.list2.FullRowSelect = true;                        //是否可以选择行

            list2.Columns.Clear();

            //读取数据
            byte[] readByte = CDll.BaseTestReadData(1, basePath2.Text, "ARM");

            this.list2.Columns.Add("RXRDY", 125);
            this.list2.Columns.Add("TXRDY", 125);
            this.list2.Columns.Add("IRQ", 125);


            ListViewItem[] p   = new ListViewItem[1];
            string[]       ass = new string[3] {
                "", "", ""
            };

            //添加
            {
                ass[2] = ((readByte[4] & 0x01)).ToString();
                ass[1] = ((readByte[4] & 0x02) >> 1).ToString();
                ass[0] = ((readByte[4] & 0x04) >> 2).ToString();
            }
            p[0] = new ListViewItem(ass);
            if (list2.Items.Count > 0)
            {
                this.list2.Items.Remove(this.list2.Items[0]);
            }
            this.list2.Items.AddRange(p);
        }
Example #11
0
 private void baseRead2_Click(object sender, EventArgs e)
 {
     byte[] readByte = CDll.BaseTestReadData(1, basePath2.Text, "BASE");
     receiveData2.Text = ((int)readByte[4]).ToString();
 }
Example #12
0
 private void baseSend2_Click(object sender, EventArgs e)
 {
     CDll.BaseTestSendData(1, basePath2.Text, Convert.ToInt32(sendData2.Text));
 }
Example #13
0
        private int  CmdsAnalysis(byte[] CmdBuf, ref int nCmdID)
        {
            int    nTmpVal;
            int    nArrayIndex = 0;
            string strErrMsg   = "";

            if (CmdBuf[0] != 0xAA)
            {
                return(-1);
            }
            if (CmdBuf[23] != 0xBB)
            {
                return(-1);
            }

            //波特率
            if (CmdBuf[2] == 104)
            {
                RModel.rate  = 9600;
                label14.Text = label15.Text = label16.Text = label17.Text = "9600bps";
                label34.Text = label35.Text = label36.Text = label37.Text = "9600bps";
            }
            if (CmdBuf[2] == 2)
            {
                RModel.rate  = 500000;
                label14.Text = label15.Text = label16.Text = label17.Text = "500Kbps";
                label34.Text = label35.Text = label36.Text = label37.Text = "500Kbps";
            }
            //通道1
            tupSend1    += CmdBuf[6];
            tupError11  += CmdBuf[7];
            tupReceive1 += CmdBuf[8];
            tupError21  += CmdBuf[9];

            label24.Text = label39.Text = tupSend1.ToString();
            label70.Text = tupError11.ToString();

            label19.Text = label44.Text = tupReceive1.ToString();
            label66.Text = tupError21.ToString();
            //数据保存
            RModel.sendVal11   = RModel.receivVal21 = CmdBuf[6];
            RModel.errorVal11  = CmdBuf[7];
            RModel.receivVal11 = RModel.sendVal21 = CmdBuf[8];
            RModel.errorVal21  = CmdBuf[9];

            //通道2
            tupSend2    += CmdBuf[10];
            tupError12  += CmdBuf[11];
            tupReceive2 += CmdBuf[12];
            tupError22  += CmdBuf[13];

            label25.Text = label40.Text = tupSend2.ToString();
            label71.Text = tupError12.ToString();

            label20.Text = label45.Text = tupReceive2.ToString();
            label67.Text = tupError22.ToString();

            //数据保存
            RModel.sendVal12   = RModel.receivVal22 = CmdBuf[10];
            RModel.errorVal12  = CmdBuf[11];
            RModel.receivVal12 = RModel.sendVal22 = CmdBuf[12];
            RModel.errorVal22  = CmdBuf[13];
            //通道3
            tupSend3    += CmdBuf[14];
            tupError13  += CmdBuf[15];
            tupReceive3 += CmdBuf[16];
            tupError23  += CmdBuf[17];

            label26.Text = label41.Text = tupSend3.ToString();
            label72.Text = tupError13.ToString();
            label21.Text = label46.Text = tupReceive3.ToString();
            label68.Text = tupError23.ToString();

            //数据保存
            RModel.sendVal13   = RModel.receivVal23 = CmdBuf[14];
            RModel.errorVal13  = CmdBuf[15];
            RModel.receivVal13 = RModel.sendVal23 = CmdBuf[16];
            RModel.errorVal23  = CmdBuf[17];
            //通道4
            tupSend4    += CmdBuf[18];
            tupError14  += CmdBuf[19];
            tupReceive4 += CmdBuf[20];
            tupError24  += CmdBuf[21];

            label27.Text = label47.Text = tupSend4.ToString();
            label73.Text = tupError24.ToString();
            label22.Text = label42.Text = tupReceive4.ToString();
            label69.Text = tupError14.ToString();
            //数据保存
            RModel.sendVal14   = RModel.receivVal24 = CmdBuf[18];
            RModel.errorVal14  = CmdBuf[19];
            RModel.receivVal14 = RModel.sendVal24 = CmdBuf[20];
            RModel.errorVal24  = CmdBuf[21];

            CGloabal.LModel.Add(RModel);

            try
            {
                DataRow dr = dt.NewRow();
                foreach (var item in CGloabal.LModel)
                {
                    //dr["序号"] = kkNum;
                    dr["时间"]      = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");//item.curDate;
                    dr["电压1"]     = item.volVal1; dr["电流1"] = item.eleVal1; dr["电压2"] = item.volVal2; dr["电流2"] = item.eleVal2; dr["速率"] = item.rate;
                    dr["芯片1通道1发"] = item.sendVal11; dr["芯片1通道1收"] = item.receivVal11; dr["芯片1通道1错误"] = item.errorVal11;
                    dr["芯片2通道1发"] = item.sendVal21; dr["芯片2通道1收"] = item.receivVal21; dr["芯片2通道1错误"] = item.errorVal21;

                    dr["芯片1通道2发"] = item.sendVal12; dr["芯片1通道2收"] = item.receivVal12; dr["芯片1通道2错误"] = item.errorVal12;
                    dr["芯片2通道2发"] = item.sendVal22; dr["芯片2通道2收"] = item.receivVal22; dr["芯片2通道2错误"] = item.errorVal22;

                    dr["芯片1通道3发"] = item.sendVal13; dr["芯片1通道3收"] = item.receivVal13; dr["芯片1通道3错误"] = item.errorVal13;
                    dr["芯片2通道3发"] = item.sendVal23; dr["芯片2通道3收"] = item.receivVal23; dr["芯片2通道3错误"] = item.errorVal23;

                    dr["芯片1通道4发"] = item.sendVal14; dr["芯片1通道4收"] = item.receivVal14; dr["芯片1通道4错误"] = item.errorVal14;
                    dr["芯片2通道4发"] = item.sendVal24; dr["芯片2通道4收"] = item.receivVal24; dr["芯片2通道4错误"] = item.errorVal24;
                }

                dt.Rows.Add(dr);
                bgWork.ReportProgress(10);

                //数据保存到Excel中
                int kk = CDll.DataSaveExcel(CGloabal.LModel);
                if (kk > 0)
                {
                    CGloabal.LModel.Clear();
                }
            }
            catch (Exception ex)
            {
                return(0);
            }

            return(0);
        }
Example #14
0
 //FIFO正确性测试
 private void FIFOTest_Click(object sender, EventArgs e)
 {
     FIFOResult.Text = CDll.DMATestAndFIFOTest("FIFO");
 }