Serial terminal ,send ASCII/HEX

alex_up

Member
Привет Всем!
Скажу честно , я человек новый в программировании,назовете чайником
не ошибетесь.
Мне нужна ваша помощь , а именно простая программка

Штук 10 кнопок, при нажатии каждой из которых , я мог бы отсылать
HEX стринги, например следующего вида
7E 40 25 01 00 00 8E 03 09 40 7E
7E 40 25 01 00 00 72 FC 41 1C 7E
7E 40 25 01 00 00 38 0E 6C 46 7E

Все что мне удалось , так это отсылка ASCII и то не совсем корректно,
например отсылаю ASCII "~@%...Ž..@~" что соответствует
HEX 7E 40 25 01 00 00 8E 03 09 40 7E
На самом деле получаю ASCII "~@%...Ž..@" что соответствует
HEX 7E 40 25 2E 2E 2E C5 BD 2E 2E 40
За основу я взял пример Serial terminal

Sub Globals
Dim buffer1(0) As Byte
Dim buffer2(0) As Byte
port = 2
bitRate = 4
Dim bitRates(5)
bitRates(0) = 4800
bitRates(1) = 9600
bitRates(2) = 19200
bitRates(3) = 57600
bitRates(4) = 115200
serialstring=""
serialchar="A"
End Sub

Sub App_Start
bit.New1
buffer1() = bit.StringToBytes("~@%...Ž..@~",0,11)
buffer2() = bit.StringToBytes("~@%...Ž..@~",0,11)
Form1.Show
For i = 1 To 8
AddEvent("mnuPort" & i, Click, "mnuPorts_Click")
Next
For i = 0 To 4
AddEvent ("mnuBit" & i, Click, "mnuBits_Click")
Next
serial.New1


End Sub

Sub mnuPorts_Click 'Handles mnuPort 1 - 8 click event
Control("mnuPort" & port).Checked = false
Sender.Checked = true
port = StrAt(Sender.Text,3)
End Sub

Sub mnuBits_Click 'Handles mnuBit0-4 click event
Control("mnuBit" & bitRate).Checked = false
Sender.Checked = true
bitRate = StrAt(Sender.Name,6)
End Sub


Sub mnuOpen_Click
If serial.PortOpen = true Then 'close port
serial.PortOpen = false
Sender.Text = "Disconnected"
Else
serial.CommPort = port
serial.BitRate = bitRates(bitRate)
serial.MaxInputLen=1 ' Restrict the buffer. This allows InputString to deliver just 1 character
serial.CTSHandshaking=False 'no handshake
serial.XonXoffHandshaking=False 'no handshake
serial.PortOpen = true
Sender.Text = "Connected"
End If
End Sub

Sub Form1_Close
If serial.PortOpen = true Then serial.PortOpen = false
End Sub

Sub btnSendASCII_Click
If serial.PortOpen = true Then serial.Output2 ( buffer1() )
End Sub

Sub btnSendASCII2_Click
If serial.PortOpen = true Then serial.Output2 ( buffer2() )
End Sub

С уважением к форуму
Alex.
 
Top