/

出力のカスタマイズ

ヘッダ付き透過モード(E)の出力をカスタマイズ
インタラクティブモードにより、ヘッダ付き透過モード(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 または HELLO
 [受信側] HELLO
  

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

文字意味
*送信文字列
&hl任意の文字を16進数で指定 (例:&20→0x20空白)
<チェックサム計算開始位置を設定する(設定しない場合は出力の先頭)
>チェックサム計算終了位置を指定する(v1.4.6以降。それ以前のバージョンは無視されます)

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

\nCRLF (0x0d 0x0a) の出力
\tTAB の出力
\**の出力
\%%の出力
\<<の出力
\>>の出力
\&&の出力

%に続く文字

%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 または HELLO
 [受信側] ;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