For Hepta-Sat Lite
HeptaXbee.cpp
- Committer:
- HEPTA
- Date:
- 2017-09-04
- Revision:
- 5:c441a88f6952
- Parent:
- 4:ede5c519e238
- Child:
- 6:94eef84c1a50
File content as of revision 5:c441a88f6952:
#include "HeptaXbee.h" #include "mbed.h" #include <stdarg.h> HeptaXbee::HeptaXbee(PinName tx, PinName rx) : xbee(tx,rx) { rcmd = 0; cmdflag = 0; //xbee.baud(115200); } void HeptaXbee::xbee_recieve(int *xrcmd, int *xcmdflag) { xbee.attach(this,&HeptaXbee::commandget,Serial::RxIrq); //xbee.printf("ssXbeedata= %d,%d",HeptaXbee::rcmd,HeptaXbee::cmdflag); *xrcmd = HeptaXbee::rcmd; *xcmdflag = HeptaXbee::cmdflag; } void HeptaXbee::initialize() { HeptaXbee::rcmd = 0; HeptaXbee::cmdflag = 0; } void HeptaXbee::commandget() { HeptaXbee::rcmd=xbee.getc(); HeptaXbee::cmdflag = 1; //xbee.printf("Xbeedata= %d,%d",rcmd,cmdflag); } void HeptaXbee::xbee_transmit(char* output_data,size_t output_n, char data1[],char data2[],char data3[],char data4[],char data5[],char data6[],char data7[],char data8[],char data9[],char data10[],char data11[],char data12[],char data13[],char data14[], int n1,int n2,int n3,int n4,int n5,int n6,int n7,int n8,int n9,int n10,int n11,int n12,int n13,int n14,int data_num) { int N=0,i=0,ii; if(data_num>=1) { for(i = 0; i <= n1-1; i++) { output_data[N+i] = data1[i]; } N=i; } if(data_num>=2) { for(i = 0; i <= n2-1; i++) { output_data[N+i] = data2[i]; } N=N+i; } if(data_num>=3) { for(i = 0; i <= n3-1; i++) { output_data[N+i] = data3[i]; } N=N+i; } if(data_num>=4) { for(i = 0; i <= n4-1; i++) { output_data[N+i] = data4[i]; } N=N+i; } if(data_num>=5) { for(i = 0; i <= n5-1; i++) { output_data[N+i] = data5[i]; } N=N+i; } if(data_num>=6) { for(i = 0; i <= n6-1; i++) { output_data[N+i] = data6[i]; } N=N+i; } if(data_num>=7) { for(i = 0; i <= n7-1; i++) { output_data[N+i] = data7[i]; } N=N+i; } if(data_num>=8) { for(i = 0; i <= n8-1; i++) { output_data[N+i] = data8[i]; } N=N+i; } if(data_num>=9) { for(i = 0; i <= n9-1; i++) { output_data[N+i] = data9[i]; } N=N+i; } if(data_num>=10) { for(i = 0; i <= n10-1; i++) { output_data[N+i] = data10[i]; } N=N+i; } if(data_num>=11) { for(i = 0; i <= n11-1; i++) { output_data[N+i] = data11[i]; } N=N+i; } if(data_num>=12) { for(i = 0; i <= n12-1; i++) { output_data[N+i] = data12[i]; } N=N+i; } if(data_num>=13) { for(i = 0; i <= n13-1; i++) { output_data[N+i] = data13[i]; } N=N+i; } if(data_num>=14) { for(i = 0; i <= n14-1; i++) { output_data[N+i] = data14[i]; } } for(ii=0; ii<output_n; ii++) { xbee.putc(output_data[ii]); } xbee.printf("\n"); } void HeptaXbee::puts( char *s ) { while ( char c = *s++ ) xbee.putc( c ); } void HeptaXbee::printf( char *format, ... ) { char s[ 100 ]; va_list args; va_start( args, format ); vsnprintf( s, 100, format, args ); va_end( args ); xbee.puts( s ); } char HeptaXbee::getc() { char character; character = xbee.getc(); return character; } void HeptaXbee::putc(char cc) { xbee.putc(cc); }