uint8_t型とunsigned char型に対応した多バイトシリアル通信用ライブラリ

Dependents:   multiserial_test serial_check_controller receiverA receiver_transmitter ... more

Files at this revision

API Documentation at this revision

Comitter:
Hatter
Date:
Tue Sep 02 06:49:44 2014 +0000
Parent:
8:cfc53cc4914a
Child:
10:ce09c92e33b4
Commit message:
???????????; ???????????????

Changed in this revision

MultiSerial.cpp Show annotated file Show diff for this revision Revisions of this file
MultiSerial.h Show annotated file Show diff for this revision Revisions of this file
--- a/MultiSerial.cpp	Thu Aug 28 05:09:00 2014 +0000
+++ b/MultiSerial.cpp	Tue Sep 02 06:49:44 2014 +0000
@@ -5,25 +5,48 @@
 #include "mbed.h"
 #include "MultiSerial.h"
 
-        MultiSerial::MultiSerial(PinName tx,PinName rx) : __serial__(tx,rx){}
+    
+        MultiSerial::MultiSerial(PinName tx,PinName rx,dir_state state) : __serial__(tx,rx){
+            
+            switch(state){
+            
+            case read:
+            {
+            __serial__.attach(this,&MultiSerial::RX,Serial::RxIrq);
+            uint8_t k = __serial__.getc();
+            break;
+            }
+            
+            case write:
+            {
+            __serial__.attach(this,&MultiSerial::TX,Serial::TxIrq);
+            __serial__.putc(1);
+            break;
+            }
+            
+            case both:
+            {
+             __serial__.attach(this,&MultiSerial::RX,Serial::RxIrq);
+            uint8_t m = __serial__.getc();
+            __serial__.attach(this,&MultiSerial::TX,Serial::TxIrq);
+            __serial__.putc(1);
+            }
+        }
+    }
 
-        void MultiSerial::read(uint8_t* readData,uint8_t readKey){
+        void MultiSerial::read_data(uint8_t* readData,uint8_t readKey){
 
             __readData = readData;
             __readSize = __SIZE(__readData);
             __readKey = readKey;
-            __serial__.attach(this,&MultiSerial::RX,Serial::RxIrq);
-            uint8_t k = __serial__.getc();
         }
 
 
-        void MultiSerial::write(uint8_t* writeData,uint8_t writeKey){
+        void MultiSerial::write_data(uint8_t* writeData,uint8_t writeKey){
 
             __writeData=writeData;
             __writeSize = __SIZE(__writeData);
             __writeKey = writeKey;
-            __serial__.attach(this,&MultiSerial::TX,Serial::TxIrq);
-            __serial__.putc(1);
         }
 
 
--- a/MultiSerial.h	Thu Aug 28 05:09:00 2014 +0000
+++ b/MultiSerial.h	Tue Sep 02 06:49:44 2014 +0000
@@ -42,6 +42,13 @@
  * }
  * @endcode
  */
+ 
+ typedef enum dit_state{
+     write,
+     read,
+     both
+     
+     }dir_state;
 
 class MultiSerial{
 
@@ -51,9 +58,10 @@
          *
          * @param tx Serial tx pin
          * @param rx Serial rx pin
+         * @param state 通信方向 read,write,both
          */ 
 
-        MultiSerial(PinName tx,PinName rx);
+        MultiSerial(PinName tx,PinName rx,dit_state state=both);
         
         /**データ読み込みするよ 
          *
@@ -61,7 +69,7 @@
          * @param readKey 多バイト通信のキーコード
          */
 
-        void read(uint8_t* readData,uint8_t readKey);
+        void read_data(uint8_t* readData,uint8_t readKey);
         
         /**データカキコするよ
          *
@@ -69,7 +77,7 @@
          * @param writeKey 多バイト通信のキーコード
          */
 
-        void write(uint8_t* writeData,uint8_t writeKey);
+        void write_data(uint8_t* writeData,uint8_t writeKey);
 
         /**送信割り込み用関数
          *