It seems to work, thank you.
I need to test it more with real hardware because i have reinstalled the control PC and it's currently not in the observatory, but there is no more "failed to read status" errors
thank you again for the fast response and fix!
Read More...
same issue with indiserver launched with sudo...
tmpnam return a valid file name, which is not passed to execvp(path, args);
Read More...
You have tested it on what distribution/version? i have tested to reinstall indi from source rather than from ppa, and i tried on a fresh install (vmware)... same problem, script called without parameters...
Read More...
it's controlled by a python script talking to an arduino by serial link. this script use named pipes to communicate with GUI and dome_script.
source code is available at
github.com/christophecasson/ttfobservatory/tree/master/app
scripts to open/close the roof works when called manually, but status.py never gets any argument when called by indi_script_dome.
I have tested to put just the RunScript(int script, ...) code in a standalone c++ app to test it, (
github.com/christophecasson/ttfobservatory/tree/master/tests
) but it doesn't work (and i don't understand the code who handle args in RunScript() ).
If possible, i prefer using scripts rather than writing custom driver 'cause i want to keep things simple (and i'm not a good c++ programmer
Read More...
Hi!
I'm currently trying to use indi_script_dome to control the opening roof of my observatory box, but there is not much information on how to properly use it.
there is a problem with the status.py script call from the driver: i think it's called without the required argument (tmp file name to output status).
I don't understand this C++ code, probably the source of my problem (from libindi/drivers/dome/dome_script.cpp):
while (arg < MAXARGS)
{
char *pp = strstr(p, " ");
if (pp == nullptr)
break;
*pp++ = 0;
args[arg++] = pp;
p = pp;
}
va_list ap;
va_start(ap, script);
while (arg < MAXARGS)
{
char *pp = va_arg(ap, char *);
args[arg++] = pp;
if (pp == nullptr)
break;
}