- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
- Hướng dẫn khóa file bằng nhiều process id, không cho xóa tập tin
- Hướng dẫn cách tạo Product Id cho ứng dụng phần mềm XXXXX-XXXXX-XXXXX-XXXXX
- [SQLSERVER] Hướng dẫn tạo script sql từ ứng dụng Sqlserver management Studio
- [C#] Hướng dẫn sử dụng thư viện AutoITx lấy id và password Ultraviewer trên winform
- [VB.NET] Hướng dẫn lấy thông tin tài khoản đăng nhập windows và khởi động lại ứng dụng ở chế độ Administrator
- [C#] Sử dụng thư viện Polly gửi lại request api khi request bị lỗi hay rớt mạng
- [DEVEXPRESS] Chia sẻ source code tạo báo cáo report in tem nhãn label trên C# winform
- [DEVEXPRESS] Hướng dẫn vẽ biểu đồ Bar Chart trên Winform
- [C#] Tạo form đăng nhập và đăng ký với hiệu ứng Sliding Animation Effect
- [C#] Hướng dẫn tạo thanh toán đơn hàng qua mã vạch VietQR sử dụng API PayOS hoàn toàn miễn phí
- [C#] Hướng dẫn ghi log ra RichTextBox giống Console trên Winform sử dụng thư viện Serilog
- [C#] Hướng dẫn cách tạo mã QR Code trên file Excel
- [VB.NET] Gởi tin nhắn và file đính kèm qua ứng dụng gởi tin nhắn Whats App
- [C#] Viết ứng dụng Auto Fill list Textbox from clipboard Winform
- [TOOL] Chia sẻ phần mềm thay đổi thông tin cấu hình máy tính
- [C#] Hướng dẫn Export dữ liệu ra file Microsoft Word Template
- [C#] Chia sẻ source code tool kiểm tra domain website
- [C#] Hướng dẫn tạo file PDF sử dụng thư viện QuestPDF
[VB.NET] Chia sẽ source code gởi và nhận tin nhắn SMS từ Dcom 3G sử dụng AT Command
Xin chào các bạn, bài viết hôm nay mình sẽ chia sẽ cho các bạn source code gởi và nhận tin nhắn từ thiết bị Dcom 3G sử dụng tập lệnh AT command trong lập trình VB.NET.
[VB.NET] Send and Receive Message from Dcom 3G using AT Command
Dưới đây là giao diện gởi và nhận tin nhắn:
và dưới đây là giao diện nhận tin nhắn SMS
Source code Send and Receive SMS VB.NET
Imports System.ComponentModel
Imports System.Text
Imports DevExpress.XtraEditors
Imports System.IO
Imports System.IO.Ports
Imports System.Threading
Imports System.Text.RegularExpressions
Imports System.Data.OleDb
Imports VB = Microsoft.VisualBasic.Strings
Namespace CsWinFormsBlackApp
Partial Public Class frm_sendsms
Inherits DevExpress.XtraEditors.XtraForm
Public Sub New()
InitializeComponent()
End Sub
Public strconnect As New OleDbConnection
Public Sub open_connect()
Try
strconnect.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & System.Windows.Forms.Application.StartupPath() & "Database.mdb"
strconnect.Open()
Catch ex As Exception
' XtraMessageBox.Show("Lỗi kết nối đến máy chủ. Vui lòng thử lại.")
End Try
End Sub
Public Sub close_connect()
strconnect.Close()
End Sub
Private Sub frm_sendsms_Load(sender As Object, e As EventArgs) Handles MyBase.Load
_LoadData()
Dim ports As String() = SerialPort.GetPortNames
Dim port As String
For Each port In ports
cbo_Port.Properties.Items.Add(port)
Next port
cbo_Port.SelectedIndex = 0
End Sub
Private Sub btnKetNoi_Click(sender As Object, e As EventArgs) Handles btnKetNoi.Click
If SerialPort1.IsOpen Then
btnKetNoi.Text = "&Kết nối"
Me.Text = "Tình trạng chưa kết nối với thiết bị " & cbo_Port.Text
SerialPort1.Close()
cbo_Port.Enabled = True
btnNgungNhanTin_Click(sender, e)
Else
Try
With SerialPort1
.PortName = cbo_Port.Text
.BaudRate = 115200
.Parity = Parity.None
.StopBits = StopBits.One
.DataBits = 8
.Handshake = Handshake.RequestToSend
.DtrEnable = True
.RtsEnable = True
.NewLine = vbCrLf
.Open()
End With
btnKetNoi.Text = "&Ngắt kết nối"
Me.Text = "Đã kết nối với thiết bị port " & cbo_Port.Text
cbo_Port.Enabled = False
Catch ex As Exception
Me.Text = "Lỗi kết nối..."
End Try
btnNhanTinNhan_Click(sender, e)
End If
End Sub
Private Sub btn_Guitinnhan_Click(sender As Object, e As EventArgs) Handles btn_Guitinnhan.Click
Dim MESS As String = txt_NoiDung.Text
Try
If SerialPort1.IsOpen Then
With SerialPort1
.Write("AT" & vbCrLf)
.Write("AT+CMGF=1" & vbCrLf)
.Write("AT+CMGS=" & Chr(34) & txt_SoDT.Text & Chr(34) & vbCrLf)
.Write(MESS & Chr(26))
End With
Me.Text = "Đã gởi tin nhắn thành công!"
Else
Me.Text = "Lỗi chưa chọn port kết nối"
End If
Catch ex As Exception
Me.Text = ex.Message
End Try
End Sub
Private Sub btnNhanTinNhan_Click(sender As Object, e As EventArgs) Handles btnNhanTinNhan.Click
Timer1.Enabled = True
btnNgungNhanTin.Enabled = True
btnNhanTinNhan.Enabled = False
Me.Text = "Đang chờ nhận lệnh..."
End Sub
Private Sub btnNgungNhanTin_Click(sender As Object, e As EventArgs) Handles btnNgungNhanTin.Click
Timer1.Enabled = False
btnNgungNhanTin.Enabled = False
btnNhanTinNhan.Enabled = True
XoaTinNhan()
Me.Text = "Ngưng nhận lệnh thực thi"
End Sub
Private Sub XoaTinNhan()
If SerialPort1.IsOpen Then
With SerialPort1
.Write("AT+CMGD=1,4" & vbCrLf)
End With
Else
Me.Text = "Lỗi chưa chọn port kết nối"
End If
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If SerialPort1.IsOpen Then
With SerialPort1
.Write("AT+CMGL=" & Chr(34) & "REC UNREAD" & Chr(34) & vbCrLf)
End With
Dim response As String = SerialPort1.ReadExisting()
'Dim r As New Regex("+CMGL: (d+),""(.+)"",""(.+)"",(.*),""(.+)""
(.+)
")
Dim r As New Regex("+CMGL: (d+),""(.+)"",""(.+)"",(.*),""(.+)""
(.+)
(.+)")
Dim m As Match = r.Match(response)
txt_HienThi_Lenh.Text = response
'get ngày tháng
Dim id As String = m.Groups(1).Value
Dim sodt As String = m.Groups(3).Value
Dim noidung As String = m.Groups(6).Value
Dim noidung2 As String = m.Groups(7).Value
Dim website As String = ""
Dim ngaythang As String = m.Groups(5).Value
If _kiemtra("select count(*) from tbl_log where createdDate='" & ngaythang & "'") <> "1" Then
If noidung <> "" Then
'Dim FinalStr As String = noidung.Replace(ControlChars.Lf, ",")
'Dim TestArray() As String = Split(FinalStr, ",")
'For i As Integer = 0 To TestArray.Length - 1
' If TestArray(i) <> "" Then
' If i = 0 Then
' noidung2 = TestArray(0)
' Else
' Dim a As String = TestArray(i)
' If a.Length > 2 Then
' website = a
' End If
' End If
' End If
'Next
_Save("Insert into tbl_log(phone, content, createdDate, website) values('" & sodt & "','" & noidung & "','" & ngaythang & "','" & noidung2 & "')")
m = m.NextMatch()
End If
End If
Else
Me.Text = "Lỗi chưa chọn port kết nối"
End If
XoaTinNhan()
_LoadData()
End Sub
Dim cmd As New OleDbCommand
Dim da As New OleDbDataAdapter
Dim dt As New DataTable
Public Sub _LoadData()
open_connect()
cmd = strconnect.CreateCommand
cmd.CommandText = "select * from tbl_log order by id DESC"
dt.Clear()
da.SelectCommand = cmd
da.Fill(dt)
GridControl1.DataSource = dt
close_connect()
End Sub
Public Function _kiemtra(ByVal strLenh As String) As String
Dim str As String
open_connect()
Dim cmd As New OleDbCommand(strLenh, strconnect)
str = cmd.ExecuteScalar().ToString
close_connect()
Return str
End Function
Public Sub _Save(ByVal strLenh As String)
open_connect()
Dim cmd As New OleDbCommand(strLenh, strconnect)
cmd.ExecuteNonQuery()
close_connect()
End Sub
Private Sub cbo_Port_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbo_Port.SelectedIndexChanged
End Sub
End Class
End Namespace
HAPPY CODING