MW-PUG-UART
  • シリアル通信アプリ ユーザーズガイド
  • 使用上の注意
  • ピン割り当て
  • 使用方法
    • 動作確認をする
    • 出力書式
    • マイコンと接続する
  • 通信モード
    • ヘッダ付き透過モード(E)
      • 出力のカスタマイズ
    • 書式モード(A, B)
      • アスキー形式
      • バイナリー形式
        • バイナリー形式で使ってみる
      • 0xDB コマンド
      • サイレントモード
    • チャットモード(C)
      • どこでもチャット
    • 透過モード(D)
  • その他の機能
    • カスタムデフォルト
  • インタラクティブモード
GitBook提供
このページ内
PDFとしてエクスポート
  1. 通信モード
  2. ヘッダ付き透過モード(E)

出力のカスタマイズ

ヘッダ付き透過モード (E) の出力はインタラクティブモードのh: set header formatで設定できます。

一番簡単な書式は*\nで、送信されたデータそのものを表示し、CRLFの改行コードを付与します。

--- CONFIG/TWE UART APP V1-04-5/SID=0x810a479c/LID=0x01 -E ---
...
 h: set header format [*\n] 
 
受信側で上記の設定を行うと、以下のように表示されます。
 [送信側] HELLO<CR><LF> または HELLO<LF>
 [受信側] HELLO<CR><LF>

特殊文字を含めることで様々な出力が可能です。

文字

意味

*

送信文字列

&hl

任意の文字を16進数で指定 (例:&20→0x20空白)

<

チェックサム計算開始位置を設定する(設定しない場合は出力の先頭)

>

チェックサム計算終了位置を指定する(v1.4.6以降。それ以前のバージョンは無視されます)

\(バックスラッシュ, ¥)に続く文字

\n

CRLF (0x0d 0x0a) の出力

\t

TAB の出力

\*

*の出力

\%

%の出力

\<

<の出力

\>

>の出力

\&

&の出力

%に続く文字

%A

送信元アドレス(32bit)の出力(8桁16進数)

%a

送信元アドレス(32bit)の出力(10桁10進数)

%I

送信元論理アドレス(8bit)の出力(2桁16進数)

%i

送信元論理アドレス(8bit)の出力(3桁10進数)

%T

現在のシステム時間(秒)の出力(4桁16進数)

%t

現在のシステム時間(秒)の出力(5桁10進数)

%S

送信元が設定した続き番号の出力(2桁16進数)

%s

送信元が設定した続き番号の出力(3桁10進数)

%Q

受信時の電波強度を出力(2桁16進数)

%q

受信時の電波強度を出力(3桁10進数)

%X

チェックサムの出力(2桁16進数)

%x

チェックサムの出力(3桁10進数)

チェックサムの計算

チェックサムは開始位置(<で指定する場合はその場所から、なければ出力の先頭)から%X,%xの出力直前までをXOR(排他的論理和)にて計算します。

 h: set header format [;%I;*;%X]
 上記のように設定した場合、
 
受信側で上記の設定を行うと、以下のように表示されます。
 [送信側] HELLO<CR><LF> または HELLO<LF>
 [受信側] ;000;HELLO;49

送信側のアドレスはでHELLOという文字が届きチェックサムが0x49です。
チェックサムの計算範囲は ;000;HELLO; です。

計算プログラム例

#include <stdio.h>

int main() {
  unsigned char x = 0;
  char *p = ";000;HELLO;";

  while(*p) {
    x ^= *p;
    p++;
  }
  printf("%s -> %02x\n", argv[1], x);
}

// ;000;HELLO; -> 49

前へヘッダ付き透過モード(E)次へ書式モード(A, B)

最終更新 3 年前