How to read "Machine configuration directory" in HAL userspace component

More
5 years 10 months ago #193107 by freisei
Hi!

i am writing a timeinterval-component, and i want to save same data in configuration-directory.
I have often seen the os.environ 'CONFIG_DIR' in python - i think this is what i need.

If i try to get this in c i get an empty variable:
Code:
const char* s = getenv("CONFIG_DIR"); printf("CONFIG_DIR :%s\n",(s!=NULL)? s : "getenv returned NULL"); printf("end test\n");

my componet was loaded after linuxcnc was startet with
Code:
halcmd loadusr -W timeinterval filename=lubrication_timeinterval.sav

Is there a header-file to include to get more of linuxcnc-environment?

Greets from Bavaria
Freisei

Please Log in to join the conversation.

More
5 years 10 months ago #193169 by freisei
Hi,

i´ve found that the current working directory is the config-dir, when the component is loaded from linuxcnc himself/halfile.

But for develement it would be great if someone know how to access the "config_dir" Varaible.

Greets from Bavaria
Freisei

Please Log in to join the conversation.

More
4 years 5 hours ago #255544 by udoS
@ freisei
Hallo freisei
did you find a solution getting the "config_dir" programmatically;

Best Regards

Please Log in to join the conversation.

More
3 years 11 months ago #256014 by freisei

Please Log in to join the conversation.

More
3 years 11 months ago #257248 by udoS
Hi  @freisei

I found a way to get the ini Directory; if thats what you where looking for;

Best Regards

Please Log in to join the conversation.

More
3 years 11 months ago #257307 by freisei
Hi udoS,

fine!

Would be great if you share your answer, so others can benefit from it, too.

Thanks!

Please Log in to join the conversation.

More
3 years 11 months ago #257319 by udoS
@freisei

some pree condition:
Linuxcnc must be running;
If you start Linuxcnc then you can querry:
$   ps aux | grep "linuxcnc"

LinuxCNC starts with "/bin/bash /usr/bin/linuxcnc"

Now if you start LinuxCNC, LinuxCNC starts/calls for "halui -ini" and "io -ini"
If you querry now for
$ ps aux | grep "halui -ini"  or
$ ps aux | grep "io -ini"
then you get as return the process info along with the path;
io -ini /home/udos/linuxcnc/configs/sim.axis.gantry/gantry_mm.ini

Here the code I have used in Qt 5.15.2:

 

Please Log in to join the conversation.

More
3 years 11 months ago #257405 by andypugh
Maybe you can run the linuxcnc_info script?

Please Log in to join the conversation.

More
3 years 11 months ago #257412 by dgarrett
Processes started by linuxcnc (like [DISPLAY]DISPLAY)
inherit the environmental variables 'INI_FILE_NAME'

Python example within a [DISPLAY]DISPLAY program:

import os
print(os.environ.get("INI_FILE_NAME"))

The ini setting is also available in stat() and
may be obtained from programs not started by linuxcnc
(if Run-In-PLace, source rip_environment first):

$ python -c "import linuxcnc;s=linuxcnc.stat();s.poll();print(s.ini_filename)"

Note the item namings are different (INI_FILE_NAME and ini_filename)

Please Log in to join the conversation.

More
3 years 11 months ago #257429 by udoS
Thanks for the info;
@andypugh
How does that get me the path to a running linuxcnc ?
@dgarrett
I'm all in Qt and/or c++; No No No Python; what so ever;
with "The ini setting is also available in stat()" .. are you referring to NML ?
then what is the call for it ? could be used in the Lcnc_QtCpp_HMI;
What I have here is an interface into LinuxCNC/HAL in an attempt to build a Linuxcnc-IDE;
Qt 5.15.2, with Creator 8.0.1,  c++17; any help Wellcome !

Best Regards

 

Please Log in to join the conversation.

Time to create page: 0.101 seconds
Powered by Kunena Forum