PHP ile Yardım ve COM

3 Cevap php

PHP başka bir işlem ile iletişim kurmak için en iyi yolu nedir?

Güncelleme: COM meclisleri çağırarak, Windows'u, PHP 5 kullanarak, COM veya gerekli olmayabilir, ben gerçekten umurumda değil olabilir.

Güncelleme: Ben PHP Ascom (bir kontrol programı) için bir komut göndermek için çalışıyorum. Ben esas yöntemlerini yürütmek ve küçük parametrelerini geçmek gerekir. Ben de ondan bilgi almak gerekiyor.

3 Cevap

Ben Windows 2003 üzerinde web sunucusu olarak Apache ile kütüphane C + + yerleşik COM nesneleri kullanarak, PHP ile oldukça kapsamlı COM kullanmak. Yaklaşık beş yıl boyunca oldukça iyi çalıştı.

Başlatmanızı ve PHP doğrudan bir COM nesnesini kullanabilirsiniz. Burada verilen Ascom kamera arayüzünde baktığımızda http://ascom-standards.org/Standards/Index.htm, ben iyi iş için beklediğiniz; böyle bir şey:

      $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

yani özelliklerini ve beklediğiniz ne kadar yöntemlerini kullanabilirsiniz. Gerçek COM sınıfı adı enstrümanın dokümanlar olacaktır. Siz üretici size verdiği herhangi bir örnek kod bulabilir.

Eğer bir web süreçte bunu kullanıyor iseniz, COM nesneleri bir HTTP isteği hizmet her zaman yeniden örneğini zorunda olduğunu farkında olmak ve enstrüman yeniden.

Bir gitmek var - muhtemelen hoş, ne kadar basit şaşıracaksınız.

Yapabileceğiniz en iyi şey muhtemelen C # veya C + + kullanarak com düzeneğini sarar bir sarıcı yazmak olacaktır. Kullanmak için basit yolu tabanlı bir komut satırı olacaktır.

ASCOM.exe focuser position odaklayıcı konumunu verimle olacaktır.

ASCOM.exe focuser move 25 odaklayıcı hareket olurdu ama taşındı kadar dönmek olmaz.

Bu çoklu kullanıcı sorunları dikkat emin olun! 10 kişi varsa çevrenizdeki aleti taşımak için çalışıyoruz sorunları olacaktır.

Edit

Php Eğer system() veya exec() komutu ile harici komutları çağrı yapmak. Sen system() engeller komut tamamlanıncaya kadar, çünkü kullanmak gerekir.

$pos = system("ASCOM.exe focuser position"); $pos değişkene konumunu koymak istiyorsunuz. ASCOM.exe Bu komut satırı args almak ve uygun COM çağrıları dönüştürmek için oluşturduğunuz bir program hatırlıyorum.

Bir COM wrapper in C# yapma bu MS makaleyi okuyun. Eğer Son olarak, bu dilde de rahatsız iseniz, olabilir access COM objects in powershell kolayca this article. denemek, C + + kullanmayı tercih ederseniz.

Arayüzlerin ne tür ASCOM ile geliyor? Bir google arama yaptım ama çeşitli programlar buldun.