⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tranform.cls

📁 gps全球卫星定位VB源码(部分)请自行准备设备接口
💻 CLS
📖 第 1 页 / 共 2 页
字号:
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 + -