Hi James,error is there.
It seems strange since this code was not modified a long time but with the highlighted changes it seems to work.
getCommandString(PortFD, OSStat, ":GU#"); // :GU# returns a string containg controller status
if (strcmp(OSStat, OldOSStat) != 0) //if status changed
{
// ============= Telescope Status
strcpy(OldOSStat, OSStat);
IUSaveText(&OnstepStat[0], OSStat);
if (strstr(OSStat, "n") && strstr(OSStat, "N"))
{
IUSaveText(&OnstepStat[1], "Idle");
TrackState = SCOPE_IDLE;
}
//if (strstr(OSStat, "n") && !strstr(OSStat, "N"))
if (!strstr(OSStat, "N"))
{
IUSaveText(&OnstepStat[1], "Slewing");
TrackState = SCOPE_SLEWING;
}
if (strstr(OSStat, "N") && !strstr(OSStat, "n"))
{
IUSaveText(&OnstepStat[1], "Tracking");
TrackState = SCOPE_TRACKING;
}
// ============= Refractoring
if ((strstr(OSStat, "r") || strstr(OSStat, "t"))) //On, either refractory only (r) or full (t)
{
if (strstr(OSStat, "t"))
{
IUSaveText(&OnstepStat[2], "Full Comp");
}
if (strstr(OSStat, "r"))
{
IUSaveText(&OnstepStat[2], "Refractory Comp");
}
if (strstr(OSStat, "s"))
{
IUSaveText(&OnstepStat[8], "Single Axis");
}
else
{
IUSaveText(&OnstepStat[8], "2-Axis");
}
}
else
{
IUSaveText(&OnstepStat[2], "Refractoring Off");
IUSaveText(&OnstepStat[8], "N/A");
}
// ============= Parkstatus
if (strstr(OSStat, "P"))
{
SetParked(true); //defaults to TrackState=SCOPE_PARKED
TrackState = SCOPE_PARKED;
IUSaveText(&OnstepStat[3], "Parked");
}
if (strstr(OSStat, "F"))
{
SetParked(false); // defaults to TrackState=SCOPE_IDLE
TrackState=SCOPE_IDLE;
IUSaveText(&OnstepStat[3], "Parking Failed");
}
if (strstr(OSStat, "I"))
{
SetParked(false); //defaults to TrackState=SCOPE_IDLE but we want
TrackState = SCOPE_PARKING;
IUSaveText(&OnstepStat[3], "Park in Progress");
}
if (strstr(OSStat, "p"))
{
SetParked(false); //defaults to TrackState=SCOPE_IDLE but we want
if (strstr(OSStat, "nN")) // azwing need to detect if unparked idle or tracking
{
IUSaveText(&OnstepStat[1], "Idle");
TrackState = SCOPE_IDLE;
}
else
{
//TrackState = SCOPE_TRACKING;
//IUSaveText(&OnstepStat[1], "Tracking");
}
IUSaveText(&OnstepStat[3], "UnParked");
}