Ok, riguardo ai thread puoi cominciare a dare una lettura qui: http://it.wikipedia.org/wiki/Thread_%28informatica%29
Quando esegui un programma, anche composto da più files sorgente, il processore inizia a eseguire le istruzioni dalla main(), posta mettiamo in LinearMobility.cc ed esegue le istruzioni nell'ordine che tu hai predisposto, non ne esegue un po' in LinearMobility.cc e un po' in PingApp.cc.
Se vuoi avere questo comportamento bisogna che crei 1 thread a cui assegnare 1 funzione (contenente un loop "infinito") di PingApp.cc, di modo che questa funzione "monitori" i valori che ti interessano e li spedisca all'occorrenza.
Visto che non eri a conoscenza dei thread, mi chiedo solo, se proprio non ne puoi fare a meno, visto che magari
non avendoli mai usati faticheresti un pochettino, e non ti basta controllare i valori "ogni tanto" in LinearMobility.cc e
chiamare una funzione di PingApp.cc che te li spedisce.