| ■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)
|
|