SpaceWire-RMAPのCRCを計算するサンプル

もう最近ではぜんぜんSpaceWireを使っていませんが、コンピュータの中なら出てきたので、C++11に書き直してgistにあげておきました。C++11だと、{}を使ったUniversal Initiaizationが使えるので、パケットのバイト列を入れたstd::vectorを初期化するのも楽ですね。(昔はpush_backをずらずら書いていた、、、)

参考: C++11 Universal Initialization は、いつでも使うべきなのか - Qiita

Macで以下のgistのC++ファイルとMakefileをダウンロードして、同じフォルダに入れてmakeするとコンパイルされて、以下のように実行できます。Macじゃない人はMacを買ってください。

1
2
3
4
5
6
7
8
$ make
clang++ -std=c++11 -stdlib=libc++ crc_example.cc -o crc_example

$ ./crc_example
CRC = 0x38
CRC = 0x59

crc_example.cc - gist.github.com

https://gist.github.com/yuasatakayuki/e2acc1b1a40307257c14dcd4040ec1c4