# Copyright (c) 2016-2017 Anki, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License in the file LICENSE.txt or at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""
Autogenerated python message buffer code.
Source: clad/types/behaviorSystem/behaviorTypes.clad
Full command line: ../tools/message-buffers/emitters/Python_emitter.py -C ./src/ -I ../robot/clad/src/ ../coretech/vision/clad/src/ ../coretech/common/clad/src/ ../lib/util/source/anki/clad -o ../generated/cladPython// clad/types/behaviorSystem/behaviorTypes.clad
"""

from __future__ import absolute_import
from __future__ import print_function

def _modify_path():
  import inspect, os, sys
  search_paths = [
    '../../..',
    '../../../../../tools/message-buffers/support/python',
  ]
  currentpath = os.path.abspath(os.path.dirname(inspect.getfile(inspect.currentframe())))
  for search_path in search_paths:
    search_path = os.path.normpath(os.path.abspath(os.path.realpath(os.path.join(currentpath, search_path))))
    if search_path not in sys.path:
      sys.path.insert(0, search_path)
_modify_path()

import msgbuffers

Anki = msgbuffers.Namespace()
Anki.Cozmo = msgbuffers.Namespace()

class BehaviorClass(object):
  "Automatically-generated uint_8 enumeration."
  Bouncer                    = 0
  BringCubeToBeacon          = 1
  BuildPyramid               = 2
  BuildPyramidBase           = 3
  CantHandleTallStack        = 4
  CheckForStackAtInterval    = 5
  CubeLiftWorkout            = 6
  Dance                      = 7
  DevTurnInPlaceTest         = 8
  DockingTestSimple          = 9
  DriveInDesperation         = 10
  DriveOffCharger            = 11
  DrivePath                  = 12
  DriveToFace                = 13
  EarnedSparks               = 14
  EnrollFace                 = 15
  ExploreLookAroundInPlace   = 16
  ExploreVisitPossibleMarker = 17
  ExpressNeeds               = 18
  FactoryCentroidExtractor   = 19
  FactoryTest                = 20
  FeedingEat                 = 21
  FeedingSearchForCube       = 22
  FindFaces                  = 23
  FistBump                   = 24
  GuardDog                   = 25
  InteractWithFaces          = 26
  KnockOverCubes             = 27
  LiftLoadTest               = 28
  LookAround                 = 29
  LookForFaceAndCube         = 30
  LookInPlaceMemoryMap       = 31
  OnConfigSeen               = 32
  OnboardingShowCube         = 33
  PeekABoo                   = 34
  PickUpAndPutDownCube       = 35
  PickUpCube                 = 36
  PlayAnim                   = 37
  PlayAnimOnNeedsChange      = 38
  PlayAnimWithFace           = 39
  PlayArbitraryAnim          = 40
  PopAWheelie                = 41
  PounceOnMotion             = 42
  PutDownBlock               = 43
  PyramidThankYou            = 44
  RequestGameSimple          = 45
  RespondPossiblyRoll        = 46
  RespondToRenameFace        = 47
  RollBlock                  = 48
  SearchForFace              = 49
  Singing                    = 50
  StackBlocks                = 51
  ThinkAboutBeacons          = 52
  TrackLaser                 = 53
  TurnToFace                 = 54
  VisitInterestingEdge       = 55
  Wait                       = 56
  AcknowledgeFace            = 57
  AcknowledgeObject          = 58
  RamIntoBlock               = 59
  ReactToCliff               = 60
  ReactToCubeMoved           = 61
  ReactToFrustration         = 62
  ReactToImpact              = 63
  ReactToMotorCalibration    = 64
  ReactToOnCharger           = 65
  ReactToPet                 = 66
  ReactToPickup              = 67
  ReactToPlacedOnSlope       = 68
  ReactToPyramid             = 69
  ReactToReturnedToTreads    = 70
  ReactToRobotOnBack         = 71
  ReactToRobotOnFace         = 72
  ReactToRobotOnSide         = 73
  ReactToRobotShaken         = 74
  ReactToSparked             = 75
  ReactToStackOfCubes        = 76
  ReactToUnexpectedMovement  = 77

Anki.Cozmo.BehaviorClass = BehaviorClass
del BehaviorClass


class BehaviorID(object):
  "Automatically-generated uint_8 enumeration."
  AcknowledgeFace                    = 0
  AcknowledgeObject                  = 1
  Bouncer                            = 2
  BuildPyramid                       = 3
  BuildPyramidBase                   = 4
  CantHandleTallStack                = 5
  CubeLiftWorkout                    = 6
  Dance_Mambo                        = 7
  DevTurnInPlaceTest                 = 8
  DockingTestSimple                  = 9
  DriveOffCharger                    = 10
  EarnedSparks                       = 11
  EnrollFace                         = 12
  FPPeekABoo                         = 13
  FactoryCentroidExtractor           = 14
  FactoryTest                        = 15
  FeedingEat                         = 16
  FeedingFindFacesSevere             = 17
  FeedingPlayRequestAtFace           = 18
  FeedingPlayRequestAtFace_Severe    = 19
  FeedingReactCubeShake              = 20
  FeedingReactCubeShake_Severe       = 21
  FeedingReactFullCube               = 22
  FeedingReactFullCube_Severe        = 23
  FeedingReactSeeCharged             = 24
  FeedingReactSeeCharged_Severe      = 25
  FeedingSearchForCube               = 26
  FindFaces_socialize                = 27
  FistBump                           = 28
  GuardDog                           = 29
  Hiccup                             = 30
  Hiking_BringCubeToBeacon           = 31
  Hiking_DriveOffCharger             = 32
  Hiking_FirstLookIntro              = 33
  Hiking_FirstLookWakeUp             = 34
  Hiking_LookInPlace360              = 35
  Hiking_LookInPlaceForUnknown       = 36
  Hiking_PounceOnMotion              = 37
  Hiking_RollCube                    = 38
  Hiking_ThinkAboutBeacons           = 39
  Hiking_VisitInterestingEdge        = 40
  InteractWithFaces                  = 41
  KnockOverCubes                     = 42
  LiftLoadTest                       = 43
  MeetCozmo_FindFaces_Socialize      = 44
  MeetCozmo_InteractWithFaces        = 45
  Needs_SevereLowEnergyForcedGetOut  = 46
  Needs_SevereLowEnergyGetIn         = 47
  Needs_SevereLowEnergyState         = 48
  Needs_SevereLowRepairGetIn         = 49
  Needs_SevereLowRepairState         = 50
  Needs_SevereLowPlayBored           = 51
  Needs_SevereLowPlayGetIn           = 52
  Needs_SevereLowPlayRequest         = 53
  Needs_MildLowEnergyRequest         = 54
  Needs_MildLowPlayRequest           = 55
  Needs_MildLowRepairRequest         = 56
  Needs_Wait                         = 57
  NothingToDo_BoredAnim              = 58
  NothingToDo_Idle                   = 59
  OnboardingShowCube                 = 60
  PlayArbitraryAnim                  = 61
  PopAWheelie                        = 62
  PounceOnMotion_Socialize           = 63
  PounceOnMotion_VoiceCommand        = 64
  PutDownBlock                       = 65
  PutDownBlockNothingToDo            = 66
  PutDownDispatch_LookForFaceAndCube = 67
  PyramidPutDownBlock                = 68
  PyramidRespondPossiblyRoll         = 69
  PyramidThankYou                    = 70
  RamIntoBlock                       = 71
  ReactToCliff                       = 72
  ReactToCubeMoved                   = 73
  ReactToFrustrationMajor            = 74
  ReactToFrustrationMinor            = 75
  ReactToImpact                      = 76
  ReactToMotorCalibration            = 77
  ReactToObstacle                    = 78
  ReactToOnCharger                   = 79
  ReactToPet                         = 80
  ReactToPickup                      = 81
  ReactToPlacedOnSlope               = 82
  ReactToPyramid                     = 83
  ReactToReturnedToTreads            = 84
  ReactToRobotOnBack                 = 85
  ReactToRobotOnFace                 = 86
  ReactToRobotOnSide                 = 87
  ReactToRobotShaken                 = 88
  ReactToSparked                     = 89
  ReactToStackOfCubes                = 90
  ReactToUnexpectedMovement          = 91
  RequestKeepAway                    = 92
  RequestMemoryMatch                 = 93
  RequestSpeedTap                    = 94
  RespondToPyramidBase               = 95
  RespondToRenameFace                = 96
  RollBlockOnSide                    = 97
  RollBlockOnSideLowScore            = 98
  Singing_AbaDaba                    = 99
  Singing_BeautifulDreamer           = 100
  Singing_Beethovens5th              = 101
  Singing_Bingo                      = 102
  Singing_BuffaloGals                = 103
  Singing_Camptown                   = 104
  Singing_CanCan1                    = 105
  Singing_CanCan2                    = 106
  Singing_DannyBoy                   = 107
  Singing_EntryOfTheGladiators       = 108
  Singing_FarmerInTheDell            = 109
  Singing_FrereJacques               = 110
  Singing_HelloMyBaby                = 111
  Singing_ItsyBitsySpider            = 112
  Singing_LaPaloma                   = 113
  Singing_LondonBridge               = 114
  Singing_MaryHadALittleLamb         = 115
  Singing_MountainKing               = 116
  Singing_MuffinMan                  = 117
  Singing_MulberryBush               = 118
  Singing_MussIDenn                  = 119
  Singing_OdeToJoy                   = 120
  Singing_PachebelCanon              = 121
  Singing_PopGoesTheWeasel           = 122
  Singing_RowYourBoat                = 123
  Singing_Sakura                     = 124
  Singing_SilveryMoon                = 125
  Singing_TakeMeOutToTheBallgame     = 126
  Singing_TaRaRaBoom                 = 127
  Singing_TisketTasket               = 128
  Singing_Toccata                    = 129
  Singing_TurkeyInTheStraw           = 130
  Singing_TwinkleTwinkle             = 131
  Singing_VivaldiSpring              = 132
  Singing_WaterMusic                 = 133
  Singing_WildAboutHarry             = 134
  Singing_WilliamTell                = 135
  Singing_YankeeDoodle               = 136
  Singing_YellowRose                 = 137
  SparksBringCubeToBeacon            = 138
  SparksCheckForStackAtInterval      = 139
  SparksCubeLiftWorkout              = 140
  SparksFindFaces                    = 141
  SparksFistBump                     = 142
  SparksKnockOverCubes               = 143
  SparksLookInPlace                  = 144
  SparksPeekABoo                     = 145
  SparksPickUpCube                   = 146
  SparksPickupSingleCubeForPyramid   = 147
  SparksPickupSingleCubeToStack      = 148
  SparksPopAWheelie                  = 149
  SparksPounceOnMotion               = 150
  SparksPutDownBlock                 = 151
  SparksRollBlock                    = 152
  SparksStackBlock                   = 153
  SparksThinkAboutBeacons            = 154
  SparksTrackLaser                   = 155
  SparksVisitPossibleMarker          = 156
  StackBlocks                        = 157
  VC_AlrightyResponse                = 158
  VC_ComeHere                        = 159
  VC_GoToSleep                       = 160
  VC_HowAreYouDoing_AllGood          = 161
  VC_HowAreYouDoing_Energy           = 162
  VC_HowAreYouDoing_Play             = 163
  VC_HowAreYouDoing_Repair           = 164
  VC_PounceOnMotion                  = 165
  VC_Refuse_Energy                   = 166
  VC_Refuse_Repair                   = 167
  VC_Refuse_Sparks                   = 168
  VC_RequestKeepAway                 = 169
  VC_RequestMemoryMatch              = 170
  VC_RequestSpeedTap                 = 171
  VC_SearchForFace                   = 172
  Wait                               = 173

Anki.Cozmo.BehaviorID = BehaviorID
del BehaviorID


class ExecutableBehaviorType(object):
  "Automatically-generated uint_8 enumeration."
  EnrollFace        = 0
  FindFaces         = 1
  FistBump          = 2
  KnockOverCubes    = 3
  LiftLoadTest      = 4
  LookAroundInPlace = 5
  PounceOnMotion    = 6
  RollBlock         = 7
  StackBlocks       = 8
  TrackLaser        = 9
  Wait              = 10
  Count             = 11

Anki.Cozmo.ExecutableBehaviorType = ExecutableBehaviorType
del ExecutableBehaviorType


class FeedingStage(object):
  "Automatically-generated uint_8 enumeration."
  MildEnergy   = 1
  SevereEnergy = 2

Anki.Cozmo.FeedingStage = FeedingStage
del FeedingStage


class GuardDogStage(object):
  "Automatically-generated uint_8 enumeration."
  Sleeping       = 0
  CubeBeingMoved = 1
  Busted         = 2
  CubesRemaining = 3
  AllCubesGone   = 4
  Count          = 5

Anki.Cozmo.GuardDogStage = GuardDogStage
del GuardDogStage


class PyramidConstructionStage(object):
  "Automatically-generated uint_8 enumeration."
  NoneStage               = 0
  SearchingForCube        = 1
  InitialCubeCarry        = 2
  BaseFormed              = 3
  TopBlockCarry           = 4
  PyramidCompleteFlourish = 5

Anki.Cozmo.PyramidConstructionStage = PyramidConstructionStage
del PyramidConstructionStage


class WorkoutStage(object):
  "Automatically-generated uint_8 enumeration."
  NormalWorkout       = 0
  EightiesWorkoutPrep = 1
  EightiesWorkoutLift = 2

Anki.Cozmo.WorkoutStage = WorkoutStage
del WorkoutStage


