Serial terminal ,send ASCII/HEX

Discussion in 'Russian Forum' started by alex_up, Dec 15, 2007.

  1. alex_up

    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.
     
Loading...