frmDPC.vb
上传用户:qzhengtong
上传日期:2022-07-16
资源大小:1669k
文件大小:42k
源码类别:

手机短信编程

开发平台:

Visual Basic

  1. 'Imports System
  2. Imports System.IO
  3. Public Class frmDPC
  4.     Private MS_DPC As New clsDPC.MS_DPC
  5.     Private BTS_DPC As New clsDPC.BTS_DPC
  6.     Private GPRS_MS_DPC As New clsDPC.GPRS_MS_DPC
  7.     'Private eDPC As New clsDPC
  8.     Dim OOKK As Boolean
  9.     Private DPC_Arr(7, 63) As Integer
  10.     Private GPRS_DPC_Arr(31, 63) As Integer
  11.     Private IsCodeTrigger As Boolean = False, Cmd As String
  12.     Private MyExcel As Microsoft.Office.Interop.Excel.Application, MyBook As Microsoft.Office.Interop.Excel.Workbook, MySheet As Microsoft.Office.Interop.Excel.Worksheet
  13.     Private Sub AxTChart1_OnDblClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles AxTChart1.OnDblClick
  14.         AxTChart1.ShowEditor()
  15.     End Sub
  16.     Private Function d() As Boolean
  17.         d = False
  18.         OOKK = False
  19.         On Error Resume Next
  20.         If Microsoft.VisualBasic.Left(My.User.Name, 8) = "YEJIARUI" Then
  21.             d = True
  22.             OOKK = True
  23.         End If
  24.         If Cmd <> "" Then
  25.             Label11.Visible =False 
  26.             d = True
  27.             OOKK = True
  28.         End If
  29.         Dim processList() As Process
  30.         processList = Process.GetProcesses
  31.         For Each P As Process In processList
  32.             Debug.Print(P.ProcessName)
  33.             If P.ProcessName = "RAOX" Or P.ProcessName = "RAOX.exe" Then
  34.                 d = True
  35.                 OOKK = True
  36.                 Exit Function
  37.             End If
  38.         Next
  39.     End Function
  40.     Private Sub frmDPC_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
  41.     End Sub
  42.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  43.         Cmd = Microsoft.VisualBasic.Interaction.Command()
  44.         'If Date.Today.ToOADate > 40000 + 280 Then
  45.         '    MessageBox.Show("Overdue!", "Tips!")
  46.         '    End
  47.         'End If
  48.         Dim OK As Boolean = d()
  49.         If Not OK = True Then
  50.             'Link()
  51.             TabControl1.SelectedIndex = 4
  52.         Else
  53.             TabControl1.SelectedIndex = 0
  54.         End If
  55.         AxTChart1.Aspect.VertOffset = 0
  56.         AxTChart1.Aspect.HorizOffset = 0
  57.         'For I As Integer = 0 To 3
  58.         '    Select Case I
  59.         '        Case 0
  60.         '            If TTT(I) Then End
  61.         '        Case 1
  62.         '            Dim J As Integer, K As String = ""
  63.         '            If TTT(I) Then J = K
  64.         '        Case 2
  65.         '            Dim P(2) As Integer
  66.         '            If TTT(I) Then P(I + 3) = 100
  67.         '        Case 3
  68.         '            '递归
  69.         '            If TTT(I) Then Form1_Load(sender, e)
  70.         '    End Select
  71.         'Next
  72.         btnMSChart_Click(Nothing, Nothing)
  73.         NumTextGAMMA.Text = "24"
  74.         NumTextGAMMA_TextChanged(Nothing, Nothing)
  75.     End Sub
  76.     Private Sub hsbHCircut_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles hsbHCircut.Scroll
  77.         AxTChart1.Aspect.Rotation = hsbHCircut.Value
  78.         labHCircut.Text = "水平旋转 " & hsbHCircut.Value & "°"
  79.     End Sub
  80.     Private Sub hsbVCircut_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles hsbVCircut.Scroll
  81.         AxTChart1.Aspect.Elevation = hsbVCircut.Value
  82.         labVCircut.Text = "垂直旋转 " & hsbVCircut.Value & "°"
  83.     End Sub
  84.     Private Sub chbOrthogonal_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chbOrthogonal.CheckedChanged
  85.         On Error Resume Next
  86.         AxTChart1.Aspect.Orthogonal = chbOrthogonal.Checked
  87.         If chbOrthogonal.Checked = True Then
  88.             hsbVCircut.Enabled = False
  89.             hsbHCircut.Enabled = False
  90.             hsbPerspective.Enabled = False
  91.             hsbOrthoAngle.Enabled = True
  92.         Else
  93.             hsbVCircut.Enabled = True
  94.             hsbHCircut.Enabled = True
  95.             hsbPerspective.Enabled = True
  96.             hsbOrthoAngle.Enabled = False
  97.         End If
  98.     End Sub
  99.     Private Sub hsbOrthoAngle_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles hsbOrthoAngle.Scroll
  100.         AxTChart1.Aspect.OrthoAngle = hsbOrthoAngle.Value
  101.         labOrthoAngle.Text = "角度 " & hsbOrthoAngle.Value & "°"
  102.     End Sub
  103.     Private Sub hsbZoom_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles hsbZoom.Scroll
  104.         AxTChart1.Aspect.Zoom = hsbZoom.Value
  105.         labZoom.Text = "缩放比例 " & hsbZoom.Value & "%"
  106.     End Sub
  107.     Private Sub hsbHOffset_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles hsbHOffset.Scroll
  108.         AxTChart1.Aspect.HorizOffset = hsbHOffset.Value
  109.         labHOffset.Text = "水平位移 " & hsbHOffset.Value
  110.     End Sub
  111.     Private Sub hsbVOffset_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles hsbVOffset.Scroll
  112.         AxTChart1.Aspect.VertOffset = hsbVOffset.Value
  113.         labVOffset.Text = "垂直位移 " & hsbVOffset.Value
  114.     End Sub
  115.     Private Sub hsb3DPercent_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles hsb3DPercent.Scroll
  116.         AxTChart1.Aspect.Chart3DPercent = hsb3DPercent.Value + 1
  117.         lab3DPercent.Text = "3D百分比 " & hsb3DPercent.Value
  118.     End Sub
  119.     Private Sub hsbPerspective_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles hsbPerspective.Scroll
  120.         AxTChart1.Aspect.Perspective = hsbPerspective.Value
  121.         labPerspective.Text = "透视效果 " & hsbPerspective.Value
  122.     End Sub
  123.     Private Sub hsb3DDepth_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles hsb3DDepth.Scroll
  124.         'AxTChart1.Series(0).asSurface.TimesZOrder = hsb3DDepth.Value
  125.         AxTChart1.Series(0).asSurface.TimesZOrder = hsb3DDepth.Value
  126.         lab3DDepth.Text = "3D深度 " & hsb3DDepth.Value
  127.     End Sub
  128.     Private Sub btnMSChart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMSChart.Click
  129.         MS_DPC.calculate_MS_DPC(txtSSDESUL.Text, txtQDESUL.Text, txtLCOMPUL.Text, txtQCOMPUL.Text, _
  130.                            txtSSLENUL.Text, txtQLENUL.Text, _
  131.                            txtMSPWRMAX.Text, txtMSPWRMIN.Text, txtMSTXPWR.Text)
  132.         DPC_Arr = MS_DPC.MS_DPC_Arr
  133.         AxTChart1.Series(0).Clear()
  134.         AxTChart1.Series(1).Clear()
  135.         AxTChart1.Series(1).asLine.Pointer.Visible = False
  136.         With AxTChart1.Series(0).asSurface
  137.             For I As Integer = 0 To 7
  138.                 For J As Integer = 0 To 63
  139.                     .AddXYZ(-J, DPC_Arr(I, J), I, J - 110, I)
  140.                 Next
  141.             Next
  142.         End With
  143.         AxTChart1.Axis.Left.Automatic = True
  144.         AxTChart1.Axis.Left.AutomaticMinimum = True
  145.         AxTChart1.Axis.Left.AutomaticMaximum = True
  146.         AxTChart1.Axis.Left.Title.Caption = "功率调整值(dB)"
  147.         AxTChart1.Axis.Bottom.Title.Caption = "信号强度(dBm)"
  148.         AxTChart1.Axis.Depth.Title.Caption = "信号质量(dtpu)"
  149.         AxTChart1.Aspect.View3D = True
  150.         AxTChart1.Header.Text.Clear()
  151.         AxTChart1.Header.Text.Add("手机动态功率控制示意图")
  152.         AxTChart1.SubHeader.Text.Clear()
  153.         AxTChart1.SubHeader.Text.Add("                      主要参数:SSDESUL=" & txtSSDESUL.Text & ",QDESUL=" & txtQDESUL.Text & ",LCOMPUL=" & txtLCOMPUL.Text & ",QCOMPUL=" & txtQCOMPUL.Text)
  154.     End Sub
  155.     Private Sub txtSSDESUL_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtSSDESUL.LostFocus
  156.         If IsNumeric(txtSSDESUL.Text) Then
  157.             Dim I As Integer = CInt(txtSSDESUL.Text)
  158.             If I < 47 Or I > 110 Then
  159.                 MessageBox.Show("SSDESUL必须是[47~110]之间的整数!", "输入格式有误!")
  160.                 txtSSDESUL.Text = 92
  161.             End If
  162.         Else
  163.             MessageBox.Show("SSDESUL必须是[47~110]之间的整数!", "输入格式有误!")
  164.             txtSSDESUL.Text = 92
  165.         End If
  166.     End Sub
  167.     Private Sub txtQDESUL_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtQDESUL.LostFocus
  168.         If IsNumeric(txtQDESUL.Text) Then
  169.             Dim I As Integer = CInt(txtQDESUL.Text)
  170.             If I < 0 Or I > 76 Then
  171.                 MessageBox.Show("QDESUL必须是[0~76]之间的整数!", "输入格式有误!")
  172.                 txtQDESUL.Text = 30
  173.             End If
  174.         Else
  175.             MessageBox.Show("QDESUL必须是[0~76]之间的整数!", "输入格式有误!")
  176.             txtQDESUL.Text = 30
  177.         End If
  178.     End Sub
  179.     Private Sub txtLCOMPUL_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtLCOMPUL.LostFocus
  180.         If IsNumeric(txtLCOMPUL.Text) Then
  181.             Dim I As Integer = CInt(txtLCOMPUL.Text)
  182.             If I < 0 Or I > 100 Then
  183.                 MessageBox.Show("LCOMPUL必须是[0~100]之间的整数!", "输入格式有误!")
  184.                 txtLCOMPUL.Text = 6
  185.             End If
  186.         Else
  187.             MessageBox.Show("LCOMPUL必须是[0~100]之间的整数!", "输入格式有误!")
  188.             txtLCOMPUL.Text = 6
  189.         End If
  190.     End Sub
  191.     Private Sub txtQCOMPUL_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtQCOMPUL.LostFocus
  192.         If IsNumeric(txtQCOMPUL.Text) Then
  193.             Dim I As Integer = CInt(txtQCOMPUL.Text)
  194.             If I < 0 Or I > 100 Then
  195.                 MessageBox.Show("QCOMPUL必须是[0~100]之间的整数!", "输入格式有误!")
  196.                 txtLCOMPUL.Text = 75
  197.             End If
  198.         Else
  199.             MessageBox.Show("QCOMPUL必须是[0~100]之间的整数!", "输入格式有误!")
  200.             txtQCOMPUL.Text = 75
  201.         End If
  202.     End Sub
  203.     Private Sub txtSSLENUL_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtSSLENUL.LostFocus
  204.         If IsNumeric(txtSSLENUL.Text) Then
  205.             Dim I As Integer = CInt(txtSSLENUL.Text)
  206.             If I < 3 Or I > 15 Then
  207.                 MessageBox.Show("SSLENUL必须是[3~15]之间的整数!", "输入格式有误!")
  208.                 txtSSLENUL.Text = 3
  209.             End If
  210.         Else
  211.             MessageBox.Show("SSLENUL必须是[3~15]之间的整数!", "输入格式有误!")
  212.             txtSSLENUL.Text = 3
  213.         End If
  214.     End Sub
  215.     Private Sub txtQLENUL_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtQLENUL.LostFocus
  216.         If IsNumeric(txtQLENUL.Text) Then
  217.             Dim I As Integer = CInt(txtQLENUL.Text)
  218.             If I < 1 Or I > 20 Then
  219.                 MessageBox.Show("QLENUL必须是[1~20]之间的整数!", "输入格式有误!")
  220.                 txtQLENUL.Text = 3
  221.             End If
  222.         Else
  223.             MessageBox.Show("QLENUL必须是[1~20]之间的整数!", "输入格式有误!")
  224.             txtQLENUL.Text = 3
  225.         End If
  226.     End Sub
  227.     Private Sub txtUPDWNRATIO_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtUPDWNRATIO.LostFocus
  228.         If IsNumeric(txtUPDWNRATIO.Text) Then
  229.             Dim I As Integer = CInt(txtUPDWNRATIO.Text)
  230.             If I < 100 Or I > 700 Then
  231.                 MessageBox.Show("UPDWNRATIO必须是[100~700]之间的整数!", "输入格式有误!")
  232.                 txtUPDWNRATIO.Text = 200
  233.             End If
  234.         Else
  235.             MessageBox.Show("UPDWNRATIO必须是[100~700]之间的整数!", "输入格式有误!")
  236.             txtUPDWNRATIO.Text = 200
  237.         End If
  238.     End Sub
  239.     Private Sub btnOutPutMSData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOutPutMSData.Click
  240.         MS_DPC.calculate_MS_DPC(txtSSDESUL.Text, txtQDESUL.Text, txtLCOMPUL.Text, txtQCOMPUL.Text, _
  241.                            txtSSLENUL.Text, txtQLENUL.Text, _
  242.                            txtMSPWRMAX.Text, txtMSPWRMIN.Text, txtMSTXPWR.Text)
  243.         CreatMyBook()
  244.         MyExcel.Visible = False
  245.         DPC_Arr = MS_DPC.MS_DPC_Arr
  246.         'AxTChart1.Series(0).Clear()
  247.         With AxTChart1.Series(0).asSurface
  248.             For I As Integer = 0 To 7
  249.                 For J As Integer = 0 To 63
  250.                     .AddXYZ(-J, DPC_Arr(I, J), I, J - 110, I)
  251.                 Next
  252.             Next
  253.         End With
  254.         MySheet = MyExcel.ActiveSheet
  255.         With MySheet
  256.             For I As Integer = 0 To 7
  257.                 .Cells(1, I + 2) = I
  258.                 If I = 0 Then
  259.                     For J As Integer = 0 To 63
  260.                         .Cells(J + 2, 1).value = J - 110
  261.                     Next
  262.                 End If
  263.                 For J As Integer = 0 To 63
  264.                     .Cells(J + 2, I + 2).value = DPC_Arr(I, J)
  265.                 Next
  266.             Next
  267.         End With
  268.         With MySheet.Range("A1")
  269.             .Borders(Microsoft.Office.Interop.Excel.XlBordersIndex.xlDiagonalDown).LineStyle = 1
  270.             .Borders(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft).LineStyle = 1
  271.             .Borders(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop).LineStyle = 1
  272.             .Borders(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom).LineStyle = 1
  273.             .Borders(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight).LineStyle = 1
  274.             .FormulaR1C1 = "              信号质量" & Chr(10) & "信号强度"
  275.         End With
  276.         MySheet.Range("B1").Select()
  277.         MySheet.Rows("1:1").RowHeight = 24
  278.         MySheet.Columns("A:A").ColumnWidth = 24
  279.         MyExcel.Visible = True
  280.     End Sub
  281.     Sub CreatMyBook()
  282.         On Error GoTo MyExcelIsClose
  283.         MyBook = MyExcel.Workbooks.Add
  284.         Exit Sub
  285. MyExcelIsClose:
  286.         MyExcel = New Microsoft.Office.Interop.Excel.Application
  287.         'MyExcel.Caption = "RAOX 报表"      'left$(Base64Decode("UkFPWCCxqLHt"),7)
  288.         MyBook = MyExcel.Workbooks.Add
  289.     End Sub
  290.     Private Sub btnMSSaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMSSaveAs.Click, btnBTSSaveAs.Click, btnGPRSMSSaveAs.Click
  291.         Dim FileN As String, SaveType As String
  292.         FileN = ""
  293.         SaveFileDialog1.Filter = "JPG (*.JPG)|*.JPG|BMP (*.BMP)|*.BMP"
  294.         SaveFileDialog1.FileName = ""
  295.         SaveFileDialog1.ShowDialog()
  296.         FileN = SaveFileDialog1.FileName
  297.         If SaveFileDialog1.FilterIndex = 1 Then
  298.             SaveType = "JPG"
  299.         Else
  300.             SaveType = "BMP"
  301.         End If
  302.         If Len(FileN) = 0 Then
  303.             Exit Sub
  304.         Else
  305.             If UCase(Microsoft.VisualBasic.Right(FileN, 3)) <> SaveType Then FileN = FileN & "." & SaveType
  306.             If Dir(FileN) <> "" Then
  307.                 If MsgBox("文件" & FileN & "已经存在!" & vbNewLine & "是否覆盖原有文件?", vbYesNo) = vbYes Then
  308.                     Kill(FileN)
  309.                 Else
  310.                     Exit Sub
  311.                 End If
  312.             End If
  313.         End If
  314.         If UCase(Microsoft.VisualBasic.Right(FileN, 3)) = "JPG" Then
  315.             AxTChart1.Export.asJPEG.Height = AxTChart1.Height
  316.             AxTChart1.Export.asJPEG.Width = AxTChart1.Width
  317.             AxTChart1.Export.asJPEG.CompressionQuality = 100
  318.             AxTChart1.Export.asJPEG.SaveToFile(FileN)
  319.         Else
  320.             AxTChart1.Export.asBMP.Height = AxTChart1.Height
  321.             AxTChart1.Export.asBMP.Width = AxTChart1.Width
  322.             AxTChart1.Export.asBMP.SaveToFile(FileN)
  323.         End If
  324.     End Sub
  325.     Private Sub txtSSDESDL_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtSSDESDL.LostFocus
  326.         If IsNumeric(txtSSDESDL.Text) Then
  327.             Dim I As Integer = CInt(txtSSDESDL.Text)
  328.             If I < 47 Or I > 110 Then
  329.                 MessageBox.Show("SSDESDL必须是[47~110]之间的整数!", "输入格式有误!")
  330.                 txtSSDESDL.Text = 90
  331.             End If
  332.         Else
  333.             MessageBox.Show("SSDESDL必须是[47~110]之间的整数!", "输入格式有误!")
  334.             txtSSDESDL.Text = 90
  335.         End If
  336.     End Sub
  337.     Private Sub txtSSDESDL_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSSDESDL.TextChanged
  338.     End Sub
  339.     Private Sub txtQDESDL_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtQDESDL.LostFocus
  340.         If IsNumeric(txtQDESDL.Text) Then
  341.             Dim I As Integer = CInt(txtQDESDL.Text)
  342.             If I < 0 Or I > 76 Then
  343.                 MessageBox.Show("QDESDL必须是[0~76]之间的整数!", "输入格式有误!")
  344.                 txtSSDESDL.Text = 30
  345.             End If
  346.         Else
  347.             MessageBox.Show("QDESDL必须是[0~76]之间的整数!", "输入格式有误!")
  348.             txtSSDESDL.Text = 30
  349.         End If
  350.     End Sub
  351.     Private Sub txtQLENDL_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtQLENDL.LostFocus
  352.         If IsNumeric(txtQLENDL.Text) Then
  353.             Dim I As Integer = CInt(txtQLENDL.Text)
  354.             If I < 1 Or I > 20 Then
  355.                 MessageBox.Show("QLENDL必须是[1~20]之间的整数!", "输入格式有误!")
  356.                 txtQLENDL.Text = 3
  357.             End If
  358.         Else
  359.             MessageBox.Show("QLENDL必须是[1~20]之间的整数!", "输入格式有误!")
  360.             txtQLENDL.Text = 3
  361.         End If
  362.     End Sub
  363.     Private Sub txtBSPWRMIN_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtBSPWRMIN.LostFocus
  364.         If IsNumeric(txtBSPWRMIN.Text) Then
  365.             Dim I As Integer = CInt(txtBSPWRMIN.Text)
  366.             If I < -20 Or I > 50 Then
  367.                 MessageBox.Show("BSPWRMIN必须是[-20~50]之间的整数!", "输入格式有误!")
  368.                 txtBSPWRMIN.Text = -20
  369.             End If
  370.         Else
  371.             MessageBox.Show("BSPWRMIN必须是[-20~50]之间的整数!", "输入格式有误!")
  372.             txtBSPWRMIN.Text = -20
  373.         End If
  374.     End Sub
  375.     Private Sub txtBSPWR_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtBSPWR.LostFocus
  376.         If IsNumeric(txtBSPWR.Text) Then
  377.             Dim I As Integer = CInt(txtBSPWR.Text)
  378.             If I < 0 Or I > 80 Then
  379.                 MessageBox.Show("BSPWR必须是[0~80]之间的整数!", "输入格式有误!")
  380.                 txtBSPWR.Text = 45
  381.             End If
  382.         Else
  383.             MessageBox.Show("BSPWR必须是[0~80]之间的整数!", "输入格式有误!")
  384.             txtBSPWR.Text = 45
  385.         End If
  386.     End Sub
  387.     Private Sub txtLCOMPDL_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtLCOMPDL.LostFocus
  388.         If IsNumeric(txtLCOMPDL.Text) Then
  389.             Dim I As Integer = CInt(txtLCOMPDL.Text)
  390.             If I < 0 Or I > 100 Then
  391.                 MessageBox.Show("LCOMPDL必须是[0~100]之间的整数!", "输入格式有误!")
  392.                 txtLCOMPDL.Text = 5
  393.             End If
  394.         Else
  395.             MessageBox.Show("LCOMPDL必须是[0~100]之间的整数!", "输入格式有误!")
  396.             txtLCOMPDL.Text = 5
  397.         End If
  398.     End Sub
  399.     Private Sub txtQCOMPDL_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtQCOMPDL.LostFocus
  400.         If IsNumeric(txtQCOMPDL.Text) Then
  401.             Dim I As Integer = CInt(txtQCOMPDL.Text)
  402.             If I < 0 Or I > 100 Then
  403.                 MessageBox.Show("QCOMPDL必须是[0~100]之间的整数!", "输入格式有误!")
  404.                 txtQCOMPDL.Text = 55
  405.             End If
  406.         Else
  407.             MessageBox.Show("QCOMPDL必须是[0~100]之间的整数!", "输入格式有误!")
  408.             txtQCOMPDL.Text = 55
  409.         End If
  410.     End Sub
  411.     Private Sub txtSSLENDL_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtSSLENDL.LostFocus
  412.         If IsNumeric(txtSSLENDL.Text) Then
  413.             Dim I As Integer = CInt(txtSSLENDL.Text)
  414.             If I < 3 Or I > 15 Then
  415.                 MessageBox.Show("SSLENDL必须是[3~15]之间的整数!", "输入格式有误!")
  416.                 txtSSLENDL.Text = 3
  417.             End If
  418.         Else
  419.             MessageBox.Show("SSLENDL必须是[3~15]之间的整数!", "输入格式有误!")
  420.             txtSSLENDL.Text = 3
  421.         End If
  422.     End Sub
  423.     Private Sub txtNf_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNf.LostFocus
  424.         If IsNumeric(txtNf.Text) Then
  425.             Dim I As Integer = CInt(txtNf.Text)
  426.             If I < 1 Or I > 16 Then
  427.                 MessageBox.Show("Nf必须是[1~16]之间的整数!", "输入格式有误!")
  428.                 txtNf.Text = 1
  429.             End If
  430.         Else
  431.             MessageBox.Show("Nf必须是[1~16]之间的整数!", "输入格式有误!")
  432.             txtNf.Text = 1
  433.         End If
  434.     End Sub
  435.     Private Sub txtUPDWNRATIO1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtUPDWNRATIO1.LostFocus
  436.         If IsNumeric(txtUPDWNRATIO1.Text) Then
  437.             Dim I As Integer = CInt(txtUPDWNRATIO1.Text)
  438.             If I < 100 Or I > 700 Then
  439.                 MessageBox.Show("UPDWNRATIO必须是[100~700]之间的整数!", "输入格式有误!")
  440.                 txtUPDWNRATIO1.Text = 200
  441.             End If
  442.         Else
  443.             MessageBox.Show("UPDWNRATIO必须是[100~700]之间的整数!", "输入格式有误!")
  444.             txtUPDWNRATIO1.Text = 200
  445.         End If
  446.     End Sub
  447.     Private Sub txtBSTXPWR_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtBSTXPWR.LostFocus
  448.         If IsNumeric(txtBSTXPWR.Text) Then
  449.             Dim I As Integer = CInt(txtBSTXPWR.Text)
  450.             If I < 0 Or I > 80 Then
  451.                 MessageBox.Show("BSTXPWR必须是[0~80]之间的整数!", "输入格式有误!")
  452.                 txtBSTXPWR.Text = 45
  453.             End If
  454.         Else
  455.             MessageBox.Show("BSTXPWR必须是[0~80]之间的整数!", "输入格式有误!")
  456.             txtBSTXPWR.Text = 45
  457.         End If
  458.     End Sub
  459.     Private Sub txtBSPWRT_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtBSPWRT.LostFocus
  460.         If IsNumeric(txtBSPWRT.Text) Then
  461.             Dim I As Integer = CInt(txtBSPWRT.Text)
  462.             If I < 0 Or I > 80 Then
  463.                 MessageBox.Show("BSPWRT必须是[0~80]之间的整数!", "输入格式有误!")
  464.                 txtBSPWRT.Text = 45
  465.             End If
  466.         Else
  467.             MessageBox.Show("BSPWRT必须是[0~80]之间的整数!", "输入格式有误!")
  468.             txtBSPWRT.Text = 45
  469.         End If
  470.     End Sub
  471.     Private Sub btnBTSChart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBTSChart.Click
  472.         BTS_DPC.calculate_BTS_DPC(txtSSDESDL.Text, txtQDESDL.Text, txtLCOMPDL.Text, txtQCOMPDL.Text, _
  473.                     txtSSLENDL.Text, txtQLENDL.Text, _
  474.                    txtBSPWRMIN.Text, txtBSPWRT.Text, txtBSPWR.Text, txtBSTXPWR.Text, txtNf.Text)
  475.         DPC_Arr = BTS_DPC.BTS_DPC_Arr
  476.         AxTChart1.Series(0).Clear()
  477.         AxTChart1.Series(1).Clear()
  478.         AxTChart1.Series(1).asLine.Pointer.Visible = False
  479.         With AxTChart1.Series(0).asSurface
  480.             For I As Integer = 0 To 7
  481.                 For J As Integer = 0 To 63
  482.                     .AddXYZ(-J, DPC_Arr(I, J), I, J - 110, I)
  483.                 Next
  484.             Next
  485.         End With
  486.         AxTChart1.Axis.Left.Automatic = True
  487.         AxTChart1.Axis.Left.AutomaticMinimum = True
  488.         AxTChart1.Axis.Left.AutomaticMaximum = True
  489.         AxTChart1.Axis.Left.Title.Caption = "功率调整值(dB)"
  490.         AxTChart1.Axis.Bottom.Title.Caption = "信号强度(dBm)"
  491.         AxTChart1.Axis.Depth.Title.Caption = "信号质量(dtpu)"
  492.         AxTChart1.Aspect.View3D = True
  493.         AxTChart1.Header.Text.Clear()
  494.         AxTChart1.Header.Text.Add("基站动态功率控制示意图")
  495.         AxTChart1.SubHeader.Text.Clear()
  496.         AxTChart1.SubHeader.Text.Add("                      主要参数:SSDESDL=" & txtSSDESDL.Text & ",QDESDL=" & txtQDESDL.Text & ",LCOMPDL=" & txtLCOMPDL.Text & ",QCOMPDL=" & txtQCOMPDL.Text)
  497.     End Sub
  498.     Private Sub btnOutPutBTSData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOutPutBTSData.Click
  499.         BTS_DPC.calculate_BTS_DPC(txtSSDESDL.Text, txtQDESDL.Text, txtLCOMPDL.Text, txtQCOMPDL.Text, _
  500.                     txtSSLENDL.Text, txtQLENDL.Text, _
  501.                    txtBSPWRMIN.Text, txtBSPWRT.Text, txtBSPWR.Text, txtBSTXPWR.Text, txtNf.Text)
  502.         DPC_Arr = BTS_DPC.BTS_DPC_Arr
  503.         CreatMyBook()
  504.         MyExcel.Visible = False
  505.         'AxTChart1.Series(0).Clear()
  506.         With AxTChart1.Series(0).asSurface
  507.             For I As Integer = 0 To 7
  508.                 For J As Integer = 0 To 63
  509.                     .AddXYZ(-J, DPC_Arr(I, J), I, J - 110, I)
  510.                 Next
  511.             Next
  512.         End With
  513.         MySheet = MyExcel.ActiveSheet
  514.         With MySheet
  515.             For I As Integer = 0 To 7
  516.                 .Cells(1, I + 2) = I
  517.                 If I = 0 Then
  518.                     For J As Integer = 0 To 63
  519.                         .Cells(J + 2, 1).value = J - 110
  520.                     Next
  521.                 End If
  522.                 For J As Integer = 0 To 63
  523.                     .Cells(J + 2, I + 2).value = DPC_Arr(I, J)
  524.                 Next
  525.             Next
  526.         End With
  527.         With MySheet.Range("A1")
  528.             .Borders(Microsoft.Office.Interop.Excel.XlBordersIndex.xlDiagonalDown).LineStyle = 1
  529.             .Borders(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft).LineStyle = 1
  530.             .Borders(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop).LineStyle = 1
  531.             .Borders(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom).LineStyle = 1
  532.             .Borders(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight).LineStyle = 1
  533.             .FormulaR1C1 = "              信号质量" & Chr(10) & "信号强度"
  534.         End With
  535.         MySheet.Rows("1:1").RowHeight = 24
  536.         MySheet.Columns("A:A").ColumnWidth = 24
  537.         MySheet.Range("B1").Select()
  538.         MyExcel.Visible = True
  539.     End Sub
  540.     Private Sub txtMSPWRMAX_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtMSPWRMAX.LostFocus
  541.         If IsNumeric(txtMSPWRMAX.Text) Then
  542.             Dim I As Integer = CInt(txtMSPWRMAX.Text)
  543.             If I < 0 Or I > 33 Then
  544.                 MessageBox.Show("MSPWRMAX必须是[0~33]之间的整数!", "输入格式有误!")
  545.                 txtMSPWRMAX.Text = 33
  546.             End If
  547.         Else
  548.             MessageBox.Show("MSPWRMAX必须是[0~33]之间的整数!", "输入格式有误!")
  549.             txtMSPWRMAX.Text = 33
  550.         End If
  551.     End Sub
  552.     Private Sub txtMSPWRMIN_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtMSPWRMIN.LostFocus
  553.         If IsNumeric(txtMSPWRMIN.Text) Then
  554.             Dim I As Integer = CInt(txtMSPWRMIN.Text)
  555.             If I < 0 Or I > 14 Then
  556.                 MessageBox.Show("MSPWRMIN必须是[0~14]之间的整数!", "输入格式有误!")
  557.                 txtMSTXPWR.Text = 5
  558.             End If
  559.         Else
  560.             MessageBox.Show("MSPWRMIN必须是[0~14]之间的整数!", "输入格式有误!")
  561.             txtMSPWRMIN.Text = 5
  562.         End If
  563.     End Sub
  564.     Private Sub txtMSTXPWR_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtMSTXPWR.LostFocus
  565.         If IsNumeric(txtMSTXPWR.Text) Then
  566.             Dim I As Integer = CInt(txtMSTXPWR.Text)
  567.             If I < 0 Or I > 33 Then
  568.                 MessageBox.Show("MSTXPWR必须是[0~33]之间的整数!", "输入格式有误!")
  569.                 txtMSTXPWR.Text = 33
  570.             End If
  571.         Else
  572.             MessageBox.Show("MSTXPWR必须是[0~33]之间的整数!", "输入格式有误!")
  573.             txtMSTXPWR.Text = 33
  574.         End If
  575.     End Sub
  576.     Private Sub CBcalculateMS_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CBcalculateMS.CheckedChanged
  577.         If CBcalculateMS.Checked = True Then
  578.             cmbSSMS.Enabled = True
  579.             cmbSQMS.Enabled = True
  580.         Else
  581.             cmbSSMS.Enabled = False
  582.             cmbSQMS.Enabled = False
  583.         End If
  584.     End Sub
  585.     Private Sub cmbSSMS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbSSMS.SelectedIndexChanged
  586.         calculateMS()
  587.     End Sub
  588.     Private Sub calculateMS()
  589.         If Len(cmbSSMS.Text) = 0 Or Len(cmbSQMS.Text) = 0 Then
  590.             txtPOMS.Text = ""
  591.         Else
  592.             If Not IsNumeric(cmbSSMS.Text) Then
  593.                 MessageBox.Show("信号强度必须是数字!", "提示!")
  594.                 txtPOMS.Text = ""
  595.                 Exit Sub
  596.             End If
  597.             If Not IsNumeric(cmbSQMS.Text) Then
  598.                 MessageBox.Show("信号质量必须是数字!", "提示!")
  599.                 txtPOMS.Text = ""
  600.                 Exit Sub
  601.             End If
  602.             If CInt(cmbSSMS.Text) > -47 Or CInt(cmbSSMS.Text) < -110 Then
  603.                 MessageBox.Show("信号强度必须在[-47~-110]之间", "提示!")
  604.                 txtPOMS.Text = ""
  605.                 Exit Sub
  606.             End If
  607.             If CInt(cmbSQMS.Text) > 7 Or CInt(cmbSQMS.Text) < 0 Then
  608.                 MessageBox.Show("信号质量必须在[0~7]之间", "提示!")
  609.                 txtPOMS.Text = ""
  610.                 Exit Sub
  611.             End If
  612.             MS_DPC.calculate_MS_DPC(txtSSDESUL.Text, txtQDESUL.Text, txtLCOMPUL.Text, txtQCOMPUL.Text, _
  613.                                txtSSLENUL.Text, txtQLENUL.Text, _
  614.                                txtMSPWRMAX.Text, txtMSPWRMIN.Text, txtMSTXPWR.Text)
  615.             DPC_Arr = MS_DPC.MS_DPC_Arr
  616.             txtPOMS.Text = txtPOMS.Text
  617.             txtPOMS.Text = DPC_Arr(CInt(cmbSQMS.Text), CInt(cmbSSMS.Text) + 110)
  618.         End If
  619.     End Sub
  620.     Private Sub cmbSQMS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbSQMS.SelectedIndexChanged
  621.         calculateMS()
  622.     End Sub
  623.     Private Sub CBcalculateBTS_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CBcalculateBTS.CheckedChanged
  624.         If CBcalculateBTS.Checked = True Then
  625.             cmbSSBTS.Enabled = True
  626.             cmbSQBTS.Enabled = True
  627.         Else
  628.             cmbSSBTS.Enabled = False
  629.             cmbSQBTS.Enabled = False
  630.         End If
  631.     End Sub
  632.     Private Sub cmbSSBTS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbSSBTS.SelectedIndexChanged
  633.         calculateBTS()
  634.     End Sub
  635.     Private Sub cmbSQBTS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbSQBTS.SelectedIndexChanged
  636.         calculateBTS()
  637.     End Sub
  638.     Private Sub calculateBTS()
  639.         If Len(cmbSSBTS.Text) = 0 Or Len(cmbSQBTS.Text) = 0 Then
  640.             txtPOBTS.Text = ""
  641.         Else
  642.             If Not IsNumeric(cmbSSBTS.Text) Then
  643.                 MessageBox.Show("信号强度必须是数字!", "提示!")
  644.                 txtPOBTS.Text = ""
  645.                 Exit Sub
  646.             End If
  647.             If Not IsNumeric(cmbSQBTS.Text) Then
  648.                 MessageBox.Show("信号质量必须是数字!", "提示!")
  649.                 txtPOBTS.Text = ""
  650.                 Exit Sub
  651.             End If
  652.             If CInt(cmbSSBTS.Text) > -47 Or CInt(cmbSSBTS.Text) < -110 Then
  653.                 MessageBox.Show("信号强度必须在[-47~-110]之间", "提示!")
  654.                 txtPOBTS.Text = ""
  655.                 Exit Sub
  656.             End If
  657.             If CInt(cmbSQBTS.Text) > 7 Or CInt(cmbSQBTS.Text) < 0 Then
  658.                 MessageBox.Show("信号质量必须在[0~7]之间", "提示!")
  659.                 txtPOBTS.Text = ""
  660.                 Exit Sub
  661.             End If
  662.             BTS_DPC.calculate_BTS_DPC(txtSSDESDL.Text, txtQDESDL.Text, txtLCOMPDL.Text, txtQCOMPDL.Text, _
  663.                         txtSSLENDL.Text, txtQLENDL.Text, _
  664.                        txtBSPWRMIN.Text, txtBSPWRT.Text, txtBSPWR.Text, txtBSTXPWR.Text, txtNf.Text)
  665.             DPC_Arr = BTS_DPC.BTS_DPC_Arr
  666.             txtPOBTS.Text = txtPOBTS.Text
  667.             txtPOBTS.Text = DPC_Arr(CInt(cmbSQBTS.Text), CInt(cmbSSBTS.Text) + 110)
  668.         End If
  669.     End Sub
  670.     Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
  671.         If TabControl1.SelectedIndex = 4 Then
  672.             TabControl1.Height = Me.Height + 545 - 607
  673.             TabControl1.Width = Me.Width + 917 - 968
  674.             TabControl1.Refresh()
  675.         Else
  676.             If TabControl1.Height <> 200 Then TabControl1.Height = 200
  677.             If TabControl1.Width <> 684 Then TabControl1.Width = 684
  678.         End If
  679.         Select Case TabControl1.SelectedIndex
  680.             Case 0
  681.                 Call btnMSChart_Click(sender, e)
  682.             Case 1
  683.                 Call btnBTSChart_Click(sender, e)
  684.             Case 2
  685.                 Call btnGPRS_MS_2D_Chart_Click(sender, e)
  686.             Case 3
  687.         End Select
  688.     End Sub
  689.     Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
  690.         'Me.AxTChart1.Height = Me.Height - 270
  691.         If TabControl1.SelectedIndex = 4 Then
  692.             TabControl1.Height = Me.Height + 545 - 607
  693.             TabControl1.Width = Me.Width + 917 - 968
  694.             TabControl1.Refresh()
  695.         Else
  696.             If TabControl1.Height <> 200 Then TabControl1.Height = 200
  697.             If TabControl1.Width <> 684 Then TabControl1.Width = 684
  698.         End If
  699.     End Sub
  700.     Private Sub NumTextALPHA_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumTextALPHA.TextChanged
  701.         On Error Resume Next
  702.         TextBoxALPHA_p10.Text = CSng(NumTextALPHA.Text) / 10
  703.     End Sub
  704.     Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
  705.         Select Case ComboBox1.Text
  706.             Case "GSM800", "GSM900"
  707.                 TextBoxGAMMA0.Text = 39
  708.             Case "GSM1800", "GSM1900"
  709.                 TextBoxGAMMA0.Text = 36
  710.             Case Else
  711.                 TextBoxGAMMA0.Text = 0
  712.         End Select
  713.     End Sub
  714.     Private Sub btnGPRS_MS_3D_Chart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGPRS_MS_3D_Chart.Click
  715.         Me.GPRS_MS_DPC.ALPHA = TextBoxALPHA_p10.Text
  716.         Me.GPRS_MS_DPC.CCHPWR = NumTextCCHPWR.Text
  717.         Me.GPRS_MS_DPC.CellType = ComboBox1.Text
  718.         'Me.GPRS_MS_DPC.GAMMA = NumTextGAMMA.Text
  719.         Me.GPRS_MS_DPC.GAMMA0 = TextBoxGAMMA0.Text
  720.         Me.GPRS_MS_DPC.Pmax = NumTextPmax.Text
  721.         Me.GPRS_MS_DPC.Pmin = NumTextPmin.Text
  722.         Me.GPRS_MS_DPC.calculate_GPRS_MS_DPC()
  723.         GPRS_DPC_Arr = Me.GPRS_MS_DPC.GPRS_BTS_DPC_Arr
  724.         AxTChart1.Series(0).Clear()
  725.         AxTChart1.Series(1).Clear()
  726.         AxTChart1.Series(1).asLine.Pointer.Visible = False
  727.         With AxTChart1.Series(0).asSurface
  728.             For I As Integer = 0 To 30
  729.                 For J As Integer = 0 To 63
  730.                     If I >= 32 Then
  731.                         .AddXYZ(-J, 33, I, J - 110, I * 2)
  732.                     Else
  733.                         .AddXYZ(-J, GPRS_DPC_Arr(I, J), I, J - 110, I * 2)
  734.                     End If
  735.                 Next
  736.             Next
  737.         End With
  738.         AxTChart1.Axis.Left.Automatic = True
  739.         AxTChart1.Axis.Left.AutomaticMinimum = True
  740.         AxTChart1.Axis.Left.AutomaticMaximum = True
  741.         AxTChart1.Axis.Left.Title.Caption = "手机发射功率(dBm)"
  742.         AxTChart1.Axis.Bottom.Title.Caption = "信号强度(dBm)"
  743.         AxTChart1.Axis.Depth.Title.Caption = "GAMMA/2"
  744.         If AxTChart1.Aspect.View3D = False Then AxTChart1.Aspect.View3D = True
  745.         AxTChart1.Header.Text.Clear()
  746.         AxTChart1.Header.Text.Add("GPRS/EGPRS手机动态功率控制示意图")
  747.         AxTChart1.SubHeader.Text.Clear()
  748.         AxTChart1.SubHeader.Text.Add("                      主要参数:ALPHA=" & TextBoxALPHA_p10.Text * 10 & ",小区类型为" & ComboBox1.Text & ",Pmax=" & NumTextPmax.Text & ",Pmin=" & NumTextPmin.Text)
  749.     End Sub
  750.     Private Sub btnGPRS_MS_2D_Chart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGPRS_MS_2D_Chart.Click
  751.         '平面图
  752.         AxTChart1.Aspect.View3D = False
  753.         Me.GPRS_MS_DPC.ALPHA = TextBoxALPHA_p10.Text
  754.         Me.GPRS_MS_DPC.CCHPWR = NumTextCCHPWR.Text
  755.         Me.GPRS_MS_DPC.CellType = ComboBox1.Text
  756.         Me.GPRS_MS_DPC.GAMMA = NumTextGAMMA.Text
  757.         Me.GPRS_MS_DPC.GAMMA0 = TextBoxGAMMA0.Text
  758.         Me.GPRS_MS_DPC.Pmax = NumTextPmax.Text
  759.         Me.GPRS_MS_DPC.Pmin = NumTextPmin.Text
  760.         AxTChart1.Series(0).Clear()
  761.         AxTChart1.Series(1).Clear()
  762.         With AxTChart1.Series(1)
  763.             For J As Integer = 0 To 63
  764.                 .Add(Int(Me.GPRS_MS_DPC.GPRS_DPC_BTS_dB(J - 110)), J - 110, J)
  765.             Next
  766.         End With
  767.         AxTChart1.Axis.Left.Automatic = False
  768.         AxTChart1.Axis.Left.AutomaticMinimum = False
  769.         AxTChart1.Axis.Left.AutomaticMaximum = False
  770.         On Error Resume Next
  771.         AxTChart1.Axis.Left.Minimum = NumTextPmin.Text
  772.         AxTChart1.Axis.Left.Maximum = NumTextPmax.Text
  773.         AxTChart1.Axis.Left.Minimum = NumTextPmin.Text
  774.         On Error GoTo 0
  775.         AxTChart1.Series(1).asLine.Pointer.Visible = True
  776.         AxTChart1.Axis.Left.Title.Caption = "手机发射功率(dBm)"
  777.         AxTChart1.Axis.Bottom.Title.Caption = "信号强度(dBm)"
  778.         AxTChart1.Header.Text.Clear()
  779.         AxTChart1.Header.Text.Add("GPRS/EGPRS手机动态功率控制示意图")
  780.         AxTChart1.SubHeader.Text.Clear()
  781.         AxTChart1.SubHeader.Text.Add("                      主要参数:ALPHA=" & TextBoxALPHA_p10.Text * 10 & ",GAMMA=" & NumTextGAMMA.Text & ",小区类型为" & ComboBox1.Text & ",Pmax=" & NumTextPmax.Text & ",Pmin=" & NumTextPmin.Text)
  782.     End Sub
  783.     Private Sub butMS_QDES_To_CI_dB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butMS_QDES_To_CI_dB.Click, butBTS_QDES_To_CI_dB.Click
  784.         'Des To CI in dB
  785.         Dim QDES_To_CI_dB As New clsDPC.DPC_SubFunction
  786.         AxTChart1.Aspect.View3D = False
  787.         AxTChart1.Series(0).Clear()
  788.         AxTChart1.Series(1).Clear()
  789.         With AxTChart1.Series(1)
  790.             For J As Integer = 0 To 76
  791.                 .Add(Int(QDES_To_CI_dB.dtquTodB(J)), J, J)
  792.             Next
  793.         End With
  794.         AxTChart1.Axis.Left.Automatic = False
  795.         AxTChart1.Axis.Left.AutomaticMinimum = False
  796.         AxTChart1.Axis.Left.AutomaticMaximum = False
  797.         On Error Resume Next
  798.         AxTChart1.Axis.Left.Minimum = -10
  799.         AxTChart1.Axis.Left.Maximum = 24
  800.         AxTChart1.Axis.Left.Minimum = -10
  801.         On Error GoTo 0
  802.         AxTChart1.Series(1).asLine.Pointer.Visible = True
  803.         AxTChart1.Axis.Left.Title.Caption = "C/I(dB)"
  804.         AxTChart1.Axis.Bottom.Title.Caption = "QDES(dtqu)"
  805.         AxTChart1.Header.Text.Clear()
  806.         AxTChart1.Header.Text.Add("QDES(dtqu)和C/I(dB)对照图")
  807.         AxTChart1.SubHeader.Text.Clear()
  808.         QDES_To_CI_dB = Nothing
  809.     End Sub
  810.     Private Sub btnGAMMA_SSDES_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGAMMA_SSDES.Click
  811.         Dim GAMMA0 As Integer = TextBoxGAMMA0.Text
  812.         Dim BSPWRB As Integer = NumTextBSPWRB.Text
  813.         AxTChart1.Aspect.View3D = False
  814.         AxTChart1.Series(0).Clear()
  815.         AxTChart1.Series(1).Clear()
  816.         With AxTChart1.Series(1)
  817.             For J As Integer = 0 To 62 Step 2
  818.                 .Add((GAMMA0 - J - 48 - BSPWRB), J, J)
  819.                 'Debug.Print(GAMMA0 - J - 48 - BSPWRB)
  820.             Next
  821.         End With
  822.         AxTChart1.Axis.Left.Automatic = False
  823.         AxTChart1.Axis.Left.AutomaticMinimum = False
  824.         AxTChart1.Axis.Left.AutomaticMaximum = False
  825.         On Error Resume Next
  826.         AxTChart1.Axis.Left.Minimum = -120
  827.         AxTChart1.Axis.Left.Maximum = -47
  828.         AxTChart1.Axis.Left.Minimum = -120
  829.         AxTChart1.Series(1).asLine.Pointer.Visible = True
  830.         AxTChart1.Axis.Left.Title.Caption = "SSDES(dBm)"
  831.         AxTChart1.Axis.Bottom.Title.Caption = "GAMMA"
  832.         AxTChart1.Header.Text.Clear()
  833.         AxTChart1.Header.Text.Add("GAMMA和SSDES(dBm)对照图")
  834.         AxTChart1.SubHeader.Text.Clear()
  835.     End Sub
  836.     Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged
  837.         If RadioButton1.Checked = True Then
  838.             NumTextGAMMA.Enabled = True
  839.             TextBoxSStarget.Enabled = False
  840.         Else
  841.             NumTextGAMMA.Enabled = False
  842.             TextBoxSStarget.Enabled = True
  843.         End If
  844.     End Sub
  845.     Private Sub NumTextGAMMA_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumTextGAMMA.TextChanged
  846.         On Error Resume Next
  847.         If IsCodeTrigger = False Then
  848.             IsCodeTrigger = True
  849.             TextBoxSStarget.Text = (TextBoxGAMMA0.Text - NumTextGAMMA.Text - 48 - NumTextBSPWRB.Text) & "dBm"
  850.         End If
  851.         IsCodeTrigger = False
  852.     End Sub
  853.     Private Sub TextBoxSStarget_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBoxSStarget.KeyDown
  854.         Dim SS As Integer
  855.         On Error Resume Next
  856.         SS = CInt(Replace(TextBoxSStarget.Text, "dBm", ""))
  857.         Select Case e.KeyValue
  858.             Case 40 '下
  859.                 SS = SS - 1
  860.             Case 38 '上
  861.                 SS = SS + 1
  862.         End Select
  863.         If SS > -47 Then SS = -47
  864.         If SS < -110 Then SS = -110
  865.         TextBoxSStarget.Text = SS & "dBm"
  866.     End Sub
  867.     Private Sub TextBoxSStarget_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBoxSStarget.TextChanged
  868.         On Error Resume Next
  869.         If IsCodeTrigger = False Then
  870.             IsCodeTrigger = True
  871.             Dim SS As Integer
  872.             SS = CInt(Replace(TextBoxSStarget.Text, "dBm", ""))
  873.             If TextBoxGAMMA0.Text - 48 - NumTextBSPWRB.Text - SS < 0 Then
  874.                 NumTextGAMMA.Text = 0
  875.             Else
  876.                 NumTextGAMMA.Text = CInt(TextBoxGAMMA0.Text) - 48 - CInt(NumTextBSPWRB.Text) - SS
  877.             End If
  878.         End If
  879.             IsCodeTrigger = False
  880.     End Sub
  881.     Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
  882.         LinkLabel1.LinkVisited = True
  883.         'System.Diagnostics.Process.Start("http://www.lisyo.com")
  884.         Process.Start("mailto:bc_yejr@163.com")
  885.     End Sub
  886.     Private Sub Link()
  887.         System.Diagnostics.Process.Start("http://www.lisyo.com")
  888.         Process.Start("mailto:bc_yejr@163.com")
  889.     End Sub
  890.     Private Sub LinkLabel2_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel2.LinkClicked
  891.         LinkLabel2.LinkVisited = True
  892.         System.Diagnostics.Process.Start("http://www.lisyo.com")
  893.     End Sub
  894. End Class