• PML调用PDMS内核命令研究


    一、 概述

    本文介绍通过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

  • 相关阅读:
    Samba
    百度贴吧
    baidu.com关键字查询
    vim 删除每行开头结尾空格
    read line(逐行读取)
    pycharm 激活
    rsync 启动脚本
    收藏
    elk
    sql is null
  • 原文地址:https://www.cnblogs.com/jevon1982/p/9529116.html
Copyright © 2020-2023  润新知