レビュー前のソフトです

Committer:
yousei
Date:
Sun Sep 03 01:08:54 2017 +0000
Revision:
0:dd23201e55ee
?????????????????????????????????????????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yousei 0:dd23201e55ee 1 #include "mbed.h"
yousei 0:dd23201e55ee 2 #include "rpdd_ver2.h"
yousei 0:dd23201e55ee 3 #include "fm_dd.h"
yousei 0:dd23201e55ee 4 #include "missionDR.h"
yousei 0:dd23201e55ee 5
yousei 0:dd23201e55ee 6 Fm transmitter;
yousei 0:dd23201e55ee 7 MissionDR dr;
yousei 0:dd23201e55ee 8
yousei 0:dd23201e55ee 9 RPDD::RPDD()
yousei 0:dd23201e55ee 10 {
yousei 0:dd23201e55ee 11 camera_num1=1;
yousei 0:dd23201e55ee 12 camera_num2=1;
yousei 0:dd23201e55ee 13 camera_num3=1;
yousei 0:dd23201e55ee 14 downlink_cnt=1;
yousei 0:dd23201e55ee 15 practical_dl_cnt=0;
yousei 0:dd23201e55ee 16 com_style=0;
yousei 0:dd23201e55ee 17 save_data_id1=1;
yousei 0:dd23201e55ee 18 save_data_id2=1;
yousei 0:dd23201e55ee 19 save_data_id3=1;
yousei 0:dd23201e55ee 20 readout_block_num1=1;
yousei 0:dd23201e55ee 21 readout_block_num2=1;
yousei 0:dd23201e55ee 22 readout_block_num3=1;
yousei 0:dd23201e55ee 23 loop_cnt = 1;
yousei 0:dd23201e55ee 24 readout_byte = 0;
yousei 0:dd23201e55ee 25 process_stage = 1;
yousei 0:dd23201e55ee 26 }
yousei 0:dd23201e55ee 27 void RPDD::first_tlm_sending(uint8_t camera_num,uint8_t save_data_id)
yousei 0:dd23201e55ee 28 {
yousei 0:dd23201e55ee 29 int block_num = 0;
yousei 0:dd23201e55ee 30 uint8_t first_telemetly[7]= {0},photo_info[512]= {0};
yousei 0:dd23201e55ee 31 block_num = 1 + (save_data_id-1)*321;
yousei 0:dd23201e55ee 32 dr.read(photo_info,block_num,1);
yousei 0:dd23201e55ee 33 first_telemetly[0]=4;
yousei 0:dd23201e55ee 34 first_telemetly[1]=camera_num;
yousei 0:dd23201e55ee 35 first_telemetly[2]=save_data_id;
yousei 0:dd23201e55ee 36 for(int i=0; i<4; i++) {
yousei 0:dd23201e55ee 37 first_telemetly[i+3]=photo_info[i];
yousei 0:dd23201e55ee 38 }
yousei 0:dd23201e55ee 39 transmitter.send(first_telemetly,7);
yousei 0:dd23201e55ee 40 loop_cnt++;
yousei 0:dd23201e55ee 41 process_stage++;
yousei 0:dd23201e55ee 42 }
yousei 0:dd23201e55ee 43 void RPDD::photo_data_sending_afsk(uint8_t camera_num,uint8_t save_data_id,uint8_t readout_block_num)
yousei 0:dd23201e55ee 44 {
yousei 0:dd23201e55ee 45 int block_num=0;
yousei 0:dd23201e55ee 46 uint8_t photo_data[512]= {0},packet[128]= {0};
yousei 0:dd23201e55ee 47 block_num = 1 + (save_data_id-1)*321 + (camera_num-1)*80 + readout_block_num;
yousei 0:dd23201e55ee 48 dr.read(photo_data,block_num,1);
yousei 0:dd23201e55ee 49 if(readout_byte == 512) {
yousei 0:dd23201e55ee 50 process_stage++;
yousei 0:dd23201e55ee 51 readout_byte =0;//読み出したバイト数が512ということは1ブロック分送信が終了しているのでリセット
yousei 0:dd23201e55ee 52 } else if(readout_byte<=512) {
yousei 0:dd23201e55ee 53 for(int i=0; i<128; i++) {
yousei 0:dd23201e55ee 54 packet[i]=photo_data[readout_byte];
yousei 0:dd23201e55ee 55 readout_byte++;
yousei 0:dd23201e55ee 56 }
yousei 0:dd23201e55ee 57 } else {
yousei 0:dd23201e55ee 58 }
yousei 0:dd23201e55ee 59 readout_byte = readout_byte + 128;
yousei 0:dd23201e55ee 60 transmitter.send(packet,128);
yousei 0:dd23201e55ee 61 loop_cnt++;
yousei 0:dd23201e55ee 62 if(loop_cnt == 16) {
yousei 0:dd23201e55ee 63 process_stage=1;
yousei 0:dd23201e55ee 64 practical_dl_cnt++;
yousei 0:dd23201e55ee 65 loop_cnt=0;
yousei 0:dd23201e55ee 66 } else {}
yousei 0:dd23201e55ee 67 }
yousei 0:dd23201e55ee 68 void RPDD::photo_data_sending_gmsk(uint8_t camera_num,uint8_t save_data_id,uint8_t readout_block_num)
yousei 0:dd23201e55ee 69 {
yousei 0:dd23201e55ee 70 int block_num=0;
yousei 0:dd23201e55ee 71 uint8_t photo_data[512]= {0},packet1[128]= {0},packet2[128]= {0};
yousei 0:dd23201e55ee 72 block_num = 1 + (save_data_id-1)*321 + (camera_num-1)*80 + readout_block_num;
yousei 0:dd23201e55ee 73 dr.read(photo_data,block_num,1);
yousei 0:dd23201e55ee 74 for(int i=0; i<256; i++) {
yousei 0:dd23201e55ee 75 packet1[i]=photo_data[i];
yousei 0:dd23201e55ee 76 packet2[i]=photo_data[i+256];
yousei 0:dd23201e55ee 77 }
yousei 0:dd23201e55ee 78 transmitter.send(packet1,256);
yousei 0:dd23201e55ee 79 transmitter.send(packet2,256);
yousei 0:dd23201e55ee 80 loop_cnt = loop_cnt+2;
yousei 0:dd23201e55ee 81 if(loop_cnt == 10) {
yousei 0:dd23201e55ee 82 practical_dl_cnt++;
yousei 0:dd23201e55ee 83 loop_cnt = 0;
yousei 0:dd23201e55ee 84 } else {}
yousei 0:dd23201e55ee 85 }
yousei 0:dd23201e55ee 86
yousei 0:dd23201e55ee 87 int RPDD::random_photo_data_downlink(uint8_t* uart_data)
yousei 0:dd23201e55ee 88 {
yousei 0:dd23201e55ee 89 int flag_RPDD = 0;
yousei 0:dd23201e55ee 90 camera_num1 = uart_data[3]>>6;
yousei 0:dd23201e55ee 91 camera_num2 = uart_data[3]<<2;
yousei 0:dd23201e55ee 92 camera_num2 = camera_num2>>6;
yousei 0:dd23201e55ee 93 camera_num3 = uart_data[3]<<4;
yousei 0:dd23201e55ee 94 camera_num3 = camera_num3>>6;
yousei 0:dd23201e55ee 95 downlink_cnt = uart_data[3]<<6;
yousei 0:dd23201e55ee 96 downlink_cnt = downlink_cnt>>6;
yousei 0:dd23201e55ee 97 com_style = uart_data[4]>>5;
yousei 0:dd23201e55ee 98 save_data_id1 = uart_data[4]<<4;
yousei 0:dd23201e55ee 99 save_data_id1 = save_data_id1>>4;
yousei 0:dd23201e55ee 100 save_data_id2 = uart_data[5]>>4;
yousei 0:dd23201e55ee 101 save_data_id3 = uart_data[5]<<4;
yousei 0:dd23201e55ee 102 save_data_id3 = save_data_id3>>4;
yousei 0:dd23201e55ee 103 readout_block_num1 = uart_data[6];
yousei 0:dd23201e55ee 104 readout_block_num2 = uart_data[7];
yousei 0:dd23201e55ee 105 readout_block_num3 = uart_data[8];
yousei 0:dd23201e55ee 106 if(com_style==0) {
yousei 0:dd23201e55ee 107 switch(process_stage) {
yousei 0:dd23201e55ee 108 case 1:
yousei 0:dd23201e55ee 109 first_tlm_sending(camera_num1,save_data_id1);
yousei 0:dd23201e55ee 110 break;
yousei 0:dd23201e55ee 111 case 2:
yousei 0:dd23201e55ee 112 photo_data_sending_afsk(camera_num1,save_data_id1,readout_block_num1);
yousei 0:dd23201e55ee 113 break;
yousei 0:dd23201e55ee 114 case 3:
yousei 0:dd23201e55ee 115 first_tlm_sending(camera_num2,save_data_id2);
yousei 0:dd23201e55ee 116 break;
yousei 0:dd23201e55ee 117 case 4:
yousei 0:dd23201e55ee 118 photo_data_sending_afsk(camera_num2,save_data_id2,readout_block_num2);
yousei 0:dd23201e55ee 119 break;
yousei 0:dd23201e55ee 120 case 5:
yousei 0:dd23201e55ee 121 first_tlm_sending(camera_num3,save_data_id3);
yousei 0:dd23201e55ee 122 break;
yousei 0:dd23201e55ee 123 case 6:
yousei 0:dd23201e55ee 124 photo_data_sending_afsk(camera_num3,save_data_id3,readout_block_num3);
yousei 0:dd23201e55ee 125 break;
yousei 0:dd23201e55ee 126 default:
yousei 0:dd23201e55ee 127 return 0;
yousei 0:dd23201e55ee 128 }
yousei 0:dd23201e55ee 129 } else {
yousei 0:dd23201e55ee 130 switch(process_stage) {
yousei 0:dd23201e55ee 131 case 1:
yousei 0:dd23201e55ee 132 first_tlm_sending(camera_num1,save_data_id1);
yousei 0:dd23201e55ee 133 photo_data_sending_gmsk(camera_num1,save_data_id1,readout_block_num1);
yousei 0:dd23201e55ee 134 break;
yousei 0:dd23201e55ee 135 case 2:
yousei 0:dd23201e55ee 136 first_tlm_sending(camera_num2,save_data_id2);
yousei 0:dd23201e55ee 137 photo_data_sending_gmsk(camera_num2,save_data_id2,readout_block_num2);
yousei 0:dd23201e55ee 138 break;
yousei 0:dd23201e55ee 139 case 3:
yousei 0:dd23201e55ee 140 first_tlm_sending(camera_num3,save_data_id3);
yousei 0:dd23201e55ee 141 photo_data_sending_gmsk(camera_num3,save_data_id3,readout_block_num3);
yousei 0:dd23201e55ee 142 default:
yousei 0:dd23201e55ee 143 return 0;
yousei 0:dd23201e55ee 144 }
yousei 0:dd23201e55ee 145 }
yousei 0:dd23201e55ee 146 if(practical_dl_cnt==downlink_cnt) {
yousei 0:dd23201e55ee 147 flag_RPDD = 1;
yousei 0:dd23201e55ee 148 } else {
yousei 0:dd23201e55ee 149 flag_RPDD = 0;
yousei 0:dd23201e55ee 150 }
yousei 0:dd23201e55ee 151 return flag_RPDD;
yousei 0:dd23201e55ee 152 }