📄 clscomrcvmeterdata.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "ClsComRcvMeterData"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
Option Explicit
'保持属性值的局部变量
Private mvarblnRcvDataOkOrNo As Boolean '局部复制
Private mbytCanData(0 To 10) As Byte
Public Function SetCanDataSum(bytCanData() As Byte) As Byte
Dim intSum, intI As Integer
If UBound(bytCanData()) >= 11 Then
intSum = 0
For intI = 0 To 10
intSum = intSum + bytCanData(intI)
intSum = intSum Mod &H100
Next intI
Else
intSum = 0
End If
SetCanDataSum = CByte(intSum)
End Function
Public Property Get int810RankingCode() As Integer
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.intRankingCode
Dim varintRankingCode As Integer
If mvarblnRcvDataOkOrNo = True Then
varintRankingCode = CInt(mbytCanData(5))
Else
varintRankingCode = -1
End If
int810RankingCode = varintRankingCode
End Property
Public Property Get int800RankingCode() As Integer
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.intRankingCode
Dim varintRankingCode As Integer
If mvarblnRcvDataOkOrNo = True Then
varintRankingCode = CInt(mbytCanData(6))
Else
varintRankingCode = -1
End If
int800RankingCode = varintRankingCode
End Property
Public Property Get sngRcvDataLow() As Single
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.sngRcvDataLow
Dim varsngRcvDataLow As Single
If mvarblnRcvDataOkOrNo = True Then
varsngRcvDataLow = CSng(mbytCanData(8)) * &H100 + CSng(mbytCanData(9))
Else
varsngRcvDataLow = -1
End If
sngRcvDataLow = varsngRcvDataLow
End Property
Public Property Get sngRcvDataHigh() As Single
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.sngRcvDataHigh
Dim varsngRcvDataHigh As Single
If mvarblnRcvDataOkOrNo = True Then
varsngRcvDataHigh = CSng(mbytCanData(6)) * &H100 + CSng(mbytCanData(7))
Else
varsngRcvDataHigh = -1
End If
sngRcvDataHigh = varsngRcvDataHigh
End Property
Public Property Get intPeiCode() As Integer
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.intPeiCode
Dim varintPeiCode As Integer
If mvarblnRcvDataOkOrNo = True Then
varintPeiCode = CInt(mbytCanData(4))
Else
varintPeiCode = -1
End If
intPeiCode = varintPeiCode
End Property
Public Property Get sngRcvData() As Single
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.lngRcvData
Dim varsngRcvData As Single
If mvarblnRcvDataOkOrNo = True Then
varsngRcvData = CSng(mbytCanData(6)) * &H1000000 + _
CSng(mbytCanData(7)) * &H10000 + _
CSng(mbytCanData(8)) * &H100 + _
CSng(mbytCanData(9))
Else
varsngRcvData = -1
End If
If varsngRcvData > &H7FFFFFFF Then
Dim sngNum As Single
sngNum = &HFFFFFFFF
sngNum = sngNum + 1
varsngRcvData = -(sngNum - varsngRcvData)
End If
varsngRcvData = varsngRcvData / (10 ^ mbytCanData(10))
sngRcvData = varsngRcvData
End Property
Public Property Get intDataPoint() As Integer
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.bytDataPoint
Dim varintDataPoint As Integer
If mvarblnRcvDataOkOrNo = True Then
varintDataPoint = mbytCanData(10)
Else
varintDataPoint = -1
End If
intDataPoint = varintDataPoint
End Property
Public Property Get intDataCode() As Integer
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.intDataCode
Dim varintDataCode As Integer
If mvarblnRcvDataOkOrNo = True Then
varintDataCode = CInt(mbytCanData(4)) * &H100 + CInt(mbytCanData(5))
Else
varintDataCode = -1
End If
intDataCode = varintDataCode
End Property
Public Property Get intOrder() As Integer
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.bytOrder
Dim varintOrder As Integer
If mvarblnRcvDataOkOrNo = True Then
varintOrder = CInt(mbytCanData(3))
Else
varintOrder = -1
End If
intOrder = varintOrder
End Property
Public Property Get intMeterCode() As Integer
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.bytMeterCode
Dim varintMeterCode As Integer
If mvarblnRcvDataOkOrNo = True Then
varintMeterCode = CInt(mbytCanData(2))
Else
varintMeterCode = -1
End If
intMeterCode = varintMeterCode
End Property
Public Property Get blnRcvDataOkOrNo() As Boolean
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.blnRcvDataOkOrNo
blnRcvDataOkOrNo = mvarblnRcvDataOkOrNo
End Property
Public Sub WriteRcvData(bytRcvData() As Byte)
Dim intI, intSum As Integer
If UBound(bytRcvData()) = 12 Then
intSum = 0
For intI = 0 To 10
mbytCanData(intI) = bytRcvData(intI)
intSum = intSum + bytRcvData(intI)
intSum = intSum Mod 256
Next intI
If intSum = bytRcvData(11) Then
mvarblnRcvDataOkOrNo = True
Else
mvarblnRcvDataOkOrNo = False
End If
Else
mvarblnRcvDataOkOrNo = False
End If
End Sub
Private Sub Class_Initialize()
mvarblnRcvDataOkOrNo = False
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -