Revision 3c3c3bb9 devices/DiWheelDrive/userthread.hpp

View differences:

devices/DiWheelDrive/userthread.hpp
6 6
#include <amiro/Color.h>
7 7
// #include "global.hpp"
8 8
// #include "linefollow.hpp"
9
#include <cmath>
10 9

  
11 10

  
12 11

  
......
59 58
#define DEVIATION_CORRECTION_VALUE (DEVIATION_CORRECTION_SPEED / 2)
60 59
#define DEVIATION_DIST_THRESH 25000
61 60

  
61

  
62

  
63
// Map Tracking Parameters
64
// enable amiro map to continuously build internal map representation
65
#define AMIRO_MAP_AUTO_TRACKING true
66

  
67

  
68

  
62 69
namespace amiro {
63 70

  
64 71

  
......
69 76
  public:
70 77

  
71 78
    // States of user thread state machine
72
    enum states : int8_t{
73
      IDLE                    = 0,
74
      FOLLOW_LINE             = 1,
75
      DETECT_STATION          = 2,
76
      REVERSE                 = 3,
77
      PUSH_BACK               = 4,
78
      CHECK_POSITIONING       = 5,
79
      CHECK_VOLTAGE           = 6,
80
      CHARGING                = 7,
81
      RELEASE                 = 8,
82
      RELEASE_TO_CORRECT      = 9,
83
      CORRECT_POSITIONING     = 10,
84
      TURN                    = 12,
85
      INACTIVE                = 13,
86
      CALIBRATION             = 14,
87
      CALIBRATION_CHECK       = 15,
88
      DEVIATION_CORRECTION    = 16,
89
      TEST_MAP_STATE          = 17,
90
      DOCKING_ERROR           = -1,
91
      REVERSE_TIMEOUT_ERROR   = -2,
92
      CALIBRATION_ERROR       = -3,
93
      WHITE_DETECTION_ERROR   = -4,
94
      PROXY_DETECTION_ERROR   = -5,
95
      NO_CHARGING_POWER_ERROR = -6,
96
      UNKNOWN_STATE_ERROR     = -7
97
    };
98

  
99
  struct ut_counter{
79
    // enum ut_states : int8_t {
80
    //   UT_IDLE = 0,
81
    //   UT_FOLLOW_LINE = 1,
82
    //   UT_DETECT_STATION = 2,
83
    //   UT_REVERSE = 3,
84
    //   UT_PUSH_BACK = 4,
85
    //   UT_CHECK_POSITIONING = 5,
86
    //   UT_CHECK_VOLTAGE = 6,
87
    //   UT_CHARGING = 7,
88
    //   UT_RELEASE = 8,
89
    //   UT_RELEASE_TO_CORRECT = 9,
90
    //   UT_CORRECT_POSITIONING = 10,
91
    //   UT_TURN = 12,
92
    //   UT_INACTIVE = 13,
93
    //   UT_CALIBRATION = 14,
94
    //   UT_CALIBRATION_CHECK = 15,
95
    //   UT_DEVIATION_CORRECTION = 16,
96
    //   UT_TEST_MAP_STATE = 17,
97
    //   UT_TEST_MAP_AUTO_STATE = 18,
98
    //   UT_DOCKING_ERROR = -1,
99
    //   UT_REVERSE_TIMEOUT_ERROR = -2,
100
    //   UT_CALIBRATION_ERROR = -3,
101
    //   UT_WHITE_DETECTION_ERROR = -4,
102
    //   UT_PROXY_DETECTION_ERROR = -5,
103
    //   UT_NO_CHARGING_POWER_ERROR = -6,
104
    //   UT_UNKNOWN_STATE_ERROR = -7
105
    // };
106

  
107
    struct ut_counter {
100 108
      int whiteCount = 0;
101 109
      int ringProxCount = 0;
102 110
      // int correctionCount = 0;
......
195 203
   */
196 204
  int checkDockingSuccess();
197 205

  
198
  // State Variables
199
  states prevState = states::IDLE;
200
  states currentState = states::IDLE;
201
  states newState = states::IDLE;
206

  
202 207

  
203 208
  bool continue_on_obstacle = true;
204 209
  uint16_t rProx[8]; // buffer for ring proxy values

Also available in: Unified diff