bcm2835ライブラリの返値が受け取れるようになった [Raspberry Pi]
(2013.09.06)
usleep(0)を使ったプロセス切替に不安を抱えたまま、返値を送受する機能を組み込みました。
JAVAプロセスからBCMプロセスへは”返値のあるbcmライブラリ関数を呼び出したとき”と”fifoが一杯になったとき”に切替え、BCMプロセスからJAVAプロセスへは”fifoが空になったとき”に切替ることにしました。
ゴタゴタしましたが、ようやくbcmライブラリプロセスを起動する”Helloコマンド”を送り、その応答文字列を受け取ることが出来ました。
$ ./run.sh
Open bcm2835_for_java
Receive Hello child! <== BCMプロセスがHelloコマンドで受け取ったメッセージ
Reply Nice to meet you! <== JAVAプロセスがHelloコマンドの返値として受け取ったメッセージ
Close bcm_interface
$
”二方向でFIFOの送受を行っているだけ”のようにも見えますが、一連のコマンド・シーケンスに沿って処理し、結果を正しく受け取ることが出来ました。
(パチパチパチ~)
多分、bcmライブラリ関数も同じように動く筈なので、次はいよいよPICとRaspberry piのI2C接続に挑戦します。
usleep(0)を使ったプロセス切替に不安を抱えたまま、返値を送受する機能を組み込みました。
JAVAプロセスからBCMプロセスへは”返値のあるbcmライブラリ関数を呼び出したとき”と”fifoが一杯になったとき”に切替え、BCMプロセスからJAVAプロセスへは”fifoが空になったとき”に切替ることにしました。
ゴタゴタしましたが、ようやくbcmライブラリプロセスを起動する”Helloコマンド”を送り、その応答文字列を受け取ることが出来ました。
$ ./run.sh
Open bcm2835_for_java
Receive Hello child! <== BCMプロセスがHelloコマンドで受け取ったメッセージ
Reply Nice to meet you! <== JAVAプロセスがHelloコマンドの返値として受け取ったメッセージ
Close bcm_interface
$
”二方向でFIFOの送受を行っているだけ”のようにも見えますが、一連のコマンド・シーケンスに沿って処理し、結果を正しく受け取ることが出来ました。
(パチパチパチ~)
多分、bcmライブラリ関数も同じように動く筈なので、次はいよいよPICとRaspberry piのI2C接続に挑戦します。
|
|
|
コメント 0