インタープラン製無線モジュールIM920と通信を行うライブラリです

Committer:
kim1212
Date:
Sat Mar 11 03:30:34 2017 +0000
Revision:
0:4d4bdea0e93d
???????????????IM920?????????????

Who changed what in which revision?

UserRevisionLine numberNew 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 }