EE149
/
FinalProject
Final Project files for mBed development.
main.h@17:c72c092fcdf7, 2014-12-01 (annotated)
- Committer:
- alecguertin
- Date:
- Mon Dec 01 00:41:04 2014 +0000
- Revision:
- 17:c72c092fcdf7
- Parent:
- 15:14d4e7021125
- Child:
- 18:eab7b0e89398
added instruction parsing loop -- untested
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lsaristo | 8:12d780f7443e | 1 | /** |
lsaristo | 10:94b068b2ce1d | 2 | * @file main.h |
lsaristo | 8:12d780f7443e | 3 | * @brief Main header file for includes and whatnot |
lsaristo | 8:12d780f7443e | 4 | * for the other project files. |
lsaristo | 8:12d780f7443e | 5 | * @author John Wilkey |
lsaristo | 8:12d780f7443e | 6 | */ |
lsaristo | 8:12d780f7443e | 7 | |
lsaristo | 10:94b068b2ce1d | 8 | #ifndef _MAIN_H |
lsaristo | 10:94b068b2ce1d | 9 | #define _MAIN_H |
lsaristo | 8:12d780f7443e | 10 | |
lsaristo | 8:12d780f7443e | 11 | #include "mbed.h" |
lsaristo | 8:12d780f7443e | 12 | #include "m3pi.h" |
lsaristo | 9:3a0433c391cb | 13 | #include <string.h> |
lsaristo | 9:3a0433c391cb | 14 | #include <stdarg.h> |
lsaristo | 9:3a0433c391cb | 15 | #include <stdio.h> |
lsaristo | 9:3a0433c391cb | 16 | #define TURN_SPEED 0.25 |
alecguertin | 15:14d4e7021125 | 17 | #define DRIVE_SPEED 0.1 |
lsaristo | 8:12d780f7443e | 18 | #define ERR_SUCCESS 0 |
lsaristo | 8:12d780f7443e | 19 | #define ERR_FAILURE 1 |
lsaristo | 9:3a0433c391cb | 20 | #define DRIVE_RATE 1/50 |
lsaristo | 8:12d780f7443e | 21 | |
lsaristo | 8:12d780f7443e | 22 | /** |
alecguertin | 17:c72c092fcdf7 | 23 | * @brief get values of next PostScript instruction. |
alecguertin | 17:c72c092fcdf7 | 24 | * |
alecguertin | 17:c72c092fcdf7 | 25 | * @param buf Buffer with PS instructions. |
alecguertin | 17:c72c092fcdf7 | 26 | * @param x Pointer to storage for x coordinate. |
alecguertin | 17:c72c092fcdf7 | 27 | * @param y Pointer to storage for y coordinate. |
alecguertin | 17:c72c092fcdf7 | 28 | * @param draw Pointer to storage for draw/move boolean. |
alecguertin | 17:c72c092fcdf7 | 29 | * |
alecguertin | 17:c72c092fcdf7 | 30 | * @return Success or failure code. |
alecguertin | 17:c72c092fcdf7 | 31 | */ |
alecguertin | 17:c72c092fcdf7 | 32 | int retrieve_inst(char *buf, int *x, int *y, int *draw); |
alecguertin | 17:c72c092fcdf7 | 33 | |
alecguertin | 17:c72c092fcdf7 | 34 | /** |
lsaristo | 8:12d780f7443e | 35 | * @brief Driver forward. |
lsaristo | 8:12d780f7443e | 36 | * |
lsaristo | 9:3a0433c391cb | 37 | * @param[in] amt Amount to drive forward. In centimeters. |
lsaristo | 8:12d780f7443e | 38 | * @return Success or failure. |
lsaristo | 8:12d780f7443e | 39 | */ |
lsaristo | 9:3a0433c391cb | 40 | int forward(int amt); |
lsaristo | 8:12d780f7443e | 41 | |
lsaristo | 8:12d780f7443e | 42 | /** |
lsaristo | 8:12d780f7443e | 43 | * @brief Drive backward. |
lsaristo | 8:12d780f7443e | 44 | * |
lsaristo | 9:3a0433c391cb | 45 | * @param[in] amt Amount to drive backward. In centimeters. |
lsaristo | 8:12d780f7443e | 46 | * @return Success or failure. |
lsaristo | 8:12d780f7443e | 47 | */ |
lsaristo | 9:3a0433c391cb | 48 | int backward(int amt); |
lsaristo | 8:12d780f7443e | 49 | |
lsaristo | 8:12d780f7443e | 50 | /** |
lsaristo | 8:12d780f7443e | 51 | * @brief Turn right. |
lsaristo | 8:12d780f7443e | 52 | * |
lsaristo | 8:12d780f7443e | 53 | * @param[in] deg Desired final turn angle from starting position. |
lsaristo | 8:12d780f7443e | 54 | * @param[in] spd Desired turning speed. |
lsaristo | 8:12d780f7443e | 55 | * @return Success or failure. |
lsaristo | 8:12d780f7443e | 56 | */ |
lsaristo | 8:12d780f7443e | 57 | int right(float deg); |
lsaristo | 8:12d780f7443e | 58 | |
lsaristo | 8:12d780f7443e | 59 | /** |
lsaristo | 8:12d780f7443e | 60 | * @brief Turn left. |
lsaristo | 8:12d780f7443e | 61 | * |
lsaristo | 8:12d780f7443e | 62 | * @param[in] deg Desired final turn angle from starting position. |
lsaristo | 8:12d780f7443e | 63 | * @param[in] spd Desired turning speed. |
lsaristo | 8:12d780f7443e | 64 | * @return Success or failure. |
lsaristo | 8:12d780f7443e | 65 | */ |
lsaristo | 8:12d780f7443e | 66 | int left (float deg); |
lsaristo | 8:12d780f7443e | 67 | |
lsaristo | 8:12d780f7443e | 68 | /** |
lsaristo | 10:94b068b2ce1d | 69 | * @brief Enable pen motion. |
lsaristo | 10:94b068b2ce1d | 70 | * |
lsaristo | 10:94b068b2ce1d | 71 | * Note that at the moment, for simplicity, this method just activates an LED |
lsaristo | 10:94b068b2ce1d | 72 | * on the expansion board to indicate that the pen should be in DOWN mode. |
lsaristo | 10:94b068b2ce1d | 73 | */ |
lsaristo | 10:94b068b2ce1d | 74 | void pen_down(); |
lsaristo | 10:94b068b2ce1d | 75 | |
lsaristo | 10:94b068b2ce1d | 76 | /** |
lsaristo | 10:94b068b2ce1d | 77 | * @brief Raise pen |
lsaristo | 10:94b068b2ce1d | 78 | */ |
lsaristo | 10:94b068b2ce1d | 79 | void pen_up(); |
lsaristo | 10:94b068b2ce1d | 80 | |
lsaristo | 10:94b068b2ce1d | 81 | |
lsaristo | 10:94b068b2ce1d | 82 | /** |
lsaristo | 8:12d780f7443e | 83 | * @brief Controller decision logic. |
lsaristo | 8:12d780f7443e | 84 | * |
lsaristo | 8:12d780f7443e | 85 | * Decide what to do next based on the status of the drawing so far. |
lsaristo | 8:12d780f7443e | 86 | */ |
lsaristo | 8:12d780f7443e | 87 | void next_action(); |
lsaristo | 8:12d780f7443e | 88 | #endif |