Final Project files for mBed development.

Dependencies:   m3pi mbed

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?

UserRevisionLine numberNew 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