📄 tranform.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 = "CTransform"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Private oRecord As New CRecord
Private m_bStart As Boolean
Private oClock As New CLock
Public Function GetRecord() As CRecord
Set GetRecord = oRecord
End Function
Public Function TransRecord(ByVal ch As String) As Long
TransRecord = Trans_Default(ch)
End Function
'<(II)(MM)(SS)(DD)(MM)(MM)(DDD)(MM)(MM)(CC)
':II MM SSDDMMMMDDDMMMMCC
'1 数据头:'<'正常,':'报警
'2、3 ID
'4、5 分
'6、7 秒
'8、9 纬度
'10、11 分
'12、13 百分
'14、15、16 经度
'17、18 分
'19、20 百分
'21、22 校验和
'新数据格式
'1 数据头:'<'正常,':'报警
'2,3 车号ID
'4 纬度个位
'5,6 纬度分
'7,8 纬度百分
'9 经度个位
'10,11 经度分
'12,13 经度百分
'14,15 校验和
'<(II)(MM)(SS)(DD)(MM)(MM)(DDD)(MM)(MM)(CC)
':II MM SSDDMMMMDDDMMMMCC
'1 数据头:'<'正常,':'报警
'2、3 ID
'4、5 分
'6、7 秒
'8、9 纬度
'10、11 分
'12、13 百分
'14、15、16 经度
'17、18 分
'19、20 百分
'21、22 校验和
'新数据格式
'1 数据头:'<'正常,':'报警
'2,3 车号ID
'4 纬度个位
'5,6 纬度分
'7,8 纬度百分
'9 经度个位
'10,11 经度分
'12,13 经度百分
'14,15 校验和
Private Function Trans_Default(ByVal ch As String) As Boolean
Dim filename As String
strBuff1 = ch
If Len(strBuff1) >= 22 Then '??????
If Interpret_Default(strBuff1) Then
Trans_Default = True
bht = True
Else
bht = False
End If
m_bStart = False
End If
End Function
Private Function Interpret_Default(ByVal strBuff1 As String) As Boolean
Dim strSub As String
Dim strhead As String
Dim nID As Long
Dim lIndex, i, j As Integer
Dim oTarget As New CTarget
Dim Sum As Double
Dim ch, ch1 As String
Dim X As Integer
RECEIVED = False
If Len(strBuff1) < 20 Then
Interpret_Default = False
Exit Function
End If
'判断是否合法的车辆号
strSub = txm
strSub = Mid(Datas, 3, 3)
lIndex = MDIMainForm.oTargetManager.GetIndexByCommID(strSub)
Set oTarget = MDIMainForm.oTargetManager.GetTargetByIndex(lIndex)
nID = oTarget.GetID
If nID = 0 Then
Interpret_Default = FASLE
Exit Function
End If
'AlertFlag = False
temp_info = ""
'strhead = Mid(strBuff1, 2, 3) '?????
'Type_Info strhead '?????
'example: (one072310v3443.3026n11339.8328e000.0e0271100000005) '?????
'strhead = Mid(strBuff1, 47, 1) + Mid(strBuff1, 46, 1) '?????
'Disp_Info Hex_num(strhead), 1 '?????
'strhead = Mid(strBuff1, 49, 1) + Mid(strBuff1, 48, 1) '?????
'Disp_Info Hex_num(strhead), 3 '?????
'strhead = Mid(strBuff1, 51, 1) + Mid(strBuff1, 50, 1) '?????
'Disp_Info Hex_num(strhead), 2 '?????
If AlertFlag = True Then
BjCl = oTarget.GetName
CarNum = oTarget.GetName
DHFLAG = 1
m_Interval = 3000 ''Temp_HjTime
Temp_Cishu = 20
Temp_JianG = 5
If MDIMainForm.Winsock1.State = 7 Then
MDIMainForm.Winsock1.SendData "报警" + txm
printinfo CarNum
End If
MDIMainForm.oWorkMode.SingleCallInit
Else
oRecord.bAlert = False
End If
'example: "&:10312463444751133869"
'得到纬度的度数
strSub = Mid(strBuff1, 10, 2)
If IsNumeric(strSub) Then
oRecord.fLatitude = Val(strSub)
Else
Interpret_Default = FASLE
Exit Function
End If
'得到纬度的分
strSub = Mid(strBuff1, 12, 2) + Mid(strBuff1, 14, 2) / 100
If IsNumeric(strSub) Then
oRecord.fLatitude = oRecord.fLatitude + Val(strSub) / 60
Else
Interpret_Default = FASLE
Exit Function
End If
'得到经度的度数
strSub = Mid(strBuff1, 16, 3)
If IsNumeric(strSub) Then
oRecord.fLongitude = Val(strSub)
Else
Interpret_Default = FASLE
Exit Function
End If
'得到经度的分
strSub = Mid(strBuff1, 19, 2) + Mid(strBuff1, 21, 2) / 100
If IsNumeric(strSub) Then
oRecord.fLongitude = oRecord.fLongitude + Val(strSub) / 60
Else
Interpret_Default = FASLE
Exit Function
End If
'strSub = Mid(strBuff1, 33, 5) '?????
'If IsNumeric(strSub) Then
'oRecord.fSpeed = strSub
'Else
'Interpret_Default = False
'Exit Function
'End If ' ?????
'strSub = Mid(strBuff1, 21, 1)
'If IsNumeric(strSub) Then
' oRecord.fSpeed = oRecord.fSpeed + strSub / 5
'Else
' Interpret_Default = False
' Exit Function
'End If
' MDIMainForm.Caption = oRecord.fSpeed
'strSub = Mid(strBuff1, 38, 2) ' ?????
'If IsNumeric(strSub) Then
'oRecord.fDirection = strSub
'Else
'Interpret_Default = False
'Exit Function
'End If ' ?????
'If IsNumeric(strSub) Then
'strSub = Mid(strBuff1, 25, 1)
' oRecord.fDirection = oRecord.fDirection + strSub / 10
'Else
' Interpret_Default = False
' Exit Function
'End If
'
If Temp_Lock_Flag = True Then
If oClock.LockStree(oRecord.fLongitude, oRecord.fLatitude) = True Then
oRecord.fLongitude = Temp_jd1
oRecord.fLatitude = Temp_wd1
End If
End If
'strSub = Mid(strBuff1, 3, 1)
'If strSub = "A" Then
' Sum = (oRecord.fSpeed * 10 * Sin(oRecord.fDirection * pi / 180)) / 110000
' oRecord.fLongitude = oRecord.fLongitude + Sum
' Sum = (oRecord.fSpeed * 10 * Cos(oRecord.fDirection * pi / 180)) / 110000
' oRecord.fLatitude = oRecord.fLatitude + Sum
'End If
' strSub = Mid(strBuff1, 6, 2)
' If IsNumeric(strSub) Then
' Rminute = strSub
' Else
' Interpret_Default = FASLE
' End If
' strSub = Mid(strBuff1, 8, 2)
' If IsNumeric(strSub) Then
' Rsecond = strSub
' Else
' Interpret_Default = FASLE
' End If
'检较和(算法略)
oRecord.nID = nID
'oRecord.fSpeed = 0
'oRecord.fDirection = 0
oRecord.dTime = Date + Time
Interpret_Default = True
If Interpret_Default = True Then
Select Case flag
Case LOCKRESPONSE
MDIMainForm.StatusBar1.Panels(2).Text = "锁[" & oTarget.GetName & "]车成功"
If Link_Sever = True Then MDIMainForm.Winsock1.SendData "锁车" + CStr(nID)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -