投稿者 daive  (社会人) 投稿日時 2017/6/23 11:52:41
一歩前進の様に見えて、かなりな前進かもです。
調べる癖が付くと、掲示板で聞いて、答えが返って来るまで
~~~~~待ち~~~~
という、時間が節約できます。

>・送信側
>  マイコン+Xbee
>・受信側 Xbee+PC
この構成で、
送信側データ,、コマンドレスポンスにするのか、垂れ流しにするのかを決めます。
それを決めたら、送信するデータは、
1.文字としての数値なのか、バイナリー値、BCD値なのか
  0 :16進数で、0x30 なのか、 0x00 なのかという話
  1023: 0x03FF なのか、0x1024 なのか?バイナリー、BCDの別
2.文字でも、バイナリー値でも、固定長なのかどうか?
  0~1023 を
  文字表現の数値であれば、
  0、1 、、、、 999、1000
  なのか
  0000、0001、、、、 0999、1000
  とするのか
3.送信データを、ターミネーションするのかどうか
  簡易的に、文字表現の数値を送る場合
  DT0000 C/R L/F
   :
  DT1023 C/R L/F
'
 DT:コマンド、レスポンス文字
 文字表記の数値4桁:計測値
 C/R : 0x0D
 L/F : 0X0A
4.コマンド、レスポンスを決める必要があるかどうか。
 種々設定を、PCから行いたい。データに日時を入れたい。通信速度設定をしたい。など
 A/D値:0~1024 の値でなく、レンジ値0~1024:0.00~5.00Vとしたいなど

手書きで良いので、
 種々模式図
 状態遷移図
 通信用フロー図
 真理値表(これが書けると、ロジックが簡単になる場合がある)
などが書ける様になると、他に説明が出来る様になります。

なぜ、ターミネーションの話が出て来たか?
データをターミネーション無で、送った場合何が起きるでしょうか?
特に垂れ流しの場合は、どうなるでしょうか?
おおざっぱに、通信では、厳密に通信フレームを構築する方法と、
電信から続いている、文字での方法とが、あります。
人間が認識する場合は、文字として読めれば、同音異義語の注意は必要にしろ
結構なんとかなります。
プログラムでは、どうでしょう?
⇒コンピュータは融通が効きません。プログラムは書かれた様に動きます。

さらなる難関。
イベント駆動型プログラミングでは、
無限ループ、や、時間待ち、データ待ちの、ループは禁忌です。
⇒じゃあどうするか?
  イベントを取得して、都度、処理していきます。
  その時の状態、状況を考えるのに、状態遷移図が必要になります。
  安直には、FIFOをコンボボックス、リストボックスで実装して、見える化して
  確認します。
  デバッグ機能を本格的に使う必要が出てきます。