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

📄 sms.vb

📁 vc实现串口收发短信
💻 VB
📖 第 1 页 / 共 4 页
字号:
            ''' -----------------------------------------------------------------------------
            ''' <summary>
            ''' 
            ''' </summary>
            ''' <param name="str7BitCode"></param>
            ''' <param name="charCount"></param>
            ''' <returns></returns>
            ''' <remarks>
            ''' </remarks>
            ''' <history>
            ''' 	[AMDXP2500]	2005-7-25	Created
            ''' </history>
            ''' -----------------------------------------------------------------------------
            Shared Function Decode7Bit(ByVal str7BitCode As String, ByVal charCount As Integer) As String
                Dim Inv7BitCode As String = InvertHexString(str7BitCode)
                Dim Binary As String = String.Empty
                Dim Result As String = String.Empty
                Dim i As Integer
                For i = 0 To Inv7BitCode.Length - 1 Step 2
                    Binary += ByteToBinary(CByte(Val("&H" & Inv7BitCode.Substring(i, 2))))
                Next
                Dim Temp As Integer
                For i = 1 To charCount
                    Temp = BinaryToInt(Binary.Substring(Binary.Length - i * 7, 7))
                    'There is a problem:
                    '"@" charactor is decoded to binary "0000000", but its Ascii Code is 64!!
                    'Don't know what to do with it,maybe it is a bug!
                    If Temp = 0 Then Temp = 64
                    Result = Result + ChrW(Temp)
                Next
                Return (Result)
            End Function
#End Region

        End Class

        ''' -----------------------------------------------------------------------------
        ''' Project	 : SMS Solution
        ''' Class	 : SMS.Decoder.SMS_RECEIVED
        ''' 
        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' 
        ''' </summary>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        ''' 	[AMDXP2500]	2005-7-25	Created
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Public Class SMS_RECEIVED
            Inherits SMSBase
            Public SrcAddressLength As Byte
            Public SrcAddressType As Byte
            Public SrcAddressValue As String
            Public TP_SCTS As Date

            Sub New(ByVal PDUCode As String)
                Type = SMSBase.SMSType.SMS_RECEIVED
                GetOrignalData(PDUCode)
            End Sub
            Public Overrides Sub GetOrignalData(ByVal PDUCode As String)
                SCAddressLength = GetByte(PDUCode)
                SCAddressType = GetByte(PDUCode)
                SCAddressValue = GetAddress((GetString(PDUCode, (SCAddressLength - 1) * 2)))
                FirstOctet = GetByte(PDUCode)

                SrcAddressLength = GetByte(PDUCode)
                SrcAddressType = GetByte(PDUCode)
                SrcAddressLength += CByte(SrcAddressLength Mod 2)
                SrcAddressValue = GetAddress((GetString(PDUCode, SrcAddressLength)))


                TP_PID = GetByte(PDUCode)
                TP_DCS = GetByte(PDUCode)
                TP_SCTS = GetDate(GetString(PDUCode, 14))
                TP_UDL = GetByte(PDUCode)
                TP_UD = GetString(PDUCode, TP_UDL * 2)
            End Sub
        End Class

        ''' -----------------------------------------------------------------------------
        ''' Project	 : SMS Solution
        ''' Class	 : SMS.Decoder.SMS_SUBMIT
        ''' 
        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' 
        ''' </summary>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        ''' 	[AMDXP2500]	2005-7-25	Created
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Public Class SMS_SUBMIT
            Inherits SMSBase
            Public TP_MR As Byte
            Public DesAddressLength As Byte
            Public DesAddressType As Byte
            Public DesAddressValue As String
            Public TP_VP As Byte
            Sub New(ByVal PDUCode As String)
                Type = SMSBase.SMSType.SMS_SUBMIT
                GetOrignalData(PDUCode)
            End Sub

            Public Overrides Sub GetOrignalData(ByVal PDUCode As String)
                SCAddressLength = GetByte(PDUCode)
                SCAddressType = GetByte(PDUCode)
                SCAddressValue = GetAddress((GetString(PDUCode, (SCAddressLength - 1) * 2)))
                FirstOctet = GetByte(PDUCode)

                TP_MR = GetByte(PDUCode)

                DesAddressLength = GetByte(PDUCode)
                DesAddressType = GetByte(PDUCode)
                DesAddressLength += CByte(DesAddressLength Mod 2)
                DesAddressValue = GetAddress((GetString(PDUCode, DesAddressLength)))

                TP_PID = GetByte(PDUCode)
                TP_DCS = GetByte(PDUCode)
                TP_VP = GetByte(PDUCode)
                TP_UDL = GetByte(PDUCode)
                TP_UD = GetString(PDUCode, TP_UDL * 2)
            End Sub
        End Class

        ''' -----------------------------------------------------------------------------
        ''' Project	 : SMS Solution
        ''' Class	 : SMS.Decoder.EMS_RECEIVED
        ''' 
        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' 
        ''' </summary>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        ''' 	[AMDXP2500]	2005-7-25	Created
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Public Class EMS_RECEIVED
            Inherits SMS_RECEIVED
            Public Structure InfoElem       'See document "How to create EMS"
                Public Identifier As Byte
                Public Length As Byte
                Public Data As String
            End Structure
            Public TP_UDHL As Byte

            Public IE() As InfoElem

            Sub New(ByVal PDUCode As String)
                MyBase.New(PDUCode)
            End Sub
            Public Overrides Sub GetOrignalData(ByVal PDUCode As String)
                SCAddressLength = GetByte(PDUCode)
                SCAddressType = GetByte(PDUCode)
                SCAddressValue = GetAddress(GetString(PDUCode, (SCAddressLength - 1) * 2))
                FirstOctet = GetByte(PDUCode)

                SrcAddressLength = GetByte(PDUCode)
                SrcAddressType = GetByte(PDUCode)
                SrcAddressLength += CByte(SrcAddressLength Mod 2)
                SrcAddressValue = GetAddress((GetString(PDUCode, SrcAddressLength)))

                TP_PID = GetByte(PDUCode)
                TP_DCS = GetByte(PDUCode)
                TP_SCTS = GetDate(GetString(PDUCode, 14))
                TP_UDL = GetByte(PDUCode)
                TP_UDHL = GetByte(PDUCode)

                IE = GetIE(GetString(PDUCode, TP_UDHL * 2))

                TP_UD = GetString(PDUCode, TP_UDL * 2)
            End Sub

            ''' -----------------------------------------------------------------------------
            ''' <summary>
            ''' Get Informat Elements 
            ''' </summary>
            ''' <param name="IECode"></param>
            ''' <returns></returns>
            ''' <remarks>
            ''' </remarks>
            ''' <history>
            ''' 	[AMDXP2500]	2005-7-25	Created
            ''' </history>
            ''' -----------------------------------------------------------------------------
            Shared Function GetIE(ByVal IECode As String) As InfoElem()
                Dim tmp As String = IECode, t As Integer = 0
                Dim result() As InfoElem
                Do Until IECode = ""
                    ReDim Preserve result(t)
                    With result(t)
                        .Identifier = GetByte(IECode)
                        .Length = GetByte(IECode)
                        .Data = GetString(IECode, .Length * 2)
                    End With
                    t += 1
                Loop
                Return result
            End Function
        End Class

        ''' -----------------------------------------------------------------------------
        ''' Project	 : SMS Solution
        ''' Class	 : SMS.Decoder.EMS_SUBMIT
        ''' 
        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' 
        ''' </summary>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        ''' 	[AMDXP2500]	2005-7-25	Created
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Public Class EMS_SUBMIT
            Inherits SMS_SUBMIT

            Sub New(ByVal PDUCode As String)
                MyBase.New(PDUCode)
                Type = SMSBase.SMSType.EMS_SUBMIT
            End Sub

            ''' -----------------------------------------------------------------------------
            ''' <summary>
            ''' 
            ''' </summary>
            ''' <remarks>
            ''' </remarks>
            ''' <history>
            ''' 	[AMDXP2500]	2005-7-25	Created
            ''' </history>
            ''' -----------------------------------------------------------------------------
            Public TP_UDHL As Byte

            ''' -----------------------------------------------------------------------------
            ''' <summary>
            ''' 
            ''' </summary>
            ''' <remarks>
            ''' </remarks>
            ''' <history>
            ''' 	[AMDXP2500]	2005-7-25	Created
            ''' </history>
            ''' -----------------------------------------------------------------------------
            Public IE() As EMS_RECEIVED.InfoElem

            ''' -----------------------------------------------------------------------------
            ''' <summary>
            ''' 
            ''' </summary>
            ''' <param name="PDUCode"></param>
            ''' <remarks>
            ''' </remarks>
            ''' <history>
            ''' 	[AMDXP2500]	2005-7-25	Created
            ''' </history>
            ''' -----------------------------------------------------------------------------
            Public Overrides Sub GetOrignalData(ByVal PDUCode As String)
                SCAddressLength = GetByte(PDUCode)
                SCAddressType = GetByte(PDUCode)
                SCAddressValue = GetAddress(GetString(PDUCode, (SCAddressLength - 1) * 2))
                FirstOctet = GetByte(PDUCode)

                TP_MR = GetByte(PDUCode)

                DesAddressLength = GetByte(PDUCode)
                DesAddressType = GetByte(PDUCode)
                DesAddressLength += CByte(DesAddressLength Mod 2)
                DesAddressValue = GetAddress(GetString(PDUCode, DesAddressLength))

                TP_PID = GetByte(PDUCode)
                TP_DCS = GetByte(PDUCode)
                TP_VP = GetByte(PDUCode)
                TP_UDL = GetByte(PDUCode)

                TP_UDHL = GetByte(PDUCode)
                IE = EMS_RECEIVED.GetIE(GetString(PDUCode, TP_UDHL * 2))

                TP_UD = GetString(PDUCode, TP_UDL * 2)
            End Sub
        End Class

        ''' -----------------------------------------------------------------------------
        ''' Project	 : SMS Solution
        ''' Class	 : SMS.Decoder.SMS_STATUS_REPORT
        ''' 
        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' 
        ''' </summary>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        ''' 	[AMDXP2500]	2005-7-25	Created
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Public Class SMS_STATUS_REPORT
            Inherits SMS_RECEIVED
            Public TP_MR As Byte
            Public TP_DP As Date
            Public Status As EnumStatus

            ''' -----------------------------------------------------------------------------
            ''' <summary>
            ''' 
            ''' </summary>
            ''' <remarks>
            ''' </remarks>
            ''' <history>
            ''' 	[AMDXP2500]	2005-7-25	Created
            ''' </history>
            ''' -----------------------------------------------------------------------------
            Public Enum EnumStatus
                Success = 0
                NotSend = 96
                NoResponseFromSME = 98
            End Enum

            ''' -----------------------------------------------------------------------------
            ''' <summary>
            ''' 
            ''' </summary>
            ''' <param name="PDUCode"></param>
            ''' <remarks>
            ''' </remarks>
            ''' <history>
            ''' 	[AMDXP2500]	2005-7-25	Created
            ''' </history>
            ''' -----------------------------------------------------------------------------
            Sub New(ByVal PDUCode As String)
                MyBase.New(PDUCode)
                Type = SMSBase.SMSType.SMS_STATUS_REPORT
            End Sub

            ''' -----------------------------------------------------------------------------
            ''' <summary>
            ''' 
            ''' </summary>
            ''' <param name="PDUCode"></param>
            ''' <remarks>
            ''' </remarks>
            ''' <history>
            ''' 	[AMDXP2500]	2005-7-25	Created
            ''' </history>
            ''' -----------------------------------------------------------------------------
            Public Overrides Sub GetOrignalData(ByVal PDUCode As String)
                SCAddressLength = GetByte(PDUCode)
                SCAddressType = GetByte(PDUCode)
                SCAddressValue = GetAddress(GetString(PDUCode, (SCAddressLength - 1) * 2))

                FirstOctet = GetByte(PDUCode)

                TP_MR = GetByte(PDUCode)

                SrcAddressLength = GetByte(PDUCode)
                SrcAddressType = GetByte(PDUCode)
                SrcAddressLength += CByte(SrcAddressLength Mod 2)
                SrcAddressValue = GetAddress(GetString(PDUCode, SrcAddressLength))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -