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;
        }

Maybe there is a bug in it... don't know if it actually works since i don't have found any information on how to control a roof (in this forum and elsewhere)

Any ideas ?

Read More...