Hepta UplinkData Q

Dependencies:   mbed PowerControl SDFileSystem

Fork of Hepta_UplinkData_Q by 智也 大野

Committer:
MEXT1
Date:
Fri Dec 23 04:50:09 2016 +0000
Revision:
4:2a2a17a603cc
Parent:
1:d9b4d2303984
UplinkData Q

Who changed what in which revision?

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