C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 126 を表示中)
■75079 / )  Re[1]: シリアル通信 送信コマンド(VB2008)
□投稿者/ 魔界の仮面弁士 (211回)-(2015/02/25(Wed) 12:07:14)
No75068 (ガッキー さん) に返信
>    送信コマンドの仕様ですが

こういうことで良いのかな…。

Dim STX() As Byte = {&H2}       '02H固定
Dim NodeNo As String = "01"     'ASCII 2桁 "00"〜"31"
Dim SubAdd As String = "00"     'ASCII 2桁 "00" 固定
Dim SID As String = "0"         'ASCII 1桁 "0" 固定
Dim MRC As String = "01"        'ASCII 2桁 "01" 固定
Dim SRC As String = "01"        'ASCII 2桁 "01" 固定
Dim Var As String = "40"        'ASCII 2桁 "40" or "C2"
Dim ReadStAd As String = "0000" 'ASCII 4桁 "0000" 固定
Dim Bit As String = "00"        'ASCII 2桁 "00" 固定
Dim Ele As String = "000B"      'ASCII 4桁 "0001" or "000B"
Dim BCC As Byte

Dim sendText As String = NodeNo & SubAdd & SID & MRC & SRC & Var & ReadStAd & Bit & Ele
Dim sendBinary() As Byte = System.Text.Encoding.ASCII.GetBytes(sendText)

BCC = 0
Array.ForEach(sendBinary, Sub(b) BCC = BCC Xor b)

Dim buffer() As Byte = STX.Concat(sendBinary).Concat({BCC}).ToArray()

'この時点で、buffer.Length は 23 を返す。bufferは0〜22。
SerialPort1.Write(buffer, 0, buffer.Length)

返信 編集キー/


管理者用

- Child Tree -