TimeOut(Rs232c)
通常タイムアウト設定の変更は、必要ありません。
長いデーターを連続で送信する場合は、通信速度と、文字数から、タイムアウト時間を設定してください。
ReceiveInterval 二つの文字が到着するまでの最大許容時間をミリ秒単位で指定します。
ReceiveIntervals
基本的に
_MaxDWordの指定を変更する必要はありません、
UserInTimeを指定した場合は、
ReceiveIntervalの値が使用されます。
ReceiveTimeOut
と
ReceiveMultiplierの両方に対して
_MaxDWordと
0の組み合わせを指定した場合は、読み取り操作が直ぐに終了し、既に受信している文字を返して制御を戻します。
ReceiveInterval := 1500;
ReceiveIntervals:= _MaxDWord; MAXDWORD 0xffffffff
が指定されます。
ReceiveIntervals:= UserInTime; ReceiveInterval
の
1500が指定されます。
ReceiveMultiplier 1バイトあたりの読み取り時間をミリ秒単位で指定します。
指定された値と、読み取りバイト数の積が計算され、
ReceiveTimeOutと加算して使用されます。
現在は、転送速度が速く1バイトの送信時間が
1ミリ秒以下となっています。
ReceiveTimeOut(受信用)
受信用のタイムアウト時間計算用固定部分です。
ReceiveMultiplier
と
ReceiveTimeOutの両方に
0を指定した場合は、読み取りに対してタイムアウト時間の総計が使われないことを示します。(受信タイムアウトは無くなります)
SendMultiplier
指定された値と、書き込みバイト数の積が計算され、
SendTimeOutと加算して使用されます。
現在は、転送速度が速く1バイトの送信時間が
1ミリ秒以下となっています。
SendTimeOut(送信用)
SendMultiplier
と
SendTimeOutの両方に
0を指定した場合は、送信に対してタイムアウト時間の総計が使われないことを示します。
(送信タイムアウトは無くなります
)
Comm1.ReceiveIntervals:= _MaxDword; 0xffffffff
が指定されます。
Comm1.ReceiveMultiplier := 0; //
単位は
mSec です。
Comm1.SendMultiplier := 0; //
単位は
mSec です。
Comm1.SendTimeOut := 0; //
単位は
mSec です。
Comm1.ReceiveTimeOut := 0; //
単位は
mSec です。
最近では、RS232Cを利用して、長いデーターを送受信する事は、殆どありません。
Comm1.SendTimeOut := 1000; //
単位は
mSec です。
(デフォルトは
1000mSec)
Comm1.ReceiveTimeOut := 1000; //
単位は
mSec です。
(デフォルトは
1000mSec)
_MaxDWord = MAXDWORD 0xffffffff
evErr CommErrEvntを使用すれば、タイムアウト検出が出来ます。