Adds new files from Corrtest

This commit is contained in:
Pradeep Kumar 2025-05-27 11:59:33 +04:00
parent 9a9750c983
commit 906b3e8fbf
151 changed files with 2246 additions and 95 deletions

14
.gitattributes vendored
View File

@ -578,5 +578,19 @@
/Figures/Co_Mo_phasediagram_davydovThermodynamicAssessmentCoMo1999.png filter=lfs diff=lfs merge=lfs -text
/Thesis.bbl-SAVE-ERROR filter=lfs diff=lfs merge=lfs -text
/Electrochemical/HIPed_Stellite1_EIS_LPR/test_ReStart_ReStart_ReStart_ReStart.cor filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/C\#实例/TestLib/.vs/TestLib/v16/Browse.VC.db filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/C\#实例/TestLib/bin/Debug/GraphControl.dll filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/C\#实例/TestLib/bin/Release/GraphControl.dll filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/C\#实例/TestLib/lib/GraphControl.dll filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/C\#实例/TestLib2/bin/Debug/GraphControl.dll filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/C\#实例/TestLib2/lib/GraphControl.dll filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/CSStudio6Lib/32/CSStudio6Lib.dll filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/CSStudio6Lib/64/CSStudio6Lib.dll filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/CSStudio6Lib接口说明书.docx filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/LabView实例/cv.png filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/LabView实例/swv.png filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/VC实例/Bin/Debug/CSStudio6Lib.dll filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/VC实例/Bin/Debug/TestLibForVC.exe filter=lfs diff=lfs merge=lfs -text
/non_academic_paper_references/equipment_manuals/potentiostat/VC实例/TestLibForVC/TestLibForVC.aps filter=lfs diff=lfs merge=lfs -text
*.jp*g filter=lfs diff=lfs merge=lfs -text
*.tif filter=lfs diff=lfs merge=lfs -text

View File

@ -2,5 +2,5 @@
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/></startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
</configuration>

View File

@ -0,0 +1,349 @@
namespace TestLib
{
partial class MainForm
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.btnSreach = new System.Windows.Forms.Button();
this.btnOcp = new System.Windows.Forms.Button();
this.lblTime = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.txtTime = new System.Windows.Forms.TextBox();
this.txtE1 = new System.Windows.Forms.TextBox();
this.txtE2 = new System.Windows.Forms.TextBox();
this.txtE3 = new System.Windows.Forms.TextBox();
this.txtE4 = new System.Windows.Forms.TextBox();
this.txtE5 = new System.Windows.Forms.TextBox();
this.txtFreq = new System.Windows.Forms.TextBox();
this.btnStop = new System.Windows.Forms.Button();
this.pnlGraph = new System.Windows.Forms.Panel();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.btnPotS = new System.Windows.Forms.Button();
this.btnGalS = new System.Windows.Forms.Button();
this.btnLSV = new System.Windows.Forms.Button();
this.btnCV = new System.Windows.Forms.Button();
this.btnEis = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// btnSreach
//
this.btnSreach.Location = new System.Drawing.Point(17, 13);
this.btnSreach.Name = "btnSreach";
this.btnSreach.Size = new System.Drawing.Size(61, 29);
this.btnSreach.TabIndex = 0;
this.btnSreach.Text = "搜索设备";
this.btnSreach.UseVisualStyleBackColor = true;
this.btnSreach.Click += new System.EventHandler(this.btnSreach_Click);
//
// btnOcp
//
this.btnOcp.Location = new System.Drawing.Point(86, 13);
this.btnOcp.Name = "btnOcp";
this.btnOcp.Size = new System.Drawing.Size(61, 29);
this.btnOcp.TabIndex = 0;
this.btnOcp.Text = "开路电位";
this.btnOcp.UseVisualStyleBackColor = true;
this.btnOcp.Click += new System.EventHandler(this.btnOcp_Click);
//
// lblTime
//
this.lblTime.AutoSize = true;
this.lblTime.Location = new System.Drawing.Point(20, 64);
this.lblTime.Name = "lblTime";
this.lblTime.Size = new System.Drawing.Size(35, 12);
this.lblTime.TabIndex = 1;
this.lblTime.Text = "时长:";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(107, 64);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(41, 12);
this.label1.TabIndex = 1;
this.label1.Text = "电位1:";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(200, 64);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(41, 12);
this.label2.TabIndex = 1;
this.label2.Text = "电位2:";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(293, 64);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(41, 12);
this.label3.TabIndex = 1;
this.label3.Text = "电位3:";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(386, 64);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(41, 12);
this.label4.TabIndex = 1;
this.label4.Text = "电位4:";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(479, 64);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(59, 12);
this.label5.TabIndex = 1;
this.label5.Text = "电位变化:";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(590, 64);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(35, 12);
this.label6.TabIndex = 1;
this.label6.Text = "采样:";
//
// txtTime
//
this.txtTime.Location = new System.Drawing.Point(20, 84);
this.txtTime.Name = "txtTime";
this.txtTime.Size = new System.Drawing.Size(67, 21);
this.txtTime.TabIndex = 2;
this.txtTime.Text = "100";
//
// txtE1
//
this.txtE1.Location = new System.Drawing.Point(107, 84);
this.txtE1.Name = "txtE1";
this.txtE1.Size = new System.Drawing.Size(67, 21);
this.txtE1.TabIndex = 2;
this.txtE1.Text = "0.1";
//
// txtE2
//
this.txtE2.Location = new System.Drawing.Point(200, 84);
this.txtE2.Name = "txtE2";
this.txtE2.Size = new System.Drawing.Size(67, 21);
this.txtE2.TabIndex = 2;
this.txtE2.Text = "-0.5";
//
// txtE3
//
this.txtE3.Location = new System.Drawing.Point(293, 84);
this.txtE3.Name = "txtE3";
this.txtE3.Size = new System.Drawing.Size(67, 21);
this.txtE3.TabIndex = 2;
this.txtE3.Text = "0.2";
//
// txtE4
//
this.txtE4.Location = new System.Drawing.Point(386, 84);
this.txtE4.Name = "txtE4";
this.txtE4.Size = new System.Drawing.Size(67, 21);
this.txtE4.TabIndex = 2;
this.txtE4.Text = "0.6";
//
// txtE5
//
this.txtE5.Location = new System.Drawing.Point(479, 84);
this.txtE5.Name = "txtE5";
this.txtE5.Size = new System.Drawing.Size(67, 21);
this.txtE5.TabIndex = 2;
this.txtE5.Text = "10";
//
// txtFreq
//
this.txtFreq.Location = new System.Drawing.Point(590, 84);
this.txtFreq.Name = "txtFreq";
this.txtFreq.Size = new System.Drawing.Size(67, 21);
this.txtFreq.TabIndex = 2;
this.txtFreq.Text = "10";
//
// btnStop
//
this.btnStop.Location = new System.Drawing.Point(651, 13);
this.btnStop.Name = "btnStop";
this.btnStop.Size = new System.Drawing.Size(83, 29);
this.btnStop.TabIndex = 0;
this.btnStop.Text = "停止";
this.btnStop.UseVisualStyleBackColor = true;
this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
//
// pnlGraph
//
this.pnlGraph.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pnlGraph.Location = new System.Drawing.Point(6, 112);
this.pnlGraph.Name = "pnlGraph";
this.pnlGraph.Size = new System.Drawing.Size(742, 463);
this.pnlGraph.TabIndex = 3;
this.pnlGraph.SizeChanged += new System.EventHandler(this.pnlGraph_SizeChanged);
//
// timer1
//
this.timer1.Interval = 1000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// btnPotS
//
this.btnPotS.Location = new System.Drawing.Point(156, 12);
this.btnPotS.Name = "btnPotS";
this.btnPotS.Size = new System.Drawing.Size(51, 29);
this.btnPotS.TabIndex = 0;
this.btnPotS.Text = "恒电位";
this.btnPotS.UseVisualStyleBackColor = true;
this.btnPotS.Click += new System.EventHandler(this.btnPotS_Click);
//
// btnGalS
//
this.btnGalS.Location = new System.Drawing.Point(214, 13);
this.btnGalS.Name = "btnGalS";
this.btnGalS.Size = new System.Drawing.Size(51, 29);
this.btnGalS.TabIndex = 0;
this.btnGalS.Text = "恒电流";
this.btnGalS.UseVisualStyleBackColor = true;
this.btnGalS.Click += new System.EventHandler(this.btnGalS_Click);
//
// btnLSV
//
this.btnLSV.Location = new System.Drawing.Point(271, 12);
this.btnLSV.Name = "btnLSV";
this.btnLSV.Size = new System.Drawing.Size(51, 29);
this.btnLSV.TabIndex = 0;
this.btnLSV.Text = "LSV";
this.btnLSV.UseVisualStyleBackColor = true;
this.btnLSV.Click += new System.EventHandler(this.btnLSV_Click);
//
// btnCV
//
this.btnCV.Location = new System.Drawing.Point(328, 13);
this.btnCV.Name = "btnCV";
this.btnCV.Size = new System.Drawing.Size(51, 29);
this.btnCV.TabIndex = 0;
this.btnCV.Text = "CV";
this.btnCV.UseVisualStyleBackColor = true;
this.btnCV.Click += new System.EventHandler(this.btnCV_Click);
//
// btnEis
//
this.btnEis.Location = new System.Drawing.Point(388, 12);
this.btnEis.Name = "btnEis";
this.btnEis.Size = new System.Drawing.Size(51, 29);
this.btnEis.TabIndex = 0;
this.btnEis.Text = "EIS";
this.btnEis.UseVisualStyleBackColor = true;
this.btnEis.Click += new System.EventHandler(this.btnEis_Click);
//
// button1
//
this.button1.Location = new System.Drawing.Point(445, 13);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(51, 29);
this.button1.TabIndex = 0;
this.button1.Text = "阶梯波";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(749, 574);
this.Controls.Add(this.pnlGraph);
this.Controls.Add(this.txtFreq);
this.Controls.Add(this.txtE5);
this.Controls.Add(this.txtE4);
this.Controls.Add(this.txtE3);
this.Controls.Add(this.txtE2);
this.Controls.Add(this.txtE1);
this.Controls.Add(this.txtTime);
this.Controls.Add(this.label6);
this.Controls.Add(this.label5);
this.Controls.Add(this.label4);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.lblTime);
this.Controls.Add(this.btnStop);
this.Controls.Add(this.btnEis);
this.Controls.Add(this.button1);
this.Controls.Add(this.btnCV);
this.Controls.Add(this.btnLSV);
this.Controls.Add(this.btnGalS);
this.Controls.Add(this.btnPotS);
this.Controls.Add(this.btnOcp);
this.Controls.Add(this.btnSreach);
this.Name = "MainForm";
this.Text = "测试程序";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button btnSreach;
private System.Windows.Forms.Button btnOcp;
private System.Windows.Forms.Label lblTime;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox txtTime;
private System.Windows.Forms.TextBox txtE1;
private System.Windows.Forms.TextBox txtE2;
private System.Windows.Forms.TextBox txtE3;
private System.Windows.Forms.TextBox txtE4;
private System.Windows.Forms.TextBox txtE5;
private System.Windows.Forms.TextBox txtFreq;
private System.Windows.Forms.Button btnStop;
private System.Windows.Forms.Panel pnlGraph;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.Button btnPotS;
private System.Windows.Forms.Button btnGalS;
private System.Windows.Forms.Button btnLSV;
private System.Windows.Forms.Button btnCV;
private System.Windows.Forms.Button btnEis;
private System.Windows.Forms.Button button1;
}
}

View File

@ -0,0 +1,295 @@
using CSStudio6Lib;
using GraphControl;
using GraphControl.GraphElements;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace TestLib
{
public partial class MainForm : Form
{
private ICSStudio6 m_spDev = new CSStudio6();
CSStudio6Class
public Graph graph = new Graph();
private GraphLine line1 = null;
public Graph graph2 = new Graph();
private GraphLine line2 = null;
public MainForm()
{
InitializeComponent();
string sVer = m_spDev.GetLibVersion();
InitGraph();
}
private void InitGraph()
{
graph.offsetLeft = 80;
graph.offsetRight = 20;
graph.offsetTop = 20;
graph.offsetBottom = 50;
graph.IsDrawCursor = true;
graph.Dock = DockStyle.Fill;
graph.YAxisTitleColor = Color.Red;
line1 = new GraphLine(AxisAssosiatedType.Left);
line1.lineColor = Color.Red;
line1.markColor = Color.Red;
line1.markStyle = PointStyle.cycle_empty;
graph.YAxisTitle = line1.Name = line1.legend = "电位(V)";
graph.XAxisTitle = "Time/s";
line1.IsDrawLengend = false;
graph.AxisManager.IsAutoAll = true;
graph.AxisManager.IsShowXGrid = graph.AxisManager.IsShowYGrid = true;
graph.AxisManager.YAxisColor = line1.lineColor;
graph.AddNewGraphElement(line1);
graph.SetActiveElement(line1.Name);
graph.AxisManager.Axises[0].MinValue = 0;
graph2.offsetLeft = 80;
graph2.offsetRight = 20;
graph2.offsetTop = 20;
graph2.offsetBottom = 50;
graph2.IsDrawCursor = true;
graph2.Dock = DockStyle.Fill;
graph2.YAxisTitleColor = Color.Red;
line2 = new GraphLine(AxisAssosiatedType.Left);
line2.lineColor = Color.Red;
line2.markColor = Color.Red;
line2.markStyle = PointStyle.cycle_empty;
graph2.YAxisTitle = line2.Name = line2.legend = "电流(A)";
graph2.XAxisTitle = "Time/s";
line2.IsDrawLengend = false;
graph2.AxisManager.IsAutoAll = true;
graph2.AxisManager.IsShowXGrid = graph2.AxisManager.IsShowYGrid = true;
graph2.AxisManager.YAxisColor = line2.lineColor;
graph2.AddNewGraphElement(line2);
graph2.SetActiveElement(line2.Name);
graph2.AxisManager.Axises[0].MinValue = 0;
pnlGraph.Controls.Add(graph);
pnlGraph.Controls.Add(graph2);
pnlGraph_SizeChanged(null, null);
}
private void btnSreach_Click(object sender, EventArgs e)
{
if (!m_spDev.FindDeviceInCom())
{
return;
}
Text = m_spDev.GetSerialNumber();
}
private void btnOcp_Click(object sender, EventArgs e)
{
if (!m_spDev.DeviceIsOpen()) return;
Clear();
//m_spDev.SetOcpParams(60,50);
//m_spDev.DeviceStart();
DateTime dtStart = DateTime.Now;
//Console.WriteLine("60s 50Hz 测试开始:"+ dtStart.ToString("HH:mm:ss:fff") + " 数据量:"+m_spDev.GetValuesCount());
//while(!m_spDev.ExpIsEnd())
//{
// Thread.Sleep(10);
//}
//Console.WriteLine("60s 50Hz 测试结束:" + DateTime.Now.ToString("HH:mm:ss:fff") + " 数据量:" + m_spDev.GetValuesCount());
//Console.WriteLine("时长:" + (DateTime.Now - dtStart).TotalSeconds.ToString("f4") + "s");
//m_spDev.SetOcpParams(60, 100);
//m_spDev.DeviceStart();
//dtStart = DateTime.Now;
//Console.WriteLine("60s 100Hz 测试开始:" + dtStart.ToString("HH:mm:ss:fff") + " 数据量:" + m_spDev.GetValuesCount());
//while (!m_spDev.ExpIsEnd())
//{
// Thread.Sleep(10);
//}
//Console.WriteLine("60s 100Hz 测试结束:" + DateTime.Now.ToString("HH:mm:ss:fff") + " 数据量:" + m_spDev.GetValuesCount());
//Console.WriteLine("时长:" + (DateTime.Now - dtStart).TotalSeconds.ToString("f4") + "s");
m_spDev.SetOcpParams(60,2000);
m_spDev.DeviceStart();
dtStart = DateTime.Now;
Console.WriteLine("60s 2000Hz 测试开始:" + dtStart.ToString("HH:mm:ss:fff") + " 数据量:" + m_spDev.GetValuesCount());
while (!m_spDev.ExpIsEnd())
{
Thread.Sleep(10);
}
Console.WriteLine("60s 2000Hz 测试结束:" + DateTime.Now.ToString("HH:mm:ss:fff") + " 数据量:" + m_spDev.GetValuesCount());
Console.WriteLine("时长:" + (DateTime.Now - dtStart).TotalSeconds.ToString("f4") + "s");
//m_spDev.SetOcpParams(100, 60);
//m_spDev.DeviceStart();
//dtStart = DateTime.Now;
//Console.WriteLine("100s 60Hz 测试开始:" + dtStart.ToString("HH:mm:ss:fff") + " 数据量:" + m_spDev.GetValuesCount());
//while (!m_spDev.ExpIsEnd())
//{
// Thread.Sleep(10);
//}
//Console.WriteLine("100s 60Hz 测试结束:" + DateTime.Now.ToString("HH:mm:ss:fff") + " 数据量:" + m_spDev.GetValuesCount());
//Console.WriteLine("时长:" + (DateTime.Now - dtStart).TotalSeconds.ToString("f4") + "s");
}
private object m_objLock = new object();
private void Clear()
{
if (line1 == null) return;
lock(m_objLock)
{
line1.Clear();
line2.Clear();
}
this.graph.Invalidate();
this.graph2.Invalidate();
}
private void btnStop_Click(object sender, EventArgs e)
{
if (!m_spDev.DeviceIsOpen()) return;
m_spDev.DeviceStop();
timer1.Stop();
m_bIsEis = false;
}
private void pnlGraph_SizeChanged(object sender, EventArgs e)
{
int nWidth = pnlGraph.Width;
int nHeith = pnlGraph.Height;
if (this.graph == null) return;
this.graph.Dock = DockStyle.None;
this.graph2.Dock = DockStyle.None;
this.graph.Location = new Point(0, 0);
this.graph.Size = new Size(nWidth, nHeith / 2);
this.graph2.Location = new Point(0, nHeith / 2 + 0);
this.graph2.Size = new Size(nWidth, nHeith / 2);
this.graph.Invalidate();
this.graph2.Invalidate();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (m_spDev == null || m_spDev.DeviceIsOpen() == false) return;
if(!m_bIsEis)
{
int nCount = m_spDev.GetValuesCount();
if (nCount <= 0) return;
object dEs = new object();
object dIs = new object();
object dTs = new object();
m_spDev.GetValues(out dEs, out dIs, out dTs);
List<double> listE = (dEs as double[]).ToList();
List<double> listI = (dIs as double[]).ToList();
List<double> listT = (dTs as double[]).ToList();
line1.Add(listT, listE);
line2.Add(listT, listI);
}
else
{
int nCount = m_spDev.GetEisValueCount();
if (nCount <= 0) return;
object dEs = new object();
object dIs = new object();
object dTs = new object();
object dZs = new object();
object dAs = new object();
m_spDev.GetEisValues(out dEs, out dIs, out dTs,out dZs,out dAs);
List<double> listE = (dEs as double[]).ToList();
List<double> listI = (dIs as double[]).ToList();
List<double> listT = (dTs as double[]).ToList();
List<double> listA = (dAs as double[]).ToList();
line1.Add(listE, listI);
line2.Add(listE, listA);
}
this.graph.Invalidate();
this.graph2.Invalidate();
}
private void btnPotS_Click(object sender, EventArgs e)
{
if (!m_spDev.DeviceIsOpen()) return;
Clear();
m_spDev.SetVoltRange(true, 2);
m_spDev.SetPotStaticParams(3, float.Parse(txtE1.Text), float.Parse(txtTime.Text), float.Parse(txtFreq.Text));
m_spDev.DeviceStart();
timer1.Start();
}
private void btnGalS_Click(object sender, EventArgs e)
{
if (!m_spDev.DeviceIsOpen()) return;
Clear();
m_spDev.SetGalStaticParams(3, float.Parse(txtE1.Text)/1000, float.Parse(txtTime.Text), float.Parse(txtFreq.Text));
m_spDev.DeviceStart();
timer1.Start();
}
private void btnLSV_Click(object sender, EventArgs e)
{
if (!m_spDev.DeviceIsOpen()) return;
Clear();
m_spDev.SetLSVAParams(3, float.Parse(txtE1.Text), float.Parse(txtE4.Text), float.Parse(txtE5.Text)/1000, float.Parse(txtFreq.Text));
m_spDev.DeviceStart();
timer1.Start();
}
private void btnCV_Click(object sender, EventArgs e)
{
if (!m_spDev.DeviceIsOpen()) return;
Clear();
//m_spDev.SetIRValue(true, 200);
m_spDev.SetCVParams(3, float.Parse(txtE1.Text), float.Parse(txtE2.Text), float.Parse(txtE3.Text), float.Parse(txtE4.Text), float.Parse(txtE5.Text) / 1000, float.Parse(txtFreq.Text),5);
m_spDev.DeviceStart();
timer1.Start();
}
private bool m_bIsEis = false;
private void btnEis_Click(object sender, EventArgs e)
{
m_bIsEis = true;
if (!m_spDev.DeviceIsOpen()) return;
Clear();
float fValue = 0;
m_spDev.GetOcpValue(out fValue);
m_spDev.SetEISVSfrqParams(100000,0.1f,fValue,10,60);
m_spDev.DeviceStart();
timer1.Start();
}
private void button1_Click(object sender, EventArgs e)
{
if (!m_spDev.DeviceIsOpen()) return;
Clear();
//m_spDev.SetIRValue(true, 200);
m_spDev.SetPotSquareParams(3, 0.1f, 5, 0.2f, 5, 0.3f, 5, 0.4f, 5, 100, 10);
m_spDev.DeviceStart();
timer1.Start();
}
}
}

View File

@ -12,7 +12,7 @@ namespace TestLib.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

View File

@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>TestLib</RootNamespace>
<AssemblyName>TestLib</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<TargetFrameworkProfile />
@ -23,6 +23,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -32,8 +33,13 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="GraphControl, Version=1.1.1.2, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>lib\GraphControl.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
@ -81,15 +87,9 @@
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\..\基础框架\Base\GraphControl\GraphControl.csproj">
<Project>{46e19d3d-816f-4fda-b44e-33c37cde7934}</Project>
<Name>GraphControl</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<COMReference Include="CSStudio6Lib">
<Guid>{A6FA3840-0F80-4F1F-8216-01F58F792828}</Guid>
<Guid>{56C545EB-986F-4730-997F-A163DB97CE74}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>

View File

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.33927.289
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestLib", "TestLib.csproj", "{8FFCB6BA-E562-4BD7-BCAF-6E6F38329A06}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8FFCB6BA-E562-4BD7-BCAF-6E6F38329A06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8FFCB6BA-E562-4BD7-BCAF-6E6F38329A06}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8FFCB6BA-E562-4BD7-BCAF-6E6F38329A06}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8FFCB6BA-E562-4BD7-BCAF-6E6F38329A06}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D6D1D1CA-4871-46C5-9686-A09111041D2E}
EndGlobalSection
EndGlobal

View File

@ -2,5 +2,5 @@
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/></startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
</configuration>

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]

View File

@ -0,0 +1,28 @@
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\bin\Debug\TestLib.exe.config
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\bin\Debug\TestLib.exe
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\bin\Debug\TestLib.pdb
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\bin\Debug\GraphControl.dll
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Debug\Interop.CSStudio6Lib.dll
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Debug\TestLib.csproj.ResolveComReference.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Debug\TestLib.MainForm.resources
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Debug\TestLib.Properties.Resources.resources
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Debug\TestLib.csproj.GenerateResource.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Debug\TestLib.exe
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Debug\TestLib.pdb
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Debug\TestLib.csproj.CoreCompileInputs.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Debug\TestLib.csproj.CopyComplete
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Debug\TestLib.csproj.AssemblyReference.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\bin\Debug\TestLib.exe.config
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\bin\Debug\TestLib.exe
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\bin\Debug\TestLib.pdb
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\bin\Debug\GraphControl.dll
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\obj\Debug\TestLib.csproj.AssemblyReference.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\obj\Debug\Interop.CSStudio6Lib.dll
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\obj\Debug\TestLib.csproj.ResolveComReference.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\obj\Debug\TestLib.MainForm.resources
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\obj\Debug\TestLib.Properties.Resources.resources
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\obj\Debug\TestLib.csproj.GenerateResource.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\obj\Debug\TestLib.csproj.CoreCompileInputs.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\obj\Debug\TestLib.csproj.CopyComplete
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\obj\Debug\TestLib.exe
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib\obj\Debug\TestLib.pdb

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]

View File

@ -0,0 +1,15 @@
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Release\TestLib.csproj.AssemblyReference.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Release\TestLib.csproj.ResolveComReference.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Release\TestLib.MainForm.resources
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Release\TestLib.Properties.Resources.resources
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Release\TestLib.csproj.GenerateResource.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Release\TestLib.csproj.CoreCompileInputs.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\bin\Release\TestLib.exe.config
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\bin\Release\TestLib.exe
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\bin\Release\TestLib.pdb
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\bin\Release\GraphControl.dll
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\bin\Release\Interop.CSStudio6Lib.dll
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Release\Interop.CSStudio6Lib.dll
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Release\TestLib.csproj.CopyComplete
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Release\TestLib.exe
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\CSStudio6Lib\TestLib\obj\Release\TestLib.pdb

View File

@ -0,0 +1,11 @@
using System;
using System.Runtime.InteropServices;
namespace CSStudio6Lib
{
[CoClass(typeof(CSStudio6Class)), Guid("FD052593-A6E0-4266-B8A8-4715834ADB63")]
[ComImport]
public interface CSStudio6 : ICSStudio6
{
}
}

View File

@ -0,0 +1,246 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace CSStudio6Lib
{
[ClassInterface(ClassInterfaceType.None), Guid("82423ECF-EFC0-47E0-8AB0-35ADE2CD3EEF"), TypeLibType(TypeLibTypeFlags.FCanCreate)]
[ComImport]
public class CSStudio6Class : ICSStudio6, CSStudio6
{
[DispId(1)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool FindDevice();
[DispId(2)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool FindDeviceInLan();
[DispId(3)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool FindDeviceInCom();
[DispId(4)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool FindDeviceByName([MarshalAs(UnmanagedType.BStr)] string strName);
[DispId(5)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool DeviceIsOpen();
[DispId(6)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern void DeviceDisconnect();
[DispId(7)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool DeviceStart();
[DispId(8)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool DeviceStop();
[DispId(9)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool DevicePause();
[DispId(10)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool DeviceContinue();
[DispId(11)]
[MethodImpl(MethodImplOptions.InternalCall)]
[return: MarshalAs(UnmanagedType.BStr)]
public virtual extern string GetLastError();
[DispId(12)]
[MethodImpl(MethodImplOptions.InternalCall)]
[return: MarshalAs(UnmanagedType.BStr)]
public virtual extern string GetSerialNumber();
[DispId(13)]
[MethodImpl(MethodImplOptions.InternalCall)]
[return: MarshalAs(UnmanagedType.BStr)]
public virtual extern string GetLibVersion();
[DispId(14)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetCurrentRange(bool isAutoRange, int nRange, int nMinRange, int nMaxRange, bool isOnlyInc);
[DispId(15)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetVoltRange(bool isAuto, int nRange);
[DispId(16)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetGNDMode(bool isVirMode);
[DispId(17)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetIRValue(bool isEnable, float fValue);
[DispId(18)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetEisFilter(int nHigh, int nMid, int nLow);
[DispId(19)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool GetOcpValue(out double ocpValue);
[DispId(20)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetOcpParams(float fTestTime, float fFreq);
[DispId(21)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetPotStaticParams(float fWaitTime, float fPotValue, float fTestTime, float fFreq);
[DispId(22)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetGalStaticParams(float fWaitTime, float fCurrentValue, float fTestTime, float fFreq);
[DispId(23)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetLSVAParams(float fWaitTime, float fInitE, float fFinalE, float fScanRate, float fFrq);
[DispId(24)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetCVParams(float fWaitTime, float fInitE, float fStepE1, float fStepE2, float fFinalE, float fScanRate, float fFrq, uint nCycles);
[DispId(25)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetSCVAParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, uint nCycles, uint nSampleWidth, float fJumpTime);
[DispId(26)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetSWVAParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fAmplitude, float fFrequency, uint nSampleWidth);
[DispId(27)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetEISVSfrqParams(float fInitFreq, float fFinalFreq, float fSineBias, float fSineAmp, uint nPoints);
[DispId(28)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern int GetValuesCount();
[DispId(29)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool GetValue(int nIndex, out double dVoltValue, out double dCurrValue, out double dTimeValue);
[DispId(30)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool GetLastValue(out double dVoltValue, out double dCurrValue, out double dTimeValue);
[DispId(31)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool GetValues([MarshalAs(UnmanagedType.Struct)] out object dVoltValues, [MarshalAs(UnmanagedType.Struct)] out object dCurrValues, [MarshalAs(UnmanagedType.Struct)] out object dTimeValues);
[DispId(32)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern int GetEisValueCount();
[DispId(33)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool GetEisValue(int nIndex, out double dFreqValue, out double dRealValue, out double dImaginaryValue, out double dZValue, out double dPhaseAngleValue);
[DispId(34)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool GetLastEisValue(out double dFreqValue, out double dRealValue, out double dImaginaryValue, out double dZValue, out double dPhaseAngleValue);
[DispId(35)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool GetEisValues([MarshalAs(UnmanagedType.Struct)] out object dFreqValues, [MarshalAs(UnmanagedType.Struct)] out object dRealValues, [MarshalAs(UnmanagedType.Struct)] out object dImaginaryValues, [MarshalAs(UnmanagedType.Struct)] out object dZValues, [MarshalAs(UnmanagedType.Struct)] out object dPhaseAngleValues);
[DispId(36)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern void ClearData();
[DispId(37)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool ExpIsEnd();
[DispId(38)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetMsgHandle(int nHandle);
[DispId(39)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool DeviceStartST();
[DispId(40)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool GetOcpValueEx(out double ocpValue, out double currentValue);
[DispId(41)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetACVParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fAmplitude, float fACFreq, float fSamplePeriod);
[DispId(42)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetSHACVParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fAmplitude, float fACFreq, float fSamplePeriod);
[DispId(43)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetFTACVParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fAmplitude, float fACFreq, float fSamplePeriod);
[DispId(44)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetEISVSfrqGalParams(float fInitFreq, float fFinalFreq, float fSineBiasI, float fSineAmpI, uint nPoints);
[DispId(45)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetEISVSPotParams(float fFreq, float fSineAmp, float fInitE, float fFinalE, float fIncE);
[DispId(46)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetEISVSTimeParams(float fFreq, float fSineBias, float fSineAmp, float fPeriod, float fTime);
[DispId(47)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetStaticChange(int nMode, float fValue);
[DispId(48)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetEarthMode(bool isSet);
[DispId(49)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetEISVSTimeGalParams(float fFreq, float fSineBiasI, float fSineAmpI, float fPeriod, float fTime);
[DispId(50)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetPotSquareParams(float fWaitTime, float fInitE, float fInitTime, float fStepE1, float fStepE1Time, float fStepE2, float fStepE2Time, float fFinalE, float fFinalTime, float fFrq, uint nCycles);
[DispId(51)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetGalSquareParams(float fWaitTime, float fInitI, float fInitTime, float fStepI1, float fStepI1Time, float fStepI2, float fStepI2Time, float fFinalI, float fFinalTime, float fFrq, uint nCycles);
[DispId(52)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetEINoiseParams(float fWaitTime, float fTestTime, float fFreq);
[DispId(53)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetDPVParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fAmplitude, float fPulseWidth, float fPulsePeriod, uint nSampleWidth);
[DispId(54)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetNPVParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fPulseWidth, float fPulsePeriod, uint nSampleWidth);
[DispId(55)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetDNPVParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fAmplitude, float fPulseWidth1, float fPulseWidth2, float fPulsePeriod, uint nSampleWidth);
[DispId(56)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool DeviceReset();
[DispId(57)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool CallEisResultValue(out double dRsValue, out double dRpValue, out double dCValue);
[DispId(58)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetDevFilter(int nFilter);
[DispId(59)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetEisBiasGain(bool bBiasE, int nBiasGainE, bool bBiasI, int nBiasGainI);
[DispId(60)]
[MethodImpl(MethodImplOptions.InternalCall)]
public virtual extern bool SetEisACAttenuation(bool bACAttenuation, int nACRatio);
}
}

View File

@ -0,0 +1,132 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace CSStudio6Lib
{
[Guid("FD052593-A6E0-4266-B8A8-4715834ADB63"), TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FNonExtensible | TypeLibTypeFlags.FDispatchable)]
[ComImport]
public interface ICSStudio6
{
[DispId(1)]
bool FindDevice();
[DispId(2)]
bool FindDeviceInLan();
[DispId(3)]
bool FindDeviceInCom();
[DispId(4)]
bool FindDeviceByName(string strName);
[DispId(5)]
bool DeviceIsOpen();
[DispId(6)]
void DeviceDisconnect();
[DispId(7)]
bool DeviceStart();
[DispId(8)]
bool DeviceStop();
[DispId(9)]
bool DevicePause();
[DispId(10)]
bool DeviceContinue();
[DispId(11)]
string GetLastError();
[DispId(12)]
string GetSerialNumber();
[DispId(13)]
string GetLibVersion();
[DispId(14)]
bool SetCurrentRange(bool isAutoRange, int nRange, int nMinRange, int nMaxRange, bool isOnlyInc);
[DispId(15)]
bool SetVoltRange(bool isAuto, int nRange);
[DispId(16)]
bool SetGNDMode(bool isVirMode);
[DispId(17)]
bool SetIRValue(bool isEnable, float fValue);
[DispId(18)]
bool SetEisFilter(int nHigh, int nMid, int nLow);
[DispId(19)]
bool GetOcpValue(out double ocpValue);
[DispId(20)]
bool SetOcpParams(float fTestTime, float fFreq);
[DispId(21)]
bool SetPotStaticParams(float fWaitTime, float fPotValue, float fTestTime, float fFreq);
[DispId(22)]
bool SetGalStaticParams(float fWaitTime, float fCurrentValue, float fTestTime, float fFreq);
[DispId(23)]
bool SetLSVAParams(float fWaitTime, float fInitE, float fFinalE, float fScanRate, float fFrq);
[DispId(24)]
bool SetCVParams(float fWaitTime, float fInitE, float fStepE1, float fStepE2, float fFinalE, float fScanRate, float fFrq, uint nCycles);
[DispId(25)]
bool SetSCVAParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, uint nCycles, uint nSampleWidth, float fJumpTime);
[DispId(26)]
bool SetSWVAParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fAmplitude, float fFrequency, uint nSampleWidth);
[DispId(27)]
bool SetEISVSfrqParams(float fInitFreq, float fFinalFreq, float fSineBias, float fSineAmp, uint nPoints);
[DispId(28)]
int GetValuesCount();
[DispId(29)]
bool GetValue(int nIndex, out double dVoltValue, out double dCurrValue, out double dTimeValue);
[DispId(30)]
bool GetLastValue(out double dVoltValue, out double dCurrValue, out double dTimeValue);
[DispId(31)]
bool GetValues(out object dVoltValues, out object dCurrValues, out object dTimeValues);
[DispId(32)]
int GetEisValueCount();
[DispId(33)]
bool GetEisValue(int nIndex, out double dFreqValue, out double dRealValue, out double dImaginaryValue, out double dZValue, out double dPhaseAngleValue);
[DispId(34)]
bool GetLastEisValue(out double dFreqValue, out double dRealValue, out double dImaginaryValue, out double dZValue, out double dPhaseAngleValue);
[DispId(35)]
bool GetEisValues(out object dFreqValues, out object dRealValues, out object dImaginaryValues, out object dZValues, out object dPhaseAngleValues);
[DispId(36)]
void ClearData();
[DispId(37)]
bool ExpIsEnd();
[DispId(38)]
bool SetMsgHandle(int nHandle);
[DispId(39)]
bool DeviceStartST();
[DispId(40)]
bool GetOcpValueEx(out double ocpValue, out double currentValue);
[DispId(41)]
bool SetACVParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fAmplitude, float fACFreq, float fSamplePeriod);
[DispId(42)]
bool SetSHACVParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fAmplitude, float fACFreq, float fSamplePeriod);
[DispId(43)]
bool SetFTACVParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fAmplitude, float fACFreq, float fSamplePeriod);
[DispId(44)]
bool SetEISVSfrqGalParams(float fInitFreq, float fFinalFreq, float fSineBiasI, float fSineAmpI, uint nPoints);
[DispId(45)]
bool SetEISVSPotParams(float fFreq, float fSineAmp, float fInitE, float fFinalE, float fIncE);
[DispId(46)]
bool SetEISVSTimeParams(float fFreq, float fSineBias, float fSineAmp, float fPeriod, float fTime);
[DispId(47)]
bool SetStaticChange(int nMode, float fValue);
[DispId(48)]
bool SetEarthMode(bool isSet);
[DispId(49)]
bool SetEISVSTimeGalParams(float fFreq, float fSineBiasI, float fSineAmpI, float fPeriod, float fTime);
[DispId(50)]
bool SetPotSquareParams(float fWaitTime, float fInitE, float fInitTime, float fStepE1, float fStepE1Time, float fStepE2, float fStepE2Time, float fFinalE, float fFinalTime, float fFrq, uint nCycles);
[DispId(51)]
bool SetGalSquareParams(float fWaitTime, float fInitI, float fInitTime, float fStepI1, float fStepI1Time, float fStepI2, float fStepI2Time, float fFinalI, float fFinalTime, float fFrq, uint nCycles);
[DispId(52)]
bool SetEINoiseParams(float fWaitTime, float fTestTime, float fFreq);
[DispId(53)]
bool SetDPVParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fAmplitude, float fPulseWidth, float fPulsePeriod, uint nSampleWidth);
[DispId(54)]
bool SetNPVParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fPulseWidth, float fPulsePeriod, uint nSampleWidth);
[DispId(55)]
bool SetDNPVParams(float fWaitTime, float fInitE, float fFinalE, float fIncE, float fAmplitude, float fPulseWidth1, float fPulseWidth2, float fPulsePeriod, uint nSampleWidth);
[DispId(56)]
bool DeviceReset();
[DispId(57)]
bool CallEisResultValue(out double dRsValue, out double dRpValue, out double dCValue);
[DispId(58)]
bool SetDevFilter(int nFilter);
[DispId(59)]
bool SetEisBiasGain(bool bBiasE, int nBiasGainE, bool bBiasI, int nBiasGainI);
[DispId(60)]
bool SetEisACAttenuation(bool bACAttenuation, int nACRatio);
}
}

View File

@ -0,0 +1,339 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
namespace TestLib
{
public class CTConvert
{
public static float limit = 1000000000000000;
/// <summary>
/// 将指定类型的littleEndian数据转换为BigEndian的字节序列
/// </summary>
/// <typeparam name="T">需要转换的类型</typeparam>
/// <param name="buffer">接收转换后的字节序列的目标数组</param>
/// <param name="offset">目标数组开始复制字节序列的起始索引</param>
/// <param name="pars">需要转换的数据,数量可变</param>
public static void ToBytesBigEndian<T>(byte[] buffer, int offset, params T[] pars) where T : struct
{
int nOffset = offset;
foreach (T t in pars)
{
byte[] bt = StructToBytes(t);
for (int i = bt.Length - 1; i >= 0; i--)
{
buffer[nOffset++] = bt[i];
}
}
}
/// <summary>
/// 将指定类型的littleEndian数据转换为BigEndian的字节序列
/// </summary>
/// <typeparam name="T">需要转换的类型</typeparam>
/// <param name="buffer">接收转换后的字节序列的目标数组</param>
/// <param name="offset">目标数组开始复制字节序列的起始索引</param>
/// <param name="pars">需要转换的数据,数量可变</param>
public static void ToBytesBigEndian2<T>(byte[] buffer, int offset, params T[] pars) where T : struct
{
int nOffset = offset;
foreach (T t in pars)
{
byte[] bt = StructToBytes(t);
for (int i = 0; i < bt.Length; i++)
{
buffer[nOffset++] = bt[i];
}
}
}
/// <summary>
/// 将BigEndian的字节序列转换为指定类型的littleEndian数据
/// </summary>
/// <typeparam name="T">需要转换的类型</typeparam>
/// <param name="buffer">存储需要转换的字节序列的数组</param>
/// <param name="offset">数组开始转换字节序列的起始索引</param>
/// <returns>经过转换的值</returns>
public static T FromBytesBigEndian<T>(byte[] buffer, int offset) where T : struct
{
int nOffset = offset;
T val = new T();
byte[] bt = StructToBytes(val);
for (int i = bt.Length - 1; i >= 0; i--)
{
bt[i] = buffer[nOffset++];
}
val = (T)BytesToStruct(bt, bt.Length, typeof(T));
return val;
}
public static T FromBytesBigEndian2<T>(byte[] buffer, int offset) where T : struct
{
int nOffset = offset;
T val = new T();
byte[] bt = StructToBytes(val);
for (int i = 0; i < bt.Length; i++)
{
bt[i] = buffer[nOffset++];
}
val = (T)BytesToStruct(bt, bt.Length, typeof(T));
return val;
}
/// <summary>
/// 将字节序列转换为DateTime字节序列依次为年月星期日时分秒每个一字节一共七字节
/// 其中年为2000开始即转换范围为2000-2255年
/// </summary>
/// <param name="buffer">存储需要转换的字节序列的数组</param>
/// <param name="offset">数组开始转换字节序列的起始索引</param>
/// <returns>经过转换后的值</returns>
public static DateTime Bytes2DateTime(byte[] buffer, int offset)
{
DateTime dt = DateTime.MinValue;
if (buffer == null) return dt;
if (offset < 0 || offset > buffer.Length - 1) return dt;
if (buffer.Length - offset < 6) return dt;
try
{
dt = new DateTime(buffer[offset] + 2000,
buffer[offset + 1],
buffer[offset + 3],
buffer[offset + 4],
buffer[offset + 5],
buffer[offset + 6]
);
}
catch
{
}
return dt;
}
private static DateTime dtLast = DateTime.Now.AddDays(-1);
/// <summary>
/// 将字节序列转换为DateTime字节序列依次为年月日时分秒每个一字节一共6字节
/// 其中年为2000开始即转换范围为2000-2255年
/// </summary>
public static DateTime Bytes2DateTime2(byte[] buffer, int offset)
{
DateTime dt = DateTime.MinValue;
if (buffer == null) return dt;
if (offset < 0 || offset > buffer.Length - 1) return dt;
if (buffer.Length - offset < 6) return dt;
try
{
dt = new DateTime
(buffer[offset] + 2000,
buffer[offset + 1],
buffer[offset + 2],
buffer[offset + 3],
buffer[offset + 4],
buffer[offset + 5]
);
dtLast = dt;
}
catch(Exception ex)
{
//dt = dtLast.AddHours(1);
//dtLast = dt;
}
return dt;
}
public static DateTime Bytes2DateTime3(byte[] buffer, int offset)
{
DateTime dt = DateTime.MinValue;
if (buffer == null) return dt;
if (offset < 0 || offset > buffer.Length - 1) return dt;
if (buffer.Length - offset < 7) return dt;
try
{
dt = new DateTime(FromBytesBigEndian2<short>(buffer, offset),
buffer[offset + 2],
buffer[offset + 3],
buffer[offset + 4],
buffer[offset + 5],
buffer[offset + 6]
);
}
catch
{ }
return dt;
}
/// <summary>
/// 将DateTime转换为字节序列字节序列依次为年月星期日时分秒每个一字节一共七字节
/// 其中年为2000开始即转换范围为2000-2255年
/// </summary>
/// <param name="buffer">存储转换后的字节序列的数组</param>
/// <param name="offset">数组开始复制转换后的字节序列的起始索引</param>
/// <param name="dt">需要转换的时间</param>
public static void DateTime2Bytes(byte[] buffer, int offset, DateTime dt)
{
if (buffer == null) return;
if (offset < 0 || offset > buffer.Length - 1) return;
if (buffer.Length - offset < 6) return;
buffer[offset] = (Byte)(dt.Year - 2000);
buffer[offset + 1] = (Byte)dt.Month;
buffer[offset + 2] = (Byte)dt.DayOfWeek;
buffer[offset + 3] = (Byte)dt.Day;
buffer[offset + 4] = (Byte)dt.Hour;
buffer[offset + 5] = (Byte)dt.Minute;
buffer[offset + 6] = (Byte)dt.Second;
}
public static void DateTime2Bytes3(byte[] buffer, int offset, DateTime dt)
{
if (buffer == null) return;
if (offset < 0 || offset > buffer.Length - 1) return;
if (buffer.Length - offset < 6) return;
buffer[offset] = (Byte)(dt.Year - 2000);
buffer[offset + 1] = (Byte)dt.Month;
buffer[offset + 2] = (Byte)dt.Day;
buffer[offset + 3] = (Byte)dt.DayOfWeek;
buffer[offset + 4] = (Byte)dt.Hour;
buffer[offset + 5] = (Byte)dt.Minute;
buffer[offset + 6] = (Byte)dt.Second;
}
/// <summary>
/// 将DateTime转换为字节序列字节序列依次为年月日时分秒每个一字节一共6字节
/// 其中年为2000开始即转换范围为2000-2255年
/// </summary>
/// <param name="buffer">存储转换后的字节序列的数组</param>
/// <param name="offset">数组开始复制转换后的字节序列的起始索引</param>
/// <param name="dt">需要转换的时间</param>
public static void DateTime2Bytes2(byte[] buffer, int offset, DateTime dt)
{
if (buffer == null) return;
if (offset < 0 || offset > buffer.Length - 1) return;
if (buffer.Length - offset < 6) return;
if (dt == DateTime.MinValue) dt = new DateTime(2000, 1, 1, 0, 0, 0);
if (dt == DateTime.MaxValue) dt = new DateTime(2100, 1, 1, 0, 0, 0);
buffer[offset] = (Byte)(dt.Year - 2000);
buffer[offset + 1] = (Byte)dt.Month;
buffer[offset + 2] = (Byte)dt.Day;
buffer[offset + 3] = (Byte)dt.Hour;
buffer[offset + 4] = (Byte)dt.Minute;
buffer[offset + 5] = (Byte)dt.Second;
}
public static float GetFloatNumber(byte[] bytes, int offset)
{
if (offset > bytes.Length) return 0;
float temp = BitConverter.ToSingle(bytes, offset);
if (float.IsInfinity(temp) || float.IsNaN(temp))
{
return limit;
}
if (Math.Abs(temp) > limit)
{
if (temp > 0)
return limit;
else
return -limit;
}
return temp;
}
public static float GetCorrectFloatNumber(byte[] bytes, int offset)
{
if (offset > bytes.Length) return 0;
float temp = FromBytesBigEndian<float>(bytes, offset);
if (float.IsInfinity(temp) || float.IsNaN(temp))
{
return limit;
}
if (Math.Abs(temp) > limit)
{
if (temp > 0)
return limit;
else
return -limit;
}
return temp;
}
private static byte[] StructToBytes(object obj)
{
int rawsize = Marshal.SizeOf(obj);
IntPtr buffer = Marshal.AllocHGlobal(rawsize);
Marshal.StructureToPtr(obj, buffer, false);
byte[] rawdatas = new byte[rawsize];
Marshal.Copy(buffer, rawdatas, 0, rawsize);
Marshal.FreeHGlobal(buffer);
return rawdatas;
}
private static object BytesToStruct(byte[] buf, int len, Type type)
{
object rtn;
IntPtr buffer = Marshal.AllocHGlobal(len);
Marshal.Copy(buf, 0, buffer, len);
rtn = Marshal.PtrToStructure(buffer, type);
Marshal.FreeHGlobal(buffer);
return rtn;
}
public static int FrqToByte(int Frq)
{
if (Frq == 1)
{
return 0;
}
else if (Frq == 12)
{
return 1;
}
else
{
return 2;
}
}
public static float ByteToFrq(int Byte)
{
if (Byte == 0)
{
return 0.1f;
}
else if (Byte == 1)
{
return 1;
}
else if (Byte == 2)
{
return 12;
}
else
{
return 117;
}
}
public static byte[] StringToHexByte(string hexString)
{
if (string.IsNullOrEmpty(hexString)) return null;
hexString = hexString.Replace(" ", "").Replace("0x", "");
if (string.IsNullOrEmpty(hexString)) return null;
byte[] returnBytes = new byte[hexString.Length / 2 + hexString.Length % 2];
for (int i = 0; i < returnBytes.Length; i++)
{
if (hexString.Length >= i * 2 + 2)
returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
else
return null;
}
return returnBytes;
}
}
}

View File

@ -0,0 +1,6 @@
namespace TestLib
{
public class CorGraph
{
}
}

View File

@ -53,6 +53,7 @@
this.btnLSV = new System.Windows.Forms.Button();
this.btnCV = new System.Windows.Forms.Button();
this.btnEis = new System.Windows.Forms.Button();
this.btnEisG = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// btnSreach
@ -270,11 +271,22 @@
this.btnEis.UseVisualStyleBackColor = true;
this.btnEis.Click += new System.EventHandler(this.btnEis_Click);
//
// btnEisG
//
this.btnEisG.Location = new System.Drawing.Point(445, 12);
this.btnEisG.Name = "btnEisG";
this.btnEisG.Size = new System.Drawing.Size(51, 29);
this.btnEisG.TabIndex = 4;
this.btnEisG.Text = "EIS-G";
this.btnEisG.UseVisualStyleBackColor = true;
this.btnEisG.Click += new System.EventHandler(this.btnEisG_Click);
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(749, 574);
this.Controls.Add(this.btnEisG);
this.Controls.Add(this.pnlGraph);
this.Controls.Add(this.txtFreq);
this.Controls.Add(this.txtE5);
@ -331,6 +343,7 @@
private System.Windows.Forms.Button btnLSV;
private System.Windows.Forms.Button btnCV;
private System.Windows.Forms.Button btnEis;
private System.Windows.Forms.Button btnEisG;
}
}

View File

@ -83,6 +83,10 @@ namespace TestLib
{
return;
}
//if (!m_spDev.FindDeviceByName("192.168.0.201:57700"))
//{
// return;
//}
Text = m_spDev.GetSerialNumber();
}
@ -173,12 +177,10 @@ namespace TestLib
m_spDev.GetEisValues(out dEs, out dIs, out dTs,out dZs,out dAs);
List<double> listE = (dEs as double[]).ToList();
List<double> listI = (dIs as double[]).ToList();
List<double> listT = (dTs as double[]).ToList();
List<double> listA = (dAs as double[]).ToList();
List<double> listI = (dZs as double[]).ToList();
line1.Add(listE, listI);
line2.Add(listE, listA);
line1.Add(listE, listE);
line2.Add(listE, listI);
}
@ -218,7 +220,11 @@ namespace TestLib
{
if (!m_spDev.DeviceIsOpen()) return;
Clear();
m_spDev.SetCVParams(3, float.Parse(txtE1.Text), float.Parse(txtE2.Text), float.Parse(txtE3.Text), float.Parse(txtE4.Text), float.Parse(txtE5.Text) / 1000, float.Parse(txtFreq.Text),5);
m_spDev.SetVoltRange(false, 2);
m_spDev.SetCurrentRange(false, 7, 8, 0, true);
m_spDev.SetCVParams(3, float.Parse(txtE1.Text), float.Parse(txtE2.Text), float.Parse(txtE3.Text), float.Parse(txtE4.Text), float.Parse(txtE5.Text) / 1000, float.Parse(txtFreq.Text),1);
m_spDev.DeviceStart();
timer1.Start();
}
@ -230,11 +236,27 @@ namespace TestLib
if (!m_spDev.DeviceIsOpen()) return;
Clear();
float fValue = 0;
double fValue = 0;
m_spDev.GetOcpValue(out fValue);
m_spDev.SetEISVSfrqParams(100000,0.1f,fValue,10,60);
m_spDev.SetEISVSfrqParams(100000,0.1f,(float)fValue,10,60);
m_spDev.DeviceStart();
timer1.Start();
}
private void btnEisG_Click(object sender, EventArgs e)
{
m_bIsEis = true;
if (!m_spDev.DeviceIsOpen()) return;
Clear();
m_spDev.SetGNDMode(true);
m_spDev.SetEisFilter(6, 6, 6);
m_spDev.SetEISVSfrqGalParams(1000, 0.1f, 0, 2000, 40);
m_spDev.DeviceStart();
timer1.Start();
}
}
}

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace TestLib
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}

View File

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("TestLib")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("TestLib")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
//将 ComVisible 设置为 false 将使此程序集中的类型
//对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("8ffcb6ba-e562-4bd7-bcaf-6e6f38329a06")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace TestLib.Properties {
using System;
/// <summary>
/// 一个强类型的资源类,用于查找本地化的字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// 返回此类使用的缓存的 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestLib.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace TestLib.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@ -0,0 +1,99 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{8FFCB6BA-E562-4BD7-BCAF-6E6F38329A06}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>TestLib</RootNamespace>
<AssemblyName>TestLib</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="GraphControl, Version=1.1.1.2, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>lib\GraphControl.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="CorGraph.cs" />
<Compile Include="CSStudioLib\CSStudio6.cs" />
<Compile Include="CSStudioLib\CSStudio6Class.cs" />
<Compile Include="CSStudioLib\ICSStudio6.cs" />
<Compile Include="CTConvert.cs" />
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31702.278
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestLib", "TestLib.csproj", "{8FFCB6BA-E562-4BD7-BCAF-6E6F38329A06}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestCSStudio6", "..\TestCSStudio6\TestCSStudio6.csproj", "{06DA92F8-49A8-4D4A-8F3E-D85FE331E85E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8FFCB6BA-E562-4BD7-BCAF-6E6F38329A06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8FFCB6BA-E562-4BD7-BCAF-6E6F38329A06}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8FFCB6BA-E562-4BD7-BCAF-6E6F38329A06}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8FFCB6BA-E562-4BD7-BCAF-6E6F38329A06}.Release|Any CPU.Build.0 = Release|Any CPU
{06DA92F8-49A8-4D4A-8F3E-D85FE331E85E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{06DA92F8-49A8-4D4A-8F3E-D85FE331E85E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{06DA92F8-49A8-4D4A-8F3E-D85FE331E85E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{06DA92F8-49A8-4D4A-8F3E-D85FE331E85E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {9BF7F3DE-A494-4C0B-B089-66A105C86616}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>

View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]

View File

@ -0,0 +1,11 @@
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib2\obj\Debug\TestLib.MainForm.resources
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib2\obj\Debug\TestLib.Properties.Resources.resources
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib2\obj\Debug\TestLib.csproj.GenerateResource.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib2\obj\Debug\TestLib.csproj.CoreCompileInputs.cache
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib2\bin\Debug\TestLib.exe.config
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib2\bin\Debug\TestLib.exe
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib2\bin\Debug\TestLib.pdb
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib2\bin\Debug\GraphControl.dll
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib2\obj\Debug\TestLib.csproj.CopyComplete
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib2\obj\Debug\TestLib.exe
D:\mzg\软件组\产品\CS Studio6\01开发\二次开发\发布\CSStudio6二次开发接口\C#实例\TestLib2\obj\Debug\TestLib.pdb

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="GraphControl.Utility.AppConfig" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
<section name="GraphControl.AppConfig.AppConfig" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<userSettings>
<GraphControl.Utility.AppConfig>
<setting name="GraphSettings" serializeAs="String">
<value/>
</setting>
<setting name="StrSetting" serializeAs="String">
<value/>
</setting>
</GraphControl.Utility.AppConfig>
<GraphControl.AppConfig.AppConfig>
<setting name="GraphSettings" serializeAs="String">
<value/>
</setting>
</GraphControl.AppConfig.AppConfig>
</userSettings>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>

Some files were not shown because too many files have changed in this diff Show More