Dependencies:   BLE_API mbed nRF51822

Fork of nRF51822_SimpleChat by Cristi Stoican

Committer:
carbune92
Date:
Mon May 08 13:05:45 2017 +0000
Revision:
3:b6e4e5529a52
Child:
4:cfc5c2426e21
It builds!!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
carbune92 3:b6e4e5529a52 1 #include "BTDevice.hpp"
carbune92 3:b6e4e5529a52 2 #include "ProcessInterface.hpp"
carbune92 3:b6e4e5529a52 3
carbune92 3:b6e4e5529a52 4 //#define TE 0.1f //minim!!! - o cuanta!! - va fi multiplu al perioadei de esantionare configurabila
carbune92 3:b6e4e5529a52 5
carbune92 3:b6e4e5529a52 6 static Ticker controlLoopTicker, cmdTicker;
carbune92 3:b6e4e5529a52 7 static ProcessInterface pInt;
carbune92 3:b6e4e5529a52 8 static BTDevice bt;
carbune92 3:b6e4e5529a52 9
carbune92 3:b6e4e5529a52 10 void cmdCall(void);
carbune92 3:b6e4e5529a52 11 void controlLoopCall(void);
carbune92 3:b6e4e5529a52 12
carbune92 3:b6e4e5529a52 13 int main () {
carbune92 3:b6e4e5529a52 14
carbune92 3:b6e4e5529a52 15 pInt.attachBTDevice(&bt);
carbune92 3:b6e4e5529a52 16 pInt.attachController(bt.getCtrl());
carbune92 3:b6e4e5529a52 17
carbune92 3:b6e4e5529a52 18 bt.init();
carbune92 3:b6e4e5529a52 19 // while (!bt.isInit()) {}
carbune92 3:b6e4e5529a52 20
carbune92 3:b6e4e5529a52 21 cmdTicker.attach(cmdCall, TE);
carbune92 3:b6e4e5529a52 22 controlLoopTicker.attach(controlLoopCall, (TE+0.05f));
carbune92 3:b6e4e5529a52 23 //bt.attachProcessInterface(pInt);
carbune92 3:b6e4e5529a52 24
carbune92 3:b6e4e5529a52 25 // Controller *myCtrl;
carbune92 3:b6e4e5529a52 26 // ControllerFactory cf;
carbune92 3:b6e4e5529a52 27 // cf.createController( &myCtrl, SysObjTypes::PID );
carbune92 3:b6e4e5529a52 28 // bt.attachController( myCtrl );
carbune92 3:b6e4e5529a52 29
carbune92 3:b6e4e5529a52 30 while (bt.isInit()) {
carbune92 3:b6e4e5529a52 31 bt.waitForEvent();
carbune92 3:b6e4e5529a52 32 }
carbune92 3:b6e4e5529a52 33
carbune92 3:b6e4e5529a52 34 return 0;
carbune92 3:b6e4e5529a52 35 }
carbune92 3:b6e4e5529a52 36
carbune92 3:b6e4e5529a52 37 // DE VAZUT CALLBACKUL DE RECEIVE
carbune92 3:b6e4e5529a52 38 void cmdCall() {
carbune92 3:b6e4e5529a52 39 uint8_t cmd[TXRX_BUF_LEN];
carbune92 3:b6e4e5529a52 40 bt.getPayload(cmd);
carbune92 3:b6e4e5529a52 41 //bt.interpretCmd(cmd); //only configuration commands!! (like PID Params of reference update)
carbune92 3:b6e4e5529a52 42 }
carbune92 3:b6e4e5529a52 43
carbune92 3:b6e4e5529a52 44 void controlLoopCall() {
carbune92 3:b6e4e5529a52 45
carbune92 3:b6e4e5529a52 46 //STATE_MACHINE: CONTROLLER, MANUAL, MONITOR ETC
carbune92 3:b6e4e5529a52 47 //we check if a controller exists (was prev set by a command)
carbune92 3:b6e4e5529a52 48 if (bt.ctrlExists()) {
carbune92 3:b6e4e5529a52 49 // controllers were attached in the command Callback to btDevice and ProcessInterface
carbune92 3:b6e4e5529a52 50 pInt.getProcOutput();
carbune92 3:b6e4e5529a52 51 pInt.exportOutput();
carbune92 3:b6e4e5529a52 52 bt.getCtrl()->calculateCmd();
carbune92 3:b6e4e5529a52 53 pInt.updateCmd(); // no parameters means that we get the updated command from the Controller instance
carbune92 3:b6e4e5529a52 54 pInt.applyCmd();
carbune92 3:b6e4e5529a52 55 } else {
carbune92 3:b6e4e5529a52 56 pInt.updateCmd(0.0f); // we directly pass the command value
carbune92 3:b6e4e5529a52 57 pInt.applyCmd();
carbune92 3:b6e4e5529a52 58 }
carbune92 3:b6e4e5529a52 59 }