Привет Всем!
Скажу честно , я человек новый в программировании,назовете чайником
не ошибетесь.
Мне нужна ваша помощь , а именно простая программка
Штук 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.
Скажу честно , я человек новый в программировании,назовете чайником
не ошибетесь.
Мне нужна ваша помощь , а именно простая программка
Штук 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.