TrekkingPhoenix / Mbed 2 deprecated TrekkingControllerV1-4_WinterChallenge20

Dependencies:   mbed mbed-rtos MotionSensor EthernetInterface

Committer:
drelliak
Date:
Mon May 02 00:58:20 2016 +0000
Revision:
17:34fa73413afb
Added the magnetometer command

Who changed what in which revision?

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