<div dir="ltr">Hi Luke,<div><br></div><div>Thanks so much. Could you please send the link of the changed version to me? And since my system is 64-bit, how can I solve the Z stage problem (no field to change the serial number since I can't add the Z stage first)? </div>
<div><br></div><div>Thanks,</div><div>Ke </div></div><div class="gmail_extra"><br clear="all"><div><div dir="ltr">Ke Li<div>Research Assistant </div><div>Biomedical Engineering</div><div>Johns Hopkins University</div><div>
Phone: 410-934-9802</div><div>Email: <a href="mailto:kli26@jhu.edu" target="_blank">kli26@jhu.edu</a></div></div></div>
<br><br><div class="gmail_quote">On Fri, Jun 27, 2014 at 2:55 PM, Luke Stuyvenberg <span dir="ltr"><<a href="mailto:stuyvenberg@wisc.edu" target="_blank">stuyvenberg@wisc.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi everyone,<br>
<br>
On 06/27/14, Luke Stuyvenberg wrote:<br>
<div class="">> I'll report back after fixing/testing and committing/uploading the device adapter.<br>
<br>
<br>
</div>And so here I am. I've committed the changes to SVN and uploaded the 32-bit version of the DLL to the OpenSPIM update site.<br>
<br>
<br>
Mark -- Following your suggestion, those lines were removed -- in hindsight, it's not really the correct behavior, and the possible issue with obtaining an invalid serial number shouldn't be common at all. Thanks!<br>

<br>
<br>
Kieran -- I recently became aware of the homing problem; the stage sometimes resets its internal location (when it loses power, perhaps?), so over time it will be pushed away. The X/Y stage can be homed using the MM Script Panel, running mmc.home("Picard XY Stage") -- the Z stage has no appropriate API call, so for the time being, there is a property "GoHome" that will home that stage when set to 1. It's a workaround until I can submit a more useful patch to the MM team (though, as an API change, that may take a little while).<br>

<br>
<br>
Ke -- Please let me know if there are any more problems; hope this helps!<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
Luke<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On 06/27/14, Luke Stuyvenberg  wrote:<br>
> Hi Ke, Mark, Johannes,<br>
><br>
><br>
> On 06/26/14, Mark Tsuchida wrote:<br>
> > Johannes, I also found the cause: OnSerialGeneric() is calling the<br>
> > Initialize() function, which fails. This happens before the Hardware<br>
> > Wizard calls Initialize (actually, when the wizard is trying to get<br>
> > the initial values of the pre-init properties), so the wizard has no<br>
> > chance to display the configuration dialog.<br>
> > <br>
> > Simply taking out the calls to Initialize (PicardStage.cpp lines<br>
> > 243-245, 258) seems to fix this, but I'm not sure if that is all that<br>
> > needs to be done (since I don't have a Picard stage and cannot figure<br>
> > out what the intent of calling Initialize() at this point was).<br>
> > Johannes, can you take a look at this?<br>
><br>
><br>
><br>
> The intent of the Initialize call was to test the serial number received from the Pi-detector, but I didn't account for the possibility of CPiDetector returning DEFAULT_SERIAL_UNKNOWN, which it does if the requested device hadn't been found. I'm preparing a fix for this that I will submit via SVN as soon as possible.<br>

><br>
><br>
> The ultimate issue is this: The Pi-detector only tested serial numbers up to 250. I've doubled this for now, but this is a stop-gap measure that causes an ugly pause in the device adding process while it probes the serial numbers; I will need to seek a different approach to detecting the motors.<br>

><br>
><br>
> I'll report back after fixing/testing and committing/uploading the device adapter.<br>
><br>
><br>
> Luke<br>
><br>
><br>
> On 06/26/14, Mark Tsuchida wrote:<br>
> > Hi Ke and Johannes,<br>
> ><br>
> > On Thu, Jun 26, 2014 at 11:57 AM, Mark Tsuchida <<a href="mailto:marktsuchida@gmail.com">marktsuchida@gmail.com</a>> wrote:<br>
> > > On Wed, Jun 25, 2014 at 10:27:54PM -0400, Ke Li wrote:<br>
> > >> 1. I still can't add the Z stage when I create the hardware configuration.<br>
> > >> I tried both 64-bit and 32-bit Windows system, neither can work. Since the<br>
> > >> problem report doesn't give much info, I'm not sure whether there are other<br>
> > >> ways to solve this problem? And what possible reasons can cause the<br>
> > >> problem?<br>
> > ><br>
> > > Are you sure you have the correct serial number for the Z stage (as<br>
> > > Johannes suggested)? In the problem report you sent us, it looked like<br>
> > > you had not set the serial number when adding the Z stage in the<br>
> > > Hardware Configuration Wizard. This causes the device adapter to use the<br>
> > > serial number "-1", which always results in an error.<br>
> > ><br>
> > > Do you see a field to enter the serial number for the Z stage? If you cannot<br>
> > > get it to work even when entering the correct serial number, could you try<br>
> > > sending another Problem Report?<br>
> ><br>
> > Sorry, I hadn't seen your reply to Johannes that answered that question of mine.<br>
> ><br>
> > I can reproduce the problem: with no Picard hardware connected to the<br>
> > computer, no configuration dialog for the pre-initialization settings<br>
> > (including the serial number) is displayed in the hardware<br>
> > configuration wizard. This is the case for the Twister and Z stage,<br>
> > but not the XY stage (at least on my computer).<br>
> ><br>
> > Johannes, I also found the cause: OnSerialGeneric() is calling the<br>
> > Initialize() function, which fails. This happens before the Hardware<br>
> > Wizard calls Initialize (actually, when the wizard is trying to get<br>
> > the initial values of the pre-init properties), so the wizard has no<br>
> > chance to display the configuration dialog.<br>
> ><br>
> > Simply taking out the calls to Initialize (PicardStage.cpp lines<br>
> > 243-245, 258) seems to fix this, but I'm not sure if that is all that<br>
> > needs to be done (since I don't have a Picard stage and cannot figure<br>
> > out what the intent of calling Initialize() at this point was).<br>
> > Johannes, can you take a look at this?<br>
> ><br>
> > Best,<br>
> > Mark<br>
> ><br>
> > --<br>
> > Mark Tsuchida<br>
> > Micro-Manager Team (UCSF Vale Lab)<br>
> ><br>
> > _______________________________________________<br>
> > OpenSPIM mailing list<br>
> > <a href="mailto:OpenSPIM@openspim.org">OpenSPIM@openspim.org</a><br>
> > <a href="http://openspim.org/mailman/listinfo/openspim" target="_blank">http://openspim.org/mailman/listinfo/openspim</a><br>
><br>
> _______________________________________________<br>
> OpenSPIM mailing list<br>
> <a href="mailto:OpenSPIM@openspim.org">OpenSPIM@openspim.org</a><br>
> <a href="http://openspim.org/mailman/listinfo/openspim" target="_blank">http://openspim.org/mailman/listinfo/openspim</a><br>
</div></div></blockquote></div><br></div>