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

Revision:
0:4d4bdea0e93d
diff -r 000000000000 -r 4d4bdea0e93d IM920.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IM920.cpp	Sat Mar 11 03:30:34 2017 +0000
@@ -0,0 +1,63 @@
+#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;
+}
\ No newline at end of file