2011-10-30 あと2日... だと

_ RC-S620/S を ADK(Arduino) から使う場合のちょっとした修正

RC-S620/S は、シリアル接続でコントロールできる NFC Reader/Writer モジュールです。arduino 向けライブラリが FeliCa Developers' Blog で公開されているので、ADK からもわりと簡単に使用することができます。

このライブラリはとても便利なのですが、使用するうえで一つ困ることがあります。それはこのライブラリが RC-S620/S との通信にシリアルポートを使用してしまうため、Arduino IDE の シリアルモニターが使えなくなってしまうことです。そこで、ライブラリが使用するシリアルポートを変更可能にするパッチを作成しました。

このパッチを適用すると、TX1/RX1 を使用するようになります。使用するポートを変更したい場合は、 RCS620S.h の SERIAL_RCS620S マクロの定義を変更してください。

また、 setup() などで RC-S620/S との通信に使用するシリアルポートを有効にする必要があります。以下のコードを追加してポートを有効にしてください。シリアルモニターを使用する場合は、 Serial.begin(115200); も残しておく必要があります。

 SERIAL_RCS620S.begin(115200);

arduino-RCS620S.zip に適用する場合は、ディレクトリ構造が異なるので patch -p3 とするなど、適宜調整してください。

RCS620S_port_selectable.diff

diff --git a/firmware/RCS620S/RCS620S.h b/firmware/RCS620S/RCS620S.h
index 9792859..f2a17c0 100644
--- a/firmware/RCS620S/RCS620S.h
+++ b/firmware/RCS620S/RCS620S.h
@@ -16,6 +16,15 @@
 #define RCS620S_MAX_CARD_RESPONSE_LEN    254
 #define RCS620S_MAX_RW_RESPONSE_LEN      265

+
+/*
+  for default Serial port, use Serial
+  for TX1/RX1,             use Serial1
+  for TX2/RX2,             use Serial2
+  for TX3/RX3,             use Serial3
+*/
+#define SERIAL_RCS620S Serial1
+
 /* --------------------------------
  * Class Declaration
  * -------------------------------- */
diff --git a/firmware/RCS620S/RCS620S.cpp b/firmware/RCS620S/RCS620S.cpp
index fe9eb01..bf0f776 100644
--- a/firmware/RCS620S/RCS620S.cpp
+++ b/firmware/RCS620S/RCS620S.cpp
@@ -309,7 +309,7 @@ void RCS620S::writeSerial(
     const uint8_t* data,
     uint16_t len)
 {
-    Serial.write(data, len);
+    SERIAL_RCS620S.write(data, len);
 }

 int RCS620S::readSerial(
@@ -324,8 +324,8 @@ int RCS620S::readSerial(
             return 0;
         }

-        if (Serial.available() > 0) {
-            data[nread] = Serial.read();
+        if (SERIAL_RCS620S.available() > 0) {
+            data[nread] = SERIAL_RCS620S.read();
             nread++;
         }
     }
@@ -335,7 +335,7 @@ int RCS620S::readSerial(

 void RCS620S::flushSerial(void)
 {
-    Serial.flush();
+    SERIAL_RCS620S.flush();
 }

 int RCS620S::checkTimeout(unsigned long t0)
本日のツッコミ(全2件) [ツッコミを入れる]
_ Rogerflica (2018-08-20 05:13)

Hello friends. My name is John. I like to travel. Travelling is my hobby. Most of all I prefer to travel by air. It's more comfortable, more convenient and far quicker than other methods. On the previous month, I traveled in Paris. Cruise premises more interesting impressions for a long time. I saw many beautiful beaches of the coast. To travel by sea, also is very interesting, exciting but simply marvelous. One of the most thrilling method of travelling is travelling on foot. I usually travel on foot for the purpose of discovering something new or in search of pleasure and adventure. It is very cheap. If you want to have speed, comfort and pleasure, travelling by train is absolutely for you. http://ledstk.com

_ langre ogonfransar kokosolja (2018-11-20 18:49)

langre ogonfransar kokosolja <br> <br>Awesome! Its really remarkable article, I have got much clear idea about from this piece of writing. <br>langre ogonfransar kokosolja http://slimmwom.se/healthy-legs/laengre-oegonfransar-kokosolja.php


«前の日記(2011-10-26) 最新 次の日記(2011-12-10)»