📄 sms.vb
字号:
''' -----------------------------------------------------------------------------
''' <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 + -