|
Nico,
I am having trouble deploying my adapter due to an error I get when MM loads my adapter (configuration file). The error is as follows; Device CMMCore::getShutterOpen() Error in device Spectra: Unknown error in the device. MM then exits (shuts down) completely at this point. I get the same result defining a new configuration that includes my adapter. The configuiration goes ok up to the point where i save the configuration and mm reloads it. At this point I get the above indicated error and MM shuts down. I have placed debug statements in my code and know that I get through the initialization of the adapter with no problem. I am, however, confused as I would expect the getShutterOpen() to call my Spectra::GetOpen() function where I would return the current State of the shutter. I have placed debug statements in this module but it is never called that I can see. I am therefor perplexed as to why I get this error and what I need to do to correct it. I have run the Core and Module tests and do not get errors with those. I am updating from the repository and using the latest MM library files. What would you recommend? I have been struggling with this error for several days and still do not know what the cause is. Thanks Louis |
|
Administrator
|
Hi Louis,
> I am having trouble deploying my adapter due to an error I get when > MM loads my adapter (configuration file). The error is as follows; > Device CMMCore::getShutterOpen() Error in device Spectra: Unknown error > in the device. MM then exits (shuts down) completely at this point. I get > the same result defining a new configuration that includes my adapter. Sounds like a build problem. You could try updating the Micro-Manager source code to the latest version, do a (clean) rebuild of your adapter, and copy that code into an installed version of the latest nightly build. If the problem persist, I would suspect that something in your build settings is incorrect. Try building one of the device adapters included with the Micro-Manager source and see if it has the same issue, > The configuiration goes ok up to the point where i save the configuration and mm > reloads it. At this point I get the above indicated error and MM shuts > down. > I have placed debug statements in my code and know that I get through > the initialization of the adapter with no problem. I am, however, confused > as I would expect the getShutterOpen() to call my Spectra::GetOpen() > function where I would return the current State of the shutter. I have > placed debug statements in this module but it is never called that I can > see. I am therefor perplexed as to why I get this error and what I need to > do to correct it. > I have run the Core and Module tests and do not get errors with those. > I am updating from the repository and using the latest MM library files. Best, Nico ------------------------------------------------------------------------------ Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox _______________________________________________ micro-manager-general mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/micro-manager-general |
|
Dear Nico et al:
We have been trying to get Micromanager to run a Prior XY stage with an older H128 controller. We have unsuccessfully tried Micromanager 1.1, 1.2, 1.3, and 1.4 using a PC running Windows 7, a serial RS232 PCI adapter, and a null modem cable. We have also been unsuccessful with MM 1.1, 1.2, 1.3, and 1.4 on Mac OSX via two different USB-serial adapters. The problem is that all XY positions get recorded as 0,0. Trying to go to a recorded position results in a serial error 22 and the stage moving to its origin. Reading and moving commands issued via a terminal program like Prior's own PriorTerminal work just fine (that is also where one can reset the origin) so we know serial communication is working. The H128 controller commandset (as described in www.prioruk.com/downloadcentre/documents/operatingmanuals/H128%20(H152KB).pdf) is not as extensive as the current H129 controller. In the corelog I can see MM is issuing the comp,0 command (so the H129 won't expect H128 commands) and the $ command to query H129 status. These commands are not in the H128 vocabulary and result in timeout errors with the H128. However for reading stage position, MM uses the conserved commands PX and PY, which the H128 does reply to with non-zero values as seen in the corelog, so this basic function does work. Yet, the XY values returned by the H128 don't seem to register as the numbers in the XY list are all 0,0. Also the queries seem to be repeated; I don't know if that's normal. Would it be possible to revise the Prior adapter to work with the H128? Maybe something like a separate entry that we can select in the hardware config wizard (something like XYStageH128) for the older H128 controller which can record the XY values returned from H128, and will specify the stage as a non-sync device so we can add a manual delay during hardware configuration? In case it helps, the corelog output from a simple session of starting MM, logging 3 points, and quitting is below. By the way we also tried to get a newer H129 controller but it would not recognized and run the stage unfortunately. Thank you very much in advance for your help, and happy New Year! LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): -------->> LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): Core session started on 2011-12-29T17:46:45.443037 by Lin Lab on LINLAB-XPS200 LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): Debug logging disabled LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): Debug logging enabled LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): > MM Studio version: 1.4.6 LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): > MMCore version 2.3.1 LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): > Device API version 45, Module API version 7 LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): > Operating System: Windows 7 6.1 DBG(2011-12-29T17:46:45.443037, 2156, t:00566A48:) Circular buffer set to 25 MB. LOG(2011-12-29T17:46:48.219842, 2156, 00566A48:): > Attempting to install plugin org.micromanager.clojureeditor.ClojureEditorPlugin LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.browser.Data_Browser LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Error: Data_Browser fails to implement static String menuName. LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.multicamera.MultiCamera LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.pixelcalibrator.PixelCalibratorPlugin LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.projector.ProjectorPlugin LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.recall.RecallPlugin LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.slideexplorer.SlideExplorerPlugin LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.splitview.SplitView LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.stagecontrol.StageControl LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install autofocus plugin Autofocus LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install autofocus plugin OughtaFocus LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install autofocus plugin AutofocusDuo LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install autofocus plugin AutofocusTB LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install autofocus plugin OughtaFocus LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): All devices unloaded. DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=Core, name=Initialize, value=0 LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): Device COM5 loaded from SerialManager and labeled as COM5 LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): Device COM3 loaded from SerialManager and labeled as COM3 LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): Device COM4 loaded from SerialManager and labeled as COM4 LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): Device XYStage loaded from Prior and labeled as XYStage LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): Device XYStage set as default xyStage. DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=XYStage, name=Port, value=COM5 DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=AnswerTimeout, value=2500.0000 DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=BaudRate, value=9600 DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=DelayBetweenCharsMs, value=0.0000 DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=Handshaking, value=Off DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=Parity, value=None DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=StopBits, value=1 DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=Verbose, value=1 LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): Starting initialization sequence for 4 devices... DBG(2011-12-29T17:46:51.074647, 2156, t:00566A48:) Device COM5 debug message: Attempting to set baud of COM5 to 9600 DBG(2011-12-29T17:46:51.074647, 2156, t:00566A48:) Device COM5 debug message: Attempting to set flow of COM5 to none DBG(2011-12-29T17:46:51.074647, 2156, t:00566A48:) Device COM5 debug message: Attempting to set parity of COM5 to none DBG(2011-12-29T17:46:51.074647, 2156, t:00566A48:) Device COM5 debug message: Attempting to set stopBits of COM5 to 1 LOG(2011-12-29T17:46:51.074647, 2156, 00566A48:): Device COM5 initialized. DBG(2011-12-29T17:46:51.374048, 2156, t:00566A48:) Device COM3 debug message: Attempting to set baud of COM3 to 9600 DBG(2011-12-29T17:46:51.374048, 2156, t:00566A48:) Device COM3 debug message: Attempting to set flow of COM3 to none DBG(2011-12-29T17:46:51.374048, 2156, t:00566A48:) Device COM3 debug message: Attempting to set parity of COM3 to none DBG(2011-12-29T17:46:51.374048, 2156, t:00566A48:) Device COM3 debug message: Attempting to set stopBits of COM3 to 1 LOG(2011-12-29T17:46:51.375048, 2156, 00566A48:): Device COM3 initialized. DBG(2011-12-29T17:46:51.376048, 2156, t:00566A48:) Device COM4 debug message: Attempting to set baud of COM4 to 9600 DBG(2011-12-29T17:46:51.377048, 2156, t:00566A48:) Device COM4 debug message: Attempting to set flow of COM4 to none DBG(2011-12-29T17:46:51.377048, 2156, t:00566A48:) Device COM4 debug message: Attempting to set parity of COM4 to none DBG(2011-12-29T17:46:51.377048, 2156, t:00566A48:) Device COM4 debug message: Attempting to set stopBits of COM4 to 1 LOG(2011-12-29T17:46:51.378048, 2156, 00566A48:): Device COM4 initialized. DBG(2011-12-29T17:46:51.379048, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> comp,0DBG(2011-12-29T17:46:51.579060, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 201 DBG(2011-12-29T17:46:51.779071, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 402 DBG(2011-12-29T17:46:51.979082, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 603 DBG(2011-12-29T17:46:52.179094, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 804 DBG(2011-12-29T17:46:52.379105, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1005 DBG(2011-12-29T17:46:52.579117, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1206 DBG(2011-12-29T17:46:52.779128, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1406 DBG(2011-12-29T17:46:52.979140, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1607 DBG(2011-12-29T17:46:53.179151, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1808 DBG(2011-12-29T17:46:53.379162, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2009 DBG(2011-12-29T17:46:53.579174, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2210 DBG(2011-12-29T17:46:53.779185, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2411 LOG(2011-12-29T17:46:53.879191, 2156, 00566A48:): Device COM5 message: TERM_TIMEOUT error occured! LOG(2011-12-29T17:46:53.879191, 2156, 00566A48:): Error occured. Device COM5. Error in device COM5: Error code 107 (6b hex). LOG(2011-12-29T17:46:53.879191, 2156, 00566A48:): Device XYStage initialized. DBG(2011-12-29T17:46:53.879191, 2156, t:00566A48:) Property set: device=Core, name=Initialize, value=1 LOG(2011-12-29T17:46:53.879191, 2156, 00566A48:): Auto shutter ON. DBG(2011-12-29T17:46:53.879191, 2156, t:00566A48:) Property set: device=Core, name=AutoShutter, value=1 DBG(2011-12-29T17:46:53.879191, 2156, t:00566A48:) Waiting for device COM5... DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Finished waiting. DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Waiting for device COM3... DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Finished waiting. DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Waiting for device COM4... DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Finished waiting. DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Waiting for device XYStage... DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> $DBG(2011-12-29T17:46:54.080203, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 201 DBG(2011-12-29T17:46:54.280214, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 402 DBG(2011-12-29T17:46:54.480225, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 603 DBG(2011-12-29T17:46:54.680237, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 804 DBG(2011-12-29T17:46:54.880248, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1005 DBG(2011-12-29T17:46:55.080260, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1206 DBG(2011-12-29T17:46:55.280271, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1407 DBG(2011-12-29T17:46:55.480283, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1608 DBG(2011-12-29T17:46:55.680294, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1809 DBG(2011-12-29T17:46:55.880306, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2010 DBG(2011-12-29T17:46:56.080317, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2211 DBG(2011-12-29T17:46:56.280328, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2412 LOG(2011-12-29T17:46:56.380334, 2156, 00566A48:): Device COM5 message: TERM_TIMEOUT error occured! LOG(2011-12-29T17:46:56.380334, 2156, 00566A48:): Error occured. Device COM5. Error in device COM5: Error code 107 (6b hex). DBG(2011-12-29T17:46:56.380334, 2156, t:00566A48:) Finished waiting. LOG(2011-12-29T17:46:56.381334, 2156, 00566A48:): System state cache updated. DBG(2011-12-29T17:46:56.390335, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:46:56.559344, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 170 DBG(2011-12-29T17:46:56.559344, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 20062 DBG(2011-12-29T17:46:56.559344, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:46:56.727354, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 169 DBG(2011-12-29T17:46:56.727354, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -370 LOG(2011-12-29T17:46:56.734354, 2156, 00566A48:): > Startup script file (C:\Program Files\Micro-Manager-1.4/MMStartup.bsh) not present. DBG(2011-12-29T17:46:57.317388, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:46:57.472397, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 156 DBG(2011-12-29T17:46:57.472397, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 20062 DBG(2011-12-29T17:46:57.472397, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:46:57.638406, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 167 DBG(2011-12-29T17:46:57.638406, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -370 DBG(2011-12-29T17:47:00.825588, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:00.976597, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 152 DBG(2011-12-29T17:47:00.976597, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 20062 DBG(2011-12-29T17:47:00.976597, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:01.143607, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:01.143607, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -370 DBG(2011-12-29T17:47:01.143607, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:01.310616, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:01.310616, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 20062 DBG(2011-12-29T17:47:01.310616, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:01.477626, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:01.477626, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -370 DBG(2011-12-29T17:47:05.262842, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:05.429852, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:05.429852, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 20062 DBG(2011-12-29T17:47:05.429852, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:05.596861, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:05.596861, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -370 DBG(2011-12-29T17:47:05.596861, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:05.763871, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:05.763871, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 20062 DBG(2011-12-29T17:47:05.763871, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:05.930880, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:05.930880, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -370 DBG(2011-12-29T17:47:09.719097, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:09.883106, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 165 DBG(2011-12-29T17:47:09.883106, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 11989 DBG(2011-12-29T17:47:09.883106, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:10.049116, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 167 DBG(2011-12-29T17:47:10.049116, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -537 DBG(2011-12-29T17:47:10.049116, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:10.221126, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 173 DBG(2011-12-29T17:47:10.221126, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 11989 DBG(2011-12-29T17:47:10.221126, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:10.386135, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 166 DBG(2011-12-29T17:47:10.386135, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -537 DBG(2011-12-29T17:47:12.734270, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:12.906279, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 172 DBG(2011-12-29T17:47:12.906279, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 11989 DBG(2011-12-29T17:47:12.906279, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:13.073289, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:13.073289, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -6809 DBG(2011-12-29T17:47:13.073289, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:13.244299, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 172 DBG(2011-12-29T17:47:13.244299, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 11989 DBG(2011-12-29T17:47:13.244299, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:13.414308, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 171 DBG(2011-12-29T17:47:13.414308, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -6809 DBG(2011-12-29T17:47:19.338647, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:19.502657, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 164 DBG(2011-12-29T17:47:19.502657, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 11989 DBG(2011-12-29T17:47:19.502657, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:19.673666, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 172 DBG(2011-12-29T17:47:19.673666, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -6809 DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Waiting for device COM5... DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Finished waiting. DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Waiting for device COM3... DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Finished waiting. DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Waiting for device COM4... DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Finished waiting. DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Waiting for device XYStage... DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> $ DBG(2011-12-29T17:47:27.950140, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 201 DBG(2011-12-29T17:47:28.150151, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 402 DBG(2011-12-29T17:47:28.350163, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 603 DBG(2011-12-29T17:47:28.550174, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 804 DBG(2011-12-29T17:47:28.750186, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1005 DBG(2011-12-29T17:47:28.950197, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1206 DBG(2011-12-29T17:47:29.150208, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1407 DBG(2011-12-29T17:47:29.350220, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1608 DBG(2011-12-29T17:47:29.550231, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1809 DBG(2011-12-29T17:47:29.750243, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2010 DBG(2011-12-29T17:47:29.950254, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2211 DBG(2011-12-29T17:47:30.150266, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2412 LOG(2011-12-29T17:47:30.250271, 2156, 00566A48:): Device COM5 message: TERM_TIMEOUT error occured! LOG(2011-12-29T17:47:30.250271, 2156, 00566A48:): Error occured. Device COM5. Error in device COM5: Error code 107 (6b hex). DBG(2011-12-29T17:47:30.250271, 2156, t:00566A48:) Finished waiting. ------------------------------------------------------------------------------ Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox _______________________________________________ micro-manager-general mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/micro-manager-general |
|
Michael, I am an independent SW/HW developer and have developed software in the past to control a Prior XY stage in one application. I have reviewed the H128 documentation you posted and its not really so complex so I think that there is certainly a simple work around that might get you going. It sounds as if you have already spent quite a bit of time trying to get this working in your application.
I have designed specialized hardware devices in the past to solve some difficult interface problems. In this case the device could be a smart USB to serial adapter but one that can pass/not pass or even modify commands based upon some criteria.. The beauty of such a device is that it would not require any changes to the Prior Micromanager adapter and it would likely work for your Mac or PC since it is primarily a pass through device.
A cleaner approach would be to build a new Micromanager Device adapter specifically for the h128. I could do certainly do this for you as well. Prior Scientific would be the best ones to do it as it is their product. They may or may not be interested in devoting time to it depending upon the where the product is in its life cycle and how much demand they may have from others like you for such a solution.
Have you talked to them about a revised MM Adapter for this purpose? You are welcome to contact me if you have any questions. Respectfully,
Louis Ashford On Thu, Dec 29, 2011 at 6:38 PM, Michael Z Lin [via Micro-Manager] <[hidden email]> wrote: Dear Nico et al: |
|
In reply to this post by Nico Stuurman
Nico,
You were correct the problem was resolved by updating to the nightly build. This is the second time this has caught me so I need to be more careful to do that each time. Thanks very much for your help. Louis |
|
In reply to this post by Michael Z Lin
A followup - I realize the corelog output of an attempt to go to an unsuccessfully stored position might be useful as well. It is pasted below.
Here I just started Micromanager, changed the XY position of the stage by joystick, stored the point in the Multi-D acquisition list, whereupon the XY coordinates are shown on the screen as 0,0. I then used to joystick to move the stage elsewhere and asked Micromanager to go to the stored point, whereupon the stage moved to the origin previously stored in the H128 controller using terminal commands, and then MM gave the error message "XY Stage error." I then repeated moving away and going to the stored point again with the same result. By the way I made a mistake in my previous email -- the error message after a failed move-to-point command is not type 22 (sorry I remembered that from elsewhere). You can see in the corelog that the program asking for XY position elicits non-zero responses, so it is not clear to me why MM stores all positions as 0,0. Then when the go to point command is issued, MM asks to go to -2147483648,-2147483648. It is always this number even when multiple points are stored and in different MM sessions. Any help you can provide will be greatly appreciated. By the way we have cited MM in the first paper submission from our new lab! Cheers, Michael **************************corelog output pasted below LOG(2011-12-31T10:00:27.663124, 1936, 00000000001D2E20:): -------->> LOG(2011-12-31T10:00:27.663124, 1936, 00000000001D2E20:): Core session started on 2011-12-31T10:00:27.663124 by Lin Lab on LINLAB-XPS200 LOG(2011-12-31T10:00:27.663124, 1936, 00000000001D2E20:): Debug logging disabled LOG(2011-12-31T10:00:27.663124, 1936, 00000000001D2E20:): Debug logging enabled LOG(2011-12-31T10:00:27.663124, 1936, 00000000001D2E20:): > MM Studio version: 1.4.7 LOG(2011-12-31T10:00:27.663124, 1936, 00000000001D2E20:): > MMCore version 2.3.1 LOG(2011-12-31T10:00:27.663124, 1936, 00000000001D2E20:): > Device API version 49, Module API version 7 LOG(2011-12-31T10:00:27.663124, 1936, 00000000001D2E20:): > Operating System: Windows Vista 6.1 DBG(2011-12-31T10:00:27.663124, 1936, t:00000000001D2E20:) Circular buffer set to 25 MB. LOG(2011-12-31T10:00:30.876729, 1936, 00000000001D2E20:): > Attempting to install plugin org.micromanager.clojureeditor.ClojureEditorPlugin LOG(2011-12-31T10:00:30.876729, 1936, 00000000001D2E20:): > Attempting to install plugin org.micromanager.CRISP.CRISP LOG(2011-12-31T10:00:30.876729, 1936, 00000000001D2E20:): > Attempting to install plugin org.micromanager.browser.Data_Browser LOG(2011-12-31T10:00:30.876729, 1936, 00000000001D2E20:): > Error: Data_Browser fails to implement static String menuName. LOG(2011-12-31T10:00:30.876729, 1936, 00000000001D2E20:): > Attempting to install plugin org.micromanager.multicamera.MultiCamera LOG(2011-12-31T10:00:30.876729, 1936, 00000000001D2E20:): > Attempting to install plugin org.micromanager.pixelcalibrator.PixelCalibratorPlugin LOG(2011-12-31T10:00:30.876729, 1936, 00000000001D2E20:): > Attempting to install plugin org.micromanager.projector.ProjectorPlugin LOG(2011-12-31T10:00:30.876729, 1936, 00000000001D2E20:): > Attempting to install plugin org.micromanager.recall.RecallPlugin LOG(2011-12-31T10:00:30.876729, 1936, 00000000001D2E20:): > Attempting to install plugin org.micromanager.slideexplorer.SlideExplorerPlugin LOG(2011-12-31T10:00:30.876729, 1936, 00000000001D2E20:): > Attempting to install plugin org.micromanager.splitview.SplitView LOG(2011-12-31T10:00:30.892329, 1936, 00000000001D2E20:): > Attempting to install plugin org.micromanager.stagecontrol.StageControl LOG(2011-12-31T10:00:30.892329, 1936, 00000000001D2E20:): > Attempting to install autofocus plugin Autofocus LOG(2011-12-31T10:00:30.892329, 1936, 00000000001D2E20:): > Attempting to install autofocus plugin OughtaFocus LOG(2011-12-31T10:00:30.892329, 1936, 00000000001D2E20:): > Attempting to install autofocus plugin AutofocusDuo LOG(2011-12-31T10:00:30.892329, 1936, 00000000001D2E20:): > Attempting to install autofocus plugin AutofocusTB LOG(2011-12-31T10:00:30.892329, 1936, 00000000001D2E20:): > Attempting to install autofocus plugin OughtaFocus LOG(2011-12-31T10:00:30.985929, 1936, 00000000001D2E20:): > Error: org.micromanager.browser.Data_Browser fails to implement static String tooltipDescription. LOG(2011-12-31T10:00:32.998333, 1936, 00000000001D2E20:): All devices unloaded. LOG(2011-12-31T10:00:32.998333, 1936, 00000000001D2E20:): > Notification for Device: Core Property: Initialize changed to value: 0 DBG(2011-12-31T10:00:32.998333, 1936, t:00000000001D2E20:) Property set: device=Core, name=Initialize, value=0 LOG(2011-12-31T10:00:32.998333, 1936, 00000000001D2E20:): Device COM5 loaded from SerialManager and labeled as COM5 LOG(2011-12-31T10:00:32.998333, 1936, 00000000001D2E20:): Device XYStage loaded from Prior and labeled as XYStage LOG(2011-12-31T10:00:32.998333, 1936, 00000000001D2E20:): Device XYStage set as default xyStage. DBG(2011-12-31T10:00:32.998333, 1936, t:00000000001D2E20:) Property set: device=XYStage, name=Port, value=COM5 DBG(2011-12-31T10:00:32.998333, 1936, t:00000000001D2E20:) Property set: device=COM5, name=AnswerTimeout, value=2000.0000 DBG(2011-12-31T10:00:32.998333, 1936, t:00000000001D2E20:) Property set: device=COM5, name=BaudRate, value=9600 DBG(2011-12-31T10:00:32.998333, 1936, t:00000000001D2E20:) Property set: device=COM5, name=DelayBetweenCharsMs, value=0.0000 DBG(2011-12-31T10:00:32.998333, 1936, t:00000000001D2E20:) Property set: device=COM5, name=Handshaking, value=Off DBG(2011-12-31T10:00:32.998333, 1936, t:00000000001D2E20:) Property set: device=COM5, name=Parity, value=None DBG(2011-12-31T10:00:32.998333, 1936, t:00000000001D2E20:) Property set: device=COM5, name=StopBits, value=1 DBG(2011-12-31T10:00:32.998333, 1936, t:00000000001D2E20:) Property set: device=COM5, name=Verbose, value=0 LOG(2011-12-31T10:00:32.998333, 1936, 00000000001D2E20:): Starting initialization sequence for 2 devices... DBG(2011-12-31T10:00:33.029533, 1936, t:00000000001D2E20:) Device COM5 debug message: Attempting to set baud of COM5 to 9600 DBG(2011-12-31T10:00:33.029533, 1936, t:00000000001D2E20:) Device COM5 debug message: Attempting to set flow of COM5 to none DBG(2011-12-31T10:00:33.029533, 1936, t:00000000001D2E20:) Device COM5 debug message: Attempting to set parity of COM5 to none DBG(2011-12-31T10:00:33.029533, 1936, t:00000000001D2E20:) Device COM5 debug message: Attempting to set stopBits of COM5 to 1 LOG(2011-12-31T10:00:33.029533, 1936, 00000000001D2E20:): Device COM5 initialized. DBG(2011-12-31T10:00:33.029533, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> comp,0 DBG(2011-12-31T10:00:33.232333, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:00:33.435134, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 28 DBG(2011-12-31T10:00:33.637934, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 42 DBG(2011-12-31T10:00:33.840734, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 56 DBG(2011-12-31T10:00:34.043535, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 70 DBG(2011-12-31T10:00:34.246335, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 84 DBG(2011-12-31T10:00:34.449135, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 98 DBG(2011-12-31T10:00:34.651936, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 112 DBG(2011-12-31T10:00:34.854736, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 126 LOG(2011-12-31T10:00:35.041937, 1936, 00000000001D2E20:): Device COM5 message: TERM_TIMEOUT error occured! LOG(2011-12-31T10:00:35.041937, 1936, 00000000001D2E20:): Error occured. Device COM5. Error in device COM5: Error code 107 (6b hex). LOG(2011-12-31T10:00:35.041937, 1936, 00000000001D2E20:): Device XYStage initialized. LOG(2011-12-31T10:00:35.041937, 1936, 00000000001D2E20:): > Notification for Device: Core Property: Initialize changed to value: 1 DBG(2011-12-31T10:00:35.041937, 1936, t:00000000001D2E20:) Property set: device=Core, name=Initialize, value=1 LOG(2011-12-31T10:00:35.041937, 1936, 00000000001D2E20:): Auto shutter ON. LOG(2011-12-31T10:00:35.041937, 1936, 00000000001D2E20:): > Notification for Device: Core Property: AutoShutter changed to value: 1 DBG(2011-12-31T10:00:35.041937, 1936, t:00000000001D2E20:) Property set: device=Core, name=AutoShutter, value=1 DBG(2011-12-31T10:00:35.041937, 1936, t:00000000001D2E20:) Waiting for device COM5... DBG(2011-12-31T10:00:35.041937, 1936, t:00000000001D2E20:) Finished waiting. DBG(2011-12-31T10:00:35.041937, 1936, t:00000000001D2E20:) Waiting for device XYStage... DBG(2011-12-31T10:00:35.041937, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> $ DBG(2011-12-31T10:00:35.244737, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:00:35.447537, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 28 DBG(2011-12-31T10:00:35.650338, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 42 DBG(2011-12-31T10:00:35.853138, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 56 DBG(2011-12-31T10:00:36.055938, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 70 DBG(2011-12-31T10:00:36.258739, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 84 DBG(2011-12-31T10:00:36.461539, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 98 DBG(2011-12-31T10:00:36.664339, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 112 DBG(2011-12-31T10:00:36.867140, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 126 LOG(2011-12-31T10:00:37.054340, 1936, 00000000001D2E20:): Device COM5 message: TERM_TIMEOUT error occured! LOG(2011-12-31T10:00:37.054340, 1936, 00000000001D2E20:): Error occured. Device COM5. Error in device COM5: Error code 107 (6b hex). DBG(2011-12-31T10:00:37.054340, 1936, t:00000000001D2E20:) Finished waiting. LOG(2011-12-31T10:00:37.054340, 1936, 00000000001D2E20:): System state cache updated. LOG(2011-12-31T10:00:37.054340, 1936, 00000000001D2E20:): System state cache updated. DBG(2011-12-31T10:00:37.054340, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-31T10:00:37.241540, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 13 DBG(2011-12-31T10:00:37.241540, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 DBG(2011-12-31T10:00:37.241540, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-31T10:00:37.444341, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:00:37.444341, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 15 DBG(2011-12-31T10:00:37.444341, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 LOG(2011-12-31T10:00:37.444341, 1936, 00000000001D2E20:): > Startup script file (C:\Program Files\Micro-Manager-1.4/MMStartup.bsh) not present. DBG(2011-12-31T10:00:41.157147, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-31T10:00:41.359948, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:00:41.359948, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 15 DBG(2011-12-31T10:00:41.359948, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 DBG(2011-12-31T10:00:41.359948, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-31T10:00:41.562748, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:00:41.562748, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 15 DBG(2011-12-31T10:00:41.562748, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 DBG(2011-12-31T10:00:41.562748, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-31T10:00:41.765548, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:00:41.765548, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 15 DBG(2011-12-31T10:00:41.765548, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 DBG(2011-12-31T10:00:41.765548, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-31T10:00:41.937149, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 12 DBG(2011-12-31T10:00:41.937149, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 DBG(2011-12-31T10:00:48.161560, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-31T10:00:48.364360, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:00:48.364360, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 15 DBG(2011-12-31T10:00:48.364360, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 22869 DBG(2011-12-31T10:00:48.364360, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-31T10:00:48.567160, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:00:48.567160, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 15 DBG(2011-12-31T10:00:48.567160, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- -19621 DBG(2011-12-31T10:00:48.567160, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-31T10:00:48.754361, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 13 DBG(2011-12-31T10:00:48.754361, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 22869 DBG(2011-12-31T10:00:48.754361, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-31T10:00:48.957161, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:00:48.972761, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 16 DBG(2011-12-31T10:00:48.972761, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- -19621 DBG(2011-12-31T10:00:58.285977, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> G,-2147483648,-2147483648 DBG(2011-12-31T10:00:58.488778, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:00:58.691578, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 28 DBG(2011-12-31T10:00:58.894378, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 42 DBG(2011-12-31T10:00:59.097179, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 56 DBG(2011-12-31T10:00:59.299979, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 70 DBG(2011-12-31T10:00:59.502779, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 84 DBG(2011-12-31T10:00:59.705580, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 98 DBG(2011-12-31T10:00:59.908380, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 112 DBG(2011-12-31T10:01:00.111181, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 126 LOG(2011-12-31T10:01:00.298381, 1936, 00000000001D2E20:): Device COM5 message: TERM_TIMEOUT error occured! LOG(2011-12-31T10:01:00.298381, 1936, 00000000001D2E20:): Error occured. Device COM5. Error in device COM5: Error code 107 (6b hex). LOG(2011-12-31T10:01:00.298381, 1936, 00000000001D2E20:): Error occured. Device XYStage. Error in device XYStage: Serial command failed. Is the device connected to the serial port?. LOG(2011-12-31T10:01:00.298381, 1936, 00000000001D2E20:): > java.lang.Exception: XY stage error in Thread[AWT-EventQueue-0,6,main] at org.micromanager.navigation.MultiStagePosition.goToPosition(MultiStagePosition.java:239) at org.micromanager.PositionListDlg.goToCurrentPosition(PositionListDlg.java:704) at org.micromanager.PositionListDlg$7.actionPerformed(PositionListDlg.java:458) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) DBG(2011-12-31T10:01:01.733583, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-31T10:01:01.920784, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 13 DBG(2011-12-31T10:01:01.920784, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 DBG(2011-12-31T10:01:01.920784, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-31T10:01:02.123584, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:01:02.123584, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 15 DBG(2011-12-31T10:01:02.123584, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 DBG(2011-12-31T10:01:02.123584, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-31T10:01:02.326384, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:01:02.326384, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 15 DBG(2011-12-31T10:01:02.326384, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 DBG(2011-12-31T10:01:02.326384, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-31T10:01:02.529185, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:01:02.529185, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 15 DBG(2011-12-31T10:01:02.529185, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 DBG(2011-12-31T10:01:07.287193, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> G,-2147483648,-2147483648 DBG(2011-12-31T10:01:07.489994, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:01:07.692794, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 28 DBG(2011-12-31T10:01:07.895594, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 42 DBG(2011-12-31T10:01:08.098395, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 56 DBG(2011-12-31T10:01:08.301195, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 70 DBG(2011-12-31T10:01:08.503995, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 84 DBG(2011-12-31T10:01:08.706796, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 98 DBG(2011-12-31T10:01:08.909596, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 112 DBG(2011-12-31T10:01:09.112396, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 126 LOG(2011-12-31T10:01:09.299597, 1936, 00000000001D2E20:): Device COM5 message: TERM_TIMEOUT error occured! LOG(2011-12-31T10:01:09.299597, 1936, 00000000001D2E20:): Error occured. Device COM5. Error in device COM5: Error code 107 (6b hex). LOG(2011-12-31T10:01:09.299597, 1936, 00000000001D2E20:): Error occured. Device XYStage. Error in device XYStage: Serial command failed. Is the device connected to the serial port?. LOG(2011-12-31T10:01:09.299597, 1936, 00000000001D2E20:): > java.lang.Exception: XY stage error in Thread[AWT-EventQueue-0,6,main] at org.micromanager.navigation.MultiStagePosition.goToPosition(MultiStagePosition.java:239) at org.micromanager.PositionListDlg.goToCurrentPosition(PositionListDlg.java:704) at org.micromanager.PositionListDlg$7.actionPerformed(PositionListDlg.java:458) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) DBG(2011-12-31T10:01:10.672399, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-31T10:01:10.859599, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 13 DBG(2011-12-31T10:01:10.859599, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 DBG(2011-12-31T10:01:10.859599, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-31T10:01:11.062400, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:01:11.062400, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 15 DBG(2011-12-31T10:01:11.062400, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 DBG(2011-12-31T10:01:11.062400, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-31T10:01:11.234000, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 12 DBG(2011-12-31T10:01:11.234000, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 DBG(2011-12-31T10:01:11.234000, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-31T10:01:11.421200, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 13 DBG(2011-12-31T10:01:11.421200, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer <- 0 DBG(2011-12-31T10:01:16.288409, 1936, t:00000000001D2E20:) Waiting for device COM5... DBG(2011-12-31T10:01:16.288409, 1936, t:00000000001D2E20:) Finished waiting. DBG(2011-12-31T10:01:16.288409, 1936, t:00000000001D2E20:) Waiting for device XYStage... DBG(2011-12-31T10:01:16.288409, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> $ DBG(2011-12-31T10:01:16.491209, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 14 DBG(2011-12-31T10:01:16.694010, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 28 DBG(2011-12-31T10:01:16.896810, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 42 DBG(2011-12-31T10:01:17.099610, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 56 DBG(2011-12-31T10:01:17.302411, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 70 DBG(2011-12-31T10:01:17.505211, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 84 DBG(2011-12-31T10:01:17.708011, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 98 DBG(2011-12-31T10:01:17.910812, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 112 DBG(2011-12-31T10:01:18.113612, 1936, t:00000000001D2E20:) Device COM5 debug message: GetAnswer # retries = 126 LOG(2011-12-31T10:01:18.300813, 1936, 00000000001D2E20:): Device COM5 message: TERM_TIMEOUT error occured! LOG(2011-12-31T10:01:18.300813, 1936, 00000000001D2E20:): Error occured. Device COM5. Error in device COM5: Error code 107 (6b hex). DBG(2011-12-31T10:01:18.300813, 1936, t:00000000001D2E20:) Finished waiting. *****************************************end of message December 31, 2011 ----- Original Message ----- From: "Michael Z Lin" <[hidden email]> To: "Micro-Manager General" <[hidden email]> Sent: Thursday, December 29, 2011 6:37:05 PM Subject: driver compatibility issue with Prior XY stage and older H128 controller Dear Nico et al: We have been trying to get Micromanager to run a Prior XY stage with an older H128 controller. We have unsuccessfully tried Micromanager 1.1, 1.2, 1.3, and 1.4 using a PC running Windows 7, a serial RS232 PCI adapter, and a null modem cable. We have also been unsuccessful with MM 1.1, 1.2, 1.3, and 1.4 on Mac OSX via two different USB-serial adapters. The problem is that all XY positions get recorded as 0,0. Trying to go to a recorded position results in a serial error 22 and the stage moving to its origin. Reading and moving commands issued via a terminal program like Prior's own PriorTerminal work just fine (that is also where one can reset the origin) so we know serial communication is working. The H128 controller commandset (as described in www.prioruk.com/downloadcentre/documents/operatingmanuals/H128%20(H152KB).pdf) is not as extensive as the current H129 controller. In the corelog I can see MM is issuing the comp,0 command (so the H129 won't expect H128 commands) and the $ command to query H129 status. These commands are not in the H128 vocabulary and result in timeout errors with the H128. However for reading stage position, MM uses the conserved commands PX and PY, which the H128 does reply to with non-zero values as seen in the corelog, so this basic function does work. Yet, the XY values returned by the H128 don't seem to register as the numbers in the XY list are all 0,0. Also the queries seem to be repeated; I don't know if that's normal. Would it be possible to revise the Prior adapter to work with the H128? Maybe something like a separate entry that we can select in the hardware config wizard (something like XYStageH128) for the older H128 controller which can record the XY values returned from H128, and will specify the stage as a non-sync device so we can add a manual delay during hardware configuration? In case it helps, the corelog output from a simple session of starting MM, logging 3 points, and quitting is below. By the way we also tried to get a newer H129 controller but it would not recognized and run the stage unfortunately. Thank you very much in advance for your help, and happy New Year! LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): -------->> LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): Core session started on 2011-12-29T17:46:45.443037 by Lin Lab on LINLAB-XPS200 LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): Debug logging disabled LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): Debug logging enabled LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): > MM Studio version: 1.4.6 LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): > MMCore version 2.3.1 LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): > Device API version 45, Module API version 7 LOG(2011-12-29T17:46:45.443037, 2156, 00566A48:): > Operating System: Windows 7 6.1 DBG(2011-12-29T17:46:45.443037, 2156, t:00566A48:) Circular buffer set to 25 MB. LOG(2011-12-29T17:46:48.219842, 2156, 00566A48:): > Attempting to install plugin org.micromanager.clojureeditor.ClojureEditorPlugin LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.browser.Data_Browser LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Error: Data_Browser fails to implement static String menuName. LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.multicamera.MultiCamera LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.pixelcalibrator.PixelCalibratorPlugin LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.projector.ProjectorPlugin LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.recall.RecallPlugin LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.slideexplorer.SlideExplorerPlugin LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.splitview.SplitView LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install plugin org.micromanager.stagecontrol.StageControl LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install autofocus plugin Autofocus LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install autofocus plugin OughtaFocus LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install autofocus plugin AutofocusDuo LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install autofocus plugin AutofocusTB LOG(2011-12-29T17:46:48.235442, 2156, 00566A48:): > Attempting to install autofocus plugin OughtaFocus LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): All devices unloaded. DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=Core, name=Initialize, value=0 LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): Device COM5 loaded from SerialManager and labeled as COM5 LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): Device COM3 loaded from SerialManager and labeled as COM3 LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): Device COM4 loaded from SerialManager and labeled as COM4 LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): Device XYStage loaded from Prior and labeled as XYStage LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): Device XYStage set as default xyStage. DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=XYStage, name=Port, value=COM5 DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=AnswerTimeout, value=2500.0000 DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=BaudRate, value=9600 DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=DelayBetweenCharsMs, value=0.0000 DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=Handshaking, value=Off DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=Parity, value=None DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=StopBits, value=1 DBG(2011-12-29T17:46:51.043447, 2156, t:00566A48:) Property set: device=COM5, name=Verbose, value=1 LOG(2011-12-29T17:46:51.043447, 2156, 00566A48:): Starting initialization sequence for 4 devices... DBG(2011-12-29T17:46:51.074647, 2156, t:00566A48:) Device COM5 debug message: Attempting to set baud of COM5 to 9600 DBG(2011-12-29T17:46:51.074647, 2156, t:00566A48:) Device COM5 debug message: Attempting to set flow of COM5 to none DBG(2011-12-29T17:46:51.074647, 2156, t:00566A48:) Device COM5 debug message: Attempting to set parity of COM5 to none DBG(2011-12-29T17:46:51.074647, 2156, t:00566A48:) Device COM5 debug message: Attempting to set stopBits of COM5 to 1 LOG(2011-12-29T17:46:51.074647, 2156, 00566A48:): Device COM5 initialized. DBG(2011-12-29T17:46:51.374048, 2156, t:00566A48:) Device COM3 debug message: Attempting to set baud of COM3 to 9600 DBG(2011-12-29T17:46:51.374048, 2156, t:00566A48:) Device COM3 debug message: Attempting to set flow of COM3 to none DBG(2011-12-29T17:46:51.374048, 2156, t:00566A48:) Device COM3 debug message: Attempting to set parity of COM3 to none DBG(2011-12-29T17:46:51.374048, 2156, t:00566A48:) Device COM3 debug message: Attempting to set stopBits of COM3 to 1 LOG(2011-12-29T17:46:51.375048, 2156, 00566A48:): Device COM3 initialized. DBG(2011-12-29T17:46:51.376048, 2156, t:00566A48:) Device COM4 debug message: Attempting to set baud of COM4 to 9600 DBG(2011-12-29T17:46:51.377048, 2156, t:00566A48:) Device COM4 debug message: Attempting to set flow of COM4 to none DBG(2011-12-29T17:46:51.377048, 2156, t:00566A48:) Device COM4 debug message: Attempting to set parity of COM4 to none DBG(2011-12-29T17:46:51.377048, 2156, t:00566A48:) Device COM4 debug message: Attempting to set stopBits of COM4 to 1 LOG(2011-12-29T17:46:51.378048, 2156, 00566A48:): Device COM4 initialized. DBG(2011-12-29T17:46:51.379048, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> comp,0DBG(2011-12-29T17:46:51.579060, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 201 DBG(2011-12-29T17:46:51.779071, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 402 DBG(2011-12-29T17:46:51.979082, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 603 DBG(2011-12-29T17:46:52.179094, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 804 DBG(2011-12-29T17:46:52.379105, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1005 DBG(2011-12-29T17:46:52.579117, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1206 DBG(2011-12-29T17:46:52.779128, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1406 DBG(2011-12-29T17:46:52.979140, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1607 DBG(2011-12-29T17:46:53.179151, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1808 DBG(2011-12-29T17:46:53.379162, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2009 DBG(2011-12-29T17:46:53.579174, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2210 DBG(2011-12-29T17:46:53.779185, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2411 LOG(2011-12-29T17:46:53.879191, 2156, 00566A48:): Device COM5 message: TERM_TIMEOUT error occured! LOG(2011-12-29T17:46:53.879191, 2156, 00566A48:): Error occured. Device COM5. Error in device COM5: Error code 107 (6b hex). LOG(2011-12-29T17:46:53.879191, 2156, 00566A48:): Device XYStage initialized. DBG(2011-12-29T17:46:53.879191, 2156, t:00566A48:) Property set: device=Core, name=Initialize, value=1 LOG(2011-12-29T17:46:53.879191, 2156, 00566A48:): Auto shutter ON. DBG(2011-12-29T17:46:53.879191, 2156, t:00566A48:) Property set: device=Core, name=AutoShutter, value=1 DBG(2011-12-29T17:46:53.879191, 2156, t:00566A48:) Waiting for device COM5... DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Finished waiting. DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Waiting for device COM3... DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Finished waiting. DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Waiting for device COM4... DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Finished waiting. DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Waiting for device XYStage... DBG(2011-12-29T17:46:53.880191, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> $DBG(2011-12-29T17:46:54.080203, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 201 DBG(2011-12-29T17:46:54.280214, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 402 DBG(2011-12-29T17:46:54.480225, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 603 DBG(2011-12-29T17:46:54.680237, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 804 DBG(2011-12-29T17:46:54.880248, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1005 DBG(2011-12-29T17:46:55.080260, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1206 DBG(2011-12-29T17:46:55.280271, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1407 DBG(2011-12-29T17:46:55.480283, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1608 DBG(2011-12-29T17:46:55.680294, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1809 DBG(2011-12-29T17:46:55.880306, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2010 DBG(2011-12-29T17:46:56.080317, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2211 DBG(2011-12-29T17:46:56.280328, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2412 LOG(2011-12-29T17:46:56.380334, 2156, 00566A48:): Device COM5 message: TERM_TIMEOUT error occured! LOG(2011-12-29T17:46:56.380334, 2156, 00566A48:): Error occured. Device COM5. Error in device COM5: Error code 107 (6b hex). DBG(2011-12-29T17:46:56.380334, 2156, t:00566A48:) Finished waiting. LOG(2011-12-29T17:46:56.381334, 2156, 00566A48:): System state cache updated. DBG(2011-12-29T17:46:56.390335, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:46:56.559344, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 170 DBG(2011-12-29T17:46:56.559344, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 20062 DBG(2011-12-29T17:46:56.559344, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:46:56.727354, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 169 DBG(2011-12-29T17:46:56.727354, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -370 LOG(2011-12-29T17:46:56.734354, 2156, 00566A48:): > Startup script file (C:\Program Files\Micro-Manager-1.4/MMStartup.bsh) not present. DBG(2011-12-29T17:46:57.317388, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:46:57.472397, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 156 DBG(2011-12-29T17:46:57.472397, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 20062 DBG(2011-12-29T17:46:57.472397, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:46:57.638406, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 167 DBG(2011-12-29T17:46:57.638406, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -370 DBG(2011-12-29T17:47:00.825588, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:00.976597, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 152 DBG(2011-12-29T17:47:00.976597, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 20062 DBG(2011-12-29T17:47:00.976597, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:01.143607, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:01.143607, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -370 DBG(2011-12-29T17:47:01.143607, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:01.310616, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:01.310616, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 20062 DBG(2011-12-29T17:47:01.310616, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:01.477626, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:01.477626, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -370 DBG(2011-12-29T17:47:05.262842, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:05.429852, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:05.429852, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 20062 DBG(2011-12-29T17:47:05.429852, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:05.596861, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:05.596861, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -370 DBG(2011-12-29T17:47:05.596861, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:05.763871, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:05.763871, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 20062 DBG(2011-12-29T17:47:05.763871, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:05.930880, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:05.930880, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -370 DBG(2011-12-29T17:47:09.719097, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:09.883106, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 165 DBG(2011-12-29T17:47:09.883106, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 11989 DBG(2011-12-29T17:47:09.883106, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:10.049116, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 167 DBG(2011-12-29T17:47:10.049116, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -537 DBG(2011-12-29T17:47:10.049116, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:10.221126, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 173 DBG(2011-12-29T17:47:10.221126, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 11989 DBG(2011-12-29T17:47:10.221126, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:10.386135, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 166 DBG(2011-12-29T17:47:10.386135, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -537 DBG(2011-12-29T17:47:12.734270, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:12.906279, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 172 DBG(2011-12-29T17:47:12.906279, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 11989 DBG(2011-12-29T17:47:12.906279, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:13.073289, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 168 DBG(2011-12-29T17:47:13.073289, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -6809 DBG(2011-12-29T17:47:13.073289, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:13.244299, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 172 DBG(2011-12-29T17:47:13.244299, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 11989 DBG(2011-12-29T17:47:13.244299, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:13.414308, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 171 DBG(2011-12-29T17:47:13.414308, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -6809 DBG(2011-12-29T17:47:19.338647, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PX DBG(2011-12-29T17:47:19.502657, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 164 DBG(2011-12-29T17:47:19.502657, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- 11989 DBG(2011-12-29T17:47:19.502657, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> PY DBG(2011-12-29T17:47:19.673666, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 172 DBG(2011-12-29T17:47:19.673666, 2156, t:00566A48:) Device COM5 debug message: GetAnswer <- -6809 DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Waiting for device COM5... DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Finished waiting. DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Waiting for device COM3... DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Finished waiting. DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Waiting for device COM4... DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Finished waiting. DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Waiting for device XYStage... DBG(2011-12-29T17:47:27.750128, 2156, t:00566A48:) Device COM5 debug message: SetCommand -> $ DBG(2011-12-29T17:47:27.950140, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 201 DBG(2011-12-29T17:47:28.150151, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 402 DBG(2011-12-29T17:47:28.350163, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 603 DBG(2011-12-29T17:47:28.550174, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 804 DBG(2011-12-29T17:47:28.750186, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1005 DBG(2011-12-29T17:47:28.950197, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1206 DBG(2011-12-29T17:47:29.150208, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1407 DBG(2011-12-29T17:47:29.350220, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1608 DBG(2011-12-29T17:47:29.550231, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 1809 DBG(2011-12-29T17:47:29.750243, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2010 DBG(2011-12-29T17:47:29.950254, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2211 DBG(2011-12-29T17:47:30.150266, 2156, t:00566A48:) Device COM5 debug message: GetAnswer # retries = 2412 LOG(2011-12-29T17:47:30.250271, 2156, 00566A48:): Device COM5 message: TERM_TIMEOUT error occured! LOG(2011-12-29T17:47:30.250271, 2156, 00566A48:): Error occured. Device COM5. Error in device COM5: Error code 107 (6b hex). DBG(2011-12-29T17:47:30.250271, 2156, t:00566A48:) Finished waiting. ------------------------------------------------------------------------------ Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox _______________________________________________ micro-manager-general mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/micro-manager-general |
|
Michael, One thing that I noticed in your run log was that the first command to the stage after completion of the serial initialization was as follows: LOG(2011-12-31T10:00:33.029533, 1936, 00000000001D2E20:): Device COM5 initialized. DBG(2011-12-31T10:00:33.029533, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> comp,0 The comp command sets the command set for the controller to Compatibility mode
This is not discussed in the H128 manual but in the ProScan manual it says the following about the Comp command: -------------------------------------------------------------------------------
Command Argument Response ------------------------------------------------------------------------------- COMP m 0 Sets the controller compatibility mode for users who want to wait for ‘R’ at the end of the move. Compatibility is on if m = 1 and off if m = 0. Setting COMP,1 will result in less flexibility. For example, SOAK cannot be used and commands sent while the joystick is active will be lost. Compatibility mode is offered for users who wish the Commands to be compatible with earlier H127/H128 Prior Controllers. --------------- It looks to me like you are timing out on this command as it returned the following: LOG(2011-12-31T10:00:35.041937, 1936, 00000000001D2E20:): Device COM5 message: TERM_TIMEOUT error occured! This may be because you have a problem with the serial connection to the device. However I think you indicated that you can talk to the device using
hyper terminal OK so that says your connection to the hardware is not the issue. You really cant pay much attention to errors that come following a timeout because this leaves the stage in a possibly undefined state. I see you do get an indication that the stage was initialized following the bad command timeout.
LOG(2011-12-31T10:00:35.041937, 1936, 00000000001D2E20:): Device XYStage initialized. I think I would try to change the Compatibility mode switch to 1 and try that first. The rest I would ignore till you can get valid command responses in the initial stage setup. The problem is that the other commands you are sending to the unit seem to assume that you are in the 'standard command mode. These commands are not supported for the H128 .
Another Note: DBG(2011-12-31T10:00:35.041937, 1936, t:00000000001D2E20:) Device COM5 debug message: SetCommand -> $ The '$' command is a standard mode command, that is to say, it is not valid in the compatibility mode. This command is not supported on the H128.
The equivalent would be '#' for the H130 but I don't think that this command is supported on the H128. These are just some of my observations about what you are seeing in your error log.
Thanks, Louis Ashford On Sat, Dec 31, 2011 at 10:44 AM, Michael Z Lin [via Micro-Manager] <[hidden email]> wrote: A followup - I realize the corelog output of an attempt to go to an unsuccessfully stored position might be useful as well. It is pasted below. |
|
Thanks for looking into this, Louis.
I've read the H129 and H128 manuals carefully on the compatibility issue. It's confusing for more than one reason, but in short the comp,0 command doesn't exist for the H128 so is simply ignored and gives a timeout error as you say. Switching it to "comp,1" I would expect would give the same error. The purpose of comp,1 is to make H129 and later behave more similarly to H128. By the way, I actually believe the current adapter meant to issue "comp,1" because the notes in the source code say "make sure we are in compatibility mode" which would be "comp,1" not "comp,0". In any case it makes no difference to the H128 which can't understand either. I agree it's not good to be issuing commands to the H128 that get ignored. In fact on reading the source code I think the most likely problem may be that the step size/resolution of the stage is set to 0. The adapter as written initializes the step size to 0, then queries for actual resolution on startup. But this is in the initialization sequence after the comp,0 and the sequence aborts by returning an error as the initialization function result before getting to the resolution query. Furthermore the command used to report resolution ("RES,s" if you dig down into the subroutines) doesn't work on the H128 anyway which does not report or adjust resolution. (Finally I think the adapter may be mistaken in commanding "RES,s" instead of "RES,x" as according to the H129 manual I am reading "RES,s,c" is used to set resolution c to both axes but RES,x or RES,y should be used to report the resolution.) The step size being set to 0 would explain the two major symptoms: x and y position steps being returned by the controller get multiplied by 0 to get cartesian coordinates of 0,0. Then when the go to command gets issued, the number of steps being asked for becomes 0 divided by 0, which must become 2147483648 for each dimension, and this is out of range for the H128 and one gets an error. I have rewritten the source code to remove all the commands unrecognized by the H128, to convert the commands and limits with H128 equivalents, and to hard-code stage resolution to 0.1 (this depends on the motor and all I can find is 0.04 is the min resolution for the early Proscan stages). Since the H128 doesn't allow status queries by $ or # I just set the busy variable to always false and added the EnableDelay() function, assuming it is the function responsible for allowing user-specified delay. Because I had no C++ programming experience and can only try inferring the APIs from what I can read, I sent it to Nico to check, finalize, and incorporate if possible. Thanks again and I'll let you all know if a new version of the adapter works. Cheers, Michael On Jan 1, 2012, at 9:51 PM, lashford wrote:
------------------------------------------------------------------------------ Write once. Port to many. Get the SDK and tools to simplify cross-platform app development. Create new or port existing apps to sell to consumers worldwide. Explore the Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join http://p.sf.net/sfu/intel-appdev _______________________________________________ micro-manager-general mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/micro-manager-general |
|
Michael, On Jan 2, 2012 5:52 PM, "Michael Z Lin [via Micro-Manager]" <[hidden email]> wrote:
Thanks for looking into this, Louis. |
|
In reply to this post by Michael Z Lin
Dear Michael,
In our lab, instead of using the MultiD function provided by MM, we wrote our own Beanshell scripts to command our XY stage controller, ESP300. We were able to command the controller although an MM adaptor has not been accomplished for the controller. Here is what we did, 1. configure & select the COM port for the stage controller Go to Menu-> Tools-> Hardware Configuration Wizard (this can be done without having any software adaptor for the device. The purpose of this step is to ensure that MM recognizes and communicates with the controller.) 2. write a Beanshell script Go to Menu -> Tools -> Script Panel. Then write your script in the panel that pops up. I assume that you can command your XY stage controller by Hyperterminal using commands specific for your hardware, provided by the manufacturer. Here is an example of script you should use: mmc.setSerialPortCommand("COM1", "1pa8", "\r\n"). - "COM1": the comport that your XY controller is assigned with; if your device is assigned with COM2, type in "COM2" instead - "1pa8": this command is only for our controller (it moves the actuator in axis one to position 8); you probably have some different command for your own device. Refer to your controller instruction manual. -"\r\n": this is carriage return that sends your command to the device via MM. Note: if this carriage return does not work, try "\n" Let me know if you have any more questions. Regards, Gong |
| Powered by Nabble | See how NAML generates this page |
