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

📄 modem.vb

📁 通过串口发送短信的模块,采用vb.net编写
💻 VB
📖 第 1 页 / 共 2 页
字号:
Imports System.IO.Ports
Imports System.Text
Imports System.Threading
Imports System.Management

Imports ATSMS.Common


Public Class Modem : Inherits AbstractObject : Implements IDisposable

#Region "Protected Members"

    ' Variables
    Protected iBatteryLevel As Integer
    Protected iDelayAfterPIN As Integer
    Protected enumEncoding As EnumEncoding
    Protected lErrorCode As Long
    Protected strErrorDescription As String
    Protected enumFlowControl As EnumFlowControl
    Protected strModemInitString As String
    Protected strModel As String
    Protected strManufacturer As String
    Protected strRevision As String
    Protected lSendDelay As Long
    Protected iSendRetry As Integer
    Protected iSignalStrength As Integer
    Protected iSignalStrengthDB As Integer
    Protected isEcho As Boolean
    Protected strName As String
    Protected disposed As Boolean = False
    Protected strSimPin As String

    Protected commandHandler As ATHandler
    Protected WithEvents serialDriver As SerialDriver

#End Region

#Region "Constructor"

    ''' <summary>
    ''' Constructor
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub New()
        serialDriver = New SerialDriver
        commandHandler = New ATHandler
        enumEncoding = Common.EnumEncoding.GSM_Default_7Bit
    End Sub

#End Region

#Region "Dispose"

    ''' <summary>
    ''' Dispose method
    ''' </summary>
    ''' <param name="disposing"></param>
    ''' <remarks></remarks>
    Protected Overridable Overloads Sub Dispose(ByVal disposing As Boolean)
        If Not Me.disposed Then
            If disposing Then
                If (Not IsNothing(serialDriver)) Then
                    If (serialDriver.IsOpen) Then
                        serialDriver.Close()
                        serialDriver = Nothing
                    End If
                End If
            End If

            ' Add code here to release the unmanaged resource.

            ' Note that this is not thread safe.
        End If
        Me.disposed = True
    End Sub

#End Region

#Region " IDisposable Support "

    ' Do not change or add Overridable to these methods.
    ' Put cleanup code in Dispose(ByVal disposing As Boolean).
    Public Overloads Sub Dispose() Implements IDisposable.Dispose
        Dispose(True)
        GC.SuppressFinalize(Me)
    End Sub

    Protected Overrides Sub Finalize()
        Dispose(False)
        MyBase.Finalize()
    End Sub

#End Region

#Region "Properties"

    Public Property ATCommandHandler() As ATHandler
        Get
            Return commandHandler
        End Get
        Set(ByVal value As ATHandler)
            commandHandler = value
        End Set
    End Property

    Public Property SerialDriverHandler() As SerialDriver
        Get
            Return serialDriver
        End Get
        Set(ByVal value As SerialDriver)
            serialDriver = value
        End Set
    End Property

    Public Property Echo() As Boolean
        Get
            Return Me.isEcho
        End Get
        Set(ByVal value As Boolean)
            Me.isEcho = value
            If IsConnected Then
                If isEcho Then
                    serialDriver.SendCmd(ATHandler.ECHO_COMMAND)
                Else
                    serialDriver.SendCmd(ATHandler.NO_ECHO_COMMAND)
                End If
            End If

        End Set
    End Property

    Public ReadOnly Property BatteryLevel() As Integer
        Get
            Return Me.iBatteryLevel
        End Get
    End Property


    Public Property BaudRate() As Integer
        Get
            Return serialDriver.BaudRate
        End Get
        Set(ByVal Value As Integer)
            serialDriver.BaudRate = Value
        End Set
    End Property

    Public Property DataBits() As Integer
        Get
            Return serialDriver.DataBits
        End Get
        Set(ByVal Value As Integer)
            serialDriver.DataBits = Value
        End Set
    End Property

    Public Property DelayAfterPIN() As Integer
        Get
            Return Me.iDelayAfterPIN
        End Get
        Set(ByVal Value As Integer)
            Me.iDelayAfterPIN = Value
        End Set
    End Property

    Public Property Encoding() As EnumEncoding
        Get
            Return Me.enumEncoding
        End Get
        Set(ByVal Value As EnumEncoding)
            Me.enumEncoding = Value
        End Set
    End Property

    Public Property ErrorCode() As Long
        Get
            Return Me.lErrorCode
        End Get
        Set(ByVal Value As Long)
            Me.lErrorCode = Value
        End Set
    End Property

    Public Property ErrorDescription() As String
        Get
            Return Me.strErrorDescription
        End Get
        Set(ByVal Value As String)
            Me.strErrorDescription = Value
        End Set
    End Property

    Public Property FlowControl() As EnumFlowControl
        Get
            Return serialDriver.Handshake
        End Get
        Set(ByVal Value As EnumFlowControl)
            Me.serialDriver.Handshake = Value
        End Set
    End Property

    Public Property StopBits() As EnumStopBits
        Get
            Return serialDriver.StopBits
        End Get
        Set(ByVal Value As EnumStopBits)
            serialDriver.StopBits = Value
        End Set
    End Property

    Public Property Port() As String
        Get
            Return serialDriver.PortName
        End Get
        Set(ByVal Value As String)
            serialDriver.PortName = Value
        End Set
    End Property

    Public Property Parity() As EnumParity
        Get
            Return serialDriver.Parity
        End Get
        Set(ByVal Value As EnumParity)
            serialDriver.Parity = Value
        End Set
    End Property

    Public Property ModemInitString() As String
        Get
            Return Me.strModemInitString
        End Get
        Set(ByVal Value As String)
            Me.strModemInitString = Value
        End Set
    End Property

    Public Property Timeout() As Integer
        Get
            Return serialDriver.WriteTimeout
        End Get
        Set(ByVal Value As Integer)
            serialDriver.WriteTimeout = Value
        End Set
    End Property

    Public Property ReadIntervalTimeout() As Integer
        Get
            Return serialDriver.ReadTimeout
        End Get
        Set(ByVal Value As Integer)
            serialDriver.ReadTimeout = Value
        End Set
    End Property

    Public ReadOnly Property IsConnected() As Boolean
        Get
            Return serialDriver.IsOpen
        End Get
    End Property

    Public ReadOnly Property Manufacturer() As String
        Get
            If (Len(Me.strManufacturer) = 0) Then
                Me.strManufacturer = GetManufacturer()
            End If
            Return Me.strManufacturer
        End Get
    End Property

    Public ReadOnly Property Model() As String
        Get
            Return Me.strModel
        End Get
    End Property

    Public ReadOnly Property Revision() As String
        Get
            If (Len(Me.strManufacturer) = 0) Then
                Me.strRevision = GetRevision()
            End If
            Return Me.strRevision
        End Get
    End Property

    Public Property SendDelay() As Long
        Get
            Return Me.lSendDelay
        End Get
        Set(ByVal Value As Long)
            Me.lSendDelay = Value
        End Set
    End Property

    Public Property SendRetry() As Integer
        Get
            Return Me.iSendRetry
        End Get
        Set(ByVal Value As Integer)
            Me.iSendRetry = Value
        End Set
    End Property

    Public Property DtrEnable() As Boolean
        Get
            Return serialDriver.DtrEnable
        End Get
        Set(ByVal Value As Boolean)
            serialDriver.DtrEnable = Value
        End Set
    End Property

    Public Property Handsake() As EnumHandsake
        Get
            Return serialDriver.Handshake
        End Get
        Set(ByVal Value As EnumHandsake)
            serialDriver.Handshake = Value
        End Set
    End Property

    Public ReadOnly Property SignalStrength() As Integer
        Get
            Return Me.iSignalStrength
        End Get
    End Property

    Public ReadOnly Property SignalStrengthDB() As Integer
        Get
            Return Me.iSignalStrengthDB
        End Get
    End Property

    Public ReadOnly Property Name() As String
        Get
            Return Me.strName
        End Get
    End Property


    Public Property PIN() As String
        Get
            Return strSimPin
        End Get
        Set(ByVal value As String)
            strSimPin = value.Trim
        End Set
    End Property

#End Region

⌨️ 快捷键说明

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