suu pen / Mbed 2 deprecated serial_dummy

Dependencies:   mbed BufferedSerial

Committer:
suupen
Date:
Sat Jul 19 02:12:20 2014 +0000
Revision:
0:7c6ad253848a
Child:
1:c6e8a41200d9
????????(data.txt)?????????USB-serial???????????????; text data ?????????????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
suupen 0:7c6ad253848a 1 /**
suupen 0:7c6ad253848a 2 serial data 送信ツール
suupen 0:7c6ad253848a 3
suupen 0:7c6ad253848a 4 V00.01 : 140719
suupen 0:7c6ad253848a 5
suupen 0:7c6ad253848a 6
suupen 0:7c6ad253848a 7 <使い方>
suupen 0:7c6ad253848a 8 "data.txt" に送信する文字列を設定し、mbedに保管する。
suupen 0:7c6ad253848a 9 mbedに通電するかRESET SW を押すとUSB-serialから文字列を出力する
suupen 0:7c6ad253848a 10
suupen 0:7c6ad253848a 11 <data.txtの設定方法>
suupen 0:7c6ad253848a 12 1.コマンド
suupen 0:7c6ad253848a 13 USB-serialのbaudrate
suupen 0:7c6ad253848a 14 9600[bps]を設定する場合
suupen 0:7c6ad253848a 15 >B9600
suupen 0:7c6ad253848a 16 >b9600
suupen 0:7c6ad253848a 17
suupen 0:7c6ad253848a 18 文字列間の送信間隔
suupen 0:7c6ad253848a 19 1000[ms]を設定する場合
suupen 0:7c6ad253848a 20 >T1000
suupen 0:7c6ad253848a 21 2.送信文字列
suupen 0:7c6ad253848a 22 asciiコードで文字を記述していく
suupen 0:7c6ad253848a 23 送信は一行毎となる
suupen 0:7c6ad253848a 24
suupen 0:7c6ad253848a 25 3.data.txt設定例
suupen 0:7c6ad253848a 26 次の行から-----------------
suupen 0:7c6ad253848a 27 >B9600
suupen 0:7c6ad253848a 28 >T100
suupen 0:7c6ad253848a 29 123456789
suupen 0:7c6ad253848a 30 >T200
suupen 0:7c6ad253848a 31 abcdefghi
suupen 0:7c6ad253848a 32 >T300
suupen 0:7c6ad253848a 33 ABCDEFGHI
suupen 0:7c6ad253848a 34
suupen 0:7c6ad253848a 35 >B9600
suupen 0:7c6ad253848a 36 >T1000
suupen 0:7c6ad253848a 37 123
suupen 0:7c6ad253848a 38 abc
suupen 0:7c6ad253848a 39 ABC
suupen 0:7c6ad253848a 40 ひとつ前の行まで-------------
suupen 0:7c6ad253848a 41
suupen 0:7c6ad253848a 42 <USB-Serialの通信設定値>
suupen 0:7c6ad253848a 43 baudrate : data.txtで設定可能(初期値=9600[bps]
suupen 0:7c6ad253848a 44 bits : 8bit
suupen 0:7c6ad253848a 45 parity : none
suupen 0:7c6ad253848a 46 stopbit : 1bit
suupen 0:7c6ad253848a 47
suupen 0:7c6ad253848a 48
suupen 0:7c6ad253848a 49 */
suupen 0:7c6ad253848a 50 #include "mbed.h"
suupen 0:7c6ad253848a 51 #include "ctype.h"
suupen 0:7c6ad253848a 52
suupen 0:7c6ad253848a 53 LocalFileSystem local("local"); // local file systemの設定
suupen 0:7c6ad253848a 54 Serial pc(USBTX, USBRX); // usb-serialの設定
suupen 0:7c6ad253848a 55
suupen 0:7c6ad253848a 56
suupen 0:7c6ad253848a 57 DigitalOut ledopen(LED1); // 1:file open 0:file close
suupen 0:7c6ad253848a 58 //DigitalOut ledout(LED2); // 1: serial out
suupen 0:7c6ad253848a 59 //DigitalOut lederror(LED4);
suupen 0:7c6ad253848a 60
suupen 0:7c6ad253848a 61 char buffer[500]; // 読みだしたデータの保管先
suupen 0:7c6ad253848a 62
suupen 0:7c6ad253848a 63
suupen 0:7c6ad253848a 64 int main()
suupen 0:7c6ad253848a 65 {
suupen 0:7c6ad253848a 66 FILE *fp;
suupen 0:7c6ad253848a 67 int ans;
suupen 0:7c6ad253848a 68 char *p;
suupen 0:7c6ad253848a 69 int timer; // serial送信時間間隔 ( 1/1 [ms]/bit)
suupen 0:7c6ad253848a 70 int baud; // usb-serialのbaudrate ( 1/1 [bps]/bit)
suupen 0:7c6ad253848a 71
suupen 0:7c6ad253848a 72 fp = fopen("/local/data.txt", "r");
suupen 0:7c6ad253848a 73 ledopen = 1;
suupen 0:7c6ad253848a 74
suupen 0:7c6ad253848a 75
suupen 0:7c6ad253848a 76 while(1) {
suupen 0:7c6ad253848a 77 ans = fscanf(fp,"%s",buffer);
suupen 0:7c6ad253848a 78 if(ans != -1) {
suupen 0:7c6ad253848a 79 p = buffer;
suupen 0:7c6ad253848a 80 // 文字列 or 制御コマンド
suupen 0:7c6ad253848a 81 if(*p++ == '>') {
suupen 0:7c6ad253848a 82 // コマンドとして処理する
suupen 0:7c6ad253848a 83 switch(*p++) {
suupen 0:7c6ad253848a 84 case 'T':
suupen 0:7c6ad253848a 85 case 't':
suupen 0:7c6ad253848a 86 // serial data の送信間隔時間を設定
suupen 0:7c6ad253848a 87 timer = 0;
suupen 0:7c6ad253848a 88 while(isdigit(*p) == 1) {
suupen 0:7c6ad253848a 89 timer *= 10;
suupen 0:7c6ad253848a 90 timer += (*p++ - '0');
suupen 0:7c6ad253848a 91 }
suupen 0:7c6ad253848a 92 break;
suupen 0:7c6ad253848a 93 case 'B':
suupen 0:7c6ad253848a 94 case 'b':
suupen 0:7c6ad253848a 95 // baudrate 設定
suupen 0:7c6ad253848a 96 baud = 0;
suupen 0:7c6ad253848a 97 while(isdigit(*p) == 1) {
suupen 0:7c6ad253848a 98 baud *= 10;
suupen 0:7c6ad253848a 99 baud += (*p++ - '0');
suupen 0:7c6ad253848a 100 }
suupen 0:7c6ad253848a 101 pc.baud(baud);
suupen 0:7c6ad253848a 102 break;
suupen 0:7c6ad253848a 103 default:
suupen 0:7c6ad253848a 104 // nothing
suupen 0:7c6ad253848a 105 break;
suupen 0:7c6ad253848a 106 }
suupen 0:7c6ad253848a 107
suupen 0:7c6ad253848a 108 } else {
suupen 0:7c6ad253848a 109 // 出力文字列として処理する
suupen 0:7c6ad253848a 110 pc.printf("%s\n",buffer);
suupen 0:7c6ad253848a 111 wait_ms(timer);
suupen 0:7c6ad253848a 112 }
suupen 0:7c6ad253848a 113 } else {
suupen 0:7c6ad253848a 114 // 読みだすデータがなくなったら、先頭に戻す
suupen 0:7c6ad253848a 115 fclose(fp);
suupen 0:7c6ad253848a 116 ledopen = 0;
suupen 0:7c6ad253848a 117
suupen 0:7c6ad253848a 118 wait_ms(timer);
suupen 0:7c6ad253848a 119
suupen 0:7c6ad253848a 120 fp = fopen("/local/data.txt", "r");
suupen 0:7c6ad253848a 121 ledopen = 1;
suupen 0:7c6ad253848a 122 }
suupen 0:7c6ad253848a 123 }
suupen 0:7c6ad253848a 124 }