mbedでSerialHalfDuplexが使えなくなったので古いリビジョンのmbedライブラリを使ってみる

ブログをご覧になっている方から2011/04のmbedによるシリアル半二重通信のコードでエラーが出るという連絡をいただきました。

あれ?と思い、その記事を書いた際に作ったプロジェクトをビルドしてみると正常にビルドできました。
ところが新しくプロジェクトを作成し、ソースコードをブログからコピーしてビルドすると、ご指摘いただいた内容と同じ以下のエラーが出ました。

identifier "SerialHalfDuplex" is undefined
expected a ")"
class "mbed::Serial" has no member "Even"
Unable to download. Fix the reported errors...

よくよく見てみると、記事を書いた時のプロジェクトではプロジェクト内のmbedライブラリ(main.cppなどのソースコードと一緒に入っている)のClassesにSerialHalfDuplexが含まれています(図1)。


図1 SerialHalfDuplexが含まれる


ちなみにそのリビジョンは26でした(図2)。


図2 "mbed"を選択するとIDEの右側に表示される


一方、新しく作ったプロジェクトでは、このSerialHalfDuplexが存在していません(図3)。


図3 SerialHalfDuplexが存在しない


ちなみにリビジョンは最新の45でした(2012/11/25現在)。

詳しくは分かりませんが、現状SerialHalfDuplexが使えなくなってしまっているようです。
しかしmbedのHandbookを見るとSerialHalfDuplexの項目はあり、サンプルコードも以前のままです。どういうことなんだろう...
(追記)と思ったらページのデザインが他とは違う様子。もう使えなくなったってことなんだろうか...

mbed.org Handbook SerialHalfDuplex
https://mbed.org/projects/libraries/api/mbed/trunk/SerialHalfDuplex


そこでとりあえずSerialHalfDuplexが使えていた時点のmbedライブラリを使えばいいのではと思い、以下の方法を取ってビルドを通すことができました。
ちなみにSerialHalfDuplexはリビジョン43まで利用できていたようです。

(1)対象のプロジェクトの"mbed"(main.cppと一緒に並んでいるファイル)をクリック。
(2)すると右側に"Build Details"という項目が出てくる。その中の"Build Homepage"をクリックする。
(3)新しいタブが開くので、その中の"43:e2ed12d17f06 26 10月 2012 Update documentation"をクリック。
(4)前のコンパイラのタブに戻り、対象プロジェクト内の"mbed"を右クリックし、"Delete Buid... Del"を選択し、"mbed"を削除する。
(5)先の"mbed"ライブラリのページに戻り、"Import this build"をクリック。
(6)"Import Library"の項目が出てくるので、"Library Name"はそのまま"mbed"に、"Path:"で対象のプロジェクトを指定。
(7)プロジェクトにRevision 43の"mbed"が追加されているのでこれでビルド可能になる。


詳しい情報をお持ちの方がいらっしゃいましたら教えていただけると幸いです。