📄 chartds2770.bas
字号:
Attribute VB_Name = "ChartDS2770"
Option Explicit
Dim Row As Integer
Dim Column As Integer
Public VoltageData(500) As Variant
Public HighVolt(500) As Variant
Public TempData(500) As Variant
Public HighTemp(500) As Variant
Public CurrentData(500) As Variant
Public HighCurrent(500) As Variant
Public LowCurrent(500) As Variant
Public CapacityData(500) As Variant
Public HighCapacity(500) As Variant
Public Sub UpdateMeter() 'Updates Fuel Pack Meter
Dim PtrX As Single
PtrX = RARC
Select Case PtrX
Case Is < 0
frmEvalKit.FuelGaugeNeedle.X1 = 520
frmEvalKit.FuelGaugeNeedle.Y1 = 1560
Case 0 To 0.1
frmEvalKit.FuelGaugeNeedle.X1 = 520 + (400 * PtrX)
frmEvalKit.FuelGaugeNeedle.Y1 = 1560 - (3000 * PtrX)
Case Is <= 0.2
frmEvalKit.FuelGaugeNeedle.X1 = 560 + (1200 * (PtrX - 0.1))
frmEvalKit.FuelGaugeNeedle.Y1 = 1260 - (2800 * (PtrX - 0.1))
Case Is <= 0.3
frmEvalKit.FuelGaugeNeedle.X1 = 680 + (2400 * (PtrX - 0.2))
frmEvalKit.FuelGaugeNeedle.Y1 = 980 - (2400 * (PtrX - 0.2))
Case Is <= 0.4
frmEvalKit.FuelGaugeNeedle.X1 = 920 + (2800 * (PtrX - 0.3))
frmEvalKit.FuelGaugeNeedle.Y1 = 740 - (1200 * (PtrX - 0.3))
Case Is <= 0.5
frmEvalKit.FuelGaugeNeedle.X1 = 1200 + (2400 * (PtrX - 0.4))
frmEvalKit.FuelGaugeNeedle.Y1 = 620 - (200 * (PtrX - 0.4))
Case Is <= 0.6
frmEvalKit.FuelGaugeNeedle.X1 = 1440 + (2400 * (PtrX - 0.5))
frmEvalKit.FuelGaugeNeedle.Y1 = 600 + (200 * (PtrX - 0.5))
Case Is <= 0.7
frmEvalKit.FuelGaugeNeedle.X1 = 1680 + (2800 * (PtrX - 0.6))
frmEvalKit.FuelGaugeNeedle.Y1 = 620 + (1200 * (PtrX - 0.6))
Case Is <= 0.8
frmEvalKit.FuelGaugeNeedle.X1 = 1960 + (2400 * (PtrX - 0.7))
frmEvalKit.FuelGaugeNeedle.Y1 = 740 + (2400 * (PtrX - 0.7))
Case Is <= 0.9
frmEvalKit.FuelGaugeNeedle.X1 = 2200 + (1200 * (PtrX - 0.8))
frmEvalKit.FuelGaugeNeedle.Y1 = 980 + (2800 * (PtrX - 0.8))
Case Is <= 1
frmEvalKit.FuelGaugeNeedle.X1 = 2320 + (400 * (PtrX - 0.9))
frmEvalKit.FuelGaugeNeedle.Y1 = 1260 + (3000 * (PtrX - 0.9))
Case Is > 1
frmEvalKit.FuelGaugeNeedle.X1 = 2360
frmEvalKit.FuelGaugeNeedle.Y1 = 1560
End Select
End Sub
Sub VoltageMeter()
Dim Max As Single
Dim PtrX As Single
Max = 5
PtrX = (Voltage / Max)
Select Case PtrX
Case Is < 0
frmEvalKit.VoltNeedle.X1 = 360
frmEvalKit.VoltNeedle.Y1 = 1245
Case 0 To 0.1
frmEvalKit.VoltNeedle.X1 = 360 + (300 * PtrX)
frmEvalKit.VoltNeedle.Y1 = 1245 - (1600 * PtrX)
Case Is <= 0.2
frmEvalKit.VoltNeedle.X1 = 390 + (1100 * (PtrX - 0.1))
frmEvalKit.VoltNeedle.Y1 = 1085 - (2300 * (PtrX - 0.1))
Case Is <= 0.3
frmEvalKit.VoltNeedle.X1 = 500 + (1800 * (PtrX - 0.2))
frmEvalKit.VoltNeedle.Y1 = 855 - (1500 * (PtrX - 0.2))
Case Is <= 0.4
frmEvalKit.VoltNeedle.X1 = 680 + (1600 * (PtrX - 0.3))
frmEvalKit.VoltNeedle.Y1 = 705 - (800 * (PtrX - 0.3))
Case Is <= 0.5
frmEvalKit.VoltNeedle.X1 = 840 + (1600 * (PtrX - 0.4))
frmEvalKit.VoltNeedle.Y1 = 625 - (400 * (PtrX - 0.4))
Case Is <= 0.6
frmEvalKit.VoltNeedle.X1 = 1000 + (1600 * (PtrX - 0.5))
frmEvalKit.VoltNeedle.Y1 = 585 + (400 * (PtrX - 0.5))
Case Is <= 0.7
frmEvalKit.VoltNeedle.X1 = 1160 + (1600 * (PtrX - 0.6))
frmEvalKit.VoltNeedle.Y1 = 625 + (800 * (PtrX - 0.6))
Case Is <= 0.8
frmEvalKit.VoltNeedle.X1 = 1320 + (1800 * (PtrX - 0.7))
frmEvalKit.VoltNeedle.Y1 = 705 + (1500 * (PtrX - 0.7))
Case Is <= 0.9
frmEvalKit.VoltNeedle.X1 = 1500 + (1100 * (PtrX - 0.8))
frmEvalKit.VoltNeedle.Y1 = 885 + (2300 * (PtrX - 0.8))
Case Is <= 1
frmEvalKit.VoltNeedle.X1 = 1610 + (300 * (PtrX - 0.9))
frmEvalKit.VoltNeedle.Y1 = 1085 + (1600 * (PtrX - 0.9))
Case Is > 1
frmEvalKit.VoltNeedle.X1 = 1640
frmEvalKit.VoltNeedle.Y1 = 1245
End Select
End Sub
Sub CurrentMeter()
Dim Max As Single
Dim PtrX As Single
Max = 2
If Current < 0 Then
PtrX = -(Current / Max)
frmEvalKit.lblHalfCurrent.Caption = "-1"
frmEvalKit.lblFullCurrent.Caption = "-2"
Else
PtrX = (Current / Max)
frmEvalKit.lblHalfCurrent.Caption = "1"
frmEvalKit.lblFullCurrent.Caption = "2"
End If
Select Case PtrX
Case Is < 0
frmEvalKit.CurrentNeedle.X1 = 360
frmEvalKit.CurrentNeedle.Y1 = 1245
Case 0 To 0.1
frmEvalKit.CurrentNeedle.X1 = 360 + (300 * PtrX)
frmEvalKit.CurrentNeedle.Y1 = 1245 - (1600 * PtrX)
Case Is <= 0.2
frmEvalKit.CurrentNeedle.X1 = 390 + (1100 * (PtrX - 0.1))
frmEvalKit.CurrentNeedle.Y1 = 1085 - (2300 * (PtrX - 0.1))
Case Is <= 0.3
frmEvalKit.CurrentNeedle.X1 = 500 + (1800 * (PtrX - 0.2))
frmEvalKit.CurrentNeedle.Y1 = 855 - (1500 * (PtrX - 0.2))
Case Is <= 0.4
frmEvalKit.CurrentNeedle.X1 = 680 + (1600 * (PtrX - 0.3))
frmEvalKit.CurrentNeedle.Y1 = 705 - (800 * (PtrX - 0.3))
Case Is <= 0.5
frmEvalKit.CurrentNeedle.X1 = 840 + (1600 * (PtrX - 0.4))
frmEvalKit.CurrentNeedle.Y1 = 625 - (400 * (PtrX - 0.4))
Case Is <= 0.6
frmEvalKit.CurrentNeedle.X1 = 1000 + (1600 * (PtrX - 0.5))
frmEvalKit.CurrentNeedle.Y1 = 585 + (400 * (PtrX - 0.5))
Case Is <= 0.7
frmEvalKit.CurrentNeedle.X1 = 1160 + (1600 * (PtrX - 0.6))
frmEvalKit.CurrentNeedle.Y1 = 625 + (800 * (PtrX - 0.6))
Case Is <= 0.8
frmEvalKit.CurrentNeedle.X1 = 1320 + (1800 * (PtrX - 0.7))
frmEvalKit.CurrentNeedle.Y1 = 705 + (1500 * (PtrX - 0.7))
Case Is <= 0.9
frmEvalKit.CurrentNeedle.X1 = 1500 + (1100 * (PtrX - 0.8))
frmEvalKit.CurrentNeedle.Y1 = 885 + (2300 * (PtrX - 0.8))
Case Is <= 1
frmEvalKit.CurrentNeedle.X1 = 1610 + (300 * (PtrX - 0.9))
frmEvalKit.CurrentNeedle.Y1 = 1085 + (1600 * (PtrX - 0.9))
Case Is > 1
frmEvalKit.CurrentNeedle.X1 = 1640
frmEvalKit.CurrentNeedle.Y1 = 1245
End Select
End Sub
Sub CapacityMeter()
Dim Max As Single
Dim PtrX As Single
If BatteryCapacity = 0 Then
Max = 2000
PtrX = ACR / Max
Else
Max = BatteryCapacity
PtrX = ACR / BatteryCapacity
End If
Select Case PtrX
Case Is < 0
frmEvalKit.AccNeedle.X1 = 360
frmEvalKit.AccNeedle.Y1 = 1245
Case 0 To 0.1
frmEvalKit.AccNeedle.X1 = 360 + (300 * PtrX)
frmEvalKit.AccNeedle.Y1 = 1245 - (1600 * PtrX)
Case Is <= 0.2
frmEvalKit.AccNeedle.X1 = 390 + (1100 * (PtrX - 0.1))
frmEvalKit.AccNeedle.Y1 = 1085 - (2300 * (PtrX - 0.1))
Case Is <= 0.3
frmEvalKit.AccNeedle.X1 = 500 + (1800 * (PtrX - 0.2))
frmEvalKit.AccNeedle.Y1 = 855 - (1500 * (PtrX - 0.2))
Case Is <= 0.4
frmEvalKit.AccNeedle.X1 = 680 + (1600 * (PtrX - 0.3))
frmEvalKit.AccNeedle.Y1 = 705 - (800 * (PtrX - 0.3))
Case Is <= 0.5
frmEvalKit.AccNeedle.X1 = 840 + (1600 * (PtrX - 0.4))
frmEvalKit.AccNeedle.Y1 = 625 - (400 * (PtrX - 0.4))
Case Is <= 0.6
frmEvalKit.AccNeedle.X1 = 1000 + (1600 * (PtrX - 0.5))
frmEvalKit.AccNeedle.Y1 = 585 + (400 * (PtrX - 0.5))
Case Is <= 0.7
frmEvalKit.AccNeedle.X1 = 1160 + (1600 * (PtrX - 0.6))
frmEvalKit.AccNeedle.Y1 = 625 + (800 * (PtrX - 0.6))
Case Is <= 0.8
frmEvalKit.AccNeedle.X1 = 1320 + (1800 * (PtrX - 0.7))
frmEvalKit.AccNeedle.Y1 = 705 + (1500 * (PtrX - 0.7))
Case Is <= 0.9
frmEvalKit.AccNeedle.X1 = 1500 + (1100 * (PtrX - 0.8))
frmEvalKit.AccNeedle.Y1 = 885 + (2300 * (PtrX - 0.8))
Case Is <= 1
frmEvalKit.AccNeedle.X1 = 1610 + (300 * (PtrX - 0.9))
frmEvalKit.AccNeedle.Y1 = 1085 + (1600 * (PtrX - 0.9))
Case Is > 1
frmEvalKit.AccNeedle.X1 = 1640
frmEvalKit.AccNeedle.Y1 = 1245
End Select
End Sub
Sub Thermometer()
Dim Max As Single
Dim PtrX As Single
Max = 250
PtrX = ((Temperature + 125) / Max)
Select Case PtrX
Case Is < 0
frmEvalKit.TempNeedle.X1 = 360
frmEvalKit.TempNeedle.Y1 = 1245
Case 0 To 0.1
frmEvalKit.TempNeedle.X1 = 360 + (300 * PtrX)
frmEvalKit.TempNeedle.Y1 = 1245 - (1600 * PtrX)
Case Is <= 0.2
frmEvalKit.TempNeedle.X1 = 390 + (1100 * (PtrX - 0.1))
frmEvalKit.TempNeedle.Y1 = 1085 - (2300 * (PtrX - 0.1))
Case Is <= 0.3
frmEvalKit.TempNeedle.X1 = 500 + (1800 * (PtrX - 0.2))
frmEvalKit.TempNeedle.Y1 = 855 - (1500 * (PtrX - 0.2))
Case Is <= 0.4
frmEvalKit.TempNeedle.X1 = 680 + (1600 * (PtrX - 0.3))
frmEvalKit.TempNeedle.Y1 = 705 - (800 * (PtrX - 0.3))
Case Is <= 0.5
frmEvalKit.TempNeedle.X1 = 840 + (1600 * (PtrX - 0.4))
frmEvalKit.TempNeedle.Y1 = 625 - (400 * (PtrX - 0.4))
Case Is <= 0.6
frmEvalKit.TempNeedle.X1 = 1000 + (1600 * (PtrX - 0.5))
frmEvalKit.TempNeedle.Y1 = 585 + (400 * (PtrX - 0.5))
Case Is <= 0.7
frmEvalKit.TempNeedle.X1 = 1160 + (1600 * (PtrX - 0.6))
frmEvalKit.TempNeedle.Y1 = 625 + (800 * (PtrX - 0.6))
Case Is <= 0.8
frmEvalKit.TempNeedle.X1 = 1320 + (1800 * (PtrX - 0.7))
frmEvalKit.TempNeedle.Y1 = 705 + (1500 * (PtrX - 0.7))
Case Is <= 0.9
frmEvalKit.TempNeedle.X1 = 1500 + (1100 * (PtrX - 0.8))
frmEvalKit.TempNeedle.Y1 = 885 + (2300 * (PtrX - 0.8))
Case Is <= 1
frmEvalKit.TempNeedle.X1 = 1610 + (300 * (PtrX - 0.9))
frmEvalKit.TempNeedle.Y1 = 1085 + (1600 * (PtrX - 0.9))
Case Is > 1
frmEvalKit.TempNeedle.X1 = 1640
frmEvalKit.TempNeedle.Y1 = 1245
End Select
End Sub
Sub VoltageChart()
With frmEvalKit.chtVoltageChart
.chartType = VtChChartType2dLine
.ColumnCount = 2
.RowCount = 500
For Row = 1 To 500
.Column = 1
.Row = Row
If Row = 500 Then
VoltageData(500) = Voltage
Else
VoltageData(Row) = VoltageData(Row + 1)
End If
.data = VoltageData(Row)
.Column = 2
.Row = Row
If Row = 500 Then
HighVolt(500) = Voltage + 1
Else
HighVolt(Row) = HighVolt(Row + 1)
End If
.data = HighVolt(Row)
Next Row
End With
End Sub
Sub TempChart()
With frmEvalKit.chtTempChart
.chartType = VtChChartType2dLine
.ColumnCount = 2
.RowCount = 500
For Row = 1 To 500
.Column = 1
.Row = Row
If Row = 500 Then
TempData(500) = Temperature
Else
TempData(Row) = TempData(Row + 1)
End If
.data = TempData(Row)
.Column = 2
.Row = Row
If Row = 500 Then
HighTemp(500) = Temperature + 5
Else
HighTemp(Row) = HighTemp(Row + 1)
End If
.data = HighTemp(Row)
Next Row
End With
End Sub
Sub CurrentChart()
With frmEvalKit.chtCurrentChart
.chartType = VtChChartType2dLine
.ColumnCount = 3
.RowCount = 500
For Row = 1 To 500
.Column = 1
.Row = Row
If Row = 500 Then
CurrentData(500) = Current * 1000
Else
CurrentData(Row) = CurrentData(Row + 1)
End If
.data = CurrentData(Row)
.Column = 2
.Row = Row
If Row = 500 Then
HighCurrent(500) = (Current * 1000) + 10
Else
HighCurrent(Row) = HighCurrent(Row + 1)
End If
.data = HighCurrent(Row)
.Column = 3
.Row = Row
If Row = 500 Then
LowCurrent(500) = (Current * 1000) - 10
Else
LowCurrent(Row) = LowCurrent(Row + 1)
End If
.data = LowCurrent(Row)
Next Row
End With
End Sub
Sub CapacityChart()
With frmEvalKit.chtCapacityChart
.chartType = VtChChartType2dLine
.ColumnCount = 2
.RowCount = 500
For Row = 1 To 500
.Column = 1
.Row = Row
If Row = 500 Then
CapacityData(500) = ACR
Else
CapacityData(Row) = CapacityData(Row + 1)
End If
.data = CapacityData(Row)
.Column = 2
.Row = Row
If Row = 500 Then
HighCapacity(500) = (ACR) + 0.2
Else
HighCapacity(Row) = HighCapacity(Row + 1)
End If
.data = HighCapacity(Row)
Next Row
End With
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -