vb.netで下記の様な条件のチェックサムの実装方法について、
教えて下さい。
「チェックサム以外の送信データの和+チェックサム=下位2バイトが0x0000となる値」
※チェックサム以外の送信データの和は、該当する各送信データの1バイト単位の和
下記が現在うまくいかないソースになります。
''Check Sum -----------------------------------
''bytSendDataが送信データ
Dim srtChk As Integer = 0
'チェックサムを除いた送信データの和
For intCnt As Integer = 0 To bytSendData.Length - 3
srtChk = srtChk + bytSendData(intCnt)
Next
'送信データの和よりチェックサムを計算
srtChk = &H10000 - srtChk
Dim srtSumH As Short = &HFF And (srtChk >> 8)
Dim srtSuml As Short = &HFF And (srtChk)
'チェックサムの設定
bytSendData(37) = srtSumH
bytSendData(38) = srtSuml
> vb.netで下記の様な条件のチェックサムの実装方法について、
ここは『VB掲示板(VB2-VB6専用)』です。
VB6 としての回答でも良いなら、ここでそのまま続けても構いませんが、
VB.NET としての回答を望むのであれば、隣の掲示板に移動願います。
また、投稿する際には VB.NET のバージョンも明記してください。
ソースを見る限り、少なくとも 2002 では無さそうですが…。
> 下記が現在うまくいかないソースになります。
おそらく、bytSendData のインデックスはおそらく(0〜38) の範囲で、
0〜36 がデータ部、末尾の 37/38 がチェックサムなのだと思いますが、
まずは、どこがどううまくいかないのかを説明願えますでしょうか。
(チェックサムの値が予想値と異なるのか、それとも、計算した値を
bytSendData にセットする段階で問題が発生しているのか、など)
すみません。VB.NETの掲示板の方へ移動しました。
編集 削除