HOSOKIkikou class for 2022_NHK_B

Dependents:   2022_NHK_B_UK 2022_NHK_B_sub2

Committer:
ikarashikota
Date:
Mon Oct 10 01:13:52 2022 +0000
Revision:
0:2e7a4f14e9f3
Child:
1:5cbd36d7e30a
made by ikakou

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ikarashikota 0:2e7a4f14e9f3 1
ikarashikota 0:2e7a4f14e9f3 2
ikarashikota 0:2e7a4f14e9f3 3 #include "HOSOKIkikou.h"
ikarashikota 0:2e7a4f14e9f3 4
ikarashikota 0:2e7a4f14e9f3 5 HOSOKIkikou::HOSOKIkikou(ikarashiMDC *ik1, ikarashiMDC *ik2, ikarashiMDC *ik3, ikarashiMDC *ik4, uint8_t *b1, uint8_t *b2, uint8_t *b3, uint8_t *b4, int *env1, int *env2, int *env3){
ikarashikota 0:2e7a4f14e9f3 6 init(ik1, ik2, ik3, ik4, b1, b2, b3, b4, env1, env2, env3);
ikarashikota 0:2e7a4f14e9f3 7 }
ikarashikota 0:2e7a4f14e9f3 8
ikarashikota 0:2e7a4f14e9f3 9 void HOSOKIkikou::init(ikarashiMDC *ik1, ikarashiMDC *ik2, ikarashiMDC *ik3, ikarashiMDC *ik4, uint8_t *b1, uint8_t *b2, uint8_t *b3, uint8_t *b4, int *env1, int *env2, int *env3){
ikarashikota 0:2e7a4f14e9f3 10 ik[0] = ik1; //射出右
ikarashikota 0:2e7a4f14e9f3 11 ik[1] = ik2; //射出左
ikarashikota 0:2e7a4f14e9f3 12 ik[2] = ik3; //将校
ikarashikota 0:2e7a4f14e9f3 13 ik[3] = ik4; //装填
ikarashikota 0:2e7a4f14e9f3 14 button[0] = b1; //射出
ikarashikota 0:2e7a4f14e9f3 15 button[1] = b2; //上
ikarashikota 0:2e7a4f14e9f3 16 button[2] = b3; //下
ikarashikota 0:2e7a4f14e9f3 17 button[3] = b4; //装填
ikarashikota 0:2e7a4f14e9f3 18 encoder[0] = env1; //射出
ikarashikota 0:2e7a4f14e9f3 19 encoder[1] = env2; //将校
ikarashikota 0:2e7a4f14e9f3 20 encoder[2] = env3; //装填
ikarashikota 0:2e7a4f14e9f3 21 for(int i=0; i<4; i++) mspeed[i] = 0;
ikarashikota 0:2e7a4f14e9f3 22 injecterFlag = false;
ikarashikota 0:2e7a4f14e9f3 23 }
ikarashikota 0:2e7a4f14e9f3 24
ikarashikota 0:2e7a4f14e9f3 25 void HOSOKIkikou::runAll(float speedIRight, float speedILeft, float speedLoad, float speedLift)
ikarashikota 0:2e7a4f14e9f3 26 {
ikarashikota 0:2e7a4f14e9f3 27 runInjection(speedIRight, speedILeft);
ikarashikota 0:2e7a4f14e9f3 28 runLoad(speedLoad);
ikarashikota 0:2e7a4f14e9f3 29 runLift(speedLift);
ikarashikota 0:2e7a4f14e9f3 30 }
ikarashikota 0:2e7a4f14e9f3 31
ikarashikota 0:2e7a4f14e9f3 32 void HOSOKIkikou::stopAll(){
ikarashikota 0:2e7a4f14e9f3 33 //init(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
ikarashikota 0:2e7a4f14e9f3 34 for(int i=0; i<4; i++){
ikarashikota 0:2e7a4f14e9f3 35 button[i] = NULL;
ikarashikota 0:2e7a4f14e9f3 36 mspeed[i] = 0;
ikarashikota 0:2e7a4f14e9f3 37 if(i < 3){
ikarashikota 0:2e7a4f14e9f3 38 encoder[i] = NULL;
ikarashikota 0:2e7a4f14e9f3 39 }
ikarashikota 0:2e7a4f14e9f3 40 }
ikarashikota 0:2e7a4f14e9f3 41 injecterFlag = false;
ikarashikota 0:2e7a4f14e9f3 42 }
ikarashikota 0:2e7a4f14e9f3 43
ikarashikota 0:2e7a4f14e9f3 44 void HOSOKIkikou::runInjection(float speedRight, float speedLeft)
ikarashikota 0:2e7a4f14e9f3 45 {
ikarashikota 0:2e7a4f14e9f3 46 ik[0]->setSpeed(mspeed[0]);
ikarashikota 0:2e7a4f14e9f3 47 ik[1]->setSpeed(mspeed[1]);
ikarashikota 0:2e7a4f14e9f3 48 if(*button[0] <= 0){
ikarashikota 0:2e7a4f14e9f3 49 return;
ikarashikota 0:2e7a4f14e9f3 50 }else{
ikarashikota 0:2e7a4f14e9f3 51 injecterFlag = !injecterFlag;
ikarashikota 0:2e7a4f14e9f3 52 }
ikarashikota 0:2e7a4f14e9f3 53 if(injecterFlag){
ikarashikota 0:2e7a4f14e9f3 54 mspeed[0] = speedRight;
ikarashikota 0:2e7a4f14e9f3 55 mspeed[1] = speedLeft;
ikarashikota 0:2e7a4f14e9f3 56 }else{
ikarashikota 0:2e7a4f14e9f3 57 mspeed[0] = 0;
ikarashikota 0:2e7a4f14e9f3 58 mspeed[1] = 0;
ikarashikota 0:2e7a4f14e9f3 59 }
ikarashikota 0:2e7a4f14e9f3 60 }
ikarashikota 0:2e7a4f14e9f3 61
ikarashikota 0:2e7a4f14e9f3 62 void HOSOKIkikou::runLoad(float speed)
ikarashikota 0:2e7a4f14e9f3 63 {
ikarashikota 0:2e7a4f14e9f3 64 ik[3]->setSpeed(mspeed[3]);
ikarashikota 0:2e7a4f14e9f3 65 if(*button[3] <= 0){
ikarashikota 0:2e7a4f14e9f3 66 mspeed[3] = 0;
ikarashikota 0:2e7a4f14e9f3 67 return;
ikarashikota 0:2e7a4f14e9f3 68 }else if(*button[3] >= 1){
ikarashikota 0:2e7a4f14e9f3 69 mspeed[3] = speed;
ikarashikota 0:2e7a4f14e9f3 70 }else{
ikarashikota 0:2e7a4f14e9f3 71 mspeed[3] = 0;
ikarashikota 0:2e7a4f14e9f3 72 }
ikarashikota 0:2e7a4f14e9f3 73 }
ikarashikota 0:2e7a4f14e9f3 74
ikarashikota 0:2e7a4f14e9f3 75 void HOSOKIkikou::runLift(float speed)
ikarashikota 0:2e7a4f14e9f3 76 {
ikarashikota 0:2e7a4f14e9f3 77 ik[2]->setSpeed(mspeed[2]);
ikarashikota 0:2e7a4f14e9f3 78 if(*button[1] <= 0 && *button[2] <= 0){
ikarashikota 0:2e7a4f14e9f3 79 mspeed[2] = 0;
ikarashikota 0:2e7a4f14e9f3 80 return;
ikarashikota 0:2e7a4f14e9f3 81 }else if(*button[1] >= 1){
ikarashikota 0:2e7a4f14e9f3 82 mspeed[2] = speed;
ikarashikota 0:2e7a4f14e9f3 83 }else if(*button[2] >= 1){
ikarashikota 0:2e7a4f14e9f3 84 mspeed[2] = -speed;
ikarashikota 0:2e7a4f14e9f3 85 }else{
ikarashikota 0:2e7a4f14e9f3 86 mspeed[2] = 0;
ikarashikota 0:2e7a4f14e9f3 87 }
ikarashikota 0:2e7a4f14e9f3 88 }