6/8 操舵中央 ピッチ操作追加版

Dependencies:   mbed

Fork of Souda_Main_ver3 by albatross

main.cpp

Committer:
YusukeWakuta
Date:
2016-02-17
Revision:
3:0e66ce2ab2fb
Parent:
2:9dc7d5f1e910
Child:
4:4a13dd263a7b

File content as of revision 3:0e66ce2ab2fb:

//中央can program

#include "mbed.h"
#define WAIT_LOOP_TIME 0.2
#define YOKUTAN_DATAS_NUM 5
#define IMPUT_DATAS_NUM 2
#define SEND_DATAS_CAN_ID 100

CAN can_R(p9,p10);
CAN can_L(p30,p29);
Serial toKeikiSerial(p28,p27);
Serial pc(USBTX,USBRX);
DigitalIn eruron_R(p20);
DigitalIn eruron_L(p22);
DigitalIn drug_R(p19);
DigitalIn drug_L(p23);
DigitalOut myled1(LED1);
DigitalOut myled2(LED2);

signed char yokutanDatas_R[YOKUTAN_DATAS_NUM];
signed char yokutanDatas_L[YOKUTAN_DATAS_NUM];
char inputDatas_R[IMPUT_DATAS_NUM];
char inputDatas_L[IMPUT_DATAS_NUM];

CANMessage recmsg_R;
CANMessage recmsg_L;

void InputAndSentControlValues_R(){
    inputDatas_R[0] = (char)drug_R;
    inputDatas_R[1] = (char)eruron_R;
    // pc.printf("R : %d\t%d\t",drug_R.read(),eruron_R.read());
    //for(int i = 0; i < IMPUT_DATAS_NUM; i++){
        if(can_R.write(CANMessage(SEND_DATAS_CAN_ID, inputDatas_R, IMPUT_DATAS_NUM))){
        //    pc.printf("Right successed!\n\r");
      
        }
    //}
}

void ledcheck_R() {
        myled1 = 1;
        wait(0.2);
        myled1 = 0;
        wait(0.2);
}

void ledcheck_L() {
        myled2 = 1;
        wait(0.2);
        myled2 = 0;
        wait(0.2);
}

void InputAndSentControlValues_L(){
    inputDatas_L[0] = (char)drug_L;
    inputDatas_L[1] = (char)eruron_L;
      pc.printf("L : %d\t%d\n\r",drug_L.read(),eruron_L.read());
    //for(int i = 0; i < IMPUT_DATAS_NUM; i++){
        if(can_L.write(CANMessage(SEND_DATAS_CAN_ID, inputDatas_L, IMPUT_DATAS_NUM))){
          //  pc.printf("Left successed!\n\r");
        }
    //}
}

void SendDarasToKeiki(){
    for(int i = 0; i < YOKUTAN_DATAS_NUM; i++){
        toKeikiSerial.putc(yokutanDatas_R[i]);
        toKeikiSerial.putc(yokutanDatas_L[i]);
    }
}

void toString_R(){
    for(int i = 0; i < YOKUTAN_DATAS_NUM; i++){
        pc.printf("R : ");
        pc.printf("%i:",yokutanDatas_R[i]);
    }
    for(int i = 0; i < IMPUT_DATAS_NUM; i++){
       // pc.printf("%d:%d",i,inputDatas_R[i]);
    }
  //  pc.printf("\t");
}

void toString_L(){
    for(int i = 0; i < YOKUTAN_DATAS_NUM; i++){
        pc.printf("L : ");
        pc.printf("%i:",yokutanDatas_L[i]);
    }
    pc.printf("\n\r");
}

void init(){
    for(int i = 0; i < IMPUT_DATAS_NUM; i++){
        inputDatas_R[i] = 0;
        inputDatas_L[i] = 0;
    }
}


void receiveDatas(){
    if(can_R.read(recmsg_R)){
        ledcheck_R();
        for(int i = 0; i < recmsg_R.len; i++){
            yokutanDatas_R[i] = recmsg_R.data[i];
           // pc.printf("R : %d , %d\t",recmsg_R.data[i]);
        }
    }
     if(can_L.read(recmsg_L)){
        ledcheck_L();
        for(int i = 0; i < recmsg_L.len; i++){
            yokutanDatas_L[i] = recmsg_L.data[i];
        //    pc.printf("L : %d , %d\t",recmsg_L.data[i]);
        }
    }
}


int main(){
    init();
    while(1){
        //servo_check();
        InputAndSentControlValues_R();
        InputAndSentControlValues_L();
        wait_us(10);
        receiveDatas();
        toString_R();
        toString_L();
        wait(WAIT_LOOP_TIME);
    }
}