Hepta_template_program
Dependencies: mbed PowerControl SDFileSystem
Fork of Hepta_UplinkData by
hepta_sat/HeptaXbee.cpp@0:b96079b7d167, 2016-12-13 (annotated)
- Committer:
- tomoya123
- Date:
- Tue Dec 13 08:03:46 2016 +0000
- Revision:
- 0:b96079b7d167
- Child:
- 1:2a3dc618aef7
Xbee Uplinkdata
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tomoya123 | 0:b96079b7d167 | 1 | #include "HeptaXbee.h" |
tomoya123 | 0:b96079b7d167 | 2 | #include "mbed.h" |
tomoya123 | 0:b96079b7d167 | 3 | #include <stdarg.h> |
tomoya123 | 0:b96079b7d167 | 4 | |
tomoya123 | 0:b96079b7d167 | 5 | HeptaXbee::HeptaXbee(PinName tx, PinName rx) : xbee(tx,rx) |
tomoya123 | 0:b96079b7d167 | 6 | { |
tomoya123 | 0:b96079b7d167 | 7 | rcmd = 0; |
tomoya123 | 0:b96079b7d167 | 8 | cmdflag = 0; |
tomoya123 | 0:b96079b7d167 | 9 | } |
tomoya123 | 0:b96079b7d167 | 10 | void HeptaXbee::baud(int rate) |
tomoya123 | 0:b96079b7d167 | 11 | { |
tomoya123 | 0:b96079b7d167 | 12 | xbee.baud(rate); |
tomoya123 | 0:b96079b7d167 | 13 | } |
tomoya123 | 0:b96079b7d167 | 14 | void HeptaXbee::xbee_recieve(int *xrcmd, int *xcmdflag) { |
tomoya123 | 0:b96079b7d167 | 15 | xbee.attach(this,&HeptaXbee::commandget,Serial::RxIrq); |
tomoya123 | 0:b96079b7d167 | 16 | //xbee.printf("ssXbeedata= %d,%d",HeptaXbee::rcmd,HeptaXbee::cmdflag); |
tomoya123 | 0:b96079b7d167 | 17 | *xrcmd = HeptaXbee::rcmd; |
tomoya123 | 0:b96079b7d167 | 18 | *xcmdflag = HeptaXbee::cmdflag; |
tomoya123 | 0:b96079b7d167 | 19 | } |
tomoya123 | 0:b96079b7d167 | 20 | |
tomoya123 | 0:b96079b7d167 | 21 | void HeptaXbee::initialize(){ |
tomoya123 | 0:b96079b7d167 | 22 | HeptaXbee::rcmd = 0; |
tomoya123 | 0:b96079b7d167 | 23 | HeptaXbee::cmdflag = 0; |
tomoya123 | 0:b96079b7d167 | 24 | } |
tomoya123 | 0:b96079b7d167 | 25 | |
tomoya123 | 0:b96079b7d167 | 26 | void HeptaXbee::commandget(){ |
tomoya123 | 0:b96079b7d167 | 27 | HeptaXbee::rcmd=xbee.getc(); |
tomoya123 | 0:b96079b7d167 | 28 | HeptaXbee::cmdflag = 1; |
tomoya123 | 0:b96079b7d167 | 29 | //xbee.printf("Xbeedata= %d,%d",rcmd,cmdflag); |
tomoya123 | 0:b96079b7d167 | 30 | } |
tomoya123 | 0:b96079b7d167 | 31 | void HeptaXbee::putc(char data) |
tomoya123 | 0:b96079b7d167 | 32 | { |
tomoya123 | 0:b96079b7d167 | 33 | xbee.putc(data); |
tomoya123 | 0:b96079b7d167 | 34 | } |
tomoya123 | 0:b96079b7d167 | 35 | void HeptaXbee::xbee_transmit(char* output_data,size_t output_n, |
tomoya123 | 0:b96079b7d167 | 36 | char data1[],char data2[],char data3[],char data4[],char data5[],char data6[],char data7[],char data8[],char data9[], |
tomoya123 | 0:b96079b7d167 | 37 | int n1,int n2,int n3,int n4,int n5,int n6,int n7,int n8,int n9) |
tomoya123 | 0:b96079b7d167 | 38 | { |
tomoya123 | 0:b96079b7d167 | 39 | int N=0,i=0,ii,jj=0; |
tomoya123 | 0:b96079b7d167 | 40 | for(i = 0; i <= n1-1; i++){ |
tomoya123 | 0:b96079b7d167 | 41 | output_data[N+i] = data1[i]; |
tomoya123 | 0:b96079b7d167 | 42 | } |
tomoya123 | 0:b96079b7d167 | 43 | N=i; |
tomoya123 | 0:b96079b7d167 | 44 | for(i = 0; i <= n2-1; i++){ |
tomoya123 | 0:b96079b7d167 | 45 | output_data[N+i] = data2[i]; |
tomoya123 | 0:b96079b7d167 | 46 | } |
tomoya123 | 0:b96079b7d167 | 47 | N=N+i; |
tomoya123 | 0:b96079b7d167 | 48 | for(i = 0; i <= n3-1; i++){ |
tomoya123 | 0:b96079b7d167 | 49 | output_data[N+i] = data3[i]; |
tomoya123 | 0:b96079b7d167 | 50 | } |
tomoya123 | 0:b96079b7d167 | 51 | N=N+i; |
tomoya123 | 0:b96079b7d167 | 52 | for(i = 0; i <= n4-1; i++){ |
tomoya123 | 0:b96079b7d167 | 53 | output_data[N+i] = data4[i]; |
tomoya123 | 0:b96079b7d167 | 54 | } |
tomoya123 | 0:b96079b7d167 | 55 | N=N+i; |
tomoya123 | 0:b96079b7d167 | 56 | for(i = 0; i <= n5-1; i++){ |
tomoya123 | 0:b96079b7d167 | 57 | output_data[N+i] = data5[i]; |
tomoya123 | 0:b96079b7d167 | 58 | } |
tomoya123 | 0:b96079b7d167 | 59 | N=N+i; |
tomoya123 | 0:b96079b7d167 | 60 | for(i = 0; i <= n6-1; i++){ |
tomoya123 | 0:b96079b7d167 | 61 | output_data[N+i] = data6[i]; |
tomoya123 | 0:b96079b7d167 | 62 | } |
tomoya123 | 0:b96079b7d167 | 63 | N=N+i; |
tomoya123 | 0:b96079b7d167 | 64 | for(i = 0; i <= n7-1; i++){ |
tomoya123 | 0:b96079b7d167 | 65 | output_data[N+i] = data7[i]; |
tomoya123 | 0:b96079b7d167 | 66 | } |
tomoya123 | 0:b96079b7d167 | 67 | N=N+i; |
tomoya123 | 0:b96079b7d167 | 68 | for(i = 0; i <= n8-1; i++){ |
tomoya123 | 0:b96079b7d167 | 69 | output_data[N+i] = data8[i]; |
tomoya123 | 0:b96079b7d167 | 70 | } |
tomoya123 | 0:b96079b7d167 | 71 | N=N+i; |
tomoya123 | 0:b96079b7d167 | 72 | for(i = 0; i <= n9-1; i++){ |
tomoya123 | 0:b96079b7d167 | 73 | output_data[N+i] = data9[i]; |
tomoya123 | 0:b96079b7d167 | 74 | } |
tomoya123 | 0:b96079b7d167 | 75 | for(ii=0;ii<output_n;ii++){ |
tomoya123 | 0:b96079b7d167 | 76 | xbee.putc(output_data[ii]); |
tomoya123 | 0:b96079b7d167 | 77 | jj++; |
tomoya123 | 0:b96079b7d167 | 78 | if(jj==2) |
tomoya123 | 0:b96079b7d167 | 79 | { |
tomoya123 | 0:b96079b7d167 | 80 | xbee.putc(0x20);//ascii codeスペース |
tomoya123 | 0:b96079b7d167 | 81 | jj=0; |
tomoya123 | 0:b96079b7d167 | 82 | } |
tomoya123 | 0:b96079b7d167 | 83 | } |
tomoya123 | 0:b96079b7d167 | 84 | xbee.putc(0x0a);//ascii code改行 |
tomoya123 | 0:b96079b7d167 | 85 | } |
tomoya123 | 0:b96079b7d167 | 86 | void HeptaXbee::puts( char *s ) { |
tomoya123 | 0:b96079b7d167 | 87 | while ( char c = *s++ ) |
tomoya123 | 0:b96079b7d167 | 88 | xbee.putc( c ); |
tomoya123 | 0:b96079b7d167 | 89 | } |
tomoya123 | 0:b96079b7d167 | 90 | void HeptaXbee::printf( char *format, ... ) { |
tomoya123 | 0:b96079b7d167 | 91 | char s[ 32 ]; |
tomoya123 | 0:b96079b7d167 | 92 | va_list args; |
tomoya123 | 0:b96079b7d167 | 93 | |
tomoya123 | 0:b96079b7d167 | 94 | va_start( args, format ); |
tomoya123 | 0:b96079b7d167 | 95 | vsnprintf( s, 32, format, args ); |
tomoya123 | 0:b96079b7d167 | 96 | va_end( args ); |
tomoya123 | 0:b96079b7d167 | 97 | |
tomoya123 | 0:b96079b7d167 | 98 | xbee.puts( s ); |
tomoya123 | 0:b96079b7d167 | 99 | } |
tomoya123 | 0:b96079b7d167 | 100 | |
tomoya123 | 0:b96079b7d167 | 101 | void HeptaXbee::xbee_s_transmit(char* OutputData,size_t output_num, |
tomoya123 | 0:b96079b7d167 | 102 | char dataA[],char dataB[],char dataC[],char dataD[], |
tomoya123 | 0:b96079b7d167 | 103 | int numA,int numB,int numC,int numD) |
tomoya123 | 0:b96079b7d167 | 104 | { |
tomoya123 | 0:b96079b7d167 | 105 | int N=0,i=0,ii; |
tomoya123 | 0:b96079b7d167 | 106 | for(i = 0; i <= numA-1; i++){ |
tomoya123 | 0:b96079b7d167 | 107 | OutputData[N+i] = dataA[i]; |
tomoya123 | 0:b96079b7d167 | 108 | } |
tomoya123 | 0:b96079b7d167 | 109 | N=i; |
tomoya123 | 0:b96079b7d167 | 110 | for(i = 0; i <= numB-1; i++){ |
tomoya123 | 0:b96079b7d167 | 111 | OutputData[N+i] = dataB[i]; |
tomoya123 | 0:b96079b7d167 | 112 | } |
tomoya123 | 0:b96079b7d167 | 113 | N=N+i; |
tomoya123 | 0:b96079b7d167 | 114 | for(i = 0; i <= numC-1; i++){ |
tomoya123 | 0:b96079b7d167 | 115 | OutputData[N+i] = dataC[i]; |
tomoya123 | 0:b96079b7d167 | 116 | } |
tomoya123 | 0:b96079b7d167 | 117 | N=N+i; |
tomoya123 | 0:b96079b7d167 | 118 | for(i = 0; i <= numD-1; i++){ |
tomoya123 | 0:b96079b7d167 | 119 | OutputData[N+i] = dataD[i]; |
tomoya123 | 0:b96079b7d167 | 120 | } |
tomoya123 | 0:b96079b7d167 | 121 | for(ii=0;ii<output_num;ii++){ |
tomoya123 | 0:b96079b7d167 | 122 | xbee.putc(OutputData[ii]); |
tomoya123 | 0:b96079b7d167 | 123 | } |
tomoya123 | 0:b96079b7d167 | 124 | xbee.putc(0x0a); |
tomoya123 | 0:b96079b7d167 | 125 | xbee.putc(0x0d); |
tomoya123 | 0:b96079b7d167 | 126 | } |
tomoya123 | 0:b96079b7d167 | 127 | |
tomoya123 | 0:b96079b7d167 | 128 |