インタープラン製無線モジュールIM920と通信を行うライブラリです
IM920.cpp@0:4d4bdea0e93d, 2017-03-11 (annotated)
- Committer:
- kim1212
- Date:
- Sat Mar 11 03:30:34 2017 +0000
- Revision:
- 0:4d4bdea0e93d
???????????????IM920?????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kim1212 | 0:4d4bdea0e93d | 1 | #include "IM920.h" |
kim1212 | 0:4d4bdea0e93d | 2 | #include "mbed.h" |
kim1212 | 0:4d4bdea0e93d | 3 | |
kim1212 | 0:4d4bdea0e93d | 4 | IM920::IM920(PinName RadioTx,PinName RadioRx,PinName Busy): _Radio(RadioTx,RadioRx),_Busy(Busy){ |
kim1212 | 0:4d4bdea0e93d | 5 | |
kim1212 | 0:4d4bdea0e93d | 6 | RadioInit(); |
kim1212 | 0:4d4bdea0e93d | 7 | |
kim1212 | 0:4d4bdea0e93d | 8 | } |
kim1212 | 0:4d4bdea0e93d | 9 | |
kim1212 | 0:4d4bdea0e93d | 10 | |
kim1212 | 0:4d4bdea0e93d | 11 | void IM920::RadioInit(){ |
kim1212 | 0:4d4bdea0e93d | 12 | char commandbuf[50]; |
kim1212 | 0:4d4bdea0e93d | 13 | |
kim1212 | 0:4d4bdea0e93d | 14 | _Radio.baud(19200);//初期状態のボーレートは19200 |
kim1212 | 0:4d4bdea0e93d | 15 | |
kim1212 | 0:4d4bdea0e93d | 16 | while(_Busy!=0); |
kim1212 | 0:4d4bdea0e93d | 17 | sprintf(commandbuf,"%s,%d","SBRT",BAUD_LATE); |
kim1212 | 0:4d4bdea0e93d | 18 | SendCommand(commandbuf);//ボーレートは38400 |
kim1212 | 0:4d4bdea0e93d | 19 | wait_ms(5); |
kim1212 | 0:4d4bdea0e93d | 20 | |
kim1212 | 0:4d4bdea0e93d | 21 | _Radio.baud(BAUD_LATE);//マイコン側ボーレート変更 |
kim1212 | 0:4d4bdea0e93d | 22 | |
kim1212 | 0:4d4bdea0e93d | 23 | SendBufClear(commandbuf);//送信バッファクリア |
kim1212 | 0:4d4bdea0e93d | 24 | sprintf(commandbuf,"%s,%s","STCH",FREQ);//データ作成 |
kim1212 | 0:4d4bdea0e93d | 25 | SendCommand(commandbuf);//ch2 |
kim1212 | 0:4d4bdea0e93d | 26 | |
kim1212 | 0:4d4bdea0e93d | 27 | SendBufClear(commandbuf);//送信バッファクリア |
kim1212 | 0:4d4bdea0e93d | 28 | sprintf(commandbuf,"%s,%d","STPO",POWER);//データ作成 送信出力 |
kim1212 | 0:4d4bdea0e93d | 29 | SendCommand(commandbuf);//ch2 |
kim1212 | 0:4d4bdea0e93d | 30 | |
kim1212 | 0:4d4bdea0e93d | 31 | SendBufClear(commandbuf);//送信バッファクリア |
kim1212 | 0:4d4bdea0e93d | 32 | sprintf(commandbuf,"%s,%d","STRT",SPEED);//データ作成 高速通信モード |
kim1212 | 0:4d4bdea0e93d | 33 | SendCommand(commandbuf);//ch2 |
kim1212 | 0:4d4bdea0e93d | 34 | |
kim1212 | 0:4d4bdea0e93d | 35 | SendBufClear(commandbuf);//送信バッファクリア |
kim1212 | 0:4d4bdea0e93d | 36 | sprintf(commandbuf,"%s,%s","SRID",ID);//データ作成 |
kim1212 | 0:4d4bdea0e93d | 37 | SendCommand(commandbuf);//相手方IDを設定 |
kim1212 | 0:4d4bdea0e93d | 38 | |
kim1212 | 0:4d4bdea0e93d | 39 | } |
kim1212 | 0:4d4bdea0e93d | 40 | |
kim1212 | 0:4d4bdea0e93d | 41 | void IM920::SendCommand(char* data){ |
kim1212 | 0:4d4bdea0e93d | 42 | while(_Busy!=0); |
kim1212 | 0:4d4bdea0e93d | 43 | _Radio.printf("%s",data); |
kim1212 | 0:4d4bdea0e93d | 44 | _Radio.putc(0x0d); |
kim1212 | 0:4d4bdea0e93d | 45 | _Radio.putc(0x0a); |
kim1212 | 0:4d4bdea0e93d | 46 | wait_ms(5); |
kim1212 | 0:4d4bdea0e93d | 47 | } |
kim1212 | 0:4d4bdea0e93d | 48 | |
kim1212 | 0:4d4bdea0e93d | 49 | void IM920::SendBufClear(char* buf){ |
kim1212 | 0:4d4bdea0e93d | 50 | int i=0; |
kim1212 | 0:4d4bdea0e93d | 51 | for(;i<50;i++) buf[i]=0; |
kim1212 | 0:4d4bdea0e93d | 52 | } |
kim1212 | 0:4d4bdea0e93d | 53 | |
kim1212 | 0:4d4bdea0e93d | 54 | bool IM920::SendData(char* data){ |
kim1212 | 0:4d4bdea0e93d | 55 | if(_Busy!=1){ |
kim1212 | 0:4d4bdea0e93d | 56 | char sdata[70]; |
kim1212 | 0:4d4bdea0e93d | 57 | sprintf(sdata,"%s,%s","TXDA ",data); |
kim1212 | 0:4d4bdea0e93d | 58 | _Radio.printf(sdata); |
kim1212 | 0:4d4bdea0e93d | 59 | _Radio.putc(0x0d); |
kim1212 | 0:4d4bdea0e93d | 60 | _Radio.putc(0x0a); |
kim1212 | 0:4d4bdea0e93d | 61 | return true; |
kim1212 | 0:4d4bdea0e93d | 62 | }else return false; |
kim1212 | 0:4d4bdea0e93d | 63 | } |