TrekkingPhoenix / Mbed 2 deprecated TrekkingControllerV1-4_WinterChallenge20

Dependencies:   mbed mbed-rtos MotionSensor EthernetInterface

Committer:
drelliak
Date:
Sun May 01 23:01:58 2016 +0000
Revision:
15:69d9e85382de
Controller Almost complete

Who changed what in which revision?

UserRevisionLine numberNew contents of line
drelliak 15:69d9e85382de 1 /**
drelliak 15:69d9e85382de 2 @file protocol.h
drelliak 15:69d9e85382de 3 @brief Protocol definitions.
drelliak 15:69d9e85382de 4 */
drelliak 15:69d9e85382de 5
drelliak 15:69d9e85382de 6 /*
drelliak 15:69d9e85382de 7 Copyright 2016 Erik Perillo <erik.perillo@gmail.com>
drelliak 15:69d9e85382de 8
drelliak 15:69d9e85382de 9 This file is part of piranha-ptc.
drelliak 15:69d9e85382de 10
drelliak 15:69d9e85382de 11 This is free software: you can redistribute it and/or modify
drelliak 15:69d9e85382de 12 it under the terms of the GNU General Public License as published by
drelliak 15:69d9e85382de 13 the Free Software Foundation, either version 3 of the License, or
drelliak 15:69d9e85382de 14 (at your option) any later version.
drelliak 15:69d9e85382de 15
drelliak 15:69d9e85382de 16 This is distributed in the hope that it will be useful,
drelliak 15:69d9e85382de 17 but WITHOUT ANY WARRANTY; without even the implied warranty of
drelliak 15:69d9e85382de 18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
drelliak 15:69d9e85382de 19 See the GNU General Public License for more details.
drelliak 15:69d9e85382de 20
drelliak 15:69d9e85382de 21 You should have received a copy of the GNU General Public License
drelliak 15:69d9e85382de 22 along with this. If not, see <http://www.gnu.org/licenses/>.
drelliak 15:69d9e85382de 23 */
drelliak 15:69d9e85382de 24
drelliak 15:69d9e85382de 25
drelliak 15:69d9e85382de 26 #ifndef __PIRANHA_PROTOCOL_H__
drelliak 15:69d9e85382de 27 #define __PIRANHA_PROTOCOL_H__
drelliak 15:69d9e85382de 28
drelliak 15:69d9e85382de 29 //@{
drelliak 15:69d9e85382de 30 ///PID parameters range.
drelliak 15:69d9e85382de 31 #define PID_PARAMS_MIN -100.0
drelliak 15:69d9e85382de 32 #define PID_PARAMS_MAX 100.0
drelliak 15:69d9e85382de 33 //@}
drelliak 15:69d9e85382de 34
drelliak 15:69d9e85382de 35 //@{
drelliak 15:69d9e85382de 36 ///Ground velocity range.
drelliak 15:69d9e85382de 37 #define GND_VEL_MIN -100.0
drelliak 15:69d9e85382de 38 #define GND_VEL_MAX 100.0
drelliak 15:69d9e85382de 39 //@}
drelliak 15:69d9e85382de 40
drelliak 15:69d9e85382de 41 //@{
drelliak 15:69d9e85382de 42 ///Angle reference range (in radians).
drelliak 15:69d9e85382de 43 #define PI 3.141593
drelliak 15:69d9e85382de 44 #define ANG_REF_MIN -PI
drelliak 15:69d9e85382de 45 #define ANG_REF_MAX PI
drelliak 15:69d9e85382de 46 //@}
drelliak 15:69d9e85382de 47
drelliak 15:69d9e85382de 48 //@{
drelliak 15:69d9e85382de 49 ///Jogging speed period (in seconds).
drelliak 15:69d9e85382de 50 #define JOG_VEL_PERIOD_MIN 0.0
drelliak 15:69d9e85382de 51 #define JOG_VEL_PERIOD_MAX 300.0
drelliak 15:69d9e85382de 52 //@}
drelliak 15:69d9e85382de 53
drelliak 15:69d9e85382de 54 //@{
drelliak 15:69d9e85382de 55 ///Jogging speed ratio.
drelliak 15:69d9e85382de 56 #define JOG_VEL_RATIO_MIN 0.0
drelliak 15:69d9e85382de 57 #define JOG_VEL_RATIO_MAX 1.0
drelliak 15:69d9e85382de 58 //@}
drelliak 15:69d9e85382de 59
drelliak 15:69d9e85382de 60 ///Messages to send via protocol.
drelliak 15:69d9e85382de 61 enum
drelliak 15:69d9e85382de 62 {
drelliak 15:69d9e85382de 63 ///Do nothing.
drelliak 15:69d9e85382de 64 NONE,
drelliak 15:69d9e85382de 65
drelliak 15:69d9e85382de 66 ///Brake the robot.
drelliak 15:69d9e85382de 67 BRAKE,
drelliak 15:69d9e85382de 68
drelliak 15:69d9e85382de 69 ///Reset angle measurement.
drelliak 15:69d9e85382de 70 ANG_RST,
drelliak 15:69d9e85382de 71
drelliak 15:69d9e85382de 72 ///Set new angle reference.
drelliak 15:69d9e85382de 73 ANG_REF,
drelliak 15:69d9e85382de 74
drelliak 15:69d9e85382de 75 ///Set new ground velocity for robot.
drelliak 15:69d9e85382de 76 GND_VEL,
drelliak 15:69d9e85382de 77
drelliak 15:69d9e85382de 78 ///Set new jogging speed for robot.
drelliak 15:69d9e85382de 79 JOG_VEL,
drelliak 15:69d9e85382de 80
drelliak 15:69d9e85382de 81 ///Send PID control parameters.
drelliak 15:69d9e85382de 82 PID_PARAMS
drelliak 15:69d9e85382de 83 };
drelliak 15:69d9e85382de 84
drelliak 15:69d9e85382de 85 #define MSG_HEADER_SIZE 1
drelliak 15:69d9e85382de 86 #define MSG_VAL_SIZE 2
drelliak 15:69d9e85382de 87 #define MSG_MAX_NUM_VALS 4
drelliak 15:69d9e85382de 88 #define MSG_BUF_LEN (MSG_HEADER_SIZE + MSG_VAL_SIZE*MSG_MAX_NUM_VALS)
drelliak 15:69d9e85382de 89 #define MSG_HEADER_IDX 0
drelliak 15:69d9e85382de 90 #define MSG_VALS_START_IDX (MSG_HEADER_IDX + 1)
drelliak 15:69d9e85382de 91
drelliak 15:69d9e85382de 92 #define SENDER_PORT 7532
drelliak 15:69d9e85382de 93 #define SENDER_IFACE_ADDR "192.168.7.1"
drelliak 15:69d9e85382de 94 #define SENDER_NETMASK_ADDR "255.255.255.0"
drelliak 15:69d9e85382de 95 #define SENDER_GATEWAY_ADDR "0.0.0.0"
drelliak 15:69d9e85382de 96
drelliak 15:69d9e85382de 97 #define RECEIVER_PORT 7533
drelliak 15:69d9e85382de 98 #define RECEIVER_IFACE_ADDR "192.168.7.2"
drelliak 15:69d9e85382de 99 #define RECEIVER_NETMASK_ADDR "255.255.255.0"
drelliak 15:69d9e85382de 100 #define RECEIVER_GATEWAY_ADDR "0.0.0.0"
drelliak 15:69d9e85382de 101
drelliak 15:69d9e85382de 102 #endif
drelliak 15:69d9e85382de 103