So I’ve looked at the URCap sample for the “mydeamonswing” and I would like to implement a python deamon into a current URCap for serial communication to the robot. However, I don’t know much about deamons other than the basics.
I was looking over the deamon sample and notice that compared to all the other samples, it had an additional folder called daemon
- What is this deamon folder for? How can I generate it if I wanted to run a deamon in my URCap
- There also is a folder in the src/main/resources called com which I know stores the python file in order to run functions. But there is also a HelloWorld application that I don’t know the reason it is there
To sum it up I really just wanna the start up to create a deamon.
Think of a daemon like being a normal program (C-executable or python script or any other script or executable) except for one thing: It has no user interaction (no input and output and for sure no GUI) (to be precise: There is (indirect) interaction (I/O) only via files, signals, pipes, sockets and stderr, but not by stdin and stdout).
In order to be useful a urcap daemon will normally communicate with the script by xmlrpc.
The example (mydaemonswing) shows two kinds of daemons in one example: A python script and a C-executable. By default, the python script is active while the C-executable is deactivated (commented out).
The daemon folder is for a C (or C++) project. Because somehow you have to generate the C executable to be used as a daemon. It is not really used in the example (deactivated), but the python script is used as the daemon script/executable.
The HelloWorld is the result of the (compiled and linked) source in the daemon folder (see 1.). It is a drop-in-replacement for the python script “hello-world.py”. To activate it, you have to make some changes (comment in/comment out) in the source file “MyDaemonDaemonService.java” (line 29/30)
Since you want to use a python daemon, you can simply ignore the daemon folder and the HelloWorld application.
So the mydeamonswing example did not use the the C executable for daemon (the daemon folder)? Because I did look through the code, and It didn’t really seem like they did use it.
So really all I need is this com folder and I assume all sub folders that leads to a python folder in which I will be using as the daemon (exlcluding the HelloWorld application).
See in MyDaemonDaemonService.java the fucntion get Executable(). The python script is returned there. Returning the HelloWorld executable is commented out.