PHP和COM的帮助
在PHP中与另一个进程通信的最佳方式是什么 更新:使用Windows,PHP5,调用COM程序集,COM可能需要,也可能不需要,我真的不在乎PHP和COM的帮助,php,com,Php,Com,在PHP中与另一个进程通信的最佳方式是什么 更新:使用Windows,PHP5,调用COM程序集,COM可能需要,也可能不需要,我真的不在乎 更新:我正在尝试从PHP向Ascom(一个控制程序)发送一个命令。我主要需要执行方法和传递小参数。我还需要能够从中获取信息。ASCOM具有什么样的接口?做了一个谷歌搜索,但确实找到了几个程序。你最好的办法可能是写一个包装器,用C++或C++来封装COM组件。使用它的最简单方法是基于命令行 ASCOM.exe调焦器位置将显示调焦器的位置 ASCOM.exe
更新:我正在尝试从PHP向Ascom(一个控制程序)发送一个命令。我主要需要执行方法和传递小参数。我还需要能够从中获取信息。ASCOM具有什么样的接口?做了一个谷歌搜索,但确实找到了几个程序。你最好的办法可能是写一个包装器,用C++或C++来封装COM组件。使用它的最简单方法是基于命令行
ASCOM.exe调焦器位置
将显示调焦器的位置
ASCOM.exe focuser move 25
会移动调焦器,但在移动之前不会返回
请确保您正在处理与此相关的多用户问题!如果有10个人试图移动仪器,你会遇到问题
编辑
在php中,可以使用system()
或exec()
命令调用外部命令。您应该使用system()
,因为它会一直阻塞,直到命令完成
$pos=系统(“ASCOM.exe焦点位置”)
;将该位置置于$pos
变量中。请记住,ASCOM.exe是您创建的一个程序,用于获取这些命令行参数并将其转换为相应的COM调用
阅读这篇微软关于做一个好朋友的文章。如果你喜欢使用C++,最后尝试,如果你在这些语言中的任何一个都不舒服,你可以很容易地。< P>我使用PHP非常广泛,使用从我们的库中用C++构建的COM对象,在Windows 2003上用Apache作为Web服务器。大约五年来,它一直运作良好 您可以直接在PHP中实例化和使用COM对象。看看这里给出的Ascom摄像头界面,我希望它能正常工作;大概是这样的:
$camera = new COM('ManufacturerName.Camera'); // COM class name made up
$camera.NumX = 200;
$camera.NumY = 200;
$camera.BinX = 1;
// Set more properties... then, having set $duration and $light:
$camera.StartExposure( $duration, $light );
// etc
也就是说,您可以按照预期的方式使用属性和方法。实际的COM类名将出现在仪器的文档中。您可以在制造商提供的任何示例代码中找到它
如果在web进程中使用它,请注意,每次为HTTP请求提供服务时,都必须重新实例化COM对象,并重新连接到该工具
试一试-你可能会惊喜地发现它是多么的简单。你真的需要使用COM和/或拥有在Windows上工作的东西吗?或者一些面向Linux的mecanism可以吗?另外,您可以修改其他流程的代码吗?什么平台?什么样的过程?你想做什么?你能详细说明一下你想做什么吗?有COM,但它的文档记录很差,不能在所有情况下使用,也许有一种替代方法更合适。Protip:当某些事情不断发生,而一个不变的变量就是你,猜猜问题通常是什么?@Arlen PHP中没有进程内通信的标准。如果你稍微澄清一下你想做什么,你需要传输多少数据,以及在什么时间间隔内传输,你可能会得到一些可行的想法和方法。ASCOM是天文设备的独立于设备的COM驱动程序。我如何让它返回位置?事实上,如何从PHP调用它?如何使程序返回某些内容?