上一篇讲到Plant Simulation与Python可以通过通信的方式进行交互,这种方式简单易用。
波哥今天要讲一下第二种我们可以使用Plant Simulation的ActiveX控制的方式调用Python,这样是无缝集成Python的方式,效率更高,速度更快。下面的例子仅作示例演示,例子都是非常简单的小例子,仅作抛砖引玉之用。
首先来熟悉一下ActiveX控件,其本质是一个COM对象,它是实现了某些接口而使自己的外观和行为变得类似于控件的COM对象 ,它具有属性、方法和事件。
一提到ActiveX,聪明的小伙伴是不是马上恍然大悟,一下子就应该知道波哥是怎么做的了吧。是的,就是你想的那样,将需要调用的Python代码封装成类,然后注册成COM对象即可了。是不是很简单,是不是很兴奋。
首先,我们简单的封装一个TestTools的类,一共保留了三个API接口供我们调用"echo", "add", "reverse1",echo仅作字符串打印,add做个相加函数,reverse1是将输入字符串倒序输出。
class TestTools:
_reg_progid_ = "Python.TestTools"
# Use "print pythoncom.CreateGuid()" to make a new one.
_reg_clsid_ = "{D5330A7E-B704-4C36-BE1F-5DA8CDCCBC38}"
_public_methods_ = ["echo", "add", "reverse1"]
def echo(se