⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.cs

📁 OPC CLIENT开发包
💻 CS
📖 第 1 页 / 共 2 页
字号:
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 + -