前回のこれ.に引き続き、mismatch protocol vesionのエラー対策方法
文字通りのエラーでない場合があることは前回の通り。
前回のbuffer sizeの変更で解決しない場合には以下の検討もする。
*****.publish( &***** );
nh.spinOnce();
でpublishする際に、割り込み処理が発生するとこのエラーが発生する場合があるらしい。
解決方法は次のようにpublishする際に割り込みを禁止し、publish後に割り込みを許可する。
__disable_irq();
*****.publish( &*****);
nh.spinOnce();
__enable_irq();
while(1)で処理を繰り返している処理が早くtopicが正常に送信されていない。
while(1)の最後に次を追加する。
wait_ms(1000);
なぜ1000msなのかはなぞ。100msや10msだと改善しない。