一、 概述
本文介紹通過PMLNET包裝PDMS的內核命令, 實現pml調用常用的內置Command命令。
二、 實現方法
寫一個PMLNET的dll, 開放一個callback(string commandKey)函數給pml。代碼如下:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Reflection; 6 7 using Aveva.ApplicationFramework; 8 using Aveva.ApplicationFramework.Presentation; 9 using Aveva.Pdms.Presentation; 10 using Aveva.PDMS.PMLNet; 11 12 [assembly: PMLNetCallable()] 13 namespace wttech 14 { 15 [PMLNetCallable()] 16 public class PmlCoreCall 17 { 18 [PMLNetCallable()] 19 public PmlCoreCall(){ } 20 [PMLNetCallable()] 21 public void Assign(PmlCoreCall that) { } 22 [PMLNetCallable()] 23 public void callback(string commandKey) 24 { 25 CommandManager.Instance.Commands[commandKey].Execute(); 26 } 27 } 28 }
三、 PML調用實例
1 import 'PmlCoreCall' 2 handle any 3 endhandle 4 using namespace 'wttech' 5 !corecall = object PmlCoreCall() 6 !corecall.callback('AVEVA.View.WalkTo.DrawList')
AVEVA.View.WalkTo.DrawList為PDMS的內核命令, 在這里PmlCoreCall對象為PMLNET對象, 用其callback函數將Command的key傳遞進去,執行內核命令。
四、 總結
通過上面的實例我們看到PML可以通過PMLNET調用C#代碼的形式對他進行擴展。實現了PML調用內核命令的需求。
dll下載鏈接: https://files.cnblogs.com/files/jevon1982/PmlCoreCall.zip