Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed BufferedSerial
main.cpp@0:7c6ad253848a, 2014-07-19 (annotated)
- 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?
User | Revision | Line number | New 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 | } |