Ok so I was said above is
correct. Take a look at the current LX200Telescope code:
bool LX200Telescope::updateLocation(double latitude, double longitude, double elevation)
{
INDI_UNUSED(elevation);
if (isSimulation())
return true;
if (!isSimulation() && setSiteLongitude(PortFD, 360.0 - longitude) < 0)
{
LOG_ERROR("Error setting site longitude coordinates");
return false;
}
...
Do you see what's happening?
For your case it's going to be this:
longitude = 279.8
setSiteLongitude( PortFD, 360 - 279.8 ) ---> setSiteLongitude(PortFD, 80.2)
Now let's go check setSiteLongitude
int setSiteLongitude(int fd, double Long)
{
DEBUGFDEVICE(lx200Name, DBG_SCOPE, "<%s>", __FUNCTION__);
int d, m, s;
char read_buffer[32];
getSexComponents(Long, &d, &m, &s);
snprintf(read_buffer, sizeof(read_buffer), ":Sg%03d:%02d#", d, m);
return (setStandardProcedure(fd, read_buffer));
}
It receives longitude = 80.2, then getSexComponent would return d = 80 and m = 12, and what gets sent is this:
:Sg080:12#
So in your case, the difference is the space, and maybe you need to add the seconds parts? That's it, the rest it the
same.