form1.cs
来自「OPC工具包是用来简化OPC规范服务器/客户端开发的工具包」· CS 代码 · 共 452 行 · 第 1/2 页
CS
452 行
private void ConnectMenu_Click(object sender, EventArgs e)
{
Servers sf = new Servers();
try
{
if (sf.ShowDialog() == DialogResult.OK)
{
DAC_CSDEMO.Properties.Settings.Default.Host = sf.Server.m_Host;
DAC_CSDEMO.Properties.Settings.Default.ProgID = sf.Server.m_ProgID;
DAC_CSDEMO.Properties.Settings.Default.ClassID = sf.Server.m_ClassID;
Connect();
}
}
finally
{
sf.Dispose();
}
}
private void DisconnectMenu_Click(object sender, EventArgs e)
{
Disconnect();
}
private void AddItemMenu_Click(object sender, EventArgs e)
{
Items itemFrm=new Items();
try
{
itemFrm.ShowDialog();
}
finally
{
itemFrm.Dispose();
}
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
ASDAC_Uninit();
}
private void RemoveItemMenu_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
ListViewItem lvi = listView1.SelectedItems[0];
ASDAC_RemoveItem(m_ServerHandle, m_GroupHandle, ((OPCItem)ItemArray[listView1.SelectedItems[0].Index]).m_Handle);
ItemArray.RemoveAt(lvi.Index);
listView1.Items.Remove(lvi);
}
}
private void ReadItemMenu_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
object value=null;
long timeStamp=0;
ushort quality=0;
ListViewItem lvi = listView1.SelectedItems[0];
ASDAC_ReadItem(m_ServerHandle, m_GroupHandle, ((OPCItem)ItemArray[listView1.SelectedItems[0].Index]).m_Handle, ref value, ref timeStamp, ref quality);
if (value != null)
lvi.SubItems[1].Text = value.ToString();
else
lvi.SubItems[1].Text = "";
lvi.SubItems[2].Text = DateTime.FromFileTime(timeStamp).ToString();
}
}
private void WriteItemMenu_Click(object sender, EventArgs e)
{
WriteValue.Focus();
}
private void WriteItem_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
object value = WriteValue.Text;
ListViewItem lvi = listView1.SelectedItems[0];
ASDAC_WriteItem(m_ServerHandle, m_GroupHandle, ((OPCItem)ItemArray[listView1.SelectedItems[0].Index]).m_Handle, value,true);
}
}
private void ServerStatusMenu_Click(object sender, EventArgs e)
{
long startTime=0, currentTime=0, updateTime=0;
ushort state=0,majorVersion=0,minorVersion=0, buildNum=0;
uint bandWidth=0,groupCount=0;
StringBuilder vendor=new StringBuilder(128);
ASDAC_GetServerStatus(m_ServerHandle, ref startTime, ref currentTime, ref updateTime, ref state,
ref bandWidth, ref groupCount, ref majorVersion, ref minorVersion, ref buildNum, vendor, 128);
Status stFrm = new Status();
try
{
stFrm.AddNameValue("startTime",DateTime.FromFileTime(startTime).ToString());
stFrm.AddNameValue("currentTime",DateTime.FromFileTime(currentTime).ToString());
stFrm.AddNameValue("updateTime",DateTime.FromFileTime(updateTime).ToString());
stFrm.AddNameValue("state",state.ToString());
stFrm.AddNameValue("bandWidth",bandWidth.ToString());
stFrm.AddNameValue("groupCount",groupCount.ToString());
stFrm.AddNameValue("majorVersion",majorVersion.ToString());
stFrm.AddNameValue("minorVersion",minorVersion.ToString());
stFrm.AddNameValue("buildNum",buildNum.ToString());
stFrm.AddNameValue("vendor",vendor.ToString());
stFrm.ShowDialog();
}
finally
{
stFrm.Dispose();
}
}
private void GroupStatusMenu_Click(object sender, EventArgs e)
{
uint groupRate=0;
bool active=false;
int timeBias=0;
float deadBand=0;
uint LCID=0;
ASDAC_GetGroupStat(m_ServerHandle, m_GroupHandle, ref groupRate, ref active, ref timeBias, ref deadBand, ref LCID);
Status stFrm = new Status();
try
{
stFrm.AddNameValue("groupRate", groupRate.ToString());
stFrm.AddNameValue("active", active.ToString());
stFrm.AddNameValue("timeBias", timeBias.ToString());
stFrm.AddNameValue("deadBand", deadBand.ToString());
stFrm.AddNameValue("LCID", LCID.ToString());
stFrm.ShowDialog();
}
finally
{
stFrm.Dispose();
}
}
public void GetItemProps(string tagName, ref NameValueCollection nvs)
{
object propIDs=null, propDatatypes=null, propDescs=null;
uint count;
count = ASDAC_GetItemProperties(m_ServerHandle, tagName, ref propIDs, ref propDatatypes, ref propDescs);
for (int i = 0; i < count; i++)
{
uint propID=((uint[])propIDs)[i];
object propValue = null;
//ushort propDatatype=ushort;
string propDesc=((string[])propDescs)[i];
ASDAC_GetItemPropertyValue(m_ServerHandle, tagName, propID, ref propValue);
if (propValue != null)
{
nvs.Add(propDesc, propValue.ToString());
}
else
{
nvs.Add(propDesc, "");
}
}
}
private void ItemPropMenu_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
ListViewItem lvi = listView1.SelectedItems[0];
NameValueCollection nvs = new NameValueCollection();
GetItemProps(lvi.Text,ref nvs);
Status stFrm = new Status();
try
{
for (int i = 0; i < nvs.Count; i++)
{
stFrm.AddNameValue(nvs.GetKey(i), nvs.GetValues(i)[0]);
}
stFrm.ShowDialog();
}
finally
{
stFrm.Dispose();
}
}
}
private void ExitMenu_Click(object sender, EventArgs e)
{
Disconnect();
Close();
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
RemoveItemMenu.Enabled = true;
ReadItemMenu.Enabled = true;
WriteItemMenu.Enabled = true;
ItemPropMenu.Enabled = true;
WriteItem.Enabled = true;
}
else
{
RemoveItemMenu.Enabled = false;
ReadItemMenu.Enabled = false;
WriteItemMenu.Enabled =false;
ItemPropMenu.Enabled =false;
WriteItem.Enabled = false;
}
}
private void AboutMenu_Click(object sender, EventArgs e)
{
AboutBox1 abFrm = new AboutBox1();
try
{
abFrm.ShowDialog();
}
finally
{
abFrm.Dispose();
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?