レビュー前のソフトです
rpdd_ver2.cpp@0:dd23201e55ee, 2017-09-03 (annotated)
- Committer:
- yousei
- Date:
- Sun Sep 03 01:08:54 2017 +0000
- Revision:
- 0:dd23201e55ee
?????????????????????????????????????????????????
Who changed what in which revision?
User | Revision | Line number | New 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 | } |