From: Rolf K. <rol...@ci...> - 2003-11-11 09:42:05
|
Hello all, I have been thinking a lot over the weekend about this and I think there is a reasonable approach which might work. We might be able to create a modularized VISA (the current NI implementation is similar in this) which intially might support serial only. The idea is to separate the implementation of the hardware related interface driver (I think NI calls it in their architecture a passport) from the actual VISA32.DLL. LabVIEW and all other software always interfaces with VISA32.DLL only (well I guess T&M Explorer doesn't comply with this but I have really absolutely no intention of supporting T&M in the beginning, both for the fact that the interfaces it uses are entirely undocumented as well as possible license issues). OpenG Visa32.dll would enumerate the underlying passport drivers on first use and manage them accordingly. For the rest it would pass the VISA requests from application space to the according passport driver depending on the actual VISA session. It would be a plugin architecture on shared library niveau, which is also the drawback of this project. Although not inherently very complicated, it is something not every programmer is comfortable to work in as it has a serious amount of abstraction, so I'm at the moment afraid that there would be little if no active support from others for this and therefore it would silently die before it has reached any useful stage. OpenG passport drivers would intially and most probably always NOT be compatible with NI passport drivers as there is no documentation about that interface, although I have a fairly good idea how it works ;-), but the devil lies in the detail and therefore I would not want to attempt to achieve compatibility on that level unless NI might at some stage want to help. As a side node, we might be able to support PORTIO as a passport driver in this architecture as VISA has the according register access primitives although it is currently only used for PXI and VXI. Any comments to this? Rolf Kalbermatter |