1. Trang chủ
  2. » Công Nghệ Thông Tin

Nhận SMS thông qua GSM modem bang C# ppsx

2 491 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 2
Dung lượng 27 KB

Nội dung

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.

Trang 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)

{

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

{

Trang 2

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;

}

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

Ngày đăng: 08/08/2014, 20:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w