This software is a test tool for the XBee Library 'XBee Coord API'. I'll check to pass the test when release the library.

Dependencies:   TextLCD mbed xbee

Please refer to the following site for the details:

Committer:
bokunimowakaru
Date:
Sat Oct 04 02:04:52 2014 +0000
Revision:
3:e815df43e269
Parent:
0:60ca8c579d80
XBee lib's serial setting code on xbee.cpp is moved to 4th line on it.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bokunimowakaru 0:60ca8c579d80 1 #define ARM_MBED
bokunimowakaru 0:60ca8c579d80 2 //#define DEBUG // D8(PA_9)からログをUART(38400baud)出力します
bokunimowakaru 3:e815df43e269 3
bokunimowakaru 0:60ca8c579d80 4 /*********************************************************************
bokunimowakaru 0:60ca8c579d80 5 XBee ライブラリ・自動システム試験ツール
bokunimowakaru 0:60ca8c579d80 6
bokunimowakaru 0:60ca8c579d80 7  元々、XBeeライブラリ「ZB Coord API」のリリース用のテストツールとして
bokunimowakaru 0:60ca8c579d80 8  作成して、使用していたものです。
bokunimowakaru 0:60ca8c579d80 9  XBeeライブラリを用いた時の評価用に公開することにいたしました。
bokunimowakaru 0:60ca8c579d80 10  電波環境が悪いと100%になりません。
bokunimowakaru 0:60ca8c579d80 11  Arduino用PC用ともにキーを押すとエラー数と合格回数、テスト回数、最後の
bokunimowakaru 0:60ca8c579d80 12  エラーの内容を表示します。
bokunimowakaru 0:60ca8c579d80 13
bokunimowakaru 0:60ca8c579d80 14 本ソースリストおよびソフトウェアは、ライセンスフリーです。
bokunimowakaru 0:60ca8c579d80 15 利用、編集、再配布等が自由に行えますが、著作権表示の改変は禁止します。
bokunimowakaru 0:60ca8c579d80 16
bokunimowakaru 0:60ca8c579d80 17 Copyright (c) 2010-2014 Wataru KUNINO
bokunimowakaru 0:60ca8c579d80 18 http://www.geocities.jp/bokunimowakaru/
bokunimowakaru 0:60ca8c579d80 19 *********************************************************************/
bokunimowakaru 0:60ca8c579d80 20
bokunimowakaru 0:60ca8c579d80 21 /*********************************************************************
bokunimowakaru 0:60ca8c579d80 22
bokunimowakaru 0:60ca8c579d80 23 ●試験項目●
bokunimowakaru 0:60ca8c579d80 24 ①ローカルATコマンド試験
bokunimowakaru 0:60ca8c579d80 25 ②ローカルxbeeライブラリ用コマンド試験
bokunimowakaru 0:60ca8c579d80 26 ③リモートATコマンド試験
bokunimowakaru 0:60ca8c579d80 27 ④リモートxbeeライブラリ管理コマンド試験
bokunimowakaru 0:60ca8c579d80 28 ⑤リモートxbeeライブラリ応答待ちコマンド試験
bokunimowakaru 0:60ca8c579d80 29 ⑥ループバック試験
bokunimowakaru 0:60ca8c579d80 30
bokunimowakaru 0:60ca8c579d80 31 ●試験環境●
bokunimowakaru 0:60ca8c579d80 32 ○本ソフトを動かす親機用ArduinoまたはPC
bokunimowakaru 0:60ca8c579d80 33 ○親機用XBee ZBモジュール【ファーム=ZIGBEE COORDINATOR API】
bokunimowakaru 0:60ca8c579d80 34 ○子機用XBee ZBモジュール【ファーム=ZIGBEE ROUTER AT】
bokunimowakaru 0:60ca8c579d80 35 ○子機のUARTはループバック接続が必要です。(DINとDOUTを接続)
bokunimowakaru 0:60ca8c579d80 36 */
bokunimowakaru 0:60ca8c579d80 37
bokunimowakaru 0:60ca8c579d80 38 // #define DEBUG //DEBUGをdefineするとライブラリの動作ログが出力されます。
bokunimowakaru 0:60ca8c579d80 39 // #define DEBUG_TX //送信データ表示
bokunimowakaru 0:60ca8c579d80 40 // #define ERRLOG
bokunimowakaru 0:60ca8c579d80 41 #define EASY_SENSOR
bokunimowakaru 0:60ca8c579d80 42 #define XBEE_ERROR_TIME
bokunimowakaru 0:60ca8c579d80 43 #define PASSED 0
bokunimowakaru 0:60ca8c579d80 44 #define FAILED 1
bokunimowakaru 0:60ca8c579d80 45 #ifdef ARDUINO
bokunimowakaru 0:60ca8c579d80 46 #define SIZEOF_LOG_S 36 // 33以上
bokunimowakaru 0:60ca8c579d80 47 #else
bokunimowakaru 0:60ca8c579d80 48 #ifdef ARM_MBED
bokunimowakaru 0:60ca8c579d80 49 #define SIZEOF_LOG_S 80
bokunimowakaru 0:60ca8c579d80 50 #else // PC
bokunimowakaru 0:60ca8c579d80 51 #define SIZEOF_LOG_S 80
bokunimowakaru 0:60ca8c579d80 52 #endif
bokunimowakaru 0:60ca8c579d80 53 #endif
bokunimowakaru 0:60ca8c579d80 54
bokunimowakaru 0:60ca8c579d80 55 #ifdef ARDUINO
bokunimowakaru 0:60ca8c579d80 56 #include <xbee.h>
bokunimowakaru 0:60ca8c579d80 57 #include <Wire.h>
bokunimowakaru 0:60ca8c579d80 58 #include <Adafruit_MCP23017.h>
bokunimowakaru 0:60ca8c579d80 59 #include <Adafruit_RGBLCDShield.h>
bokunimowakaru 0:60ca8c579d80 60 Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
bokunimowakaru 0:60ca8c579d80 61 #else
bokunimowakaru 0:60ca8c579d80 62 #ifdef ARM_MBED
bokunimowakaru 0:60ca8c579d80 63 #include <xbee.h>
bokunimowakaru 0:60ca8c579d80 64 #include "TextLCD.h"
bokunimowakaru 0:60ca8c579d80 65 #include <ctype.h>
bokunimowakaru 0:60ca8c579d80 66 TextLCD lcd(PA_9, PC_7, PB_5, PB_4, PB_10, PA_8); // rs, e, d4-d7
bokunimowakaru 0:60ca8c579d80 67 DigitalIn mybutton(USER_BUTTON);
bokunimowakaru 0:60ca8c579d80 68 #else // PC
bokunimowakaru 0:60ca8c579d80 69 #include "../libs/xbee.c"
bokunimowakaru 0:60ca8c579d80 70 #include <ctype.h> // isgraph
bokunimowakaru 0:60ca8c579d80 71 #include "../libs/kbhit.c"
bokunimowakaru 0:60ca8c579d80 72 #endif
bokunimowakaru 0:60ca8c579d80 73 #endif
bokunimowakaru 0:60ca8c579d80 74
bokunimowakaru 0:60ca8c579d80 75 byte dev[8];
bokunimowakaru 0:60ca8c579d80 76 byte my[8];
bokunimowakaru 0:60ca8c579d80 77 byte myt[8];
bokunimowakaru 0:60ca8c579d80 78 byte panid[8];
bokunimowakaru 0:60ca8c579d80 79 byte panidt[8];
bokunimowakaru 0:60ca8c579d80 80 byte TEST_COUNT=0;
bokunimowakaru 0:60ca8c579d80 81 byte ERROR_COUNT=0;
bokunimowakaru 0:60ca8c579d80 82 byte ERROR_TOTAL=0;
bokunimowakaru 0:60ca8c579d80 83 char ERROR_S[SIZEOF_LOG_S];
bokunimowakaru 0:60ca8c579d80 84 unsigned int pan;
bokunimowakaru 0:60ca8c579d80 85 byte nc,rnc=0xFF,dd=0xFF;
bokunimowakaru 0:60ca8c579d80 86
bokunimowakaru 0:60ca8c579d80 87 static const char UARTDATA[] = "0123456789ABCDEF";
bokunimowakaru 0:60ca8c579d80 88 char *sprint_FAIL(char *s,const char *text){
bokunimowakaru 0:60ca8c579d80 89 sprintf(s,"%s:FAIL####",text);
bokunimowakaru 0:60ca8c579d80 90 return s;
bokunimowakaru 0:60ca8c579d80 91 }
bokunimowakaru 0:60ca8c579d80 92
bokunimowakaru 0:60ca8c579d80 93 void aging_delay(unsigned int ms){
bokunimowakaru 0:60ca8c579d80 94 #ifdef ARDUINO
bokunimowakaru 0:60ca8c579d80 95 delay((unsigned long)ms);
bokunimowakaru 0:60ca8c579d80 96 #else
bokunimowakaru 0:60ca8c579d80 97 #ifdef ARM_MBED
bokunimowakaru 3:e815df43e269 98 wait((double)ms/1000.);
bokunimowakaru 0:60ca8c579d80 99 #else // PC
bokunimowakaru 0:60ca8c579d80 100 wait_millisec(ms);
bokunimowakaru 0:60ca8c579d80 101 #endif
bokunimowakaru 0:60ca8c579d80 102 #endif
bokunimowakaru 0:60ca8c579d80 103 }
bokunimowakaru 0:60ca8c579d80 104
bokunimowakaru 0:60ca8c579d80 105 #if defined(ARDUINO)
bokunimowakaru 0:60ca8c579d80 106 void prints(char *s){
bokunimowakaru 0:60ca8c579d80 107 byte x,y;
bokunimowakaru 0:60ca8c579d80 108 byte c=1;
bokunimowakaru 0:60ca8c579d80 109 for(y=0;y<2;y++){
bokunimowakaru 0:60ca8c579d80 110 lcd.setCursor(0, y);
bokunimowakaru 0:60ca8c579d80 111 for(x=0;x<16;x++){
bokunimowakaru 0:60ca8c579d80 112 if(s[16*y+x]=='\0') c=0;
bokunimowakaru 0:60ca8c579d80 113 if(isgraph(s[16*y+x]) && c) lcd.print(s[16*y+x]);
bokunimowakaru 0:60ca8c579d80 114 else lcd.print(' ');
bokunimowakaru 0:60ca8c579d80 115 }
bokunimowakaru 0:60ca8c579d80 116 }
bokunimowakaru 0:60ca8c579d80 117 }
bokunimowakaru 0:60ca8c579d80 118 #endif
bokunimowakaru 0:60ca8c579d80 119 #if defined(ARM_MBED)
bokunimowakaru 0:60ca8c579d80 120 void prints(char *s){
bokunimowakaru 0:60ca8c579d80 121 byte x,y;
bokunimowakaru 0:60ca8c579d80 122 byte c=1;
bokunimowakaru 0:60ca8c579d80 123 for(y=0;y<2;y++){
bokunimowakaru 0:60ca8c579d80 124 lcd.locate(0, y);
bokunimowakaru 0:60ca8c579d80 125 for(x=0;x<16;x++){
bokunimowakaru 0:60ca8c579d80 126 if(s[16*y+x]=='\0') c=0;
bokunimowakaru 0:60ca8c579d80 127 if(isgraph(s[16*y+x]) && c) lcd.printf("%c",s[16*y+x]);
bokunimowakaru 0:60ca8c579d80 128 else lcd.printf(" ");
bokunimowakaru 0:60ca8c579d80 129 }
bokunimowakaru 0:60ca8c579d80 130 }
bokunimowakaru 0:60ca8c579d80 131 }
bokunimowakaru 0:60ca8c579d80 132 #endif
bokunimowakaru 0:60ca8c579d80 133
bokunimowakaru 0:60ca8c579d80 134 void aging_key(void){
bokunimowakaru 0:60ca8c579d80 135 #ifdef ARDUINO
bokunimowakaru 0:60ca8c579d80 136 if( lcd.readButtons() ){
bokunimowakaru 0:60ca8c579d80 137 lcd.clear();
bokunimowakaru 0:60ca8c579d80 138 lcd.print(ERROR_COUNT,DEC); // 3
bokunimowakaru 0:60ca8c579d80 139 lcd.print("errs "); // 5
bokunimowakaru 0:60ca8c579d80 140 lcd.print((TEST_COUNT-ERROR_TOTAL),DEC); // 3
bokunimowakaru 0:60ca8c579d80 141 lcd.print('/'); // 1
bokunimowakaru 0:60ca8c579d80 142 lcd.print(TEST_COUNT,DEC); // 3
bokunimowakaru 0:60ca8c579d80 143 lcd.setCursor(0, 1);
bokunimowakaru 0:60ca8c579d80 144 if(ERROR_COUNT || ERROR_TOTAL){
bokunimowakaru 0:60ca8c579d80 145 lcd.print(ERROR_S);
bokunimowakaru 0:60ca8c579d80 146 }
bokunimowakaru 0:60ca8c579d80 147 delay(100);
bokunimowakaru 0:60ca8c579d80 148 while( lcd.readButtons() );
bokunimowakaru 0:60ca8c579d80 149 delay(100);
bokunimowakaru 0:60ca8c579d80 150 while( !lcd.readButtons() );
bokunimowakaru 0:60ca8c579d80 151 prints(ERROR_S);
bokunimowakaru 0:60ca8c579d80 152 delay(3000);
bokunimowakaru 0:60ca8c579d80 153 while( lcd.readButtons() );
bokunimowakaru 0:60ca8c579d80 154 }
bokunimowakaru 0:60ca8c579d80 155 #else
bokunimowakaru 0:60ca8c579d80 156 #ifdef ARM_MBED
bokunimowakaru 0:60ca8c579d80 157 if( mybutton==0 ){ // Button is pressed
bokunimowakaru 0:60ca8c579d80 158 lcd.cls();
bokunimowakaru 0:60ca8c579d80 159 lcd.printf("%d",ERROR_COUNT); // 3
bokunimowakaru 0:60ca8c579d80 160 lcd.printf("errs "); // 5
bokunimowakaru 0:60ca8c579d80 161 lcd.printf("%d",TEST_COUNT-ERROR_TOTAL); // 3
bokunimowakaru 0:60ca8c579d80 162 lcd.printf("/"); // 1
bokunimowakaru 0:60ca8c579d80 163 lcd.printf("%d",TEST_COUNT); // 3
bokunimowakaru 0:60ca8c579d80 164 lcd.locate(0, 1);
bokunimowakaru 0:60ca8c579d80 165 if(ERROR_COUNT || ERROR_TOTAL){
bokunimowakaru 0:60ca8c579d80 166 lcd.printf(ERROR_S);
bokunimowakaru 0:60ca8c579d80 167 }
bokunimowakaru 0:60ca8c579d80 168 aging_delay(100);
bokunimowakaru 0:60ca8c579d80 169 while( !mybutton );
bokunimowakaru 0:60ca8c579d80 170 aging_delay(100);
bokunimowakaru 0:60ca8c579d80 171 while( mybutton );
bokunimowakaru 0:60ca8c579d80 172 prints(ERROR_S);
bokunimowakaru 0:60ca8c579d80 173 aging_delay(3000);
bokunimowakaru 0:60ca8c579d80 174 while( !mybutton );
bokunimowakaru 0:60ca8c579d80 175 }
bokunimowakaru 0:60ca8c579d80 176 #else // PC
bokunimowakaru 0:60ca8c579d80 177 if( kbhit() ){
bokunimowakaru 0:60ca8c579d80 178 getchar();
bokunimowakaru 0:60ca8c579d80 179 printf("----------------------------------------------------------------\n");
bokunimowakaru 0:60ca8c579d80 180 printf("ERROR=%d(TEST:%d/%d) ",ERROR_COUNT,TEST_COUNT-ERROR_TOTAL,TEST_COUNT);
bokunimowakaru 0:60ca8c579d80 181 if(ERROR_COUNT || ERROR_TOTAL){
bokunimowakaru 0:60ca8c579d80 182 printf("%s",ERROR_S);
bokunimowakaru 0:60ca8c579d80 183 }
bokunimowakaru 0:60ca8c579d80 184 printf("\n----------------------------------------------------------------\n");
bokunimowakaru 0:60ca8c579d80 185 aging_delay(3000);
bokunimowakaru 0:60ca8c579d80 186 }
bokunimowakaru 0:60ca8c579d80 187 #endif
bokunimowakaru 0:60ca8c579d80 188 #endif
bokunimowakaru 0:60ca8c579d80 189 }
bokunimowakaru 0:60ca8c579d80 190
bokunimowakaru 0:60ca8c579d80 191 void aging_log(char *s){
bokunimowakaru 0:60ca8c579d80 192 #if defined(ARDUINO) || defined(ARM_MBED)
bokunimowakaru 0:60ca8c579d80 193 prints(s);
bokunimowakaru 0:60ca8c579d80 194 #else // PC
bokunimowakaru 0:60ca8c579d80 195 time_t error_time;
bokunimowakaru 0:60ca8c579d80 196 struct tm *error_time_st;
bokunimowakaru 0:60ca8c579d80 197
bokunimowakaru 0:60ca8c579d80 198 time(&error_time);
bokunimowakaru 0:60ca8c579d80 199 error_time_st = localtime(&error_time);
bokunimowakaru 0:60ca8c579d80 200 printf("%4d/%02d/%02d %02d:%02d:%02d %s\n",
bokunimowakaru 0:60ca8c579d80 201 error_time_st->tm_year+1900,
bokunimowakaru 0:60ca8c579d80 202 error_time_st->tm_mon+1,
bokunimowakaru 0:60ca8c579d80 203 error_time_st->tm_mday,
bokunimowakaru 0:60ca8c579d80 204 error_time_st->tm_hour,
bokunimowakaru 0:60ca8c579d80 205 error_time_st->tm_min,
bokunimowakaru 0:60ca8c579d80 206 error_time_st->tm_sec,
bokunimowakaru 0:60ca8c579d80 207 s
bokunimowakaru 0:60ca8c579d80 208 );
bokunimowakaru 0:60ca8c579d80 209 #endif
bokunimowakaru 0:60ca8c579d80 210 aging_key();
bokunimowakaru 0:60ca8c579d80 211 }
bokunimowakaru 0:60ca8c579d80 212
bokunimowakaru 0:60ca8c579d80 213 void error_log(char *s){
bokunimowakaru 0:60ca8c579d80 214 #ifndef ARDUINO
bokunimowakaru 0:60ca8c579d80 215 #ifndef ARM_MBED // PC
bokunimowakaru 0:60ca8c579d80 216 FILE *fp;
bokunimowakaru 0:60ca8c579d80 217 time_t error_time;
bokunimowakaru 0:60ca8c579d80 218 struct tm *error_time_st;
bokunimowakaru 0:60ca8c579d80 219
bokunimowakaru 0:60ca8c579d80 220 time(&error_time);
bokunimowakaru 0:60ca8c579d80 221 error_time_st = localtime(&error_time);
bokunimowakaru 0:60ca8c579d80 222 if( (fp=fopen("err.log","a")) != NULL ){
bokunimowakaru 0:60ca8c579d80 223 fprintf(fp,"%4d/%02d/%02d %02d:%02d:%02d %s\n",
bokunimowakaru 0:60ca8c579d80 224 error_time_st->tm_year+1900,
bokunimowakaru 0:60ca8c579d80 225 error_time_st->tm_mon+1,
bokunimowakaru 0:60ca8c579d80 226 error_time_st->tm_mday,
bokunimowakaru 0:60ca8c579d80 227 error_time_st->tm_hour,
bokunimowakaru 0:60ca8c579d80 228 error_time_st->tm_min,
bokunimowakaru 0:60ca8c579d80 229 error_time_st->tm_sec,
bokunimowakaru 0:60ca8c579d80 230 s
bokunimowakaru 0:60ca8c579d80 231 );
bokunimowakaru 0:60ca8c579d80 232 fclose(fp);
bokunimowakaru 0:60ca8c579d80 233 }
bokunimowakaru 0:60ca8c579d80 234 #endif
bokunimowakaru 0:60ca8c579d80 235 #endif
bokunimowakaru 0:60ca8c579d80 236 aging_log(s);
bokunimowakaru 0:60ca8c579d80 237 strcpy(ERROR_S,s);
bokunimowakaru 0:60ca8c579d80 238 ERROR_COUNT++;
bokunimowakaru 0:60ca8c579d80 239 aging_delay(1000);
bokunimowakaru 0:60ca8c579d80 240 aging_key();
bokunimowakaru 0:60ca8c579d80 241 }
bokunimowakaru 0:60ca8c579d80 242
bokunimowakaru 0:60ca8c579d80 243 void aging_results(void){
bokunimowakaru 0:60ca8c579d80 244 char s[SIZEOF_LOG_S];
bokunimowakaru 0:60ca8c579d80 245 TEST_COUNT++;
bokunimowakaru 0:60ca8c579d80 246 if(ERROR_COUNT==0){
bokunimowakaru 0:60ca8c579d80 247 // 012345678901234567890123456 28~30bytes
bokunimowakaru 0:60ca8c579d80 248 sprintf(s,"###TEST:PASSED (%d/%d)####",TEST_COUNT-ERROR_TOTAL,TEST_COUNT);
bokunimowakaru 0:60ca8c579d80 249 aging_log(s);
bokunimowakaru 0:60ca8c579d80 250 }else{
bokunimowakaru 0:60ca8c579d80 251 ERROR_TOTAL++;
bokunimowakaru 0:60ca8c579d80 252 // 01234567890123456789012345678 30~33bytes
bokunimowakaru 0:60ca8c579d80 253 sprintf(s,"###TEST:FAILED %d(%d/%d)####",ERROR_COUNT,TEST_COUNT-ERROR_TOTAL,TEST_COUNT);
bokunimowakaru 0:60ca8c579d80 254 aging_log(s);
bokunimowakaru 0:60ca8c579d80 255 #ifndef ARDUINO
bokunimowakaru 0:60ca8c579d80 256 #ifndef ARM_MBED // PC
bokunimowakaru 0:60ca8c579d80 257 strcpy(s,ERROR_S);
bokunimowakaru 0:60ca8c579d80 258 aging_log(s);
bokunimowakaru 0:60ca8c579d80 259 #endif
bokunimowakaru 0:60ca8c579d80 260 #endif
bokunimowakaru 0:60ca8c579d80 261 ERROR_COUNT=0;
bokunimowakaru 0:60ca8c579d80 262 }
bokunimowakaru 0:60ca8c579d80 263 aging_delay(3000);
bokunimowakaru 0:60ca8c579d80 264 }
bokunimowakaru 0:60ca8c579d80 265
bokunimowakaru 0:60ca8c579d80 266 void aging_print(char *text,byte ret,byte target,byte judge){
bokunimowakaru 0:60ca8c579d80 267 char s[SIZEOF_LOG_S];
bokunimowakaru 0:60ca8c579d80 268 if( (judge==PASSED && target == ret) ||
bokunimowakaru 0:60ca8c579d80 269 (judge==FAILED && target != ret)
bokunimowakaru 0:60ca8c579d80 270 ){
bokunimowakaru 0:60ca8c579d80 271 sprintf(s,"%s:PASS(%02X)",text,ret);
bokunimowakaru 0:60ca8c579d80 272 aging_log(s);
bokunimowakaru 0:60ca8c579d80 273 }else{
bokunimowakaru 0:60ca8c579d80 274 // 0-789012345678901--234-- 26bytes
bokunimowakaru 0:60ca8c579d80 275 sprintf(s,"%sret=%02X:%02X",sprint_FAIL(s,text),ret,target);
bokunimowakaru 0:60ca8c579d80 276 error_log(s);
bokunimowakaru 0:60ca8c579d80 277 }
bokunimowakaru 0:60ca8c579d80 278 }
bokunimowakaru 0:60ca8c579d80 279
bokunimowakaru 0:60ca8c579d80 280 void aging_rx_resp(char *text,char *at,byte n){
bokunimowakaru 0:60ca8c579d80 281 XBEE_RESULT xbee_result;
bokunimowakaru 0:60ca8c579d80 282 byte data;
bokunimowakaru 0:60ca8c579d80 283 byte i,j;
bokunimowakaru 0:60ca8c579d80 284 char s[SIZEOF_LOG_S];
bokunimowakaru 0:60ca8c579d80 285 for(i=0;i<n;i++){
bokunimowakaru 0:60ca8c579d80 286 data=xbee_rx_call( &xbee_result );
bokunimowakaru 0:60ca8c579d80 287 if( ( xbee_result.MODE==MODE_RESP &&
bokunimowakaru 0:60ca8c579d80 288 xbee_result.STATUS == STATUS_OK &&
bokunimowakaru 0:60ca8c579d80 289 xbee_result.AT[0] == 'I' &&
bokunimowakaru 0:60ca8c579d80 290 xbee_result.AT[1] == 'S' &&
bokunimowakaru 0:60ca8c579d80 291 bytecmp(dev,xbee_result.FROM,8)==0
bokunimowakaru 0:60ca8c579d80 292 )
bokunimowakaru 0:60ca8c579d80 293 // || (
bokunimowakaru 0:60ca8c579d80 294 // xbee_result.MODE==MODE_GPIN &&
bokunimowakaru 0:60ca8c579d80 295 // bytecmp(dev,xbee_result.FROM,8)==0
bokunimowakaru 0:60ca8c579d80 296 // )
bokunimowakaru 0:60ca8c579d80 297 ){
bokunimowakaru 0:60ca8c579d80 298 sprintf(s,"%s:PASS(%02X)",text,data);
bokunimowakaru 0:60ca8c579d80 299 for(j=0;j<8;j++){
bokunimowakaru 0:60ca8c579d80 300 if( (data>>(7-j))&0x01 ) s[16+j]='1';
bokunimowakaru 0:60ca8c579d80 301 else s[16+j]='0';
bokunimowakaru 0:60ca8c579d80 302 }
bokunimowakaru 0:60ca8c579d80 303 s[24]='\0';
bokunimowakaru 0:60ca8c579d80 304 aging_log(s);
bokunimowakaru 0:60ca8c579d80 305 return;
bokunimowakaru 0:60ca8c579d80 306 }
bokunimowakaru 0:60ca8c579d80 307 }
bokunimowakaru 0:60ca8c579d80 308 error_log(sprint_FAIL(s,text));
bokunimowakaru 0:60ca8c579d80 309 }
bokunimowakaru 0:60ca8c579d80 310
bokunimowakaru 0:60ca8c579d80 311 void aging_rx_uart(char *text,const char *uart,byte n){
bokunimowakaru 0:60ca8c579d80 312 XBEE_RESULT xbee_result;
bokunimowakaru 0:60ca8c579d80 313 byte i,j;
bokunimowakaru 0:60ca8c579d80 314 byte len;
bokunimowakaru 0:60ca8c579d80 315 char s[SIZEOF_LOG_S];
bokunimowakaru 0:60ca8c579d80 316 byte data[SIZEOF_LOG_S];
bokunimowakaru 0:60ca8c579d80 317
bokunimowakaru 0:60ca8c579d80 318 for(i=0;i<n;i++){
bokunimowakaru 0:60ca8c579d80 319 len=xbee_rx_call( &xbee_result );
bokunimowakaru 0:60ca8c579d80 320 if( xbee_result.MODE==MODE_UART &&
bokunimowakaru 0:60ca8c579d80 321 bytecmp(dev,xbee_result.FROM,8)==0
bokunimowakaru 0:60ca8c579d80 322 ){
bokunimowakaru 0:60ca8c579d80 323 for(j=0;j<SIZEOF_LOG_S;j++) data[j]=(byte)uart[j];
bokunimowakaru 0:60ca8c579d80 324 if(len>SIZEOF_LOG_S) len=SIZEOF_LOG_S;
bokunimowakaru 0:60ca8c579d80 325 if(bytecmp(data,xbee_result.DATA,len)==0){
bokunimowakaru 0:60ca8c579d80 326 sprintf(s,"%s:PASS(%02d) ",text,len);
bokunimowakaru 0:60ca8c579d80 327 for(j=16;j<32;j++){
bokunimowakaru 0:60ca8c579d80 328 if(isgraph(xbee_result.DATA[j-16])){
bokunimowakaru 0:60ca8c579d80 329 s[j]=(char)xbee_result.DATA[j-16];
bokunimowakaru 0:60ca8c579d80 330 }else s[j]=' ';
bokunimowakaru 0:60ca8c579d80 331 }
bokunimowakaru 0:60ca8c579d80 332 s[32]='\0';
bokunimowakaru 0:60ca8c579d80 333 aging_log(s);
bokunimowakaru 0:60ca8c579d80 334 if(len!=strlen(uart)){
bokunimowakaru 0:60ca8c579d80 335 sprintf(s,"%s:WARNING txLen=%d,rx=%d",text,strlen(uart),len);
bokunimowakaru 0:60ca8c579d80 336 aging_log(s);
bokunimowakaru 0:60ca8c579d80 337 }
bokunimowakaru 0:60ca8c579d80 338 return;
bokunimowakaru 0:60ca8c579d80 339 }else{
bokunimowakaru 0:60ca8c579d80 340 sprintf(s,"%s:FAIL(%02d)################",text,len);
bokunimowakaru 0:60ca8c579d80 341 for(j=16;j<24;j++){
bokunimowakaru 0:60ca8c579d80 342 if(xbee_result.DATA[j-16]>16){
bokunimowakaru 0:60ca8c579d80 343 s[j]=(char)xbee_result.DATA[j-16];
bokunimowakaru 0:60ca8c579d80 344 }else s[j]=' ';
bokunimowakaru 0:60ca8c579d80 345 }
bokunimowakaru 0:60ca8c579d80 346 error_log(s);
bokunimowakaru 0:60ca8c579d80 347 return;
bokunimowakaru 0:60ca8c579d80 348 }
bokunimowakaru 0:60ca8c579d80 349 }
bokunimowakaru 0:60ca8c579d80 350 }
bokunimowakaru 0:60ca8c579d80 351 error_log(sprint_FAIL(s,text));
bokunimowakaru 0:60ca8c579d80 352 }
bokunimowakaru 0:60ca8c579d80 353
bokunimowakaru 0:60ca8c579d80 354 byte s2bytes(byte *bytes,const char *s){
bokunimowakaru 0:60ca8c579d80 355 byte i;
bokunimowakaru 0:60ca8c579d80 356 for(i=0;i<strlen(s);i++) bytes[i]=s[i];
bokunimowakaru 0:60ca8c579d80 357 return(i);
bokunimowakaru 0:60ca8c579d80 358 }
bokunimowakaru 0:60ca8c579d80 359
bokunimowakaru 0:60ca8c579d80 360 void aging_rx_batt(char *text,byte n){
bokunimowakaru 0:60ca8c579d80 361 XBEE_RESULT xbee_result;
bokunimowakaru 0:60ca8c579d80 362 byte i;
bokunimowakaru 0:60ca8c579d80 363 char s[SIZEOF_LOG_S];
bokunimowakaru 0:60ca8c579d80 364 for(i=0;i<n;i++){
bokunimowakaru 0:60ca8c579d80 365 xbee_rx_call( &xbee_result );
bokunimowakaru 0:60ca8c579d80 366 if( xbee_result.MODE==MODE_BATT &&
bokunimowakaru 0:60ca8c579d80 367 xbee_result.STATUS == STATUS_OK &&
bokunimowakaru 0:60ca8c579d80 368 bytecmp(dev,xbee_result.FROM,8)==0 &&
bokunimowakaru 0:60ca8c579d80 369 xbee_result.ADCIN[0] > 1000
bokunimowakaru 0:60ca8c579d80 370 ){
bokunimowakaru 0:60ca8c579d80 371 sprintf(s,"%s:PASS(00)%d[mV]",text,xbee_result.ADCIN[0]);
bokunimowakaru 0:60ca8c579d80 372 aging_log(s);
bokunimowakaru 0:60ca8c579d80 373 return;
bokunimowakaru 0:60ca8c579d80 374 }
bokunimowakaru 0:60ca8c579d80 375 }
bokunimowakaru 0:60ca8c579d80 376 error_log(sprint_FAIL(s,text));
bokunimowakaru 0:60ca8c579d80 377 }
bokunimowakaru 0:60ca8c579d80 378
bokunimowakaru 0:60ca8c579d80 379 char byte2a(byte in, byte i){
bokunimowakaru 0:60ca8c579d80 380 char ret;
bokunimowakaru 0:60ca8c579d80 381 if(i) in /= 16;
bokunimowakaru 0:60ca8c579d80 382 ret = (char)(in%16);
bokunimowakaru 0:60ca8c579d80 383 if(ret<10) ret += '0';
bokunimowakaru 0:60ca8c579d80 384 else ret += 'A' -10;
bokunimowakaru 0:60ca8c579d80 385 return( ret );
bokunimowakaru 0:60ca8c579d80 386 }
bokunimowakaru 0:60ca8c579d80 387
bokunimowakaru 0:60ca8c579d80 388 byte pairing(byte *dev,byte n){
bokunimowakaru 0:60ca8c579d80 389 XBEE_RESULT xbee_result;
bokunimowakaru 0:60ca8c579d80 390 char s[SIZEOF_LOG_S];
bokunimowakaru 0:60ca8c579d80 391
bokunimowakaru 0:60ca8c579d80 392 byte i,len;
bokunimowakaru 0:60ca8c579d80 393 for(i=0;i<n;i++){
bokunimowakaru 0:60ca8c579d80 394 xbee_rx_call( &xbee_result );
bokunimowakaru 0:60ca8c579d80 395 if( xbee_result.MODE==MODE_IDNT ){
bokunimowakaru 0:60ca8c579d80 396 sprintf(s,"Pairing:PASS(%02X)",xbee_result.STATUS);
bokunimowakaru 0:60ca8c579d80 397 len=strlen(s);
bokunimowakaru 0:60ca8c579d80 398 for(i=0;i<8;i++){
bokunimowakaru 0:60ca8c579d80 399 dev[i]=xbee_result.FROM[i];
bokunimowakaru 0:60ca8c579d80 400 s[len] =byte2a(dev[i],1);
bokunimowakaru 0:60ca8c579d80 401 s[len+1]=byte2a(dev[i],0);
bokunimowakaru 0:60ca8c579d80 402 len+=2;
bokunimowakaru 0:60ca8c579d80 403 }
bokunimowakaru 0:60ca8c579d80 404 s[len]='\0';
bokunimowakaru 0:60ca8c579d80 405 aging_log(s);
bokunimowakaru 0:60ca8c579d80 406 return(1);
bokunimowakaru 0:60ca8c579d80 407 }
bokunimowakaru 0:60ca8c579d80 408 }
bokunimowakaru 0:60ca8c579d80 409 return(0);
bokunimowakaru 0:60ca8c579d80 410 }
bokunimowakaru 0:60ca8c579d80 411
bokunimowakaru 0:60ca8c579d80 412 void aging_rx_none(char *text,byte n){
bokunimowakaru 0:60ca8c579d80 413 XBEE_RESULT xbee_result;
bokunimowakaru 0:60ca8c579d80 414 byte i;
bokunimowakaru 0:60ca8c579d80 415 char s[SIZEOF_LOG_S];
bokunimowakaru 0:60ca8c579d80 416 for(i=0;i<n;i++){
bokunimowakaru 0:60ca8c579d80 417 xbee_rx_call( &xbee_result );
bokunimowakaru 0:60ca8c579d80 418 if( xbee_result.MODE != 0x00 ){
bokunimowakaru 0:60ca8c579d80 419 sprintf(s,"%smode=%02X stat=%02X",sprint_FAIL(s,text),xbee_result.MODE,xbee_result.STATUS);
bokunimowakaru 0:60ca8c579d80 420 error_log(s);
bokunimowakaru 0:60ca8c579d80 421 return;
bokunimowakaru 0:60ca8c579d80 422 }
bokunimowakaru 0:60ca8c579d80 423 }
bokunimowakaru 0:60ca8c579d80 424 sprintf(s,"%s:PASS",text);
bokunimowakaru 0:60ca8c579d80 425 aging_log(s);
bokunimowakaru 0:60ca8c579d80 426 }
bokunimowakaru 0:60ca8c579d80 427
bokunimowakaru 0:60ca8c579d80 428 void aging_init(void){
bokunimowakaru 0:60ca8c579d80 429 char s[SIZEOF_LOG_S];
bokunimowakaru 0:60ca8c579d80 430 byte i;
bokunimowakaru 0:60ca8c579d80 431
bokunimowakaru 0:60ca8c579d80 432 xbee_atnj(0xFF);
bokunimowakaru 0:60ca8c579d80 433 aging_delay(1000);
bokunimowakaru 0:60ca8c579d80 434 aging_log("Press Commiss.SW");
bokunimowakaru 0:60ca8c579d80 435 /* ペアリング&宛先アドレス取得 */
bokunimowakaru 0:60ca8c579d80 436 while(pairing(dev,100)==0);
bokunimowakaru 0:60ca8c579d80 437 sprintf(s,"DestAdr:");
bokunimowakaru 0:60ca8c579d80 438 for(i=0;i<4;i++){
bokunimowakaru 0:60ca8c579d80 439 s[8+2*i]=byte2a(dev[i+4],1);
bokunimowakaru 0:60ca8c579d80 440 s[9+2*i]=byte2a(dev[i+4],0);
bokunimowakaru 0:60ca8c579d80 441 }
bokunimowakaru 0:60ca8c579d80 442 s[16]='\0';
bokunimowakaru 0:60ca8c579d80 443 aging_log(s);
bokunimowakaru 0:60ca8c579d80 444 xbee_atnj(0);
bokunimowakaru 0:60ca8c579d80 445 aging_delay(1000);
bokunimowakaru 0:60ca8c579d80 446 /* 自分のアドレス */
bokunimowakaru 0:60ca8c579d80 447 xbee_myaddress(my);
bokunimowakaru 0:60ca8c579d80 448 sprintf(s,"MyAdr :");
bokunimowakaru 0:60ca8c579d80 449 for(i=0;i<4;i++){
bokunimowakaru 0:60ca8c579d80 450 s[8+2*i]=byte2a(my[i+4],1);
bokunimowakaru 0:60ca8c579d80 451 s[9+2*i]=byte2a(my[i+4],0);
bokunimowakaru 0:60ca8c579d80 452 }
bokunimowakaru 0:60ca8c579d80 453 s[16]='\0';
bokunimowakaru 0:60ca8c579d80 454 aging_log(s);
bokunimowakaru 0:60ca8c579d80 455 aging_delay(1000);
bokunimowakaru 0:60ca8c579d80 456 /* PAN ID */
bokunimowakaru 0:60ca8c579d80 457 pan=xbee_atop(panid);
bokunimowakaru 0:60ca8c579d80 458 sprintf(s,"PAN ID :%d ",pan);
bokunimowakaru 0:60ca8c579d80 459 for(i=0;i<8;i++){
bokunimowakaru 0:60ca8c579d80 460 s[16+2*i]=byte2a(panid[i],1);
bokunimowakaru 0:60ca8c579d80 461 s[17+2*i]=byte2a(panid[i],0);
bokunimowakaru 0:60ca8c579d80 462 }
bokunimowakaru 0:60ca8c579d80 463 s[32]='\0';
bokunimowakaru 0:60ca8c579d80 464 aging_log(s);
bokunimowakaru 0:60ca8c579d80 465 aging_delay(1000);
bokunimowakaru 0:60ca8c579d80 466 /* 子機数など */
bokunimowakaru 0:60ca8c579d80 467 nc=xbee_atnc();
bokunimowakaru 0:60ca8c579d80 468 while(rnc==0xFF){
bokunimowakaru 0:60ca8c579d80 469 rnc=xbee_ratnc(dev);
bokunimowakaru 0:60ca8c579d80 470 }
bokunimowakaru 0:60ca8c579d80 471 while(dd==0xFF){
bokunimowakaru 0:60ca8c579d80 472 dd=xbee_ping(dev);
bokunimowakaru 0:60ca8c579d80 473 }
bokunimowakaru 0:60ca8c579d80 474 sprintf(s,"nOfChld:%d,%d,%02X",10-nc,12-rnc,dd);
bokunimowakaru 0:60ca8c579d80 475 aging_log(s);
bokunimowakaru 0:60ca8c579d80 476 aging_delay(1000);
bokunimowakaru 0:60ca8c579d80 477 }
bokunimowakaru 0:60ca8c579d80 478
bokunimowakaru 0:60ca8c579d80 479 void loop(){
bokunimowakaru 0:60ca8c579d80 480 byte data[SIZEOF_LOG_S];
bokunimowakaru 0:60ca8c579d80 481 byte i,len;
bokunimowakaru 0:60ca8c579d80 482
bokunimowakaru 0:60ca8c579d80 483 aging_log("Started:========");
bokunimowakaru 0:60ca8c579d80 484
bokunimowakaru 0:60ca8c579d80 485 // ①ローカルATコマンド試験
bokunimowakaru 0:60ca8c579d80 486 #ifndef ARDUINO
bokunimowakaru 0:60ca8c579d80 487 #ifndef ARM_MBED // PCのみ試験
bokunimowakaru 0:60ca8c579d80 488 for(i=0;i<10;i++){
bokunimowakaru 0:60ca8c579d80 489 aging_print("LocAt L",xbee_at("ATP004"),STATUS_OK,PASSED);
bokunimowakaru 0:60ca8c579d80 490 aging_print("LocAt H",xbee_at("ATP005"),STATUS_OK,PASSED);
bokunimowakaru 0:60ca8c579d80 491 }
bokunimowakaru 0:60ca8c579d80 492 #endif
bokunimowakaru 0:60ca8c579d80 493 #endif
bokunimowakaru 0:60ca8c579d80 494 aging_print("LocAt -",xbee_at("ATP001"),STATUS_OK,PASSED);
bokunimowakaru 0:60ca8c579d80 495
bokunimowakaru 0:60ca8c579d80 496 // ②ローカルxbeeライブラリ用コマンド試験
bokunimowakaru 0:60ca8c579d80 497 // aging_print("reset ",xbee_reset(),0,FAILED);
bokunimowakaru 0:60ca8c579d80 498 aging_print("atcb ",xbee_atcb(1),0,PASSED);
bokunimowakaru 0:60ca8c579d80 499 for(i=0;i<3;i++){
bokunimowakaru 0:60ca8c579d80 500 aging_print("myAdr ",xbee_myaddress(myt),0,FAILED);
bokunimowakaru 0:60ca8c579d80 501 aging_print("myAdCmp",bytecmp(my,myt,8),0,PASSED);
bokunimowakaru 0:60ca8c579d80 502 aging_print("atvr ",xbee_atvr(),ZB_TYPE_COORD,PASSED);
bokunimowakaru 0:60ca8c579d80 503 aging_print("atai ",xbee_atai(),0,PASSED);
bokunimowakaru 0:60ca8c579d80 504 aging_print("atop ",(byte)xbee_atop(panidt),(byte)pan,PASSED);
bokunimowakaru 0:60ca8c579d80 505 aging_print("atopCmp",bytecmp(panid,panidt,8),0,PASSED);
bokunimowakaru 0:60ca8c579d80 506 aging_print("atnc ",xbee_atnc(),nc,PASSED); // ncと一致すること
bokunimowakaru 0:60ca8c579d80 507 }
bokunimowakaru 0:60ca8c579d80 508
bokunimowakaru 0:60ca8c579d80 509 // ③リモートATコマンド試験
bokunimowakaru 0:60ca8c579d80 510 #ifndef ARDUINO
bokunimowakaru 0:60ca8c579d80 511 #ifndef ARM_MBED // PCのみ試験
bokunimowakaru 0:60ca8c579d80 512 for(i=0;i<10;i++){
bokunimowakaru 0:60ca8c579d80 513 aging_print("RemAt L",xbee_rat(dev,"ATP104"),STATUS_OK,PASSED); // 0xFF=ERROR
bokunimowakaru 0:60ca8c579d80 514 aging_print("RemAt H",xbee_rat(dev,"ATP105"),STATUS_OK,PASSED); // 0xFF=ERROR
bokunimowakaru 0:60ca8c579d80 515 }
bokunimowakaru 0:60ca8c579d80 516 #endif
bokunimowakaru 0:60ca8c579d80 517 #endif
bokunimowakaru 0:60ca8c579d80 518 aging_print("LocAt -",xbee_at("ATP100"),STATUS_OK,PASSED);
bokunimowakaru 0:60ca8c579d80 519
bokunimowakaru 0:60ca8c579d80 520 // ④リモートxbeeライブラリ管理コマンド試験
bokunimowakaru 0:60ca8c579d80 521 aging_print("ratd ",xbee_ratd(dev, my),0xFF,FAILED); // 0xFF=ERROR
bokunimowakaru 0:60ca8c579d80 522 aging_print("ratdMyA",xbee_ratd_myaddress(dev),0xFF,FAILED); // 0xFF=ERROR
bokunimowakaru 0:60ca8c579d80 523 aging_print("ratnc ",xbee_ratnc(dev),rnc,PASSED); // rncと一致すること
bokunimowakaru 0:60ca8c579d80 524 aging_print("ping ",xbee_ping(dev),dd,PASSED); // ddと一致すること
bokunimowakaru 0:60ca8c579d80 525 aging_print("batt ",(byte)(xbee_batt(dev)<0),0,PASSED);
bokunimowakaru 0:60ca8c579d80 526 aging_print("gpioIni",xbee_gpio_init(dev),dd,PASSED); // ddと一致すること
bokunimowakaru 0:60ca8c579d80 527 #if defined(ARDUINO) || defined(ARM_MBED)
bokunimowakaru 0:60ca8c579d80 528 aging_print("gpi 1 ",xbee_gpi(dev,1),0xFF,FAILED);
bokunimowakaru 0:60ca8c579d80 529 aging_print("adc 1 ",(byte)(xbee_adc(dev,1)==0xFFFF),0,PASSED);
bokunimowakaru 0:60ca8c579d80 530 #else // PCのみ試験
bokunimowakaru 0:60ca8c579d80 531 for(i=0;i<3;i++){
bokunimowakaru 0:60ca8c579d80 532 aging_print("gpi 1 ",xbee_gpi(dev,1),0xFF,FAILED);
bokunimowakaru 0:60ca8c579d80 533 aging_print("gpi 2 ",xbee_gpi(dev,2),0xFF,FAILED);
bokunimowakaru 0:60ca8c579d80 534 aging_print("gpi 3 ",xbee_gpi(dev,3),0xFF,FAILED);
bokunimowakaru 0:60ca8c579d80 535 }
bokunimowakaru 0:60ca8c579d80 536 for(i=0;i<3;i++){
bokunimowakaru 0:60ca8c579d80 537 aging_print("adc 1 ",(byte)(xbee_adc(dev,1)==0xFFFF),0,PASSED);
bokunimowakaru 0:60ca8c579d80 538 aging_print("adc 2 ",(byte)(xbee_adc(dev,2)==0xFFFF),0,PASSED);
bokunimowakaru 0:60ca8c579d80 539 aging_print("adc 3 ",(byte)(xbee_adc(dev,3)==0xFFFF),0,PASSED);
bokunimowakaru 0:60ca8c579d80 540 }
bokunimowakaru 0:60ca8c579d80 541 for(i=0;i<3;i++){
bokunimowakaru 0:60ca8c579d80 542 aging_print("sensorL",(byte)(xbee_sensor(dev,LIGHT)<0),0,PASSED);
bokunimowakaru 0:60ca8c579d80 543 aging_print("sensorT",(byte)(xbee_sensor(dev,LIGHT)<0),0,PASSED);
bokunimowakaru 0:60ca8c579d80 544 aging_print("sensorH",(byte)(xbee_sensor(dev,LIGHT)<0),0,PASSED);
bokunimowakaru 0:60ca8c579d80 545 }
bokunimowakaru 0:60ca8c579d80 546 #endif
bokunimowakaru 0:60ca8c579d80 547
bokunimowakaru 0:60ca8c579d80 548 // ⑤リモートxbeeライブラリ応答待ちコマンド試験
bokunimowakaru 0:60ca8c579d80 549 for(i=0;i<3;i++){
bokunimowakaru 0:60ca8c579d80 550 aging_print("force ",xbee_force(dev),0x00,FAILED);
bokunimowakaru 0:60ca8c579d80 551 aging_rx_resp("rxResp ","IS",200); // STATUS_OKのIS応答を200受信分、待つ
bokunimowakaru 0:60ca8c579d80 552 aging_print("batForc",xbee_batt_force(dev),0x00,FAILED);
bokunimowakaru 0:60ca8c579d80 553 aging_rx_batt("rxBatt ",200);
bokunimowakaru 0:60ca8c579d80 554 // aging_print("ratForc",xbee_rat_force(dev,"ATIS"),0x00,FAILED);
bokunimowakaru 0:60ca8c579d80 555 // aging_rx_resp("rxResp ","IS",200); // STATUS_OKのIS応答を200受信分、待つ
bokunimowakaru 0:60ca8c579d80 556 }
bokunimowakaru 0:60ca8c579d80 557 for(i=0;i<5;i++){
bokunimowakaru 0:60ca8c579d80 558 aging_print("gpo11,0",xbee_gpo(dev,11,0),0,FAILED);
bokunimowakaru 0:60ca8c579d80 559 aging_rx_none("rxNo110",10);
bokunimowakaru 0:60ca8c579d80 560 aging_print("gpo11,1",xbee_gpo(dev,11,1),0,FAILED);
bokunimowakaru 0:60ca8c579d80 561 aging_rx_none("rxNo111",10);
bokunimowakaru 0:60ca8c579d80 562 #ifndef ARDUINO
bokunimowakaru 0:60ca8c579d80 563 #ifndef ARM_MBED // PCのみ試験
bokunimowakaru 0:60ca8c579d80 564 aging_print("gpo12,0",xbee_gpo(dev,12,0),0,FAILED);
bokunimowakaru 0:60ca8c579d80 565 aging_rx_none("rxNo120",10);
bokunimowakaru 0:60ca8c579d80 566 aging_print("gpo12,1",xbee_gpo(dev,12,1),0,FAILED);
bokunimowakaru 0:60ca8c579d80 567 aging_rx_none("rxNo121",10);
bokunimowakaru 0:60ca8c579d80 568 #endif
bokunimowakaru 0:60ca8c579d80 569 #endif
bokunimowakaru 0:60ca8c579d80 570 }
bokunimowakaru 0:60ca8c579d80 571 aging_rx_none("rxNone ",100);
bokunimowakaru 0:60ca8c579d80 572
bokunimowakaru 0:60ca8c579d80 573 // ⑥ループバック試験
bokunimowakaru 0:60ca8c579d80 574 for(i=0;i<3;i++){
bokunimowakaru 0:60ca8c579d80 575 aging_print("uartTx ",xbee_uart(dev,UARTDATA),0,FAILED);
bokunimowakaru 0:60ca8c579d80 576 aging_rx_uart("rxUart ",UARTDATA,200); // UART応答を200受信分、待つ
bokunimowakaru 0:60ca8c579d80 577 len=s2bytes(data,UARTDATA);
bokunimowakaru 0:60ca8c579d80 578 aging_print("byteTx ",xbee_bytes(dev,data,len),0,FAILED);
bokunimowakaru 0:60ca8c579d80 579 aging_rx_uart("rxByte ",UARTDATA,200); // UART応答を200受信分、待つ
bokunimowakaru 0:60ca8c579d80 580 }
bokunimowakaru 0:60ca8c579d80 581
bokunimowakaru 0:60ca8c579d80 582 // 試験結果
bokunimowakaru 0:60ca8c579d80 583 aging_results();
bokunimowakaru 0:60ca8c579d80 584 }
bokunimowakaru 0:60ca8c579d80 585
bokunimowakaru 0:60ca8c579d80 586 #ifdef ARDUINO
bokunimowakaru 0:60ca8c579d80 587 void setup(){
bokunimowakaru 0:60ca8c579d80 588 byte i;
bokunimowakaru 0:60ca8c579d80 589
bokunimowakaru 0:60ca8c579d80 590 lcd.begin(16, 2);
bokunimowakaru 0:60ca8c579d80 591 lcd.clear();
bokunimowakaru 0:60ca8c579d80 592 lcd.print("XBee Aging");
bokunimowakaru 0:60ca8c579d80 593 lcd.setCursor(0, 1);
bokunimowakaru 0:60ca8c579d80 594 lcd.print(COPYRIGHT);
bokunimowakaru 0:60ca8c579d80 595 xbee_init(0);
bokunimowakaru 0:60ca8c579d80 596 aging_init();
bokunimowakaru 0:60ca8c579d80 597 for(i=0;i<SIZEOF_LOG_S;i++) ERROR_S[i]='\0';
bokunimowakaru 0:60ca8c579d80 598 }
bokunimowakaru 0:60ca8c579d80 599 #endif
bokunimowakaru 0:60ca8c579d80 600
bokunimowakaru 0:60ca8c579d80 601 #ifndef ARDUINO
bokunimowakaru 0:60ca8c579d80 602 #ifdef ARM_MBED
bokunimowakaru 0:60ca8c579d80 603 int main()
bokunimowakaru 0:60ca8c579d80 604 #else
bokunimowakaru 0:60ca8c579d80 605 int main(int argc,char **argv)
bokunimowakaru 0:60ca8c579d80 606 #endif
bokunimowakaru 0:60ca8c579d80 607 {
bokunimowakaru 0:60ca8c579d80 608 byte port=0;
bokunimowakaru 0:60ca8c579d80 609 byte i;
bokunimowakaru 0:60ca8c579d80 610
bokunimowakaru 0:60ca8c579d80 611 #ifdef ARM_MBED
bokunimowakaru 0:60ca8c579d80 612 lcd.cls();
bokunimowakaru 0:60ca8c579d80 613 lcd.printf("XBee Aging");
bokunimowakaru 0:60ca8c579d80 614 lcd.locate(0, 1);
bokunimowakaru 0:60ca8c579d80 615 lcd.printf(COPYRIGHT);
bokunimowakaru 0:60ca8c579d80 616 #else
bokunimowakaru 0:60ca8c579d80 617 if( argc==2 ) port = (byte)(atoi(argv[1]));
bokunimowakaru 0:60ca8c579d80 618 #endif
bokunimowakaru 0:60ca8c579d80 619 xbee_init( port ); // XBee用COMポートの初期化(引数はポート番号)
bokunimowakaru 0:60ca8c579d80 620 aging_init();
bokunimowakaru 0:60ca8c579d80 621 for(i=0;i<SIZEOF_LOG_S;i++) ERROR_S[i]='\0';
bokunimowakaru 0:60ca8c579d80 622
bokunimowakaru 0:60ca8c579d80 623 while(1)loop();
bokunimowakaru 0:60ca8c579d80 624 }
bokunimowakaru 0:60ca8c579d80 625 #endif