Hi, I checked the code and saw a bug. This is the relevant code:
LOGF_DEBUG("HA: %g Lng: %g RA: %g", hourAngle, observer.lng, mountEquatorialCoords.ra);
// this will have state OK if the mount sent us information
// and it will be IDLE if not
if(CanAbsMove() && OTASideSP.s == IPS_OK)
{
// process info from the mount
if(OTASideS[0].s == ISS_ON) OTASide = -1;
else OTASide = 1;
}
else
{
// figure out the pier side without help from the mount
if(hourAngle > 0) OTASide = -1;
else OTASide = 1;
// if we got here because we turned off the PIER_SIDE switches in a target goto
// lets try get it back on
if (CanAbsMove())
triggerSnoop(ActiveDeviceT[0].text, "TELESCOPE_PIER_SIDE");
}
OpticalCenter(MountCenter, OTASide * DomeMeasurementsN[DM_OTA_OFFSET].value, observer.lat, hourAngle, OptCenter);
LOGF_DEBUG("OTA_SIDE: %d", OTASide);
LOGF_DEBUG("OTA_OFFSET: %g Lat: %g", DomeMeasurementsN[DM_OTA_OFFSET].value, observer.lat);
LOGF_DEBUG("OC.x: %g - OC.y: %g OC.z: %g", OptCenter.x, OptCenter.y, OptCenter.z);
This part is wrong:
// process info from the mount
if(OTASideS[0].s == ISS_ON) OTASide = -1;
else OTASide = 1;
OTASideS[0] is the switch for east side, and OTASide variable meaning is 1 for east and -1 for west.
So the correct code must be:
// process info from the mount
if(OTASideS[0].s == ISS_ON) OTASide = 1;
else OTASide = -1;
I did not debug this, but seems related.
I have bad weather here, so I don't know when I could debug this.