Communicating between the shell environment and ArduPilot?


I am having some issues integrating some of my programs with ArduPilot, for example, when processing images with a C++ program and I would like a way to trigger an event with ArduPilot from the shell/Python/C++. Communication the other way would also be incredibly useful, EG ArduPilot triggering an event in my program when a mission reaches a point.

I understand the Navio drivers allow access to some peripherals and are very useful in monitoring say battery life, but I would really like more advanced controls.

I can see so many applications to fully leverage the benefits of using Linux for ArduPilot as opposed to standard Pixhawk implementations. Emlid advertises on of the main selling points of the Navio2 as the ability to run scripts, but this would take that to a new level. Fully interfacing would allow everything from turning lights on and off to returning to the last known location 4G signal was received, or adjusting the height when mapping terrain.

I am planning on starting to write such a library to interface between ArduPilot and a shell environment, but first I wanted to know if it already exists or if it is possible, if there is any feedback anyone can give me and if anyone else feels like they would use it?


EDIT: Forget everything I just said. I just read about Dronekit which does everything I need it too.