Virtual Terminal Interfacing using RS232

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • shehzadmajeed
    New Member
    • Mar 2008
    • 1

    Virtual Terminal Interfacing using RS232

    I am a Point of Sale Terminal Programmer/Developer and currently assigned to develop a VTI Simulator (Virtual Terminal Interface) than can exchange messages as per Specification through RS232-COM Port.

    Using VB MSCOMM ActiveX control, I am managed to receive Data from POS Terminal but when i try to send data (Less than 100 Bytes) to POS terminal, it works but doesn't work for data more than 99 Bytes.

    Following is the related coding part:

    MSComm1 Design Time Property Setup
    ' InBufferSize = 1024
    ' OutBufferSize = 512
    ' RThreshold = 0
    ' SThreshold = 0
    ' InputLen = 0
    ' ParityReplace = "?"
    ' RTSEnable = False
    ' DTREnable = False
    ' NullDiscard = False
    ' Handshaking = 0
    ' InputMode = 0
    ' EOFEnable = False
    ' Setting = 9600,n,8,1


    'Global Declaration'
    Dim SendArray(255) As Variant
    Dim SendBuffer As Variant

    Private Sub Form_Activate()
    MSComm1.CommPor t = 1
    MSComm1.PortOpe n = True

    'BalanceInq
    'STX
    SendArray(0) = CLng(&H2)
    'LLLL
    SendArray(1) = CLng(&H1)
    SendArray(2) = CLng(&H0)
    'Message Data
    'Transport Header
    SendArray(3) = CLng(&H36)
    SendArray(4) = CLng(&H30)
    'Transport Destination
    SendArray(5) = CLng(&H30)
    SendArray(6) = CLng(&H30)
    SendArray(7) = CLng(&H30)
    SendArray(8) = CLng(&H30)
    'Transport Source
    SendArray(9) = CLng(&H30)
    SendArray(10) = CLng(&H30)
    SendArray(11) = CLng(&H30)
    SendArray(12) = CLng(&H30)
    'Presentation Header
    'Format Version
    SendArray(13) = CLng(&H31)
    'Request Indicator
    SendArray(14) = CLng(&H30)
    'Transaction Code
    SendArray(15) = CLng(&H42)
    SendArray(16) = CLng(&H31) 'B1-Pre Sale Authorization
    'Response Code
    SendArray(17) = CLng(&H30)
    SendArray(18) = CLng(&H30)
    'More Indicator
    SendArray(19) = CLng(&H31)
    'Field Separator
    SendArray(20) = CLng(&H1C)
    'Field Data Format
    SendArray(21) = CLng(&H58)
    SendArray(22) = CLng(&H33)
    SendArray(23) = CLng(&H0)
    SendArray(24) = CLng(&H8)
    SendArray(25) = CLng(&H30)
    SendArray(26) = CLng(&H35)
    SendArray(27) = CLng(&H31)
    SendArray(28) = CLng(&H31)
    SendArray(29) = CLng(&H31)
    SendArray(30) = CLng(&H31)
    SendArray(31) = CLng(&H31)
    SendArray(32) = CLng(&H31)
    SendArray(33) = CLng(&H1C)

    SendArray(34) = CLng(&H30)
    SendArray(35) = CLng(&H33)
    SendArray(36) = CLng(&H0)
    SendArray(37) = CLng(&H6)
    SendArray(38) = CLng(&H30)
    SendArray(39) = CLng(&H38)
    SendArray(40) = CLng(&H30)
    SendArray(41) = CLng(&H33)
    SendArray(42) = CLng(&H30)
    SendArray(43) = CLng(&H35)
    SendArray(44) = CLng(&H1C)

    SendArray(45) = CLng(&H30)
    SendArray(46) = CLng(&H34)
    SendArray(47) = CLng(&H0)
    SendArray(48) = CLng(&H6)
    SendArray(49) = CLng(&H31)
    SendArray(50) = CLng(&H32)
    SendArray(51) = CLng(&H31)
    SendArray(52) = CLng(&H32)
    SendArray(53) = CLng(&H31)
    SendArray(54) = CLng(&H32)
    SendArray(55) = CLng(&H1C)

    SendArray(56) = CLng(&H58)
    SendArray(57) = CLng(&H30)
    SendArray(58) = CLng(&H0)
    SendArray(59) = CLng(&H8)
    SendArray(60) = CLng(&H31)
    SendArray(61) = CLng(&H31)
    SendArray(62) = CLng(&H31)
    SendArray(63) = CLng(&H31)
    SendArray(64) = CLng(&H31)
    SendArray(65) = CLng(&H31)
    SendArray(66) = CLng(&H31)
    SendArray(67) = CLng(&H31)
    SendArray(68) = CLng(&H1C)

    SendArray(69) = CLng(&H33)
    SendArray(70) = CLng(&H30)
    SendArray(71) = CLng(&H0)
    SendArray(72) = CLng(&H16)
    SendArray(73) = CLng(&H37)
    SendArray(74) = CLng(&H30)
    SendArray(75) = CLng(&H30)
    SendArray(76) = CLng(&H30)
    SendArray(77) = CLng(&H34)
    SendArray(78) = CLng(&H36)
    SendArray(79) = CLng(&H39)
    SendArray(80) = CLng(&H39)
    SendArray(81) = CLng(&H31)
    SendArray(82) = CLng(&H30)
    SendArray(83) = CLng(&H30)
    SendArray(84) = CLng(&H31)
    SendArray(85) = CLng(&H33)
    SendArray(86) = CLng(&H32)
    SendArray(87) = CLng(&H31)
    SendArray(88) = CLng(&H30)
    SendArray(89) = CLng(&H1C)

    SendArray(90) = CLng(&H41)
    SendArray(91) = CLng(&H32)
    SendArray(92) = CLng(&H0)
    SendArray(93) = CLng(&H2)
    SendArray(94) = CLng(&H30)
    SendArray(95) = CLng(&H31)
    SendArray(96) = CLng(&H1C)

    SendArray(97) = CLng(&H41)
    SendArray(98) = CLng(&H32)
    SendArray(99) = CLng(&H0)
    SendArray(100) = CLng(&H1)
    'SendArray(101) = CLng(&H30)
    SendArray(102) = CLng(&H1C)

    SendArray(103) = CLng(&H3)
    SendArray(104) = CLng(&H0) 'BCD - CStr 'Normal - Val

    For Recur = 2 To 102
    LRC = LRC Xor SendArray(Recur )
    Next

    SendArray(103) = LRC
    Label1.Caption = "Trasmittin g request..."
    SendBuffer = vbNullString

    For Recur = 0 To 103
    SendBuffer = SendBuffer & Chr(SendArray(R ecur))
    Next

    MSComm1.Output = SendBuffer
    ReceiveBuffer = MSComm1.Input

    End Sub

    Concluding: Within 99 Bytes of Data sent to POS Terminal, this code works perfect, Pls anyone help to let me understand, why this doesn't work for more data. (Nothing triggers on POS Terminal) My requirement is to send upto 250 Byte of Data.

    Looking forward for the help.
Working...