/******************************************************************************
 * Copyright 2020 The siasun Transport Authors. All Rights Reserved.
 * Author: madesheng
 * Licensed under the Apache License, Version 1.0 (the "License");
 *****************************************************************************/
#ifndef ROBOT_DECISIONDATATYPE_H
#define ROBOT_DECISIONDATATYPE_H
#include <string>


namespace robot {
namespace decisionSpace {

#define CMD_UNDEFIED         0
#define CMD_PLAN_START       1
#define CMD_AUTODRIE_START   2
#define CMD_PLAN_END         3
#define CMD_AUTODRIE_END     4

#define	SFT_PSNG_LRN_REQ_PARK			1	//挡位位置学习请求-停车档（自动档）
#define	SFT_PSNG_LRN_REQ_REVERSE		2	//挡位位置学习请求-倒档
#define	SFT_PSNG_LRN_REQ_NEUTRAL		3	//挡位位置学习请求-空档
#define	SFT_PSNG_LRN_REQ_FORWARD_1		4	//挡位位置学习请求-前进档1(手动档)
#define	SFT_MD_REQ_3_SECOND		0			//换挡模式-平滑型
#define	SFT_MD_REQ_2_SECOND		1			//换挡模式-快速型
#define	SFT_MD_REQ_1_SECOND		2			//换挡模式-激进型

#define	CTR_MD_REQ_AUTO_LEARN		0	//控制模式请求-自动学习模式
#define	CTR_MD_REQ_HAND_LEARN		1	//控制模式请求-手动学习模式
#define	CTR_MD_REQ_AUTO_DRIVE		2	//控制模式请求-自动驾驶模式
#define	CTR_MD_REQ_HAND_DRIVE		3	//控制模式请求-人工驾驶模式
#define	CTR_MD_REQ_ROBOT_CHECK		4	//控制模式请求-机器人自检模式
#define	CTR_MD_REQ_ROBOT_DEBUG		5	//控制模式请求-机器人调试模式
#define	CTR_MD_REQ_ROBOT_UNDIFED		6	//控制模式请求-机器人调试模式

#define RULE_EXCUTE_RESULT_INIT           0
#define RULE_EXCUTE_RESULT_FIAL           1
#define RULE_EXCUTE_RESULT_SUCCESS        2

typedef struct
{
  std::string RuleName;
  int DirectiveID;
  std::string DirectiveInfo;
  int DirectiveResult;
} ACTION_DIRECTIVE;


typedef struct
{
    std::string RuleName;
    int LocationID;
    double LocationLon;
    double LocationLat;
    double LocationHeight;
    double LocationSpeed;

} LOCATION_RULE_INFO;



} // namespace decisionspace
} // robot
#endif // ROBOT_DECISIONDATATYPE_H
