Hi David, Emanuele,
I'm glad this is provoking some interest. New development projects on PixInsight are always of high priority for me (see
FAQ 1.4).
Image acquisition should be implemented as a module or a set of modules written in C++ using the PCL (PixInsight Class Library) framework. JavaScript scripts can be extremely powerful --much more than what may seem--, but this is definitely something that would require a tighter integration with the PixInsight platform, which is only possible with modules.
Indeed, .NET and everything it means and involves (dependencies on Microsoft and Windows) is a problem. As you know, PixInsight is cross-platform, vendor-agnostic and open-standards-based by nature. I don't know the ASCOM platform in detail, but I have the impression that it's Windows-centric, unfortunately.
That said, I don't see any technical problem to implement something based on ASCOM and .NET using PixInsight and PCL. It would only work on Windows, which is extremely ugly, but fortunately, we have VMware and VirtualBox to run virtual machines on FreeBSD, Linux and Mac OS X.
I am no hardware expert by any stretch of the imagination, but CCD cameras should be relatively easy to control from Linux, Mac OS X and Windows if the manufacturers provide software drivers for *all* of these operating systems. And if they don't, then they should be gifted with hundreds of complaints every day
Whatever you decide to start, you have our support. And if you find that you need something that we don't have, then we'll implement it.
But it seems like we are still at a point in the architecture doesn't allow modules to communicate with each other. Is this still the case?
Modules can indeed communicate (for example, each time you register two images with StarAlignment it is communicating with file format support modules to read and write image files). However, I don't see any limitation here for an image acquisition module. How could this be a problem in this case?
The real time monitoring sounds like a challenge to me...
It seems like that might not be possible as a Module - can anyone verify that or not?
This can be done with a dedicated thread. You start a thread that retrieves the contents of a directory at regular intervals. When it detects some changes in the files stored in the directory, then it modifies some variables that other running processes are also monitoring.
With a similar scheme based on parallel threads, you can implement several functions that work concurrently. For example, you can be guiding a telescope, controlling a camera, moving a dome and showing the acquired images on the screen as soon as they appear on a directory. Threads are very powerful and efficient in PixInsight/PCL.