MPC2000 Reference Manual [JAPANESE] [ENGLISH]
【コマンド】   【通信】
【使い方】
PRINT#

PRINT# 1 a$ "123¥n"
PRINT# 5 COMPOWAY snd$
PRINT# 3 STR_LEN|32 a$
【書   式】 【機   能】
PRINT# [COM#] [Options] arg1 arg2 ...

通信ポートへ出力
【解   説】
PRINT# はシリアルポートへの出力です。
最初に引数が数値である場合、その数値はRS-CH番号指定となります。
出力引数として 文字列、文字列変数、変数などが使えます。
PRINT# "count=" i_ " " i_*i_

なお、PRINT#では引数の出力間にスペース挿入はありません。
また、引数の上で、+による文字列結合はできませんが、
以下のように、引数を羅列するだけで、文字列結合して出力するのと同じことができます。
PRINT# CHR$(1) "DATA" CHR$(3)

よって以下と同じ結果になります。
b$=CHR$(1)+"DATA"+CHR$(3)
PRINT# b$


■固定長出力オプション STR_LEN
文字列出力は、通常NULLターミネーションされます。しかし、バイナリコードを含む
固定長文字列出力が必要となる場合があり、STR_LENオプションはこうした場合に用います。
a$="1234567" : b$="abcdfge"
print# STR_LEN|4 a$ b$
この場合、出力されるのは、1234abcd となります。


■NULLコードを含む文字列の出力
NULLコード、つまりアスキーコード0は、通常文字列のターミネータと扱われており、
通常の方法では出力されません。
1) 簡単に0〜4のコードを出力するには、文字列定数中に\0〜\4を記述します。
PRINT# "ABC\0DEF" --> ABC~00DEF ABCとDEFの間に00コードが出力されます。
2) チェックサムを出力する方法1
例えば16bitのチェック・サムを出力する場合は以下のようにします。

HI=CHK_SUM>>8
LO=CHK_SUM&255
PRINT# STR_LEN|2 CHR$(HI) CHR$(LO)

3) チェックサムを出力する方法2
文字列の固定パケツトに直接バイナリコードを埋め込む方法です。

CMND$="CMNDEXE"
SUM=0
FOR i=0 TO LEN(CMND$)-1 : SUM=SUM+PEEK(CMND$+i) : NEXT
HI=SUM>>8
LO=SUM&255
POKE 0 HI LO (CMND$+7)
PRINT# STR_LEN|10 CMND$


*POKEコマンドは、直接メモリにデータを書き込みます。記述に誤りがあると、誤作動やプログラム破壊を引き起こします。
注意して使用してください。

【Optionsについて】
COMPOWAY:
定数COMPOWAYを与えると、OMRON COMPOWAYフォーマットで文字列を出力します。
転送する文字列はコマンドCOMPOWAYであらかじめパケット化しておきます。

STR_LEN:
定数STR_LENに転送文字数をORすると(例:STR_LEN|32)文字列出力は、
ヌルターミネータは無視され指定された転送文字数 出力します。
ヌルコードを含む転送に使用します。
ヌルを含む文字列の作成には、コマンド、ADD_STRを使用します。





--- Examples---
PRINT# 1 "ABC¥r" /* Xmit "ABC[CR]" through CH1
PRINT# 1 "ABC¥n" /* Xmit "ABC[LF]" through CH1
PRINT# 1 "ABC¥r¥n" /* Xmit "ABC[CR][LF]" through CH1
PRINT# 1 "ABC¥tDEF" /* Xmit "ABC[TAB]DEF" through CH1

¥r=[CR]=&H0D
¥n=[LF]=&H0A
¥t=[TAB]=&H09

--- An example of COMPOWAY---

COMPOWAY node_no sub_adr sid cmnd_txt$ snd$
PRINT# 5 COMPOWAY snd$

  [LASTMODIFY]2012-03-21 11:05:45 [CREATEDATE]2007-09-20 22:28:00
MPC2000 Reference Manual -R5.11-   (C)2007 ACCEL Corp. all right reserved.