HEPTA2Xbee_

Dependencies:   HeptaXbee mbed

Fork of HEPTA_Xbee by Hepta 2

Committer:
hepta2ume
Date:
Wed Jul 19 07:52:57 2017 +0000
Revision:
0:f922c2672aa4
HEPTA_Xbee?Library(0719)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hepta2ume 0:f922c2672aa4 1 #include "HeptaXbee.h"
hepta2ume 0:f922c2672aa4 2 #include "mbed.h"
hepta2ume 0:f922c2672aa4 3 #include <stdarg.h>
hepta2ume 0:f922c2672aa4 4
hepta2ume 0:f922c2672aa4 5 HeptaXbee::HeptaXbee(PinName tx, PinName rx) : xbee(tx,rx)
hepta2ume 0:f922c2672aa4 6 {
hepta2ume 0:f922c2672aa4 7 rcmd = 0;
hepta2ume 0:f922c2672aa4 8 cmdflag = 0;
hepta2ume 0:f922c2672aa4 9 }
hepta2ume 0:f922c2672aa4 10
hepta2ume 0:f922c2672aa4 11 void HeptaXbee::xbee_recieve(int *xrcmd, int *xcmdflag) {
hepta2ume 0:f922c2672aa4 12 xbee.attach(this,&HeptaXbee::commandget,Serial::RxIrq);
hepta2ume 0:f922c2672aa4 13 //xbee.printf("ssXbeedata= %d,%d",HeptaXbee::rcmd,HeptaXbee::cmdflag);
hepta2ume 0:f922c2672aa4 14 *xrcmd = HeptaXbee::rcmd;
hepta2ume 0:f922c2672aa4 15 *xcmdflag = HeptaXbee::cmdflag;
hepta2ume 0:f922c2672aa4 16 }
hepta2ume 0:f922c2672aa4 17
hepta2ume 0:f922c2672aa4 18 void HeptaXbee::initialize(){
hepta2ume 0:f922c2672aa4 19 HeptaXbee::rcmd = 0;
hepta2ume 0:f922c2672aa4 20 HeptaXbee::cmdflag = 0;
hepta2ume 0:f922c2672aa4 21 }
hepta2ume 0:f922c2672aa4 22
hepta2ume 0:f922c2672aa4 23 void HeptaXbee::commandget(){
hepta2ume 0:f922c2672aa4 24 HeptaXbee::rcmd=xbee.getc();
hepta2ume 0:f922c2672aa4 25 HeptaXbee::cmdflag = 1;
hepta2ume 0:f922c2672aa4 26 //xbee.printf("Xbeedata= %d,%d",rcmd,cmdflag);
hepta2ume 0:f922c2672aa4 27 }
hepta2ume 0:f922c2672aa4 28
hepta2ume 0:f922c2672aa4 29 void HeptaXbee::xbee_transmit(char* output_data,size_t output_n,
hepta2ume 0:f922c2672aa4 30 char data1[],char data2[],char data3[],char data4[],char data5[],char data6[],char data7[],char data8[],char data9[],
hepta2ume 0:f922c2672aa4 31 int n1,int n2,int n3,int n4,int n5,int n6,int n7,int n8,int n9,int data_num)
hepta2ume 0:f922c2672aa4 32 {
hepta2ume 0:f922c2672aa4 33 int N=0,i=0,ii,jj=0;
hepta2ume 0:f922c2672aa4 34 if(data_num>=1){
hepta2ume 0:f922c2672aa4 35 for(i = 0; i <= n1-1; i++){
hepta2ume 0:f922c2672aa4 36 output_data[N+i] = data1[i];
hepta2ume 0:f922c2672aa4 37 }
hepta2ume 0:f922c2672aa4 38 N=i;
hepta2ume 0:f922c2672aa4 39 }
hepta2ume 0:f922c2672aa4 40
hepta2ume 0:f922c2672aa4 41 if(data_num>=2){
hepta2ume 0:f922c2672aa4 42 for(i = 0; i <= n2-1; i++){
hepta2ume 0:f922c2672aa4 43 output_data[N+i] = data2[i];
hepta2ume 0:f922c2672aa4 44 }
hepta2ume 0:f922c2672aa4 45 N=N+i;
hepta2ume 0:f922c2672aa4 46 }
hepta2ume 0:f922c2672aa4 47 if(data_num>=3){
hepta2ume 0:f922c2672aa4 48 for(i = 0; i <= n3-1; i++){
hepta2ume 0:f922c2672aa4 49 output_data[N+i] = data3[i];
hepta2ume 0:f922c2672aa4 50 }
hepta2ume 0:f922c2672aa4 51 N=N+i;
hepta2ume 0:f922c2672aa4 52 }
hepta2ume 0:f922c2672aa4 53 if(data_num>=4){
hepta2ume 0:f922c2672aa4 54 for(i = 0; i <= n4-1; i++){
hepta2ume 0:f922c2672aa4 55 output_data[N+i] = data4[i];
hepta2ume 0:f922c2672aa4 56 }
hepta2ume 0:f922c2672aa4 57 N=N+i;
hepta2ume 0:f922c2672aa4 58 }
hepta2ume 0:f922c2672aa4 59 if(data_num>=5){
hepta2ume 0:f922c2672aa4 60 for(i = 0; i <= n5-1; i++){
hepta2ume 0:f922c2672aa4 61 output_data[N+i] = data5[i];
hepta2ume 0:f922c2672aa4 62 }
hepta2ume 0:f922c2672aa4 63 N=N+i;
hepta2ume 0:f922c2672aa4 64 }
hepta2ume 0:f922c2672aa4 65 if(data_num>=6){
hepta2ume 0:f922c2672aa4 66 for(i = 0; i <= n6-1; i++){
hepta2ume 0:f922c2672aa4 67 output_data[N+i] = data6[i];
hepta2ume 0:f922c2672aa4 68 }
hepta2ume 0:f922c2672aa4 69 N=N+i;
hepta2ume 0:f922c2672aa4 70 }
hepta2ume 0:f922c2672aa4 71 if(data_num>=7){
hepta2ume 0:f922c2672aa4 72 for(i = 0; i <= n7-1; i++){
hepta2ume 0:f922c2672aa4 73 output_data[N+i] = data7[i];
hepta2ume 0:f922c2672aa4 74 }
hepta2ume 0:f922c2672aa4 75 N=N+i;
hepta2ume 0:f922c2672aa4 76 }
hepta2ume 0:f922c2672aa4 77 if(data_num>=8){
hepta2ume 0:f922c2672aa4 78 for(i = 0; i <= n8-1; i++){
hepta2ume 0:f922c2672aa4 79 output_data[N+i] = data8[i];
hepta2ume 0:f922c2672aa4 80 }
hepta2ume 0:f922c2672aa4 81 N=N+i;
hepta2ume 0:f922c2672aa4 82 }
hepta2ume 0:f922c2672aa4 83 if(data_num>=9){
hepta2ume 0:f922c2672aa4 84 for(i = 0; i <= n9-1; i++){
hepta2ume 0:f922c2672aa4 85 output_data[N+i] = data9[i];
hepta2ume 0:f922c2672aa4 86 }
hepta2ume 0:f922c2672aa4 87 }
hepta2ume 0:f922c2672aa4 88 for(ii=0;ii<output_n;ii++){
hepta2ume 0:f922c2672aa4 89 xbee.putc(output_data[ii]);
hepta2ume 0:f922c2672aa4 90 jj++;
hepta2ume 0:f922c2672aa4 91 if(jj==2)
hepta2ume 0:f922c2672aa4 92 {
hepta2ume 0:f922c2672aa4 93 xbee.putc(0x20);
hepta2ume 0:f922c2672aa4 94 jj=0;
hepta2ume 0:f922c2672aa4 95 }
hepta2ume 0:f922c2672aa4 96 }
hepta2ume 0:f922c2672aa4 97 xbee.putc(0x0a);
hepta2ume 0:f922c2672aa4 98 }
hepta2ume 0:f922c2672aa4 99 void HeptaXbee::puts( char *s ) {
hepta2ume 0:f922c2672aa4 100 while ( char c = *s++ )
hepta2ume 0:f922c2672aa4 101 xbee.putc( c );
hepta2ume 0:f922c2672aa4 102 }
hepta2ume 0:f922c2672aa4 103 void HeptaXbee::printf( char *format, ... ) {
hepta2ume 0:f922c2672aa4 104 char s[ 32 ];
hepta2ume 0:f922c2672aa4 105 va_list args;
hepta2ume 0:f922c2672aa4 106
hepta2ume 0:f922c2672aa4 107 va_start( args, format );
hepta2ume 0:f922c2672aa4 108 vsnprintf( s, 32, format, args );
hepta2ume 0:f922c2672aa4 109 va_end( args );
hepta2ume 0:f922c2672aa4 110
hepta2ume 0:f922c2672aa4 111 xbee.puts( s );
hepta2ume 0:f922c2672aa4 112 }