インタープラン製無線モジュールIM920と通信を行うライブラリです
IM920.cpp
- Committer:
- kim1212
- Date:
- 2017-03-11
- Revision:
- 0:4d4bdea0e93d
File content as of revision 0:4d4bdea0e93d:
#include "IM920.h" #include "mbed.h" IM920::IM920(PinName RadioTx,PinName RadioRx,PinName Busy): _Radio(RadioTx,RadioRx),_Busy(Busy){ RadioInit(); } void IM920::RadioInit(){ char commandbuf[50]; _Radio.baud(19200);//初期状態のボーレートは19200 while(_Busy!=0); sprintf(commandbuf,"%s,%d","SBRT",BAUD_LATE); SendCommand(commandbuf);//ボーレートは38400 wait_ms(5); _Radio.baud(BAUD_LATE);//マイコン側ボーレート変更 SendBufClear(commandbuf);//送信バッファクリア sprintf(commandbuf,"%s,%s","STCH",FREQ);//データ作成 SendCommand(commandbuf);//ch2 SendBufClear(commandbuf);//送信バッファクリア sprintf(commandbuf,"%s,%d","STPO",POWER);//データ作成 送信出力 SendCommand(commandbuf);//ch2 SendBufClear(commandbuf);//送信バッファクリア sprintf(commandbuf,"%s,%d","STRT",SPEED);//データ作成 高速通信モード SendCommand(commandbuf);//ch2 SendBufClear(commandbuf);//送信バッファクリア sprintf(commandbuf,"%s,%s","SRID",ID);//データ作成 SendCommand(commandbuf);//相手方IDを設定 } void IM920::SendCommand(char* data){ while(_Busy!=0); _Radio.printf("%s",data); _Radio.putc(0x0d); _Radio.putc(0x0a); wait_ms(5); } void IM920::SendBufClear(char* buf){ int i=0; for(;i<50;i++) buf[i]=0; } bool IM920::SendData(char* data){ if(_Busy!=1){ char sdata[70]; sprintf(sdata,"%s,%s","TXDA ",data); _Radio.printf(sdata); _Radio.putc(0x0d); _Radio.putc(0x0a); return true; }else return false; }