intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Nhận SMS thông qua GSM modem bằng C#

Chia sẻ: Bùi Trọng Quốc Viễn | Ngày: | Loại File: DOC | Số trang:3

263
lượt xem
48
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu lập trình - Nhận SMS thông qua GSM modem bằng C#

Chủ đề:
Lưu

Nội dung Text: Nhận SMS thông qua GSM modem bằng C#

  1. Nhận SMS thông qua GSM modem bang C# using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.IO.Ports; using MySql.Data.MySqlClient; namespace sending_and_receive_SMS { class Program { static AutoResetEvent readNow = new AutoResetEvent(false); static SerialPort port; static string[] mang; static string[] mang1; static string content_SMS; static string thisrow = ""; static MySqlConnection connect; static void Main(string[] args) { try { port = EstablishConnection();//thuc hien ket noi cong COM do  { string receivedData = ExecuteCommand("AT", 300);//thuc hien lenh AT receivedData = ExecuteCommand("AT+CMGL=" + (char)34 + "REC UNREAD" + (char)34, 300); mang = receivedData.Split('"');//tach du lieu nhan ve console.WriteLine(receiveData); console.ReadKey(); } while (mang[2].Contains("OK"));// dieu kieu de bit khi nao co du lieu trong buffer console.WriteLine("gia tri nhan dc la " , receivedData) } catch (Exception e) { Console.WriteLine("Error Mes: " + e.Message.Trim() + "\r\nPress any key to exit "); Console.ReadLine(); } finally { if (port != null) {
  2. port.Close(); port.DataReceived ­= new SerialDataReceivedEventHandler(DataReceived); port = null; } } } static string ExecuteCommand(string command,int timeout)//ham thuc hien chuc nag gui lenh AT vo cong  COM { port.DiscardInBuffer(); port.DiscardOutBuffer(); readNow.Reset(); port.Write(command + "\r"); string received = receive(timeout); return received; } static string receive(int timeout)//ham nhan du lieu tra ve tu buffer { string buffer = string.Empty; do { if (readNow.WaitOne(timeout, false)) { string t = port.ReadExisting(); buffer += t; } } while (!buffer.EndsWith("\r\nOK\r\n") && !buffer.EndsWith("\r\n>") && !buffer.Contains("ERROR")); return buffer; } static SerialPort EstablishConnection()//Thiet lap thong so cho cong COM { SerialPort port = new SerialPort(); port.PortName = "COM1"; port.BaudRate = 115200; port.DataBits = 8; port.StopBits = StopBits.One; port.Parity = Parity.None; port.ReadTimeout = 300; port.WriteTimeout = 300; port.Handshake = Handshake.RequestToSend; port.Encoding = Encoding.GetEncoding("iso­8859­1"); port.DataReceived += new SerialDataReceivedEventHandler(DataReceived); port.Open(); port.DtrEnable = true; return port;
  3. } static void DataReceived(object sender,SerialDataReceivedEventArgs e) { if (e.EventType == SerialData.Chars) readNow.Set(); } Code trên mình thực hiện việc nhân tin SMS thông qua GSM modem.Hiên tại thi vòng lặp do .. while đang  thực hiện chưa đung ý mình (khi có dữ liệu ,tin SMS đến thì vòng lặp sẽ bị break .sau đó thưc hiện lệnh sau  của chương trình)).Tuy nhiên hiên tại thi khi dữ liệu đến thì vòng lặp bị break nhưng không thực hiện các  lệnh sau đó.Mình đã thử bỏ vòng lặp Do...while ra thi chuong trinh hoat dộng binh thươg.MONG CAC BAN  DA TUNG LAM VE KẾT NỐI CỎNG COM BẰNG c # GIUP DO MINH VỚI
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2