test
Dependencies: Hepta9axis HeptaBattery HeptaCamera_GPS HeptaTemp HeptaXbee SDFileSystem mbed
Fork of HEPTA_assembly by
main.cpp@5:13baaa9f5eb1, 2017-09-02 (annotated)
- Committer:
- umeume
- Date:
- Sat Sep 02 22:01:18 2017 +0000
- Revision:
- 5:13baaa9f5eb1
- Parent:
- 2:1c5cdb2c3e0f
test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_official | 0:bdbd3d6fc5d5 | 1 | #include "mbed.h" |
mbed_official | 0:bdbd3d6fc5d5 | 2 | #include "SDFileSystem.h" |
umeume | 2:1c5cdb2c3e0f | 3 | #include "HeptaXbee.h" |
umeume | 2:1c5cdb2c3e0f | 4 | #include "HeptaCamera_GPS.h" |
umeume | 2:1c5cdb2c3e0f | 5 | #include "Hepta9axis.h" |
umeume | 2:1c5cdb2c3e0f | 6 | #include "HeptaTemp.h" |
umeume | 2:1c5cdb2c3e0f | 7 | #include "HeptaBattery.h" |
umeume | 2:1c5cdb2c3e0f | 8 | |
umeume | 2:1c5cdb2c3e0f | 9 | Serial pc(USBTX,USBRX); |
umeume | 2:1c5cdb2c3e0f | 10 | SDFileSystem sd(p5, p6, p7, p8, "fs"); |
umeume | 2:1c5cdb2c3e0f | 11 | HeptaXbee xbee(p9,p10); |
umeume | 2:1c5cdb2c3e0f | 12 | HeptaCamera_GPS cam_gps(p13, p14,p25,p24); |
umeume | 2:1c5cdb2c3e0f | 13 | Hepta9axis _9axis(p28,p27,0xD0,0x18);//sda,scl,acc&gyro_address,mag_gyro |
umeume | 2:1c5cdb2c3e0f | 14 | HeptaTemp heptatemp(p17); |
umeume | 2:1c5cdb2c3e0f | 15 | HeptaBattery bat(p16,p26); |
umeume | 2:1c5cdb2c3e0f | 16 | |
umeume | 2:1c5cdb2c3e0f | 17 | int main() |
umeume | 2:1c5cdb2c3e0f | 18 | { |
umeume | 5:13baaa9f5eb1 | 19 | int i=0,rcmd=0,cmdflag=0; |
umeume | 5:13baaa9f5eb1 | 20 | //char xdata[500]; |
umeume | 5:13baaa9f5eb1 | 21 | //xbee.printf("Count Up!\r"); |
umeume | 2:1c5cdb2c3e0f | 22 | while(1) { |
umeume | 5:13baaa9f5eb1 | 23 | //xbee.printf("num = %d\r",i); |
umeume | 5:13baaa9f5eb1 | 24 | i++; |
umeume | 5:13baaa9f5eb1 | 25 | wait(1.0); |
umeume | 5:13baaa9f5eb1 | 26 | xbee.xbee_recieve(&rcmd,&cmdflag); |
umeume | 5:13baaa9f5eb1 | 27 | pc.printf("rcmd=%d, cmdflag=%d\r\n",rcmd, cmdflag); |
umeume | 5:13baaa9f5eb1 | 28 | if (cmdflag == 1) { |
umeume | 5:13baaa9f5eb1 | 29 | pc.printf("Command Get %d\r\n",rcmd); |
umeume | 5:13baaa9f5eb1 | 30 | pc.printf("HEPTA Uplink OK\r"); |
umeume | 2:1c5cdb2c3e0f | 31 | |
umeume | 5:13baaa9f5eb1 | 32 | switch(rcmd) { |
umeume | 5:13baaa9f5eb1 | 33 | case'a': { |
umeume | 5:13baaa9f5eb1 | 34 | char bt[4]; |
umeume | 5:13baaa9f5eb1 | 35 | int dsize[1]; |
umeume | 5:13baaa9f5eb1 | 36 | for(int j = 0;j <= 50; j++){ |
umeume | 5:13baaa9f5eb1 | 37 | bat.vol_u16(bt,&dsize[1]); |
umeume | 5:13baaa9f5eb1 | 38 | xbee.putc('A'); |
umeume | 5:13baaa9f5eb1 | 39 | for(int k = 0; k<=3; k++) { |
umeume | 5:13baaa9f5eb1 | 40 | xbee.putc(bt[k]); |
umeume | 5:13baaa9f5eb1 | 41 | } |
umeume | 5:13baaa9f5eb1 | 42 | xbee.printf("\n"); |
umeume | 5:13baaa9f5eb1 | 43 | wait(0.5); |
umeume | 5:13baaa9f5eb1 | 44 | } |
umeume | 5:13baaa9f5eb1 | 45 | break; |
umeume | 5:13baaa9f5eb1 | 46 | //*/ |
umeume | 2:1c5cdb2c3e0f | 47 | } |
umeume | 2:1c5cdb2c3e0f | 48 | |
umeume | 5:13baaa9f5eb1 | 49 | case'b': { |
umeume | 5:13baaa9f5eb1 | 50 | |
umeume | 5:13baaa9f5eb1 | 51 | break; |
umeume | 5:13baaa9f5eb1 | 52 | }//case'c' |
umeume | 5:13baaa9f5eb1 | 53 | |
umeume | 5:13baaa9f5eb1 | 54 | case'c': { |
umeume | 5:13baaa9f5eb1 | 55 | |
umeume | 5:13baaa9f5eb1 | 56 | break; |
umeume | 5:13baaa9f5eb1 | 57 | }//case'd' |
umeume | 2:1c5cdb2c3e0f | 58 | |
umeume | 5:13baaa9f5eb1 | 59 | case'd': { |
umeume | 5:13baaa9f5eb1 | 60 | |
umeume | 5:13baaa9f5eb1 | 61 | }//case'e' |
umeume | 2:1c5cdb2c3e0f | 62 | |
umeume | 5:13baaa9f5eb1 | 63 | case'e': { |
umeume | 5:13baaa9f5eb1 | 64 | cam_gps.gps_setting(); |
umeume | 5:13baaa9f5eb1 | 65 | cam_gps.flushSerialBuffer(); |
umeume | 5:13baaa9f5eb1 | 66 | |
umeume | 5:13baaa9f5eb1 | 67 | break; |
umeume | 5:13baaa9f5eb1 | 68 | }//case'g' |
umeume | 2:1c5cdb2c3e0f | 69 | |
umeume | 2:1c5cdb2c3e0f | 70 | |
umeume | 5:13baaa9f5eb1 | 71 | case'f': { |
umeume | 5:13baaa9f5eb1 | 72 | |
umeume | 5:13baaa9f5eb1 | 73 | break; |
umeume | 5:13baaa9f5eb1 | 74 | }//case'l' |
umeume | 2:1c5cdb2c3e0f | 75 | |
umeume | 5:13baaa9f5eb1 | 76 | case'g': { |
umeume | 5:13baaa9f5eb1 | 77 | // pc.printf("CAM snapshot Mode\r\n"); |
umeume | 5:13baaa9f5eb1 | 78 | cam_gps.Sync(); |
umeume | 5:13baaa9f5eb1 | 79 | cam_gps.initialize(HeptaCamera_GPS::Baud115200, HeptaCamera_GPS::JpegResolution320x240); |
umeume | 5:13baaa9f5eb1 | 80 | cam_gps.test_jpeg_snapshot_picture(1); |
umeume | 5:13baaa9f5eb1 | 81 | break; |
umeume | 5:13baaa9f5eb1 | 82 | }//case'h' |
umeume | 2:1c5cdb2c3e0f | 83 | |
umeume | 5:13baaa9f5eb1 | 84 | case'h': { |
umeume | 5:13baaa9f5eb1 | 85 | cam_gps.gps_setting(); |
umeume | 5:13baaa9f5eb1 | 86 | cam_gps.flushSerialBuffer(); |
umeume | 5:13baaa9f5eb1 | 87 | //pc.printf("All Transmitting Mode\r\n"); |
umeume | 5:13baaa9f5eb1 | 88 | //char iii = pc.getc(); |
umeume | 5:13baaa9f5eb1 | 89 | char gx[4],gy[4],gz[4],ax[4],ay[4],az[4],mx[4],my[4],mz[4],lad[8],log[8],height[4],bt[4],temp[4]; |
umeume | 5:13baaa9f5eb1 | 90 | char ddata[64]; |
umeume | 5:13baaa9f5eb1 | 91 | int dsize[7]; |
umeume | 5:13baaa9f5eb1 | 92 | int Count = 0; |
umeume | 5:13baaa9f5eb1 | 93 | char fname[64]; |
umeume | 5:13baaa9f5eb1 | 94 | while(1) { |
umeume | 5:13baaa9f5eb1 | 95 | snprintf(fname, sizeof(fname), "/fs/telemetry.txt"); |
umeume | 5:13baaa9f5eb1 | 96 | FILE*fpx = fopen(fname, "a"); |
umeume | 5:13baaa9f5eb1 | 97 | _9axis.sen_gyro_u16(gx,gy,gz,&dsize[0]); |
umeume | 5:13baaa9f5eb1 | 98 | _9axis.sen_acc_u16(ax,ay,az,&dsize[1]); |
umeume | 5:13baaa9f5eb1 | 99 | _9axis.sen_mag_u16(mx,my,mz,&dsize[2]); |
umeume | 5:13baaa9f5eb1 | 100 | bat.vol_u16(bt,&dsize[5]); |
umeume | 5:13baaa9f5eb1 | 101 | heptatemp.temp_sense_u16(temp,&dsize[6]); |
umeume | 5:13baaa9f5eb1 | 102 | cam_gps.lat_log_sensing_u16(lad,log,height,&dsize[3],&dsize[4]); |
umeume | 5:13baaa9f5eb1 | 103 | //xbee.printf("DN:%d",Count); |
umeume | 5:13baaa9f5eb1 | 104 | xbee.putc('H'); |
umeume | 5:13baaa9f5eb1 | 105 | xbee.xbee_transmit(ddata,64,gx,gy,gz,ax,ay,az,mx,my,mz,lad,log,height,bt,temp,dsize[0],dsize[0],dsize[0],dsize[1],dsize[1],dsize[1],dsize[2],dsize[2],dsize[2],dsize[3],dsize[3],dsize[4],dsize[5],dsize[6],14); |
umeume | 5:13baaa9f5eb1 | 106 | fprintf(fpx,"DN%d:",Count); |
umeume | 5:13baaa9f5eb1 | 107 | for(int ii = 0; ii<64; ii++) { |
umeume | 5:13baaa9f5eb1 | 108 | fprintf(fpx,"%c",ddata[ii]); |
umeume | 2:1c5cdb2c3e0f | 109 | } |
umeume | 5:13baaa9f5eb1 | 110 | fprintf(fpx,"\r\n"); |
umeume | 5:13baaa9f5eb1 | 111 | fclose(fpx); |
umeume | 5:13baaa9f5eb1 | 112 | Count++; |
umeume | 2:1c5cdb2c3e0f | 113 | } |
umeume | 5:13baaa9f5eb1 | 114 | break; |
umeume | 5:13baaa9f5eb1 | 115 | }//case'9' |
umeume | 2:1c5cdb2c3e0f | 116 | |
umeume | 5:13baaa9f5eb1 | 117 | default: |
umeume | 5:13baaa9f5eb1 | 118 | break; |
umeume | 2:1c5cdb2c3e0f | 119 | |
umeume | 2:1c5cdb2c3e0f | 120 | |
umeume | 5:13baaa9f5eb1 | 121 | }//switch |
umeume | 5:13baaa9f5eb1 | 122 | xbee.initialize(); |
umeume | 5:13baaa9f5eb1 | 123 | }//if(cmdflag) |
umeume | 5:13baaa9f5eb1 | 124 | }//while |
umeume | 5:13baaa9f5eb1 | 125 | }//main |