// // Created by gf on 23-7-21. // 自定义类型 // #ifndef NAVIGATION_CUSTOM_TYPE_H #define NAVIGATION_CUSTOM_TYPE_H #include ////////////////////////////////////////////////// /// 封装的enum模板类,解决原生enum无法参与位运算问题 template class MyEnum { using Self = MyEnum; using EnumType = Enum; public: MyEnum(const MyEnum &other) : i(other.i) { } MyEnum(const Enum &e) : i((int) e) { } MyEnum(const int ival) : i(ival) { } operator int() const { return i; } MyEnum operator|(const MyEnum &another) { MyEnum g; g.i = another.i | Self::i; return g; } MyEnum operator|(const EnumType f) { return *this | MyEnum(f); } MyEnum operator&(const MyEnum &another) { MyEnum g; g.i = another.i & Self::i; return g; } MyEnum operator&(const EnumType f) { return *this & MyEnum(f); } private: int i; }; ////////////////////////////////////////////////// ////////////////////////////////////////////////// /// MPC返回值 enum MpcError { success = 0, no_solution = 1, failed }; ////////////////////////////////////////////////// ////////////////////////////////////////////////// /// 基准可选方向 enum Direction { eForward = 0x0001, eBackward = 0x0002, eLeft = 0x0004, eRight = 0x0008 }; ////////////////////////////////////////////////// ////////////////////////////////////////////////// /// AGV运动模式(最低1位:0单车,1整车。低2位:0同向,1反向。低3位:0主车在前,1主车在后) enum ActionMode{ eSingle = 0x0000, eDouble = 0x0001, eMainInForward = 0x0000, eMainInBackward = 0x0008, eChildSameToMain = 0x0000, eChildOppositeToMain = 0x0002 }; //using ActionModes = MyEnum; ////////////////////////////////////////////////// ////////////////////////////////////////////////// /// AGV指令类型 enum ActionType { eReady = 0, eStop = 0, eRotation = 1, eHorizontal = 2, eVertical = 3, eClampClose = 5, eClampHalfOpen = 6, eLifterRise = 7, //提升机构上升 eLifterDown =8, eClampFullyOpen = 9 }; ////////////////////////////////////////////////// ////////////////////////////////////////////////// /// 提升机构运动状态 enum LifterStatus { eInvalid = 0, eRose = 1,//上升到位 eDowned = 2//下降到位 }; ////////////////////////////////////////////////// ////////////////////////////////////////////////// /// 并行夹持和提升机构运作 enum eClamLiftActionType{ eByteCLampClose = 1, eByteClampHalfOpen=2, eByteClampFullyOpen=4, eByteLifterDown=8, eByteLifterUp=16 }; ////////////////////////////////////////////////// ////////////////////////////////////////////////// /// plc区域+编号载车板 对应 车位表 enum eRegionId{ eRegion0 = 0, eRegion1 = 1, eRegion2, eRegion3, eRegion4, eRegion5, eRegion6, eRegion7, eRegion8, eRegion9, eRegion10, eRegion11 }; enum eCarrierIdInRegionId{ eCarrier0 = 0, eCarrier1 = 1, eCarrier2, eCarrier3, eCarrier4, eCarrier5, eCarrier6, eCarrier7, eCarrier8, eCarrier9, eCarrier10, eCarrier11 }; // typedef std::pair Region_Carry; typedef std::map SpaceNo2Region_Carry; //class SpacesNo2Region_Carry{ //public: // SpaceNo2Region_Carry spacesNo2Region_Carry; //public: // SpacesNo2Region_Carry(){ // spacesNo2Region_Carry[0] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[1] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[2] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[3] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[4] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[5] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[6] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[7] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[8] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[9] = Region_Carry(eRegion0,eCarrier0); // // spacesNo2Region_Carry[10] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[11] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[12] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[13] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[14] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[15] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[16] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[17] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[18] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[19] = Region_Carry(eRegion0,eCarrier0); // // spacesNo2Region_Carry[20] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[21] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[22] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[23] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[24] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[25] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[26] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[27] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[28] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[29] = Region_Carry(eRegion0,eCarrier0); // // spacesNo2Region_Carry[30] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[31] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[32] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[33] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[34] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[35] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[36] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[37] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[38] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[39] = Region_Carry(eRegion0,eCarrier0); // // spacesNo2Region_Carry[40] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[41] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[42] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[43] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[44] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[45] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[46] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[47] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[48] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[49] = Region_Carry(eRegion0,eCarrier0); // // spacesNo2Region_Carry[50] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[51] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[52] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[53] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[54] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[55] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[56] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[57] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[58] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[59] = Region_Carry(eRegion0,eCarrier0); // // spacesNo2Region_Carry[60] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[61] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[62] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[63] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[64] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[65] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[66] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[67] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[68] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[69] = Region_Carry(eRegion0,eCarrier0); // // // -------------------------------------------- // spacesNo2Region_Carry[100] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[101] = Region_Carry(eRegion2,eCarrier1); // spacesNo2Region_Carry[102] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[103] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[104] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[105] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[106] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[107] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[108] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[109] = Region_Carry(eRegion0,eCarrier0); // // spacesNo2Region_Carry[110] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[111] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[112] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[113] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[114] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[115] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[116] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[117] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[118] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[119] = Region_Carry(eRegion0,eCarrier0); // // spacesNo2Region_Carry[120] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[121] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[122] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[123] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[124] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[125] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[126] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[127] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[128] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[129] = Region_Carry(eRegion0,eCarrier0); // // spacesNo2Region_Carry[130] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[131] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[132] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[133] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[134] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[135] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[136] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[137] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[138] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[139] = Region_Carry(eRegion0,eCarrier0); // // spacesNo2Region_Carry[140] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[141] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[142] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[143] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[144] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[145] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[146] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[147] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[148] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[149] = Region_Carry(eRegion0,eCarrier0); // // spacesNo2Region_Carry[150] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[151] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[152] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[153] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[154] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[155] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[156] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[157] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[158] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[159] = Region_Carry(eRegion0,eCarrier0); // // spacesNo2Region_Carry[160] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[161] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[162] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[163] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[164] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[165] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[166] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[167] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[168] = Region_Carry(eRegion0,eCarrier0); // spacesNo2Region_Carry[169] = Region_Carry(eRegion0,eCarrier0); // // } //}; ////////////////////////////////////////////////// #endif //NAVIGATION_CUSTOM_TYPE_H