📄 frmmain.cs
字号:
using System.Runtime.InteropServices;
using System;
using System.Windows.Forms;
internal partial class frmMain : System.Windows.Forms.Form
{
string ComputerName;
string ServerClassID;
YFOPCSDK.ServerDataChangeProcProxy temp1 = new YFOPCSDK.ServerDataChangeProcProxy(Module1.ServerDataChangeProc);
YFOPCSDK.ServerShutdownProcProxy temp2 = new YFOPCSDK.ServerShutdownProcProxy(Module1.ServerShutdownProc);
YFOPCSDK.AddProcessProxy temp3 = new YFOPCSDK.AddProcessProxy(Module1.AddProcess);
YFOPCSDK.ServerDataChangeProcProxyEx temp4 = new YFOPCSDK.ServerDataChangeProcProxyEx(Module1.ServerDataChangeProcEx);
public void Disconnect()
{
if (Module1.ServerHandle == 0) return; // TODO: might not be correct. Was : Exit Sub
if (Module1.GroupHandle > 0)
{
lvListView.Items.Clear();
bool ret;
ret = YFOPCSDK.OPC_RemoveGroup(Module1.ServerHandle, Module1.GroupHandle);
Module1.GroupHandle = 0;
}
if (YFOPCSDK.OPC_Disconnect(Module1.ServerHandle)!=0)
{
Module1.ServerHandle = 0;
mnuConnect.Enabled = true;
mnuDisconnect.Enabled = false;
mnuServerStatus.Enabled = false;
mnuGroupStatus.Enabled = false;
mnuGroupRefresh.Enabled = false;
mnuAddItem.Enabled = false;
mnuAddItem.Enabled = false;
mnuRemoveItem.Enabled = false;
mnuReadItem.Enabled = false;
mnuWriteItem.Enabled = false;
mnuItemStatus.Enabled = false;
}
}
private void frmMain_Load(object eventSender, System.EventArgs eventArgs)
{
Module1.ServerHandle = 0;
Module1.GroupHandle = 0;
Random rnd = new Random();
Module1.GroupName = "GROUP"+ rnd.NextDouble().ToString();
YFOPCSDK.OPC_Init();
YFOPCSDK.OPC_SetProcessTiggerProcA(temp3);
}
private void frmMain_FormClosed(object eventSender, System.Windows.Forms.FormClosedEventArgs eventArgs)
{
if (Module1.ServerHandle > -1)
{
YFOPCSDK.OPC_Disconnect(Module1.ServerHandle);
}
YFOPCSDK.OPC_Uninit();
}
private void frmMain_Resize(object eventSender, System.EventArgs eventArgs)
{
lvListView.Top = 0;
lvListView.Height = this.Height - lstProcess.Height - 80;
lstProcess.Width = lvListView.Width;
}
public void menuOpen_Click(object eventSender, System.EventArgs eventArgs)
{
int I;
int Count;
dlgCommonDialogOpen.Filter = "OPC client Files(*.opc)|*.opc|All Files(*.*)|*.*";
dlgCommonDialogOpen.FileName = "opcclient.opc";
dlgCommonDialogOpen.ShowDialog();
try
{
Disconnect();
ComputerName = Module1.ReadInIFiles("PUBLIC", "HOST", "", (dlgCommonDialogOpen.FileName));
ServerClassID = Module1.ReadInIFiles("PUBLIC", "CLSID", "", (dlgCommonDialogOpen.FileName));
Module1.GroupName = Module1.ReadInIFiles("PUBLIC", "GROUP", "GROUP1", (dlgCommonDialogOpen.FileName));
Count = int.Parse(Module1.ReadInIFiles("PUBLIC", "COUNT", "0", (dlgCommonDialogOpen.FileName)));
Module1.ServerHandle = YFOPCSDK.OPC_Connect(ComputerName, ServerClassID, 1);
if (Module1.ServerHandle > 0)
{
YFOPCSDK.OPC_SetDataChangeProc(Module1.ServerHandle, temp1);
//YFOPCSDK.OPC_SetDataChangeProcEx(Module1.ServerHandle, temp4);
YFOPCSDK.OPC_SetShutdownProc(Module1.ServerHandle, temp2);
Module1.GroupHandle = YFOPCSDK.OPC_AddGroup(Module1.ServerHandle, Module1.GroupName, 1, 500, 0, 0.0F, 0);
if (Module1.GroupHandle > 0)
{
mnuConnect.Enabled = false;
mnuDisconnect.Enabled = true;
mnuServerStatus.Enabled = true;
mnuGroupStatus.Enabled = true;
mnuGroupRefresh.Enabled = true;
mnuAddItem.Enabled = true;
menuSaveAs.Enabled = true;
}
for (I = 0; I <= Count -1; I++)
{
AddItem(Module1.ReadInIFiles("ITEM", "item" + (Count - I).ToString(), "", (dlgCommonDialogOpen.FileName)));
}
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
return;
}
public void menuSaveAs_Click(object eventSender, System.EventArgs eventArgs)
{
int I;
dlgCommonDialogSave.Filter = "OPC client Files(*.opc)|*.opc|All Files(*.*)|*.*";
dlgCommonDialogSave.FileName = "opcclient.opc";
dlgCommonDialogSave.ShowDialog();
Module1.WritePrivateProfileString("PUBLIC", "HOST", ComputerName, dlgCommonDialogSave.FileName);
Module1.WritePrivateProfileString("PUBLIC", "CLSID", ServerClassID, dlgCommonDialogSave.FileName);
Module1.WritePrivateProfileString("PUBLIC", "GROUP", Module1.GroupName, dlgCommonDialogSave.FileName);
Module1.WritePrivateProfileString("PUBLIC", "COUNT", lvListView.Items.Count.ToString(), dlgCommonDialogSave.FileName);
for (I = 0; I <= lvListView.Items.Count-1 ; I++) {
Module1.WritePrivateProfileString("ITEM", "item" + (I +1).ToString(), lvListView.Items[I].Text, dlgCommonDialogSave.FileName);
}
return;
}
public void mnuAddItem_Click(object eventSender, System.EventArgs eventArgs)
{
frmItemBrowser frm = new frmItemBrowser();
frm.ShowDialog();
}
public void mnuConnect_Click(object eventSender, System.EventArgs eventArgs)
{
Program.sbWindow = new frmServerBrowser();
if (Program.sbWindow.ShowDialog() != DialogResult.OK) return;
if (Program.sbWindow.ServerClassID == "") return;
Module1.ServerHandle = 0;
Module1.GroupHandle = 0;
Random rnd = new Random();
Module1.GroupName = "GROUP" + rnd.NextDouble().ToString();
lstProcess.Items.Clear();
Module1.ServerHandle = YFOPCSDK.OPC_Connect(Program.sbWindow.cbHost.Text , Program.sbWindow.ServerClassID, Program.sbWindow.Version);
if (Module1.ServerHandle > 0)
{
// YFOPCSDK.OPC_SetDataChangeProc(Module1.ServerHandle, temp1);
YFOPCSDK.OPC_SetDataChangeProcEx(Module1.ServerHandle, temp4);
YFOPCSDK.OPC_SetShutdownProc(Module1.ServerHandle, temp2);
Module1.GroupHandle = YFOPCSDK.OPC_AddGroup(Module1.ServerHandle, Module1.GroupName, 1, 500, 0, 0, 0);
if (Module1.GroupHandle > 0)
{
mnuConnect.Enabled = false;
mnuDisconnect.Enabled = true;
mnuServerStatus.Enabled = true;
mnuGroupStatus.Enabled = true;
mnuGroupRefresh.Enabled = true;
mnuAddItem.Enabled = true;
menuSaveAs.Enabled = true;
ComputerName = Program.sbWindow.cbHost.Text ;
ServerClassID = Program.sbWindow.ServerClassID;
}
}
}
public void mnuDisconnect_Click(object eventSender, System.EventArgs eventArgs)
{
if (YFOPCSDK.OPC_Disconnect(Module1.ServerHandle)!=0)
{
lvListView.Items.Clear();
Module1.GroupHandle = 0;
Module1.ServerHandle = 0;
mnuConnect.Enabled = true;
mnuDisconnect.Enabled = false;
mnuServerStatus.Enabled = false;
mnuGroupStatus.Enabled = false;
mnuGroupRefresh.Enabled = false;
mnuAddItem.Enabled = false;
mnuReadItem.Enabled = false;
mnuWriteItem.Enabled = false;
mnuRemoveItem.Enabled = false;
mnuItemStatus.Enabled = false;
menuSaveAs.Enabled = false;
}
}
public void mnuExit_Click(object eventSender, System.EventArgs eventArgs)
{
this.Close();
}
public void mnuGroupStatus_Click(object eventSender, System.EventArgs eventArgs)
{
frmGroupStatus frm = new frmGroupStatus();
frm.frmGroupName = Module1.GroupName;
if (frm.ShowDialog()==DialogResult.OK )
{
if (frm.frmGroupName != Module1.GroupName)
{
if (YFOPCSDK.OPC_SetGroupName(Module1.ServerHandle, Module1.GroupHandle, frm.frmGroupName)!=0)
{
Module1.GroupName = frm.frmGroupName;
}
}
YFOPCSDK.OPC_SetGroupStat(Module1.ServerHandle, Module1.GroupHandle, frm.UpdateRate, frm.Active, frm.TimeBias, frm.DeadBand, 0);
}
}
public void mnuHelpAbout_Click(object eventSender, System.EventArgs eventArgs)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -