home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / comdem / portdlg.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1995-05-08  |  15.2 KB  |  459 lines

  1. VERSION 2.00
  2. Begin Form PortDlg 
  3.    BorderStyle     =   3  'Fixed Double
  4.    Caption         =   "Communication Demo - Port Settings"
  5.    ClientHeight    =   3420
  6.    ClientLeft      =   1200
  7.    ClientTop       =   2580
  8.    ClientWidth     =   5460
  9.    Height          =   3825
  10.    Icon            =   0
  11.    Left            =   1140
  12.    LinkMode        =   1  'Source
  13.    LinkTopic       =   "Form3"
  14.    MaxButton       =   0   'False
  15.    MinButton       =   0   'False
  16.    ScaleHeight     =   3420
  17.    ScaleWidth      =   5460
  18.    Top             =   2235
  19.    Width           =   5580
  20.    Begin CommandButton Cancel_Cmmd 
  21.       Caption         =   "Cancel"
  22.       Height          =   375
  23.       Left            =   4230
  24.       TabIndex        =   32
  25.       Top             =   2880
  26.       Width           =   1095
  27.    End
  28.    Begin CommandButton Ok_Cmmd 
  29.       Caption         =   "OK"
  30.       Height          =   375
  31.       Left            =   2220
  32.       TabIndex        =   31
  33.       Top             =   2895
  34.       Width           =   1095
  35.    End
  36.    Begin CommandButton Reset_Cmmd 
  37.       Caption         =   "Reset"
  38.       Height          =   375
  39.       Left            =   135
  40.       TabIndex        =   30
  41.       Top             =   2895
  42.       Width           =   1095
  43.    End
  44.    Begin Frame Stop_Bits_Fram 
  45.       Height          =   1425
  46.       Left            =   120
  47.       TabIndex        =   18
  48.       Top             =   1320
  49.       Width           =   1095
  50.       Begin OptionButton Stop_Bits_Opt 
  51.          Caption         =   "2"
  52.          Height          =   255
  53.          Index           =   2
  54.          Left            =   105
  55.          TabIndex        =   22
  56.          TabStop         =   0   'False
  57.          Top             =   1035
  58.          Width           =   735
  59.       End
  60.       Begin OptionButton Stop_Bits_Opt 
  61.          Caption         =   "1.5"
  62.          Height          =   255
  63.          Index           =   1
  64.          Left            =   105
  65.          TabIndex        =   21
  66.          TabStop         =   0   'False
  67.          Top             =   735
  68.          Width           =   735
  69.       End
  70.       Begin OptionButton Stop_Bits_Opt 
  71.          Caption         =   "1"
  72.          Height          =   255
  73.          Index           =   0
  74.          Left            =   105
  75.          TabIndex        =   20
  76.          TabStop         =   0   'False
  77.          Top             =   420
  78.          Width           =   735
  79.       End
  80.       Begin Label Stop_Bits_Labl 
  81.          Alignment       =   2  'Center
  82.          BorderStyle     =   1  'Fixed Single
  83.          Caption         =   "&Stop Bits"
  84.          Height          =   255
  85.          Left            =   0
  86.          TabIndex        =   19
  87.          Top             =   90
  88.          Width           =   1095
  89.       End
  90.    End
  91.    Begin Frame Data_Bits_Fram 
  92.       Height          =   2625
  93.       Left            =   4080
  94.       TabIndex        =   4
  95.       Top             =   120
  96.       Width           =   1215
  97.       Begin OptionButton Data_Bits_Opt 
  98.          Caption         =   "8"
  99.          Height          =   255
  100.          Index           =   4
  101.          Left            =   120
  102.          TabIndex        =   10
  103.          TabStop         =   0   'False
  104.          Top             =   2070
  105.          Width           =   975
  106.       End
  107.       Begin OptionButton Data_Bits_Opt 
  108.          Caption         =   "7"
  109.          Height          =   255
  110.          Index           =   3
  111.          Left            =   120
  112.          TabIndex        =   9
  113.          TabStop         =   0   'False
  114.          Top             =   1710
  115.          Width           =   975
  116.       End
  117.       Begin OptionButton Data_Bits_Opt 
  118.          Caption         =   "6"
  119.          Height          =   255
  120.          Index           =   2
  121.          Left            =   120
  122.          TabIndex        =   8
  123.          TabStop         =   0   'False
  124.          Top             =   1350
  125.          Width           =   975
  126.       End
  127.       Begin OptionButton Data_Bits_Opt 
  128.          Caption         =   "5"
  129.          Height          =   255
  130.          Index           =   1
  131.          Left            =   120
  132.          TabIndex        =   7
  133.          TabStop         =   0   'False
  134.          Top             =   990
  135.          Width           =   975
  136.       End
  137.       Begin OptionButton Data_Bits_Opt 
  138.          Caption         =   "4"
  139.          Height          =   255
  140.          Index           =   0
  141.          Left            =   120
  142.          TabIndex        =   6
  143.          TabStop         =   0   'False
  144.          Top             =   630
  145.          Width           =   960
  146.       End
  147.       Begin Label Data_Bits_Labl 
  148.          Alignment       =   2  'Center
  149.          BorderStyle     =   1  'Fixed Single
  150.          Caption         =   "&Data Bits"
  151.          Height          =   255
  152.          Left            =   0
  153.          TabIndex        =   5
  154.          Top             =   90
  155.          Width           =   1215
  156.       End
  157.    End
  158.    Begin Frame Parity_Fram 
  159.       Height          =   2625
  160.       Left            =   2760
  161.       TabIndex        =   11
  162.       Top             =   120
  163.       Width           =   1215
  164.       Begin OptionButton Parity_Opt 
  165.          Caption         =   "Space"
  166.          Height          =   255
  167.          Index           =   4
  168.          Left            =   120
  169.          TabIndex        =   17
  170.          TabStop         =   0   'False
  171.          Top             =   2055
  172.          Width           =   975
  173.       End
  174.       Begin OptionButton Parity_Opt 
  175.          Caption         =   "Mark"
  176.          Height          =   255
  177.          Index           =   3
  178.          Left            =   120
  179.          TabIndex        =   16
  180.          TabStop         =   0   'False
  181.          Top             =   1695
  182.          Width           =   975
  183.       End
  184.       Begin OptionButton Parity_Opt 
  185.          Caption         =   "Even"
  186.          Height          =   255
  187.          Index           =   2
  188.          Left            =   120
  189.          TabIndex        =   15
  190.          TabStop         =   0   'False
  191.          Top             =   1335
  192.          Width           =   855
  193.       End
  194.       Begin OptionButton Parity_Opt 
  195.          Caption         =   "Odd"
  196.          Height          =   255
  197.          Index           =   1
  198.          Left            =   120
  199.          TabIndex        =   14
  200.          TabStop         =   0   'False
  201.          Top             =   975
  202.          Width           =   855
  203.       End
  204.       Begin OptionButton Parity_Opt 
  205.          Caption         =   "None"
  206.          Height          =   255
  207.          Index           =   0
  208.          Left            =   120
  209.          TabIndex        =   13
  210.          TabStop         =   0   'False
  211.          Top             =   615
  212.          Width           =   855
  213.       End
  214.       Begin Label Parity_Labl 
  215.          Alignment       =   2  'Center
  216.          BorderStyle     =   1  'Fixed Single
  217.          Caption         =   "&Parity"
  218.          Height          =   255
  219.          Left            =   0
  220.          TabIndex        =   12
  221.          Top             =   90
  222.          Width           =   1215
  223.       End
  224.    End
  225.    Begin Frame Baud_Rate_Fram 
  226.       Height          =   2625
  227.       Left            =   1320
  228.       TabIndex        =   23
  229.       Top             =   120
  230.       Width           =   1335
  231.       Begin OptionButton Baud_Rate_Opt 
  232.          Caption         =   "19200"
  233.          Height          =   285
  234.          Index           =   5
  235.          Left            =   120
  236.          TabIndex        =   33
  237.          TabStop         =   0   'False
  238.          Top             =   2250
  239.          Width           =   1005
  240.       End
  241.       Begin OptionButton Baud_Rate_Opt 
  242.          Caption         =   "9600"
  243.          Height          =   255
  244.          Index           =   4
  245.          Left            =   120
  246.          TabIndex        =   29
  247.          TabStop         =   0   'False
  248.          Top             =   1920
  249.          Width           =   1095
  250.       End
  251.       Begin OptionButton Baud_Rate_Opt 
  252.          Caption         =   "4800"
  253.          Height          =   255
  254.          Index           =   3
  255.          Left            =   120
  256.          TabIndex        =   28
  257.          TabStop         =   0   'False
  258.          Top             =   1575
  259.          Width           =   1095
  260.       End
  261.       Begin OptionButton Baud_Rate_Opt 
  262.          Caption         =   "2400"
  263.          Height          =   255
  264.          Index           =   2
  265.          Left            =   120
  266.          TabIndex        =   27
  267.          TabStop         =   0   'False
  268.          Top             =   1215
  269.          Width           =   1095
  270.       End
  271.       Begin OptionButton Baud_Rate_Opt 
  272.          Caption         =   "1200"
  273.          Height          =   255
  274.          Index           =   1
  275.          Left            =   120
  276.          TabIndex        =   26
  277.          TabStop         =   0   'False
  278.          Top             =   870
  279.          Width           =   1095
  280.       End
  281.       Begin OptionButton Baud_Rate_Opt 
  282.          Caption         =   "300"
  283.          Height          =   255
  284.          Index           =   0
  285.          Left            =   120
  286.          TabIndex        =   25
  287.          TabStop         =   0   'False
  288.          Top             =   510
  289.          Width           =   1095
  290.       End
  291.       Begin Label Baud_Rate_Labl 
  292.          Alignment       =   2  'Center
  293.          BorderStyle     =   1  'Fixed Single
  294.          Caption         =   "&Baud Rate"
  295.          Height          =   255
  296.          Left            =   0
  297.          TabIndex        =   24
  298.          Top             =   90
  299.          Width           =   1335
  300.       End
  301.    End
  302.    Begin Frame Comm_Device_Fram 
  303.       Height          =   1185
  304.       Left            =   120
  305.       TabIndex        =   0
  306.       Top             =   120
  307.       Width           =   1095
  308.       Begin OptionButton Comm_Device_Opt 
  309.          Caption         =   "COM2"
  310.          Height          =   255
  311.          Index           =   1
  312.          Left            =   105
  313.          TabIndex        =   3
  314.          TabStop         =   0   'False
  315.          Top             =   765
  316.          Width           =   855
  317.       End
  318.       Begin OptionButton Comm_Device_Opt 
  319.          Caption         =   "COM1"
  320.          Height          =   255
  321.          Index           =   0
  322.          Left            =   105
  323.          TabIndex        =   2
  324.          TabStop         =   0   'False
  325.          Top             =   465
  326.          Width           =   855
  327.       End
  328.       Begin Label Comm_Device_Labl 
  329.          Alignment       =   2  'Center
  330.          BorderStyle     =   1  'Fixed Single
  331.          Caption         =   "&Comm Port"
  332.          Height          =   255
  333.          Left            =   0
  334.          TabIndex        =   1
  335.          Top             =   90
  336.          Width           =   1095
  337.       End
  338.    End
  339. Dim WorkPortName As String
  340. Dim WorkDCB As CommStateDCB
  341. Sub Baud_Rate_Opt_Click (Index As Integer)
  342.     If WorkDCB.BaudRate <> Val(Baud_Rate_Opt(Index).caption) Then
  343.         WorkDCB.BaudRate = Val(Baud_Rate_Opt(Index).caption)
  344.         DisplayQBOpen WorkDCB, WorkPortName, CommRBBuffer, CommTBBuffer, CommReadInterval
  345.     End If
  346. End Sub
  347. Sub Cancel_Cmmd_Click ()
  348.     Unload PortDlg
  349. End Sub
  350. Sub Comm_Device_Opt_Click (Index As Integer)
  351.     WorkDCB.Id = Chr$(Index)
  352.     WorkPortName = Comm_Device_Opt(Index).caption + ":"
  353.     UpdateDialogSettings (Index)
  354.     DisplayQBOpen WorkDCB, WorkPortName, CommRBBuffer, CommTBBuffer, CommReadInterval
  355. End Sub
  356. Sub Data_Bits_Opt_Click (Index As Integer)
  357.     If WorkDCB.ByteSize <> Chr$(Index + 4) Then
  358.         WorkDCB.ByteSize = Chr$(Index + 4)
  359.         DisplayQBOpen WorkDCB, WorkPortName, CommRBBuffer, CommTBBuffer, CommReadInterval
  360.     End If
  361. End Sub
  362. Sub Form_Load ()
  363.     Remove_Items_From_SysMenu PortDlg
  364.     WorkDCB = CommState
  365.     WorkPortName = CommPortName
  366.     UpdatePortDlg
  367.     CenterDialog PortDlg
  368. End Sub
  369. Sub Ok_Cmmd_Click ()
  370.     If CommDeviceNum > 0 And CommHandle > -1 Then
  371.         NoChange = True
  372.         If CommState.BaudRate <> WorkDCB.BaudRate Then NoChange = False
  373.         If CommState.Parity <> WorkDCB.Parity Then NoChange = False
  374.         If CommState.StopBits <> WorkDCB.StopBits Then NoChange = False
  375.         If CommState.ByteSize <> WorkDCB.ByteSize Then NoChange = False
  376.         If NoChange = True Then
  377.             Unload PortDlg
  378.             Exit Sub
  379.         End If
  380.         UpdateCaption " DIALOG: Change Active Settings (Yes), Post-Pone (No), Return to Dialog (Cancel)", 0
  381.         
  382.         Result% = MsgBox("Port Already Active!" + Chr$(13) + "Activate settings Now?", 3 + 16 + 256, "Terminal Sampler II - Port Active")
  383.         Select Case Result%
  384.             Case 6
  385.                 UpdateCaption " Changing Port Settings LIVE!", 0
  386.                 
  387.                 CommState = WorkDCB
  388.                 PostState = WorkDCB
  389.                 CommPortName = WorkPortName
  390.                 PostPortName = WorkPortName
  391.                 ApiErr% = SetCommState(WorkDCB)
  392.                 Unload PortDlg
  393.             Case 7
  394.                 UpdateCaption " Settings Post-Poned until next CONNECT", 0
  395.                 PostState = WorkDCB
  396.                 PostPortName = WorkPortName
  397.                 Unload PortDlg
  398.             Case Else
  399.                 DisplayQBOpen WorkDCB, WorkPortName, CommRBBuffer, CommTBBuffer, CommReadInterval
  400.         End Select
  401.     Else
  402.         CommState = WorkDCB
  403.         PostState = WorkDCB
  404.         CommPortName = WorkPortName
  405.         PostPortName = WorkPortName
  406.         Unload PortDlg
  407.     End If
  408. End Sub
  409. Sub Parity_Opt_Click (Index As Integer)
  410.     If WorkDCB.Parity <> Chr$(Index) Then
  411.         
  412.         WorkDCB.Parity = Chr$(Index)
  413.         DisplayQBOpen WorkDCB, WorkPortName, CommRBBuffer, CommTBBuffer, CommReadInterval
  414.     End If
  415. End Sub
  416. Sub Reset_Cmmd_Click ()
  417.     WorkDCB = CommState
  418.     UpdatePortDlg
  419. End Sub
  420. Sub Stop_Bits_Opt_Click (Index As Integer)
  421.     If WorkDCB.StopBits <> Chr$(Index) Then
  422.         
  423.         WorkDCB.StopBits = Chr$(Index)
  424.         DisplayQBOpen WorkDCB, WorkPortName, CommRBBuffer, CommTBBuffer, CommReadInterval
  425.     End If
  426. End Sub
  427. Sub UpdateDialogSettings (Index As Integer)
  428.     For i% = 0 To 5
  429.         If WorkDCB.BaudRate = Val(Baud_Rate_Opt(i%).caption) Then
  430.             Baud_Rate_Opt(i%).value = True
  431.         End If
  432.     Next i%
  433.     Parity_Opt(Asc(WorkDCB.Parity)).value = True
  434.     Data_Bits_Opt(Asc(WorkDCB.ByteSize) - 4).value = True
  435.     Stop_bits_Opt(Asc(WorkDCB.StopBits)).value = True
  436. End Sub
  437. Sub UpdatePortDlg ()
  438.     For i% = 1 To 0 Step -1
  439.         ApiErr% = OpenComm(Comm_Device_Opt(i%).caption + ":", 2048, 2048)
  440.         Select Case ApiErr%
  441.             Case IE_HARDWARE, IE_OPEN
  442.                 Comm_Device_Opt(i%).enabled = False
  443.             Case Else
  444.                 ApiErr% = CloseComm(ApiErr%)
  445.                 Comm_Device_Opt(i%).enabled = True
  446.                 Last% = i%
  447.         End Select
  448.         Comm_Device_Opt(i%).value = False
  449.     Next i%
  450.     If CommDeviceNum > 0 And CommHandle > -1 Then
  451.         Last% = CommDeviceNum - 1
  452.         Comm_Device_Opt(Last%).value = True
  453.     Else
  454.         Comm_Device_Opt(Last%).value = True
  455.     End If
  456.     WorkDCB.Id = Chr$(Last%)
  457.     WorkPortName = Comm_Device_Opt(Last%).caption + ":"
  458. End Sub
  459.