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:
Sun Sep 21 10:15:44 2014 +0000
Revision:
0:60ca8c579d80
Child:
3:e815df43e269
The first release of aging tester for XBee Library 'XBee Coord API' Version 1.90

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