ICS Library for Arduino のver.1.0とver2.0の違いについて

Posted on 2018.02.28 in

 

ICS Library for Arduinoのver.2.0を公開しましたが、この記事ではver.1.0との違いをもう少し詳しく解説いたします。

 

各ライブラリは、下記のサポート記事からダウンロードできます。 

 ●サポート記事『ICS Library for Arduino ver.1』

 ●サポート記事『ICS Library for Arduino ver.2』

 

 

今回公開しましたver.2.0のライブラリと以前のver.1.0の違いは、SoftwareSetialに対応したかどうかです。SoftwareSerialを実装することによりデジタルI/Oを使用してのシリアル通信が可能になりました。(SoftwareSerialの詳細ついては別記事をご覧ください。)

 

ver.2.0では、SoftwareSerialを実装するために下記の方法でライブラリを切り分けています。

ver.1.0で通信に使用していたSerial(HardwareSerial)と、ver.2.0で追加したSoftwareSerialを両方実装すると、通信部分、初期設定部分以外は共通の機能なので、同じ機能を各ライブラリに対して二度実装することになります。

また、別途ICSの機能を追加したり、Arduino以外のボードに対応する、などでライブラリを修正する際に両方手を加えないといけないため、個別にライブラリを作成するのは手間がかかります。

そこで、ICSの機能のみを実装したIcsBaseClassクラスを用意し、そこから各通信方式で違いのある通信部分、初期設定部分を追加した以下のクラスを派生して作成しました。

 

・IcsHardSerialClass (Serial(HardwareSerial)をもちいてICS機器と通信をする)

・IcsSoftSerialClass (SoftwareSerialをもちいてICS機器と通信をする)

ICSLibV200概要図

 

これにより、使用するクラスは違うのですがsetPos()など各関数名、処理を同じものとして扱うことができます。

通信部分は、送受信を一括で行うsynchronize関数をそれそれの通信方式に合わせた書式に内部で書き換えることで実現しています。

 

C++ベースであれば、IcsBaceClassから通信部分、初期設定部分を追加し派生することでArduino以外でも様々なマイコン等に反映させることができます。

 

各クラスの詳しい内容に関しては、ArduinoにライブラリをインポートするZIPファイルの中にソースコードがありますのでご参照ください。

 

KRS-3204R2 ICSの詳細をみる KRS-2572R2HV ICSの詳細をみる KRS-2552R2HV ICSの詳細をみる KRS-2542R2HV ICS の詳細をみる KRS-9004HV ICSの詳細をみる KRS-5054HV ICS H.Cの詳細をみる KRS-5053HV ICS H.Cの詳細をみる KRS-5034HV ICSの詳細をみる KRS-5033HV ICSの詳細をみる KRS-5032HV ICSの詳細をみる の詳細をみる KRS-3304R2 ICSの詳細をみる KRS-3302 ICSの詳細をみる ICS変換基板の詳細をみる KSBシールド2の詳細をみる ICS変換基板シールドの詳細をみる KXR用オプションボード搭載セットAの詳細をみる KRS-6003R2HV ICSの詳細をみる KRS-6003RHV ICSの詳細をみる KRS-2572HV ICSの詳細をみる KRS-2552RHV ICSの詳細をみる KRS-2542HV ICSの詳細をみる KRS-4034HV ICSの詳細をみる KRS-4033HV ICSの詳細をみる KRS-4032HV ICSの詳細をみる KRS-4031HV ICSの詳細をみる KRS-3304 ICSの詳細をみる KRS-3301 ICSの詳細をみる KRS-3204 ICSの詳細をみる KXR用オプションボード搭載セットBの詳細をみる