yei

Dependencies:   interface mbed enc_1multi calPID motorout KondoServoLibrary

Fork of cat18_operate by Catch the GIANT Caplico!

Committer:
shimizuta
Date:
Tue Sep 04 12:00:39 2018 +0000
Revision:
28:bcfc84b481bc
Parent:
26:5e292422cc08
Child:
29:ea48140fc85e
add manual

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shimizuta 20:13934809e117 1 #include "mbed.h"
shimizuta 20:13934809e117 2 #include "state.h"
shimizuta 20:13934809e117 3 #include "workinfo.h"
shimizuta 20:13934809e117 4 #include "debug.h"
shimizuta 20:13934809e117 5 #include "coordinate.h"
shimizuta 20:13934809e117 6 //全部右で考えてる
shimizuta 20:13934809e117 7 //穴の数
shimizuta 20:13934809e117 8 const int kWorkAreaNum = 6;
shimizuta 20:13934809e117 9 const int kCommonAreaNum = 17;
shimizuta 20:13934809e117 10 const int kBoxNum = 12;
shimizuta 23:f45eb02433a5 11 //ワークエリアの配列のいれかた
shimizuta 23:f45eb02433a5 12 int kWorkAreaIndex[kWorkAreaNum] = {
shimizuta 23:f45eb02433a5 13 3, 4, 5,
shimizuta 23:f45eb02433a5 14 0, 1, 2,
shimizuta 23:f45eb02433a5 15 };
shimizuta 23:f45eb02433a5 16 //共通ワークエリア
shimizuta 23:f45eb02433a5 17 const int kCommonAreaIndex[kCommonAreaNum] = {
shimizuta 23:f45eb02433a5 18 17, 18, 19, 20, 21, 22,
shimizuta 23:f45eb02433a5 19 12, 13, 14, 15, 16,
shimizuta 23:f45eb02433a5 20 6, 7, 8, 9, 10, 11,
shimizuta 23:f45eb02433a5 21 };
shimizuta 23:f45eb02433a5 22 //shootingboxの配列のいれかた
shimizuta 23:f45eb02433a5 23 const int kBoxIndex[kBoxNum] = {
shimizuta 23:f45eb02433a5 24 11, 10, 9,
shimizuta 23:f45eb02433a5 25 8, 7, 6,
shimizuta 23:f45eb02433a5 26 5, 4, 3,
shimizuta 23:f45eb02433a5 27 2, 1, 0,
shimizuta 23:f45eb02433a5 28 };
shimizuta 20:13934809e117 29 //////////////////////////////変更出来るパラメータ
shimizuta 20:13934809e117 30 //priority 取る順番を決める
shimizuta 20:13934809e117 31 const int kWorkAreaPriority[kWorkAreaNum] = {
shimizuta 23:f45eb02433a5 32 100, 102, 103,
shimizuta 23:f45eb02433a5 33 104, 105, 106,
shimizuta 20:13934809e117 34 };
shimizuta 20:13934809e117 35 const int kCommonAreaPriority[kCommonAreaNum] = {
shimizuta 20:13934809e117 36 17, 16, 15, 14, 13, 12,
shimizuta 20:13934809e117 37 11, 10, 9, 8, 7,
shimizuta 20:13934809e117 38 6, 5, 4, 3, 2, 1,
shimizuta 20:13934809e117 39 };
shimizuta 20:13934809e117 40 //workareaの補正値
shimizuta 20:13934809e117 41 const int kWorkAreaCorrect[kWorkAreaNum][3] = {
shimizuta 28:bcfc84b481bc 42 {0,0,0},{0,0,0},{0,0,0},
shimizuta 20:13934809e117 43 {0,0,0},{0,0,0},{0,0,0},
shimizuta 20:13934809e117 44 };
shimizuta 20:13934809e117 45 const int kCommonAreaCorrect[kCommonAreaNum][3] = {
shimizuta 28:bcfc84b481bc 46 {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
shimizuta 28:bcfc84b481bc 47 {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
shimizuta 28:bcfc84b481bc 48 {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
shimizuta 20:13934809e117 49 };
shimizuta 20:13934809e117 50 const int kBoxCorrect[kBoxNum][3] = {
shimizuta 28:bcfc84b481bc 51 {0,0,0},{0,0,0},{0,0,0},
shimizuta 28:bcfc84b481bc 52 {0,0,0},{0,0,0},{0,0,0},
shimizuta 28:bcfc84b481bc 53 {0,0,0},{0,0,0},{0,0,0},
shimizuta 28:bcfc84b481bc 54 {0,0,0},{0,0,0},{0,0,0},
shimizuta 20:13934809e117 55 };
shimizuta 20:13934809e117 56 const int kHandCenter = 22.80;//想定先端と実際の先端位置のずれ
shimizuta 20:13934809e117 57
shimizuta 20:13934809e117 58 const int kYawWorkAreaRedDegree = 270;
shimizuta 20:13934809e117 59 const int kYawWorkAreaYellowDegree = 90;
shimizuta 20:13934809e117 60 const int kYawCommonAreaDegree = 90;
shimizuta 20:13934809e117 61 const int kYawBoxDegree = 90;
shimizuta 20:13934809e117 62
shimizuta 20:13934809e117 63 const int kPitchWorkAreaDegree = -90;
shimizuta 28:bcfc84b481bc 64 const int kPitchCommonAreaDegree = -5;
shimizuta 20:13934809e117 65 const int kPitchBoxDegree = 0;
shimizuta 20:13934809e117 66 //////////////////////////////
shimizuta 20:13934809e117 67 //配列のスタート番号
shimizuta 20:13934809e117 68 const int kWorkStart = 0;
shimizuta 20:13934809e117 69 const int kCommonStart = kWorkAreaNum;
shimizuta 20:13934809e117 70
shimizuta 20:13934809e117 71 WorkPosi work[kWorkAreaNum + kCommonAreaNum + 1];//最後の1つは番兵
shimizuta 20:13934809e117 72 BoxPosi shootingbox[kBoxNum];
shimizuta 20:13934809e117 73 Pattern now_pattern = NOPATTERN;
shimizuta 23:f45eb02433a5 74
shimizuta 20:13934809e117 75
shimizuta 20:13934809e117 76 //関数名
shimizuta 20:13934809e117 77 void AreaNameSetup();//areanameを入れる。
shimizuta 20:13934809e117 78 void ShootingBoxPosition();//シューティングボックスにおける穴の座標を代入している
shimizuta 20:13934809e117 79 void WorkPosition();//ワークエリア、共通ワークエリアにおける穴の座標を代入している
shimizuta 20:13934809e117 80 void Priority();//ワークエリア、共通ワークエリアにおける穴の優先度を決めてる
shimizuta 20:13934809e117 81 void ArrangementPattern(Pattern pattern);
shimizuta 20:13934809e117 82 void ShootingBoxStuff();
shimizuta 20:13934809e117 83 void ExistReset();//is_existとcolorをリセット
shimizuta 20:13934809e117 84
yoka06 26:5e292422cc08 85 void WorkPosition()
yoka06 26:5e292422cc08 86 {
yoka06 26:5e292422cc08 87 DEBUG("WorkPosition() start\r\n");
yoka06 26:5e292422cc08 88 //ワークエリア
yoka06 26:5e292422cc08 89 //x座標
yoka06 26:5e292422cc08 90 for(int i=0; i<3; i++) {
yoka06 26:5e292422cc08 91 work[i].position[0] = -630 + 180 * i;
yoka06 26:5e292422cc08 92 work[i + 3].position[0] = -540 + 180 * i;
yoka06 26:5e292422cc08 93 }
yoka06 26:5e292422cc08 94 //y座標
yoka06 26:5e292422cc08 95 for(int i=0; i<3; i++) {
shimizuta 28:bcfc84b481bc 96 work[i].position[1]= 300 - 150;
shimizuta 28:bcfc84b481bc 97 work[i+3].position[1]= 215+150;
yoka06 26:5e292422cc08 98 }
yoka06 26:5e292422cc08 99 //z座標
yoka06 26:5e292422cc08 100 for(int i=0; i<6; i++) work[i].position[2]=-436;
yoka06 26:5e292422cc08 101 //共通ワークエリア
yoka06 26:5e292422cc08 102 //x座標
yoka06 26:5e292422cc08 103 for(int i=kCommonStart; i<12; i++) {
yoka06 26:5e292422cc08 104 work[i].position[0]=-595+(i-kCommonStart)*80;
yoka06 26:5e292422cc08 105 work[i+11].position[0]=-595+(i-kCommonStart)*80;
yoka06 26:5e292422cc08 106 }
yoka06 26:5e292422cc08 107 for(int i=12; i<17; i++) work[i].position[0]=-555+(i-12)*80;
yoka06 26:5e292422cc08 108 //y座標
yoka06 26:5e292422cc08 109 for(int i=kCommonStart; i<sizeof(work)/sizeof(work[0]); i++) {
yoka06 26:5e292422cc08 110 if(i<12) {
yoka06 26:5e292422cc08 111 work[i].position[1]=595;
yoka06 26:5e292422cc08 112 } else if(i<17) {
yoka06 26:5e292422cc08 113 work[i].position[1]=675;
yoka06 26:5e292422cc08 114 } else if(i< kCommonStart + kCommonAreaNum) {
yoka06 26:5e292422cc08 115 work[i].position[1]=755;
yoka06 26:5e292422cc08 116 }
yoka06 26:5e292422cc08 117 }
yoka06 26:5e292422cc08 118 //z座標
shimizuta 28:bcfc84b481bc 119 for(int i=kCommonStart; i<kCommonStart + kCommonAreaNum; i++) work[i].position[2]=-350;
yoka06 26:5e292422cc08 120 for(int i = 0; i < kWorkAreaNum; i++) {
yoka06 26:5e292422cc08 121 for(int j = 0; j < 3; j++) work[kWorkAreaIndex[i]].position[j] += kWorkAreaCorrect[i][j];
yoka06 26:5e292422cc08 122 }
yoka06 26:5e292422cc08 123 for(int i = 0; i < kCommonAreaNum; i++) {
yoka06 26:5e292422cc08 124 for(int j = 0; j < 3; j++) work[kCommonAreaIndex[i]].position[j] += kCommonAreaCorrect[i][j];
yoka06 26:5e292422cc08 125 DEBUG("work %d %f,%f,%f\r\n",kCommonAreaIndex[i], work[kCommonAreaIndex[i]].position[0], work[kCommonAreaIndex[i]].position[1], work[kCommonAreaIndex[i]].position[2] );
yoka06 26:5e292422cc08 126 }
yoka06 26:5e292422cc08 127 DEBUG("WorkPosition() finish\r\n");
yoka06 26:5e292422cc08 128 }
yoka06 26:5e292422cc08 129 void ShootingBoxPosition()
yoka06 26:5e292422cc08 130 {
yoka06 26:5e292422cc08 131 DEBUG("ShootingBoxPosition() start\r\n");
yoka06 26:5e292422cc08 132 //軸は一番右下の穴を原点に取っている.
yoka06 26:5e292422cc08 133 //x座標
yoka06 26:5e292422cc08 134 for(int i=0; i<3; i++) {
yoka06 26:5e292422cc08 135 shootingbox[i].position[0]=240-80*i;
yoka06 26:5e292422cc08 136 shootingbox[i+3].position[0]=240-80*i;
yoka06 26:5e292422cc08 137 shootingbox[i+6].position[0]=240-80*i;
yoka06 26:5e292422cc08 138 shootingbox[i+9].position[0]=240-80*i;
yoka06 26:5e292422cc08 139 }
yoka06 26:5e292422cc08 140 for(int i = 0; i < kBoxNum; i++) shootingbox[i].position[0] += kHandCenter;
yoka06 26:5e292422cc08 141 //y座標
yoka06 26:5e292422cc08 142 for(int i=0; i<4; i++) {
yoka06 26:5e292422cc08 143 shootingbox[i*3].position[1]=160+80*i;
yoka06 26:5e292422cc08 144 shootingbox[i*3+1].position[1]=160+80*i;
yoka06 26:5e292422cc08 145 shootingbox[i*3+2].position[1]=160+80*i;
yoka06 26:5e292422cc08 146 }
yoka06 26:5e292422cc08 147 //z座標
yoka06 26:5e292422cc08 148 for(int i=0; i<sizeof(shootingbox)/sizeof(shootingbox[0]); i++) shootingbox[i].position[2]=100;
yoka06 26:5e292422cc08 149 for(int i = 0; i < kBoxNum; i++) {
yoka06 26:5e292422cc08 150 for(int j = 0; j < 3; j++) shootingbox[kBoxIndex[i]].position[j] += kBoxCorrect[i][j];
yoka06 26:5e292422cc08 151 }
yoka06 26:5e292422cc08 152 DEBUG("ShootingBoxPosition() finish\r\n");
yoka06 26:5e292422cc08 153 }
shimizuta 20:13934809e117 154
shimizuta 20:13934809e117 155 void SetupPosition()
shimizuta 20:13934809e117 156 {
shimizuta 20:13934809e117 157 DEBUG("SetupPosition() start\r\n");
shimizuta 20:13934809e117 158 ExistReset();
shimizuta 20:13934809e117 159 AreaNameSetup();
shimizuta 20:13934809e117 160 WorkPosition();
shimizuta 20:13934809e117 161 ShootingBoxPosition();
shimizuta 20:13934809e117 162 Priority();
shimizuta 20:13934809e117 163 DEBUG("SetupPosition() finish\r\n");
shimizuta 20:13934809e117 164 }
shimizuta 20:13934809e117 165 double GetIdealYawRad(const WorkState &state)
shimizuta 20:13934809e117 166 {
shimizuta 20:13934809e117 167 double degree = 0;
shimizuta 20:13934809e117 168 switch(state.areaname) {
shimizuta 20:13934809e117 169 case BOX:
shimizuta 20:13934809e117 170 degree = kYawBoxDegree;
shimizuta 20:13934809e117 171 break;
shimizuta 20:13934809e117 172 case COMMONAREA:
shimizuta 20:13934809e117 173 degree = kYawCommonAreaDegree;
shimizuta 20:13934809e117 174 break;
shimizuta 20:13934809e117 175 case WORKAREA:
shimizuta 20:13934809e117 176 switch(state.color) {
shimizuta 20:13934809e117 177 case RED:
shimizuta 20:13934809e117 178 degree = kYawWorkAreaRedDegree;
shimizuta 20:13934809e117 179 break;
shimizuta 20:13934809e117 180 case YELLOW:
shimizuta 20:13934809e117 181 degree = kYawWorkAreaYellowDegree;
shimizuta 20:13934809e117 182 break;
shimizuta 20:13934809e117 183 }
shimizuta 20:13934809e117 184 break;
shimizuta 20:13934809e117 185 }
shimizuta 20:13934809e117 186 return degree * kDegreeToRad;
shimizuta 20:13934809e117 187 }
shimizuta 20:13934809e117 188 double GetIdealPitchRad(const WorkState &state)
shimizuta 20:13934809e117 189 {
shimizuta 20:13934809e117 190 double degree = 0;
shimizuta 20:13934809e117 191 switch(state.areaname) {
shimizuta 20:13934809e117 192 case BOX:
shimizuta 20:13934809e117 193 degree = kPitchBoxDegree;
shimizuta 20:13934809e117 194 break;
shimizuta 20:13934809e117 195 case COMMONAREA:
shimizuta 20:13934809e117 196 degree = kPitchCommonAreaDegree;
shimizuta 20:13934809e117 197 break;
shimizuta 20:13934809e117 198 case WORKAREA:
shimizuta 20:13934809e117 199 degree = kPitchWorkAreaDegree;
shimizuta 20:13934809e117 200 break;
shimizuta 20:13934809e117 201 }
shimizuta 20:13934809e117 202 return degree * kDegreeToRad;
shimizuta 20:13934809e117 203 }
shimizuta 20:13934809e117 204 void YawPitchSetup()
shimizuta 20:13934809e117 205 {
shimizuta 20:13934809e117 206 DEBUG("YawPitchSetup() start\r\n");
shimizuta 20:13934809e117 207 for(int i = 0; i < kWorkAreaNum+ kCommonAreaNum; i++) {
shimizuta 20:13934809e117 208 work[i].yaw_rad = GetIdealYawRad(work[i]);
shimizuta 20:13934809e117 209 work[i].pitch_rad = GetIdealPitchRad(work[i]);
shimizuta 20:13934809e117 210 }
shimizuta 20:13934809e117 211 for(int i = 0; i < kBoxNum; i++) {
shimizuta 20:13934809e117 212 shootingbox[i].yaw_rad = GetIdealYawRad(shootingbox[i]);
shimizuta 20:13934809e117 213 shootingbox[i].pitch_rad = GetIdealPitchRad(shootingbox[i]);
shimizuta 20:13934809e117 214 }
shimizuta 20:13934809e117 215 DEBUG("YawPitchSetup() finish\r\n");
shimizuta 20:13934809e117 216 }
shimizuta 20:13934809e117 217 //areanameをセット。BOXは初期段階で入っている。
shimizuta 20:13934809e117 218 void AreaNameSetup()
shimizuta 20:13934809e117 219 {
shimizuta 20:13934809e117 220 DEBUG("AreaNameSetup() start\r\n");
shimizuta 20:13934809e117 221 for(int i = kWorkStart; i < kWorkAreaNum; i++) work[i].areaname = WORKAREA;
shimizuta 20:13934809e117 222 for(int i = kCommonStart; i < kCommonStart + kCommonAreaNum; i++) work[i].areaname = COMMONAREA;
shimizuta 20:13934809e117 223 DEBUG("AreaNameSetup() finish\r\n");
shimizuta 20:13934809e117 224 }
shimizuta 20:13934809e117 225 void Priority()
shimizuta 20:13934809e117 226 {
shimizuta 20:13934809e117 227 DEBUG("Priority() start\r\n");
shimizuta 20:13934809e117 228 work[23].priority=1000;//SearchCommonArea で使用。最初の時の比較に使用.最後だということを示す。
shimizuta 20:13934809e117 229 for(int i = kWorkStart; i < kWorkAreaNum; i++) work[kWorkAreaIndex[i]].priority = kWorkAreaPriority[i];
shimizuta 20:13934809e117 230 for(int i = 0; i < kCommonAreaNum; i++) work[kCommonAreaIndex[i]].priority = kCommonAreaPriority[i];
shimizuta 20:13934809e117 231 DEBUG("Priority() finish\r\n");
shimizuta 20:13934809e117 232 }
shimizuta 20:13934809e117 233 void ArrangementPattern(Pattern pattern)//引数にはAとかで入力//初めに一回だけ呼び出すことを想定
shimizuta 20:13934809e117 234 {
shimizuta 20:13934809e117 235 DEBUG("ArrangementPattern() start\r\n");
shimizuta 20:13934809e117 236 //workareaの設定
shimizuta 20:13934809e117 237 work[0].color=RED;
shimizuta 20:13934809e117 238 work[1].color=RED;
shimizuta 20:13934809e117 239 work[2].color=RED;
shimizuta 20:13934809e117 240 work[3].color=YELLOW;
shimizuta 20:13934809e117 241 work[4].color=YELLOW;
shimizuta 20:13934809e117 242 work[5].color=YELLOW;
shimizuta 20:13934809e117 243
shimizuta 20:13934809e117 244
shimizuta 20:13934809e117 245 switch(pattern) {
shimizuta 20:13934809e117 246 case A:
shimizuta 20:13934809e117 247 DEBUG("ArrangementPattern() A\r\n");
shimizuta 20:13934809e117 248 #ifdef RIGHT
shimizuta 20:13934809e117 249 DEBUG("right\r\n");
shimizuta 20:13934809e117 250 work[6].color=RED;
shimizuta 20:13934809e117 251 work[13].color=RED;
shimizuta 20:13934809e117 252 work[20].color=RED;
shimizuta 20:13934809e117 253 work[8].color=YELLOW;
shimizuta 20:13934809e117 254 work[15].color=YELLOW;
shimizuta 20:13934809e117 255 work[22].color=YELLOW;
shimizuta 20:13934809e117 256
shimizuta 20:13934809e117 257 work[6].is_exist=1;
shimizuta 20:13934809e117 258 work[13].is_exist=1;
shimizuta 20:13934809e117 259 work[20].is_exist=1;
shimizuta 20:13934809e117 260 work[8].is_exist=1;
shimizuta 20:13934809e117 261 work[15].is_exist=1;
shimizuta 20:13934809e117 262 work[22].is_exist=1;
shimizuta 20:13934809e117 263
shimizuta 20:13934809e117 264 #elif defined LEFT
shimizuta 20:13934809e117 265 DEBUG("left\r\n");
shimizuta 20:13934809e117 266 work[9].color=RED;
shimizuta 20:13934809e117 267 work[13].color=RED;
shimizuta 20:13934809e117 268 work[17].color=RED;
shimizuta 20:13934809e117 269 work[11].color=YELLOW;
shimizuta 20:13934809e117 270 work[15].color=YELLOW;
shimizuta 20:13934809e117 271 work[19].color=YELLOW;
shimizuta 20:13934809e117 272
shimizuta 20:13934809e117 273 work[9].is_exist=1;
shimizuta 20:13934809e117 274 work[13].is_exist=1;
shimizuta 20:13934809e117 275 work[17].is_exist=1;
shimizuta 20:13934809e117 276 work[11].is_exist=1;
shimizuta 20:13934809e117 277 work[15].is_exist=1;
shimizuta 20:13934809e117 278 work[19].is_exist=1;
shimizuta 20:13934809e117 279 #endif
shimizuta 20:13934809e117 280 break;
shimizuta 20:13934809e117 281
shimizuta 20:13934809e117 282 case B:
shimizuta 20:13934809e117 283 DEBUG("ArrangementPattern() B\r\n");
shimizuta 20:13934809e117 284 #ifdef RIGHT
shimizuta 20:13934809e117 285 DEBUG("right\r\n");
shimizuta 20:13934809e117 286 work[7].color=RED;
shimizuta 20:13934809e117 287 work[9].color=RED;
shimizuta 20:13934809e117 288 work[11].color=RED;
shimizuta 20:13934809e117 289 work[17].color=YELLOW;
shimizuta 20:13934809e117 290 work[19].color=YELLOW;
shimizuta 20:13934809e117 291 work[21].color=YELLOW;
shimizuta 20:13934809e117 292
shimizuta 20:13934809e117 293 work[7].is_exist=1;
shimizuta 20:13934809e117 294 work[9].is_exist=1;
shimizuta 20:13934809e117 295 work[11].is_exist=1;
shimizuta 20:13934809e117 296 work[17].is_exist=1;
shimizuta 20:13934809e117 297 work[19].is_exist=1;
shimizuta 20:13934809e117 298 work[21].is_exist=1;
shimizuta 20:13934809e117 299
shimizuta 20:13934809e117 300 #elif defined LEFT
shimizuta 20:13934809e117 301 DEBUG("left\r\n");
shimizuta 20:13934809e117 302 work[18].color=RED;
shimizuta 20:13934809e117 303 work[20].color=RED;
shimizuta 20:13934809e117 304 work[22].color=RED;
shimizuta 20:13934809e117 305 work[6].color=YELLOW;
shimizuta 20:13934809e117 306 work[8].color=YELLOW;
shimizuta 20:13934809e117 307 work[10].color=YELLOW;
shimizuta 20:13934809e117 308
shimizuta 20:13934809e117 309 work[18].is_exist=1;
shimizuta 20:13934809e117 310 work[20].is_exist=1;
shimizuta 20:13934809e117 311 work[22].is_exist=1;
shimizuta 20:13934809e117 312 work[6].is_exist=1;
shimizuta 20:13934809e117 313 work[8].is_exist=1;
shimizuta 20:13934809e117 314 work[10].is_exist=1;
shimizuta 20:13934809e117 315 #endif
shimizuta 20:13934809e117 316 break;
shimizuta 20:13934809e117 317
shimizuta 20:13934809e117 318 case C:
shimizuta 20:13934809e117 319 DEBUG("ArrangementPattern() C\r\n");
shimizuta 20:13934809e117 320 work[15].color=RED;
shimizuta 20:13934809e117 321 work[22].color=RED;
shimizuta 20:13934809e117 322 work[11].color=RED;
shimizuta 20:13934809e117 323 work[19].color=YELLOW;
shimizuta 20:13934809e117 324 work[12].color=YELLOW;
shimizuta 20:13934809e117 325 work[8].color=YELLOW;
shimizuta 20:13934809e117 326
shimizuta 20:13934809e117 327 work[15].is_exist=1;
shimizuta 20:13934809e117 328 work[22].is_exist=1;
shimizuta 20:13934809e117 329 work[11].is_exist=1;
shimizuta 20:13934809e117 330 work[19].is_exist=1;
shimizuta 20:13934809e117 331 work[12].is_exist=1;
shimizuta 20:13934809e117 332 work[8].is_exist=1;
shimizuta 20:13934809e117 333 break;
shimizuta 20:13934809e117 334
shimizuta 20:13934809e117 335 case D:
shimizuta 20:13934809e117 336 DEBUG("ArrangementPattern() D\r\n");
shimizuta 20:13934809e117 337 work[22].color=RED;
shimizuta 20:13934809e117 338 work[15].color=RED;
shimizuta 20:13934809e117 339 work[11].color=RED;
shimizuta 20:13934809e117 340 work[17].color=YELLOW;
shimizuta 20:13934809e117 341 work[13].color=YELLOW;
shimizuta 20:13934809e117 342 work[6].color=YELLOW;
shimizuta 20:13934809e117 343
shimizuta 20:13934809e117 344 work[22].is_exist=1;
shimizuta 20:13934809e117 345 work[15].is_exist=1;
shimizuta 20:13934809e117 346 work[11].is_exist=1;
shimizuta 20:13934809e117 347 work[17].is_exist=1;
shimizuta 20:13934809e117 348 work[13].is_exist=1;
shimizuta 20:13934809e117 349 work[6].is_exist=1;
shimizuta 20:13934809e117 350 break;
shimizuta 20:13934809e117 351
shimizuta 20:13934809e117 352 default:
shimizuta 20:13934809e117 353 break;
shimizuta 20:13934809e117 354 }
shimizuta 20:13934809e117 355 DEBUG("ArrangementPattern() finish\r\n");
shimizuta 20:13934809e117 356 }
shimizuta 20:13934809e117 357 void ExistReset()
shimizuta 20:13934809e117 358 {
shimizuta 20:13934809e117 359 DEBUG("ExistReset() start\r\n");
shimizuta 20:13934809e117 360 ///初期化してる。いったん全部存在してないことにする//要はリセット
shimizuta 20:13934809e117 361 for(int i=kCommonStart; i < kCommonStart + kCommonAreaNum; i++) {
shimizuta 20:13934809e117 362 work[i].is_exist=0;//共通ワークエリアの初期化
shimizuta 20:13934809e117 363 work[i].color = NOCOLOR;
shimizuta 20:13934809e117 364 }
shimizuta 20:13934809e117 365 for(int i=kWorkStart; i < kWorkAreaNum; i++) { //初期化してる。ワークエリアの初期化
shimizuta 20:13934809e117 366 work[i].is_exist=1;
shimizuta 20:13934809e117 367 }
shimizuta 20:13934809e117 368 for(int i=0; i<12; i++) {//shootingの初期値
shimizuta 20:13934809e117 369 shootingbox[i].is_exist=0;
shimizuta 20:13934809e117 370 shootingbox[i].color = NOCOLOR;
shimizuta 20:13934809e117 371 }
shimizuta 20:13934809e117 372 DEBUG("ExistReset() finish\r\n");
shimizuta 20:13934809e117 373 }