Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of autonomous Robot Android by
StateDefines/State.h@11:775ebb69d5e1, 2013-04-05 (annotated)
- Committer:
- chrigelburri
- Date:
- Fri Apr 05 10:58:42 2013 +0000
- Revision:
- 11:775ebb69d5e1
- Parent:
- 6:48eeb41188dd
doku soweit gut ohne android
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| chrigelburri | 0:31f7be68e52d | 1 | #ifndef _STATE_H_ |
| chrigelburri | 0:31f7be68e52d | 2 | #define _STATE_H_ |
| chrigelburri | 0:31f7be68e52d | 3 | |
| chrigelburri | 0:31f7be68e52d | 4 | #include "MaxonESCON.h" |
| chrigelburri | 0:31f7be68e52d | 5 | #include "RobotControl.h" |
| chrigelburri | 0:31f7be68e52d | 6 | #include "Task.h" |
| chrigelburri | 0:31f7be68e52d | 7 | #include "defines.h" |
| chrigelburri | 0:31f7be68e52d | 8 | |
| chrigelburri | 0:31f7be68e52d | 9 | /** |
| chrigelburri | 0:31f7be68e52d | 10 | * @author Christian Burri |
| chrigelburri | 0:31f7be68e52d | 11 | * |
| chrigelburri | 11:775ebb69d5e1 | 12 | * @copyright Copyright © 2013 HSLU Pren Team #1 Cruising Crêpe |
| chrigelburri | 0:31f7be68e52d | 13 | * All rights reserved. |
| chrigelburri | 0:31f7be68e52d | 14 | * |
| chrigelburri | 11:775ebb69d5e1 | 15 | * @brief |
| chrigelburri | 0:31f7be68e52d | 16 | * |
| chrigelburri | 0:31f7be68e52d | 17 | * State is the main mechanism for communicating current realtime system state to |
| chrigelburri | 0:31f7be68e52d | 18 | * the rest of the system for logging etc. |
| chrigelburri | 6:48eeb41188dd | 19 | * |
| chrigelburri | 0:31f7be68e52d | 20 | */ |
| chrigelburri | 0:31f7be68e52d | 21 | |
| chrigelburri | 0:31f7be68e52d | 22 | class State : public Task |
| chrigelburri | 0:31f7be68e52d | 23 | { |
| chrigelburri | 0:31f7be68e52d | 24 | |
| chrigelburri | 0:31f7be68e52d | 25 | private: |
| chrigelburri | 0:31f7be68e52d | 26 | |
| chrigelburri | 11:775ebb69d5e1 | 27 | state_t* s; |
| chrigelburri | 0:31f7be68e52d | 28 | RobotControl* robotControl; |
| chrigelburri | 0:31f7be68e52d | 29 | MaxonESCON* motorControllerLeft; |
| chrigelburri | 0:31f7be68e52d | 30 | MaxonESCON* motorControllerRight; |
| chrigelburri | 11:775ebb69d5e1 | 31 | AnalogIn battery; |
| chrigelburri | 0:31f7be68e52d | 32 | Timer timer; |
| chrigelburri | 0:31f7be68e52d | 33 | float period; |
| chrigelburri | 0:31f7be68e52d | 34 | |
| chrigelburri | 0:31f7be68e52d | 35 | public: |
| chrigelburri | 0:31f7be68e52d | 36 | |
| chrigelburri | 0:31f7be68e52d | 37 | /** |
| chrigelburri | 11:775ebb69d5e1 | 38 | * @brief Creates a robot control object and initializes all private state variables. |
| chrigelburri | 3:92ba0254af87 | 39 | * @param s struct to read and write the state |
| chrigelburri | 3:92ba0254af87 | 40 | * @param robotControl Object to read the state |
| chrigelburri | 3:92ba0254af87 | 41 | * @param motorControllerLeft a reference to the servo drive for the left motor |
| chrigelburri | 3:92ba0254af87 | 42 | * @param motorControllerRight a reference to the servo drive for the right motor |
| chrigelburri | 11:775ebb69d5e1 | 43 | * @param batteryPin mbed pin for analog Input Battery Voltage |
| chrigelburri | 3:92ba0254af87 | 44 | * @param period the sampling period of the run loop of this controller, given in [s] |
| chrigelburri | 0:31f7be68e52d | 45 | */ |
| chrigelburri | 6:48eeb41188dd | 46 | State(state_t* s, |
| chrigelburri | 6:48eeb41188dd | 47 | RobotControl* robotControl, |
| chrigelburri | 6:48eeb41188dd | 48 | MaxonESCON* motorControllerLeft, |
| chrigelburri | 6:48eeb41188dd | 49 | MaxonESCON* motorControllerRight, |
| chrigelburri | 11:775ebb69d5e1 | 50 | PinName batteryPin, |
| chrigelburri | 6:48eeb41188dd | 51 | float period); |
| chrigelburri | 0:31f7be68e52d | 52 | |
| chrigelburri | 0:31f7be68e52d | 53 | /** |
| chrigelburri | 11:775ebb69d5e1 | 54 | * @brief Destructor of the Object to destroy the Object. |
| chrigelburri | 6:48eeb41188dd | 55 | **/ |
| chrigelburri | 0:31f7be68e52d | 56 | virtual ~State(); |
| chrigelburri | 6:48eeb41188dd | 57 | |
| chrigelburri | 0:31f7be68e52d | 58 | /** |
| chrigelburri | 11:775ebb69d5e1 | 59 | * @brief Initzialize the File. Open the File plots.txt and set the title at first line. |
| chrigelburri | 0:31f7be68e52d | 60 | */ |
| chrigelburri | 0:31f7be68e52d | 61 | void initPlotFile(void); |
| chrigelburri | 0:31f7be68e52d | 62 | |
| chrigelburri | 0:31f7be68e52d | 63 | /** |
| chrigelburri | 11:775ebb69d5e1 | 64 | * @brief Close the File. |
| chrigelburri | 6:48eeb41188dd | 65 | */ |
| chrigelburri | 0:31f7be68e52d | 66 | void closePlotFile(void); |
| chrigelburri | 0:31f7be68e52d | 67 | |
| chrigelburri | 0:31f7be68e52d | 68 | /** |
| chrigelburri | 11:775ebb69d5e1 | 69 | * @brief Return the Battery voltage |
| chrigelburri | 0:31f7be68e52d | 70 | * state variables. |
| chrigelburri | 0:31f7be68e52d | 71 | * @return Batterie Voltage [V] |
| chrigelburri | 0:31f7be68e52d | 72 | */ |
| chrigelburri | 0:31f7be68e52d | 73 | float readBattery(); |
| chrigelburri | 0:31f7be68e52d | 74 | |
| chrigelburri | 6:48eeb41188dd | 75 | /** |
| chrigelburri | 11:775ebb69d5e1 | 76 | * @brief Starts the timer from zero. |
| chrigelburri | 1:6cd533a712c6 | 77 | * The timer is for the logging Time. |
| chrigelburri | 1:6cd533a712c6 | 78 | */ |
| chrigelburri | 0:31f7be68e52d | 79 | void startTimerFromZero(); |
| chrigelburri | 0:31f7be68e52d | 80 | |
| chrigelburri | 0:31f7be68e52d | 81 | /** |
| chrigelburri | 11:775ebb69d5e1 | 82 | * @brief Save the new state to a new line. |
| chrigelburri | 6:48eeb41188dd | 83 | */ |
| chrigelburri | 0:31f7be68e52d | 84 | void savePlotFile(state_t s); |
| chrigelburri | 0:31f7be68e52d | 85 | |
| chrigelburri | 11:775ebb69d5e1 | 86 | /** |
| chrigelburri | 11:775ebb69d5e1 | 87 | * @brief Run method actualize every period. |
| chrigelburri | 11:775ebb69d5e1 | 88 | */ |
| chrigelburri | 0:31f7be68e52d | 89 | void run(); |
| chrigelburri | 0:31f7be68e52d | 90 | |
| chrigelburri | 0:31f7be68e52d | 91 | private: |
| chrigelburri | 0:31f7be68e52d | 92 | |
| chrigelburri | 0:31f7be68e52d | 93 | void setBatteryBit(); |
| chrigelburri | 0:31f7be68e52d | 94 | |
| chrigelburri | 0:31f7be68e52d | 95 | void setEnableLeftBit(); |
| chrigelburri | 0:31f7be68e52d | 96 | |
| chrigelburri | 0:31f7be68e52d | 97 | void setEnableRightBit(); |
| chrigelburri | 0:31f7be68e52d | 98 | }; |
| chrigelburri | 0:31f7be68e52d | 99 | |
| chrigelburri | 0:31f7be68e52d | 100 | #endif |
