knro wrote: that looks fine, submit it on Github as Pull-Request.


I don't know how to do this (Pull-request), but I will learn.

I need more testing. I have sniffed Ascom Driver 2.11 (phd - manual guide and other windows program).
If pulse length is less than 999 Ascom driver write for example 750ms:
:Me750#:
If pulse guide is 1000ms or more Windows Ascom driver give multiple commands, for example 2200ms:
:Me999# :Me999# :Me202#
(999+999+202=2200)

I think correct format is :Me%3d#. I will test this code:
int LX200GotoNova::SendPulseCmd(int direction, int duration_msec)
{
    int nbytes_write = 0;
    char cmd[10];
	int duration_time_msec=duration_msec;
	while (duration_time_msec>0)
	{
	if (duration_time_msec>999) duration_msec=999;
	else duration_msec=duration_time_msec;	
	switch (direction)
		{
			case LX200_NORTH:
				sprintf(cmd, ":Mn%03d#", duration_msec); 
				break;
			case LX200_SOUTH:
				sprintf(cmd, ":Ms%03d#", duration_msec);
				break;
			case LX200_EAST:
				sprintf(cmd, ":Me%03d#", duration_msec);
				break;
			case LX200_WEST:
				sprintf(cmd, ":Mw%03d#", duration_msec);
				break;
			default:
				return 1;
		}
	duration_time_msec = duration_time_msec - duration_msec;
	DEBUGF(INDI::Logger::DBG_DEBUG, "CMD (%s)", cmd);
    tty_write_string(PortFD, cmd, &nbytes_write);
	}
    tcflush(PortFD, TCIFLUSH);
    return 0;
}


Read More...