Hi Dan,
Joystick control of a (remote) stage is problematic for several reasons. Let me explain and unpack some issues for your computer guru.
First of all on the source code question. The complete source code for CalcZAF and Standard are found here:
https://github.com/openmicroanalysis/calczafThe source code for Probe for EPMA is not publicly available, but it can be licensed from Probe Software for a fee. Several of our corporate customers want to write their own standalone applications, without utilizing our Remote server interface (for various reasons), as described here:
https://probesoftware.com/smf/index.php?board=9.0So they license our Probe for EPMA source code and drivers and develop their own applications for the instrument. However this requires professional level programming skills, because making driver level calls to these instruments is not for the faint of heart! For example the JEOL 8200 requires the initialization and processing of the "monitor packet", which is a non-trivial exercise.
That said there is a low level instrument function for setting the JEOL stage motors into what is called "velocity mode". Normally stage motion commands are given in "position mode", where the instrument is commanded to move to position XYZ, and then the instrument is checked for stage motion completion. However, in "velocity mode" the stage motion never "completes", instead the motors are constantly in motion, though the speed may range from zero to full speed.
This "velocity mode" command is what a joystick application generally utilizes in order to control the stage. But even if someone had a joystick application that utilized this low level command to the JEOL instrument, that still wouldn't help you in your quest for remote control of the instrument stage. Why? Because the JEOL instrument is on a private network which is unreachable from the Internet.
So while you could develop your own joystick application and then run it from the local Probe for EPMA computer (or other local PC), that PC would have to be on the instrument's private network (normally 192.168.0.x). And since you already have a local joystick on the JEOL UNIX box, that doesn't help you much! Of course one could put their EPMA instrument directly on the Internet (I did have my Cameca SX100 on the Internet for a year or so about 20 years ago, so it can be done), but I'm not sure it would be a good idea nowadays. The traffic on your university network alone would probably bring the JEOL instrument to a standstill.
So what does that leave you? I echo Probeman's ideas above for us to try and find a remote access software that supports not only a keyboard and mouse, but also the joystick. Did you ask TeamViewer if they support joystick hardware through their interface? Here's a recent request by a TeamViewer customer for remote joystick control:
https://community.teamviewer.com/t5/Previous-versions-EN/Feature-request-Joystick-support-via-LAN/td-p/27586Might be worth checking into. We utilize RealVNC in the lab for remote access, but I also find people requesting this feature for UltraVNC:
http://forum.ultravnc.info/viewtopic.php?t=16911But even if your TeamViewer/VNC remote access software did support remote joystick hardware, that wouldn't help you because you'd still have to develop a joystick application for the Probe for EPMA computer (or other PC). A computer that is on the instrument's private network (and also on the Internet).
Another possibility that Probeman suggested above, is that we might consult some game programmers because maybe they are aware of apps for remote control of a joystick. But again, I suspect that such an app would need a direct connection to the JEOL UNIX box (or instrument) and either of those requirements will be difficult to meet. The first because who supports HP UNIX anymore? And second, because you'd again need to have your instrument on the Internet.
I don't think there is an easy solution for remote control of your EPMA stage using a remote joystick. You know what we do for remote navigation of the instrument stage? We simply use the PictureSnap feature in Probe for EPMA:
https://probesoftware.com/smf/index.php?topic=14.0or the standalone PictureSnapApp application:
https://probesoftware.com/smf/index.php?board=34.0Once you have a calibrated image (which you can do before you leave the lab), navigating the sample is easy. Simply double-click on the image where you want to go and voila, you are there. For tiny adjustments to the stage, the cursor controls in the Probe for EPMA Move window are very usable. And of course you have the auto-focus button there also.
If anyone has any other ideas for accessing a remote joystick we would be very interested in hearing about them.