.DefaultTimeout;
PortAccess.Output(888, 0);
frmConnection dlg = newfrmConnection();
dlg.StartPosition = FormStartPosition.CenterScreen;
dlg.SetData(port, baudRate, timeout);
if (dlg.ShowDialog(this) == DialogResult.OK)
{
dlg.GetData(out port, out baudRate, out timeout);
CommSetting.Comm_Port = port;
CommSetting.Comm_BaudRate = baudRate;
CommSetting.Comm_TimeOut = timeout;
}
else
{
Close();
return;
}
Cursor.Current = Cursors.WaitCursor;
CommSetting.comm = newGsmCommMain(port, baudRate, timeout);
Cursor.Current = Cursors.Default;
CommSetting.comm.PhoneConnected += newEventHandler(comm_PhoneConnected);
//thông báo khi có tin nhắn mới
CommSetting.comm.MessageReceived +=
newMessageReceivedEventHandler(comm_MessageReceived);
//comm.MessageReceived += new
MessageReceivedEventHandler(comm_MessageReceived)
//CommSetting.comm.EnableMessageNotifications();
//CommSetting.comm.EnableMessageNotifications();
//CommSetting.comm.EnableMessageRouting();
Output("Message notifications activated.");
Output("");
Cursor.Current = Cursors.Default;
bool retry;
do
{
retry = false;
try
{
Cursor.Current = Cursors.WaitCursor;
CommSetting.comm.Open();
Cursor.Current = Cursors.Default;
}
catch (Exception)
{
Cursor.Current = Cursors.Default;
if (MessageBox.Show(this, "Unable to open the port.", "Error",
MessageBoxButtons.RetryCancel, MessageBoxIcon.Warning) ==
DialogResult.Retry)
retry = true;
else
{
Close();
return;
}
T r a n g | 132
Đồ án tốt nghiệp
}
}
while (retry);
}
privatedelegatevoidConnectedHandler(bool connected);
privatevoid OnPhoneConnectionChange(bool connected)
{
lbl_phone_status.Text = "CONNECTED";
}
privatevoid comm_MessageReceived(object sender,
GsmComm.GsmCommunication.MessageReceivedEventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
try
{
IMessageIndicationObject obj = e.IndicationObject;
MemoryLocation loc = (MemoryLocation)obj;
//Output(string.Format("New message received in storage \"{0}\", index
{1}.",
// loc.Storage, loc.Index));
index = loc.Index;
}
catch (Exception E)
{
MessageBox.Show("Error occured: " + E.Message);
}
MessageReceived();
XuLyTinNhan();
GuiTinTraLoi();
noidungTN = "";
DecodedShortMessage[] msgs =
CommSetting.comm.ReadMessages(PhoneMessageStatus.ReceivedUnread,
PhoneStorageType.Sim);
foreach (DecodedShortMessage msg in msgs)
{
Output(string.Format("Message status = {0}, Location =
{1}/{2}", StatusToString(msg.Status), msg.Storage, msg.Index));
ShowMessage(msg.Data);
Output("");
if (!(noidungTN == ""))
{
XuLyTinNhan();
GuiTinTraLoi();
}
}
Cursor.Current = Cursors.Default;
}
privatevoid MessageReceived()
{
DecodedShortMessage message = CommSetting.comm.ReadMessage(index,
PhoneStorageType.Sim);
Output(string.Format("Message status = {0}, Location = {1}/{2}",
StatusToString(message.Status), message.Storage, message.Index));
ShowMessage(message.Data);
SmsDeliverPdu data = (SmsDeliverPdu)message.Data;
xNumber = data.OriginatingAddress;
noidungTN = data.UserDataText;
}
privatevoid XuLyTinNhan()
{
if (noidungTN.Length>=4)
{
T r a n g | 133
Đồ án tốt nghiệp
string noidung = noidungTN.Substring(0,3);
string TTGV = noidungTN.Substring(0,5);
if (noidung == "DT " || TTGV=="TT GV")
{
if (noidung == "DT ")
{
TraDatabaseHS();
}
if (TTGV=="TT GV")
{
TraDatabaseGV();
}
}
else
{
xMessage = "Cu phap khong dung!";
}
}
else
{
xMessage = "Cu phap khong dung!";
}
}
///
/// Tra database lấy du lieu.
///
privatevoid TraDatabaseHS()
{
NoiDungTra = noidungTN.Substring(3, 4);
string conString = @"Provider=Microsoft.JET.OLEDB.4.0;" + @"data
source=D:\DATA.mdb";
OleDbConnection conn = newOleDbConnection(conString);
try
{
// create an open the connection
conn.Open();
// create the adapter and fill the DataSet
OleDbDataAdapter adapter1 = newOleDbDataAdapter("SELECT MSHS, Name, Toan,
Ly, Hoa FROM Pupils WHERE MSHS = \'" + NoiDungTra + "\'", conn);
dataSet1.Clear();
int numberOfRowsFeched = adapter1.Fill(dataSet1, "Pupils");
if (numberOfRowsFeched > 0)
{
DataTable dt = dataSet1.Tables["Pupils"];
xMessage = "MSHS:" + " " + dt.Rows[0][0] + ", " +
dt.Rows[0][1] + ": Toan: " + dt.Rows[0][2].ToString() + ", Ly: " +
dt.Rows[0][3].ToString() + ", Hoa: " + dt.Rows[0][4].ToString();
}
else
{
xMessage = "ID not found.";
}
}
catch (Exception E)
{
MessageBox.Show("Error occured: " + E.Message);
}
finally
{
conn.Close();
}
T r a n g | 134
Đồ án tốt nghiệp
}
privatevoid TraDatabaseGV()
{
NoiDungTra = noidungTN.Substring(3, 5);
string conString = @"Provider=Microsoft.JET.OLEDB.4.0;" + @"data
source=D:\DATA.mdb";
OleDbConnection conn = newOleDbConnection(conString);
try
{
// create an open the connection
conn.Open();
// create the adapter and fill the DataSet
OleDbDataAdapter adapter1 = newOleDbDataAdapter("SELECT MSGV, Name, HocVi,
Mobile, Email FROM Teachers WHERE MSGV = \'" + NoiDungTra + "\'", conn);
dataSet1.Clear();
int numberOfRowsFeched = adapter1.Fill(dataSet1, "Teachers");
if (numberOfRowsFeched > 0)
{
DataTable dt = dataSet1.Tables["Teachers"];
xMessage = "MSGV:" + dt.Rows[0][0] + ", " +
dt.Rows[0][1] + ", Hoc vi: " + dt.Rows[0][2] + ", Mobile: " + dt.Rows[0][3]
+ ", Email: " + dt.Rows[0][4];
}
else
{
xMessage = "ID not found.";
}
}
catch (Exception E)
{
MessageBox.Show("Error occured: " + E.Message);
}
finally
{
conn.Close();
}
}
///
/// Gửi tin nhắn trả lời.
///
privatevoid GuiTinTraLoi()
{
try
{
// Send an SMS message
SmsSubmitPdu pdu;
string smsc = "+84900000022";
pdu = newSmsSubmitPdu(xMessage, xNumber, smsc);
CommSetting.comm.SendMessage(pdu);
Output("1 Message sent to " + xNumber);
Output("");
if (index == 10)
{
int index_del;
index_del = 1;
// Delete the message with the specified index from storage
CommSetting.comm.DeleteMessage(index_del, PhoneStorageType.Sim);
index_del = 2;
// Delete the message with the specified index from storage
CommSetting.comm.DeleteMessage(index_del, PhoneStorageType.Sim);
index_del = 9;
T r a n g | 135
Đồ án tốt nghiệp
// Delete the message with the specified index from storage
CommSetting.comm.DeleteMessage(index_del, PhoneStorageType.Sim);
index_del = 10;
// Delete the message with the specified index from storage
CommSetting.comm.DeleteMessage(index_del, PhoneStorageType.Sim);
//MessageBox.Show("Message With Index " + index_del + " Deleted", "Message",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
//}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
privatevoid comm_PhoneConnected(object sender, EventArgs e)
{
this.Invoke(newConnectedHandler(OnPhoneConnectionChange), newobject[] { true
});
}
privatestring StatusToString(PhoneMessageStatus status)
{
// Map a message status to a string
string ret;
switch (status)
{
casePhoneMessageStatus.All:
ret = "All";
break;
casePhoneMessageStatus.ReceivedRead:
ret = "Read";
break;
casePhoneMessageStatus.ReceivedUnread:
ret = "Unread";
break;
casePhoneMessageStatus.StoredSent:
ret = "Sent";
break;
casePhoneMessageStatus.StoredUnsent:
ret = "Unsent";
break;
default:
ret = "Unknown (" + status.ToString() + ")";
break;
}
return ret;
}
privatevoid Output(string text)
{
if (this.txtOutput.InvokeRequired)
{
SetTextCallback stc = newSetTextCallback(Output);
this.Invoke(stc, newobject[] { text });
}
else
{
txtOutput.AppendText(text);
txtOutput.AppendText("\r\n");
}
}
T r a n g | 136
Đồ án tốt nghiệp
privatevoid ShowMessage(SmsPdu pdu)
{
if (pdu isSmsSubmitPdu)
{
// Stored (sent/unsent) message
SmsSubmitPdu data = (SmsSubmitPdu)pdu;
Output("SENT/UNSENT MESSAGE");
Output("Recipient: " + data.DestinationAddress);
Output("Message text: " + data.UserDataText);
Output("-----------------------);
return;
}
if (pdu isSmsDeliverPdu)
{
// Received message
SmsDeliverPdu data = (SmsDeliverPdu)pdu;
Output("RECEIVED MESSAGE");
Output("Sender: " + data.OriginatingAddress);
Output("Sent: " + data.SCTimestamp.ToString());
Output("Message text: " + data.UserDataText);
xNumber = data.OriginatingAddress;
noidungTN = data.UserDataText;
Output("-----------------------------------------");
return;
}
if (pdu isSmsStatusReportPdu)
{
// Status report
SmsStatusReportPdu data = (SmsStatusReportPdu)pdu;
Output("STATUS REPORT");
Output("Recipient: " + data.RecipientAddress);
Output("Status: " + data.Status.ToString());
Output("Timestamp: " + data.DischargeTime.ToString());
Output("Message ref: " + data.MessageReference.ToString());
Output("-----------------------------------------");
return;
}
Output("Unknown message type: " + pdu.GetType().ToString());
}
privatevoid mnu_send_click(object sender, System.EventArgs e)
{
Send send_sms = newSend();
send_sms.Show();
}
privatevoid mnu_read_click(object sender, System.EventArgs e)
{
Receive receice_sms = newReceive();
receice_sms.Show();
}
privatevoid Form1_Closing(object sender,
System.ComponentModel.CancelEventArgs e)
{
// Clean up comm object
if (CommSetting.comm != null)
{
// Unregister events
CommSetting.comm.PhoneConnected -= newEventHandler(comm_PhoneConnected);
CommSetting.comm.MessageReceived -=
newMessageReceivedEventHandler(comm_MessageReceived);
// Close connection to phone
T r a n g | 137
Đồ án tốt nghiệp
if (CommSetting.comm != null&&CommSetting.comm.IsOpen())
CommSetting.comm.Close();
CommSetting.comm = null;
}
}
publicvoid ExitApplication()
{
// Display a message box asking users if they
// want to exit the application.
if (MessageBox.Show("Do you want to exit?", "My Application",
MessageBoxButtons.YesNo, MessageBoxIcon.Question)
== DialogResult.Yes)
{
Application.Exit();
}
}
privatevoid aboutToolStripMenuItem1_Click(object sender, EventArgs e)
{
MessageBox.Show("Trường Đại học Sư phạm Kỹ thuật TPHCM\nKhoa Điện - Điện
tử\nĐồ án tốt nghiệp ngành Điện tử viễn thông\n'Tra cứu thông tin và Điều
khiển thiết bị điện qua tin nhắn SMS'\nGiáo viên hướng dẫn: ThS. Đinh Quốc
Hùng\nSinh viên thực hiện: Lưu Văn Đại, Trần Hoàng Lê Chuyên\nTháng 1 năm
2011\nContact Us:
[email protected]", "About",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
privatevoid sendToolStripMenuItem_Click(object sender, EventArgs e)
{
Send send_sms = newSend();
send_sms.Show();
}
privatevoid sendMultipleToolStripMenuItem_Click(object sender, EventArgs e)
{
SendMulti sendMulti_sms = newSendMulti();
sendMulti_sms.Show();
}
privatevoid readToolStripMenuItem_Click(object sender, EventArgs e)
{
Receive receice_sms = newReceive();
receice_sms.Show();
}
privatevoid deleteToolStripMenuItem_Click(object sender, EventArgs e)
{
Delete delete = newDelete();
delete.Show();
}
privatevoid aboutToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Trường Đại học Sư phạm Kỹ thuật TPHCM\nKhoa Điện - Điện
tử\nĐồ án tốt nghiệp ngành Điện tử viễn thông\n'Tra cứu thông tin và Điều
khiển thiết bị điện qua tin nhắn SMS'\nGiáo viên hướng dẫn: ThS. Đinh Quốc
Hùng\nSinh viên thực hiện: Lưu Văn Đại, Trần Hoàng Lê Chuyên\nTháng 1 năm
2011\nContact Us:
[email protected]", "About",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
3. Send Multiple SMS
T r a n g | 138
Đồ án tốt nghiệp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using GsmComm.PduConverter;
using GsmComm.GsmCommunication;
namespace SMS
{
publicpartialclassSendMulti : Form
{
privatedelegatevoidSetTextCallback(string text);
string timlop, xNumber, xlop, ten, lop;
int numberOfRowsFeched;
DataTable dt;
public SendMulti()
{
InitializeComponent();
cmbk12.Items.Add("12A1");
cmbk12.Items.Add("12A2");
cmbk12.Items.Add("12A3");
cmbk12.Items.Add("Ca khoi 12");
cmbk11.Items.Add("11A1");
cmbk11.Items.Add("11A2");
cmbk11.Items.Add("11A3");
cmbk11.Items.Add("Ca khoi 11");
cmbk10.Items.Add("10A1");
cmbk10.Items.Add("10A2");
cmbk10.Items.Add("10A3");
cmbk10.Items.Add("Ca khoi 10");
cmbgv.Items.Add("GVT");
cmbgv.Items.Add("GVL");
cmbgv.Items.Add("GVH");
cmbgv.Items.Add("All GV");
}
privatevoid SendMulti_Load(object sender, System.EventArgs e)
{
T r a n g | 139
Đồ án tốt nghiệp
chkMultipleTimes.Checked = true;
}
privatevoid cmbk12_SelectedIndexChanged(object sender, EventArgs e)
{
timlop = cmbk12.SelectedItem.ToString();
kiemtraHS();
textBox1.Text = "Chọn gửi tới: " + cmbk12.SelectedItem +
"\r\nTổng số: " + numberOfRowsFeched.ToString();
}
privatevoid cmbk11_SelectedIndexChanged(object sender, EventArgs e)
{
timlop = cmbk11.SelectedItem.ToString();
kiemtraHS();
textBox1.Text = "Chọn gửi tới: " + cmbk11.SelectedItem +
"\r\nTổng số: " + numberOfRowsFeched.ToString();
}
privatevoid cmbk10_SelectedIndexChanged(object sender, EventArgs e)
{
timlop = cmbk10.SelectedItem.ToString();
kiemtraHS();
textBox1.Text = "Chọn gửi tới: " + cmbk10.SelectedItem +
"\r\nTổng số: " + numberOfRowsFeched.ToString();
}
privatevoid cmbgv_SelectedIndexChanged(object sender, EventArgs e)
{
timlop = cmbgv.SelectedItem.ToString();
kiemtraGV();
textBox1.Text = "Chọn gửi tới: " + cmbgv.SelectedItem +
"\r\nTổng số: " + numberOfRowsFeched.ToString();
}
privatevoid btnbochon_Click(object sender, EventArgs e)
{
textBox1.Text = "";
timlop = "";
}
privatevoid BtnClear_Click(object sender, System.EventArgs e)
{
txt_message.Text = "";
txt_message.Focus();
}
privatevoid textBox1_TextChanged(object sender, System.EventArgs e)
{
int remaining = int.Parse(txt_text_remaining.Text.Trim());
remaining -= 1;
txt_text_remaining.Text = remaining.ToString();
}
privatevoid kiemtraHS()
{
Cursor.Current = Cursors.WaitCursor;
string conString = @"Provider=Microsoft.JET.OLEDB.4.0;" + @"data
source=D:\DATA.mdb";
OleDbConnection conn = newOleDbConnection(conString);
try
{
// create an open the connection
conn.Open();
// create the adapter and fill the DataSet
if (timlop == "Ca khoi 12")
{
timlop = "12A";
xlop = "HS";
OleDbDataAdapter adapter1 = newOleDbDataAdapter("SELECT Mobile, Name, Class
FROM Pupils WHERE LEFT(Class ,3) = \'" + timlop + "\'", conn);
dataSet1.Clear();
numberOfRowsFeched = adapter1.Fill(dataSet1, "Pupils");
T r a n g | 140
Đồ án tốt nghiệp
dt = dataSet1.Tables["Pupils"];
}
elseif (timlop == "Ca khoi 11")
{
timlop = "11A";
xlop = "HS";
OleDbDataAdapter adapter1 = newOleDbDataAdapter("SELECT Mobile, Name, Class
FROM Pupils WHERE LEFT(Class ,3) = \'" + timlop + "\'", conn);
dataSet1.Clear();
numberOfRowsFeched = adapter1.Fill(dataSet1, "Pupils");
dt = dataSet1.Tables["Pupils"];
}
elseif (timlop == "Ca khoi 10")
{
timlop = "10A";
xlop = "HS";
OleDbDataAdapter adapter1 = newOleDbDataAdapter("SELECT Mobile, Name, Class
FROM Pupils WHERE LEFT(Class ,3) = \'" + timlop + "\'", conn);
dataSet1.Clear();
numberOfRowsFeched = adapter1.Fill(dataSet1, "Pupils");
dt = dataSet1.Tables["Pupils"];
}
else
{
xlop = "HS";
OleDbDataAdapter adapter1 = newOleDbDataAdapter("SELECT Mobile, Name, Class
FROM Pupils WHERE Class = \'" + timlop + "\'", conn);
dataSet1.Clear();
numberOfRowsFeched = adapter1.Fill(dataSet1, "Pupils");
dt = dataSet1.Tables["Pupils"];
}
}
catch (Exception E)
{
MessageBox.Show("Error occured: " + E.Message);
}
finally
{
conn.Close();
}
}
privatevoid kiemtraGV()
{
Cursor.Current = Cursors.WaitCursor;
string conString = @"Provider=Microsoft.JET.OLEDB.4.0;" + @"data
source=D:\DATA.mdb";
OleDbConnection conn = newOleDbConnection(conString);
try
{
// create an open the connection
conn.Open();
// create the adapter and fill the DataSet
if (timlop == "All GV")
{
timlop = "GV";
xlop = "GV";
OleDbDataAdapter adapter1 = newOleDbDataAdapter("SELECT Mobile, Name FROM
Teachers WHERE Left(MSGV ,2)= \'" + timlop + "\'", conn);
dataSet1.Clear();
numberOfRowsFeched = adapter1.Fill(dataSet1,
"Teachers");
dt = dataSet1.Tables["Teachers"];
}
else
T r a n g | 141
Đồ án tốt nghiệp
{
xlop = "GV";
OleDbDataAdapter adapter1 = newOleDbDataAdapter("SELECT Mobile, Name,
ChuyenMon FROM Teachers WHERE Left(MSGV ,3)= \'" + timlop + "\'", conn);
dataSet1.Clear();
numberOfRowsFeched = adapter1.Fill(dataSet1,
"Teachers");
dt = dataSet1.Tables["Teachers"];
}
}
catch (Exception E)
{
MessageBox.Show("Error occured: " + E.Message);
}
finally
{
conn.Close();
}
}
privatevoid btnSendMessage_Click(object sender, System.EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
for (int i = 0; i < numberOfRowsFeched; i++)
{
xNumber = dt.Rows[i][0].ToString();
ten = dt.Rows[i][1].ToString();
//Output(xNumber);
GuiTinNhan();
if (xlop == "HS")
{
lop = dt.Rows[i][2].ToString();
ten = dt.Rows[i][1].ToString();
Output("Đã gửi thông báo đến Phụ huynh em: " + ten + ",
Lớp" + lop);
Output("");
}
else
{
lop = dt.Rows[i][2].ToString();
Output("Đã gửi thông báo đến giáo viên : " + ten + ",
Chuyên môn: "+ dt.Rows[i][2].ToString());
Output("");
}
}
Cursor.Current = Cursors.Default;
}
privatevoid GuiTinNhan()
{
// Send an SMS message
SmsSubmitPdu pdu;
bool alert = chkAlert.Checked;
bool unicode = chkUnicode.Checked;
string smsc = "+84900000022";//smscMobifone
if (!alert && !unicode)
{
// The straightforward version
pdu = newSmsSubmitPdu(txt_message.Text, xNumber, smsc); //
"" indicate SMSC No
}
else
{
// The extended version with dcs
byte dcs;
T r a n g | 142
Đồ án tốt nghiệp
if (!alert && unicode)
dcs = DataCodingScheme.NoClass_16Bit;
elseif (alert && !unicode)
dcs = DataCodingScheme.Class0_7Bit;
elseif (alert && unicode)
dcs = DataCodingScheme.Class0_16Bit;
else
dcs = DataCodingScheme.NoClass_7Bit; // should never
occur here
pdu = newSmsSubmitPdu(txt_message.Text, xNumber, smsc, dcs);
}
// Send the same message multiple times if this is set
int times = chkMultipleTimes.Checked ? int.Parse(txtSendTimes.Text) : 1;
// Send the message the specified number of times
for (int i = 0; i < times; i++)
{
CommSetting.comm.SendMessage(pdu);
}
}
privatevoid Output(string text)
{
if (this.txtOutput.InvokeRequired)
{
SetTextCallback stc = newSetTextCallback(Output);
this.Invoke(stc, newobject[] { text });
}
else
{
txtOutput.AppendText(text);
txtOutput.AppendText("\r\n");
}
}
}
}
4. Send
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
T r a n g | 143
Đồ án tốt nghiệp
using System.Windows.Forms;
using GsmComm.PduConverter;
using GsmComm.GsmCommunication;
namespace SMS
{
///
/// Summary description for Send.
///
publicclassSend : System.Windows.Forms.Form
{
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox txt_destination_numbers;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox txt_text_remaining;
private System.Windows.Forms.Button btnSendMessage;
private System.Windows.Forms.Button BtnClear;
private System.Windows.Forms.TextBox txt_message;
private System.Windows.Forms.TextBox txtOutput;
private System.Windows.Forms.CheckBox chkUnicode;
private System.Windows.Forms.CheckBox chkAlert;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label label19;
private System.Windows.Forms.TextBox txtSendTimes;
private System.Windows.Forms.CheckBox chkMultipleTimes;
///
/// Required designer variable.
///
private System.ComponentModel.Container components = null;
privatedelegatevoidSetTextCallback(string text);
public Send()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after
InitializeComponent call
//
}
///
/// Clean up any resources being used.
///
protectedoverridevoid Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
T r a n g | 144
Đồ án tốt nghiệp
/// the contents of this method with the code editor.
///
privatevoid InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new
System.ComponentModel.ComponentResourceManager(typeof(Send));
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.label1 = new System.Windows.Forms.Label();
this.txt_destination_numbers = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.txt_message = new System.Windows.Forms.TextBox();
this.txt_text_remaining = new System.Windows.Forms.TextBox();
this.btnSendMessage = new System.Windows.Forms.Button();
this.BtnClear = new System.Windows.Forms.Button();
this.txtOutput = new System.Windows.Forms.TextBox();
this.chkUnicode = new System.Windows.Forms.CheckBox();
this.chkAlert = new System.Windows.Forms.CheckBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.txtSendTimes = new System.Windows.Forms.TextBox();
this.chkMultipleTimes = new System.Windows.Forms.CheckBox();
this.label19 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.BackgroundImage =
((System.Drawing.Image)(resources.GetObject("pictureBox1.BackgroundImage")))
;
this.pictureBox1.Location = new System.Drawing.Point(0, 2);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(371, 104);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// label1
//
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point,
((byte)(0)));
this.label1.Location = new System.Drawing.Point(0, 112);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(144, 24);
this.label1.TabIndex = 1;
this.label1.Text = "Destination Number :";
//
// txt_destination_numbers
//
this.txt_destination_numbers.Location = new System.Drawing.Point(0, 136);
this.txt_destination_numbers.Name = "txt_destination_numbers";
this.txt_destination_numbers.Size = new System.Drawing.Size(224, 20);
this.txt_destination_numbers.TabIndex = 2;
this.txt_destination_numbers.Text = "+84";
//
// label2
//
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point,
((byte)(0)));
this.label2.Location = new System.Drawing.Point(0, 168);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(72, 16);
this.label2.TabIndex = 3;
this.label2.Text = "Message:";
T r a n g | 145
Đồ án tốt nghiệp
//
// txt_message
//
this.txt_message.Location = new System.Drawing.Point(0, 192);
this.txt_message.Multiline = true;
this.txt_message.Name = "txt_message";
this.txt_message.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txt_message.Size = new System.Drawing.Size(224, 112);
this.txt_message.TabIndex = 4;
this.txt_message.TextChanged += new
System.EventHandler(this.textBox1_TextChanged);
//
// txt_text_remaining
//
this.txt_text_remaining.BackColor = System.Drawing.SystemColors.Control;
this.txt_text_remaining.Enabled = false;
this.txt_text_remaining.Location = new System.Drawing.Point(224, 288);
this.txt_text_remaining.Name = "txt_text_remaining";
this.txt_text_remaining.Size = new System.Drawing.Size(40, 20);
this.txt_text_remaining.TabIndex = 5;
this.txt_text_remaining.Text = "160";
//
// btnSendMessage
//
this.btnSendMessage.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.btnSendMessage.Location = new System.Drawing.Point(144, 320);
this.btnSendMessage.Name = "btnSendMessage";
this.btnSendMessage.Size = new System.Drawing.Size(80, 24);
this.btnSendMessage.TabIndex = 16;
this.btnSendMessage.Text = "Send";
this.btnSendMessage.Click += new
System.EventHandler(this.btnSendMessage_Click);
//
// BtnClear
//
this.BtnClear.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.BtnClear.Location = new System.Drawing.Point(56, 320);
this.BtnClear.Name = "BtnClear";
this.BtnClear.Size = new System.Drawing.Size(80, 24);
this.BtnClear.TabIndex = 17;
this.BtnClear.Text = "Clear";
this.BtnClear.Click += new System.EventHandler(this.BtnClear_Click);
//
// txtOutput
//
this.txtOutput.Location = new System.Drawing.Point(0, 352);
this.txtOutput.Multiline = true;
this.txtOutput.Name = "txtOutput";
this.txtOutput.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.txtOutput.Size = new System.Drawing.Size(504, 120);
this.txtOutput.TabIndex = 56;
//
// chkUnicode
//
this.chkUnicode.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.chkUnicode.Location = new System.Drawing.Point(16, 56);
this.chkUnicode.Name = "chkUnicode";
this.chkUnicode.Size = new System.Drawing.Size(208, 24);
this.chkUnicode.TabIndex = 58;
this.chkUnicode.Text = "Send as Unicode (UCS2)";
//
// chkAlert
//
this.chkAlert.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.chkAlert.Location = new System.Drawing.Point(16, 24);
this.chkAlert.Name = "chkAlert";
T r a n g | 146
Đồ án tốt nghiệp
this.chkAlert.Size = new System.Drawing.Size(176, 24);
this.chkAlert.TabIndex = 57;
this.chkAlert.Text = "Request immediate display (alert)";
//
// groupBox1
//
this.groupBox1.Controls.Add(this.chkUnicode);
this.groupBox1.Controls.Add(this.chkAlert);
this.groupBox1.Controls.Add(this.txtSendTimes);
this.groupBox1.Controls.Add(this.chkMultipleTimes);
this.groupBox1.Controls.Add(this.label19);
this.groupBox1.Location = new System.Drawing.Point(240, 112);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(264, 128);
this.groupBox1.TabIndex = 59;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Option";
//
// txtSendTimes
//
this.txtSendTimes.Location = new System.Drawing.Point(120, 88);
this.txtSendTimes.Name = "txtSendTimes";
this.txtSendTimes.Size = new System.Drawing.Size(48, 20);
this.txtSendTimes.TabIndex = 61;
this.txtSendTimes.Text = "1";
//
// chkMultipleTimes
//
this.chkMultipleTimes.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.chkMultipleTimes.Location = new System.Drawing.Point(16, 88);
this.chkMultipleTimes.Name = "chkMultipleTimes";
this.chkMultipleTimes.Size = new System.Drawing.Size(104, 24);
this.chkMultipleTimes.TabIndex = 60;
this.chkMultipleTimes.Text = "Send message";
//
// label19
//
this.label19.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label19.Location = new System.Drawing.Point(176, 88);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(72, 23);
this.label19.TabIndex = 62;
this.label19.Text = "times";
this.label19.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// Send
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(504, 478);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.txtOutput);
this.Controls.Add(this.BtnClear);
this.Controls.Add(this.btnSendMessage);
this.Controls.Add(this.txt_text_remaining);
this.Controls.Add(this.txt_message);
this.Controls.Add(this.label2);
this.Controls.Add(this.txt_destination_numbers);
this.Controls.Add(this.label1);
this.Controls.Add(this.pictureBox1);
this.Name = "Send";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Send SMS";
this.Load += new System.EventHandler(this.Send_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.groupBox1.ResumeLayout(false);
T r a n g | 147
Đồ án tốt nghiệp
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
privatevoid textBox1_TextChanged(object sender, System.EventArgs
e)
{
int remaining=int.Parse(txt_text_remaining.Text.Trim());
remaining-=1;
txt_text_remaining.Text=remaining.ToString();
}
privatevoid BtnClear_Click(object sender, System.EventArgs e)
{
txt_message.Text="";
txt_message.Focus();
}
privatevoid btnSendMessage_Click(object sender, System.EventArgs
e)
{
Cursor.Current = Cursors.WaitCursor;
try
{
// Send an SMS message
SmsSubmitPdu pdu;
bool alert = chkAlert.Checked;
bool unicode = chkUnicode.Checked;
string smsc = "+84900000022";
if (!alert && !unicode)
{
// The straightforward version
pdu = newSmsSubmitPdu(txt_message.Text,
txt_destination_numbers.Text,smsc); // "" indicate SMSC No
}
else
{
// The extended version with dcs
byte dcs;
if (!alert && unicode)
dcs = DataCodingScheme.NoClass_16Bit;
elseif (alert && !unicode)
dcs = DataCodingScheme.Class0_7Bit;
elseif (alert && unicode)
dcs = DataCodingScheme.Class0_16Bit;
else
dcs = DataCodingScheme.NoClass_7Bit; //
should never occur here
pdu = newSmsSubmitPdu(txt_message.Text,
txt_destination_numbers.Text, smsc, dcs);
}
// Send the same message multiple times if this is
set
int times = chkMultipleTimes.Checked ?
int.Parse(txtSendTimes.Text) : 1;
// Send the message the specified number of times
for (int i=0;i<times;i++)
{
CommSetting.comm.SendMessage(pdu);
T r a n g | 148
Đồ án tốt nghiệp
Output("Message {0} of {1} sent.", i+1,
times);
Output("");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
Cursor.Current = Cursors.Default;
}
privatevoid Output(string text)
{
if (this.txtOutput.InvokeRequired)
{
SetTextCallback stc = newSetTextCallback(Output);
this.Invoke(stc, newobject[] { text });
}
else
{
txtOutput.AppendText(text);
txtOutput.AppendText("\r\n");
}
}
privatevoid Send_Load(object sender, System.EventArgs e)
{
chkMultipleTimes.Checked=true;
}
privatevoid Output(string text, paramsobject[] args)
{
string msg = string.Format(text, args);
Output(msg);
}
}
}
5. Receive
T r a n g | 149
Đồ án tốt nghiệp
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;
using GsmComm.PduConverter;
using GsmComm.GsmCommunication;
namespace SMS
{
///
/// Summary description for Receive.
///
publicclassReceive : System.Windows.Forms.Form
{
private System.Windows.Forms.Button btnReadMessage;
private System.Windows.Forms.RadioButton rbMessagePhone;
private System.Windows.Forms.RadioButton rbMessageSIM;
private System.Windows.Forms.TextBox txtOutput;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.DataGrid dataGrid1;
///
/// Required designer variable.
///
private System.ComponentModel.Container components = null;
privateDataTable dt=newDataTable();
privatedelegatevoidSetTextCallback(string text);
public Receive()
{
//
T r a n g | 150
Đồ án tốt nghiệp
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after
InitializeComponent call
//
}
///
/// Clean up any resources being used.
///
protectedoverridevoid Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
privatevoid InitializeComponent()
{
this.btnReadMessage = new System.Windows.Forms.Button();
this.rbMessagePhone = new System.Windows.Forms.RadioButton();
this.rbMessageSIM = new System.Windows.Forms.RadioButton();
this.txtOutput = new System.Windows.Forms.TextBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.dataGrid1 = new System.Windows.Forms.DataGrid();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
this.SuspendLayout();
//
// btnReadMessage
//
this.btnReadMessage.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.btnReadMessage.Location = new System.Drawing.Point(192, 80);
this.btnReadMessage.Name = "btnReadMessage";
this.btnReadMessage.Size = new System.Drawing.Size(112, 24);
this.btnReadMessage.TabIndex = 17;
this.btnReadMessage.Text = "Read All Messages";
this.btnReadMessage.Click += new
System.EventHandler(this.btnReadMessage_Click);
//
// rbMessagePhone
//
this.rbMessagePhone.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.rbMessagePhone.Location = new System.Drawing.Point(16, 56);
this.rbMessagePhone.Name = "rbMessagePhone";
this.rbMessagePhone.Size = new System.Drawing.Size(64, 24);
this.rbMessagePhone.TabIndex = 25;
this.rbMessagePhone.TabStop = true;
this.rbMessagePhone.Text = "Phone";
//
// rbMessageSIM
//
T r a n g | 151
Đồ án tốt nghiệp
this.rbMessageSIM.Checked = true;
this.rbMessageSIM.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.rbMessageSIM.Location = new System.Drawing.Point(16, 24);
this.rbMessageSIM.Name = "rbMessageSIM";
this.rbMessageSIM.Size = new System.Drawing.Size(64, 24);
this.rbMessageSIM.TabIndex = 24;
this.rbMessageSIM.TabStop = true;
this.rbMessageSIM.Text = "SIM";
//
// txtOutput
//
this.txtOutput.Location = new System.Drawing.Point(6, 304);
this.txtOutput.Multiline = true;
this.txtOutput.Name = "txtOutput";
this.txtOutput.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.txtOutput.Size = new System.Drawing.Size(492, 144);
this.txtOutput.TabIndex = 57;
//
// groupBox1
//
this.groupBox1.Controls.Add(this.rbMessageSIM);
this.groupBox1.Controls.Add(this.rbMessagePhone);
this.groupBox1.Location = new System.Drawing.Point(8, 8);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(176, 96);
this.groupBox1.TabIndex = 58;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Message Storage";
//
// dataGrid1
//
this.dataGrid1.DataMember = "";
this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
this.dataGrid1.Location = new System.Drawing.Point(7, 120);
this.dataGrid1.Name = "dataGrid1";
this.dataGrid1.RowHeadersVisible = false;
this.dataGrid1.SelectionBackColor = System.Drawing.Color.CornflowerBlue;
this.dataGrid1.Size = new System.Drawing.Size(492, 176);
this.dataGrid1.TabIndex = 59;
//
// Receive
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(504, 478);
this.Controls.Add(this.dataGrid1);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.txtOutput);
this.Controls.Add(this.btnReadMessage);
this.Name = "Receive";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Read Messages";
this.Load += new System.EventHandler(this.Receive_Load);
this.groupBox1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
privatevoid btnReadMessage_Click(object sender, System.EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
string storage = GetMessageStorage();
T r a n g | 152
Đồ án tốt nghiệp
try
{
// Read all SMS messages from the storage
DecodedShortMessage[] messages =
CommSetting.comm.ReadMessages(PhoneMessageStatus.All, storage);
foreach (DecodedShortMessage message in messages)
{
Output(string.Format("Message status = {0}, Location =
{1}/{2}",
StatusToString(message.Status), message.Storage,
message.Index));
ShowMessage(message.Data);
Output("");
}
Output(string.Format("{0,9} messages read.",
messages.Length.ToString()));
Output("");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
privatevoid BindGrid(SmsPdu pdu)
{
DataRow dr = dt.NewRow();
SmsDeliverPdu data = (SmsDeliverPdu)pdu;
dr[0] = data.OriginatingAddress.ToString();
dr[1] = data.SCTimestamp.ToString();
dr[2] = data.UserDataText;
dt.Rows.Add(dr);
dataGrid1.DataSource = dt;
}
privatevoid ShowMessage(SmsPdu pdu)
{
if (pdu isSmsSubmitPdu)
{
// Stored (sent/unsent) message
SmsSubmitPdu data = (SmsSubmitPdu)pdu;
Output("SENT/UNSENT MESSAGE");
Output("Recipient: " + data.DestinationAddress);
Output("Message text: " + data.UserDataText);
Output("------------------------------");
return;
}
if (pdu isSmsDeliverPdu)
{
// Received message
SmsDeliverPdu data = (SmsDeliverPdu)pdu;
Output("RECEIVED MESSAGE");
Output("Sender: " + data.OriginatingAddress);
Output("Sent: " + data.SCTimestamp.ToString());
Output("Message text: " + data.UserDataText);
Output("---------------------------------");
BindGrid(pdu);
return;
}
T r a n g | 153
Đồ án tốt nghiệp
if (pdu isSmsStatusReportPdu)
{
// Status report
SmsStatusReportPdu data = (SmsStatusReportPdu)pdu;
Output("STATUS REPORT");
Output("Recipient: " + data.RecipientAddress);
Output("Status: " + data.Status.ToString());
Output("Timestamp: " +
data.DischargeTime.ToString());
Output("Message ref: " +
data.MessageReference.ToString());
Output("-----------------------------------");
return;
}
Output("Unknown message type: " +
pdu.GetType().ToString());
}
privatestring StatusToString(PhoneMessageStatus status)
{
// Map a message status to a string
string ret;
switch(status)
{
casePhoneMessageStatus.All:
ret = "All";
break;
casePhoneMessageStatus.ReceivedRead:
ret = "Read";
break;
casePhoneMessageStatus.ReceivedUnread:
ret = "Unread";
break;
casePhoneMessageStatus.StoredSent:
ret = "Sent";
break;
casePhoneMessageStatus.StoredUnsent:
ret = "Unsent";
break;
default:
ret = "Unknown (" + status.ToString() + ")";
break;
}
return ret;
}
privatestring GetMessageStorage()
{
string storage = string.Empty;
if (rbMessageSIM.Checked)
storage = PhoneStorageType.Sim;
if (rbMessagePhone.Checked)
storage = PhoneStorageType.Phone;
if (storage.Length == 0)
thrownewApplicationException("Unknown message
storage.");
else
return storage;
}
privatevoid Output(string text)
{
if (this.txtOutput.InvokeRequired)
T r a n g | 154
Đồ án tốt nghiệp
{
SetTextCallback stc = newSetTextCallback(Output);
this.Invoke(stc, newobject[] { text });
}
else
{
txtOutput.AppendText(text);
txtOutput.AppendText("\r\n");
}
}
privatevoid Receive_Load(object sender, System.EventArgs e)
{
dt.Columns.Add("Sender",typeof(string));
dt.Columns.Add("Time",typeof(string));
dt.Columns.Add("Message",typeof(string));
}
privatevoid Output(string text, paramsobject[] args)
{
string msg = string.Format(text, args);
Output(msg);
}
}
}
6. Delete
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
T r a n g | 155
Đồ án tốt nghiệp
using GsmComm.PduConverter;
using GsmComm.GsmCommunication;
namespace SMS
{
///
/// Summary description for Delete.
///
publicclassDelete : System.Windows.Forms.Form
{
private System.Windows.Forms.DataGrid dataGrid1;
///
/// Required designer variable.
///
private System.ComponentModel.Container components = null;
private System.Windows.Forms.Button btn_delete;
private System.Windows.Forms.Button btn_delete_all;
private System.Windows.Forms.TextBox txt_message_index;
privateDataTable dt=newDataTable();
privatedelegatevoidSetTextCallback(string text);
public Delete()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after
InitializeComponent call
//
}
///
/// Clean up any resources being used.
///
protectedoverridevoid Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
privatevoid InitializeComponent()
{
this.dataGrid1 = new System.Windows.Forms.DataGrid();
this.btn_delete = new System.Windows.Forms.Button();
this.btn_delete_all = new System.Windows.Forms.Button();
this.txt_message_index = new System.Windows.Forms.TextBox();
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
this.SuspendLayout();
//
// dataGrid1
//
T r a n g | 156
Đồ án tốt nghiệp
this.dataGrid1.DataMember = "";
this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
this.dataGrid1.Location = new System.Drawing.Point(8, 40);
this.dataGrid1.Name = "dataGrid1";
this.dataGrid1.Size = new System.Drawing.Size(484, 284);
this.dataGrid1.TabIndex = 60;
this.dataGrid1.MouseDown += new
System.Windows.Forms.MouseEventHandler(this.dataGrid1_MouseDown);
//
// btn_delete
//
this.btn_delete.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.btn_delete.Location = new System.Drawing.Point(56, 8);
this.btn_delete.Name = "btn_delete";
this.btn_delete.Size = new System.Drawing.Size(75, 23);
this.btn_delete.TabIndex = 62;
this.btn_delete.Text = "Delete";
this.btn_delete.Click += new System.EventHandler(this.btn_delete_Click);
//
// btn_delete_all
//
this.btn_delete_all.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.btn_delete_all.Location = new System.Drawing.Point(136, 8);
this.btn_delete_all.Name = "btn_delete_all";
this.btn_delete_all.Size = new System.Drawing.Size(75, 23);
this.btn_delete_all.TabIndex = 63;
this.btn_delete_all.Text = "Delete All";
this.btn_delete_all.Click += new
System.EventHandler(this.btn_delete_all_Click);
//
// txt_message_index
//
this.txt_message_index.Location = new System.Drawing.Point(8, 8);
this.txt_message_index.Name = "txt_message_index";
this.txt_message_index.Size = new System.Drawing.Size(40, 20);
this.txt_message_index.TabIndex = 64;
//
// Delete
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(504, 478);
this.Controls.Add(this.txt_message_index);
this.Controls.Add(this.btn_delete_all);
this.Controls.Add(this.btn_delete);
this.Controls.Add(this.dataGrid1);
this.Name = "Delete";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Delete";
this.Load += new System.EventHandler(this.Delete_Load);
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
privatevoid Delete_Load(object sender, System.EventArgs e)
{
dataGrid1.PreferredColumnWidth=100;
dt.Columns.Add("Index",typeof(int));
dt.Columns.Add("Sender",typeof(string));
dt.Columns.Add("Time",typeof(string));
dt.Columns.Add("Message",typeof(string));
T r a n g | 157
Đồ án tốt nghiệp
ReadMessage();
}
privatevoid ReadMessage()
{
Cursor.Current = Cursors.WaitCursor;
string storage = GetMessageStorage();
try
{
// Read all SMS messages from the storage
DecodedShortMessage[] messages =
CommSetting.comm.ReadMessages(PhoneMessageStatus.All, storage);
foreach(DecodedShortMessage message in messages)
{
ShowMessage(message.Data,message.Index);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
Cursor.Current = Cursors.Default;
}
privatevoid BindGrid(SmsPdu pdu,int index)
{
DataRow dr=dt.NewRow();
SmsDeliverPdu data = (SmsDeliverPdu)pdu;
dr[0]=index.ToString();
dr[1]=data.OriginatingAddress.ToString();
dr[2]=data.SCTimestamp.ToString();
dr[3]=data.UserDataText;
dt.Rows.Add(dr);
dataGrid1.DataSource=dt;
}
privatevoid ShowMessage(SmsPdu pdu,int index)
{
if (pdu isSmsSubmitPdu)
{
// Stored (sent/unsent) message
SmsSubmitPdu data = (SmsSubmitPdu)pdu;
return;
}
if (pdu isSmsDeliverPdu)
{
// Received message
SmsDeliverPdu data = (SmsDeliverPdu)pdu;
BindGrid(pdu,index);
return;
}
if (pdu isSmsStatusReportPdu)
{
// Status report
SmsStatusReportPdu data = (SmsStatusReportPdu)pdu;
T r a n g | 158
Đồ án tốt nghiệp
return;
}
}
privatestring StatusToString(PhoneMessageStatus status)
{
// Map a message status to a string
string ret;
switch(status)
{
casePhoneMessageStatus.All:
ret = "All";
break;
casePhoneMessageStatus.ReceivedRead:
ret = "Read";
break;
casePhoneMessageStatus.ReceivedUnread:
ret = "Unread";
break;
casePhoneMessageStatus.StoredSent:
ret = "Sent";
break;
casePhoneMessageStatus.StoredUnsent:
ret = "Unsent";
break;
default:
ret = "Unknown (" + status.ToString() + ")";
break;
}
return ret;
}
privatestring GetMessageStorage()
{
string storage = PhoneStorageType.Sim;
return storage;
}
privatevoid btn_delete_all_Click(object sender, System.EventArgs
e)
{
if (!Confirmed()) return;
Cursor.Current = Cursors.WaitCursor;
string storage = GetMessageStorage();
try
{
// Delete all messages from phone memory
CommSetting.comm.DeleteMessages(DeleteScope.All,
storage);
dt.Clear();
dataGrid1.DataSource=dt;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
Cursor.Current = Cursors.Default;
}
privatebool Confirmed()
{
T r a n g | 159
Đồ án tốt nghiệp
return (MessageBox.Show(this, "Really?", "Warning",
MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
== DialogResult.Yes);
}
privatevoid dataGrid1_MouseDown
(object sender, System.Windows.Forms.MouseEventArgs e)
{
System.Windows.Forms.DataGrid.HitTestInfo myHitTest;
// Use the DataGrid control's HitTest method with the x
and y properties.
myHitTest = dataGrid1.HitTest(e.X,e.Y);
txt_message_index.Text=dataGrid1[myHitTest.Row
,0].ToString();
}
privatevoid btn_delete_Click(object sender, System.EventArgs e)
{
if( txt_message_index.Text.Equals("")==true)
{
MessageBox.Show("Please Click on
Grid","Message",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
int index;
try
{
index = int.Parse(txt_message_index.Text);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
if (!Confirmed()) return;
Cursor.Current = Cursors.WaitCursor;
string storage = GetMessageStorage();
try
{
// Delete the message with the specified index from
storage
CommSetting.comm.DeleteMessage(index, storage);
MessageBox.Show("Message With Index " + index + "
Deleted","Message",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
Cursor.Current = Cursors.Default;
dt.Clear();
dataGrid1.DataSource=null;
ReadMessage();
}
}
}
T r a n g | 160
Đồ án tốt nghiệp
TÀI LIỆU THAM KHẢO
[1] Nguyễn Trung Chính, “Tập lệnh AT của module SIM508 dùng cho SMS”, 2009
[2] Nguyễn Trọng Kiên - Phạm Văn Nam, “Điều khiển thiết bị từ xa qua tin nhắn
SMS bằng máy tính”,Đại học Sư Phạm Kỹ Thuật TPHCM, 2009
[3] Nguyễn Quang Ninh, “Nghiên cứu công nghệ SMS – Xây dựng hệ thống tra cứu
điểm qua mạng điện thoại di động”,Đại học Sư Phạm TPHCM, 2005
[4]Nguyễn Đình Phú, “Giáo trình Vi xử lý 1”,Đại học Sư Phạm Kỹ Thuật TPHCM,
2006
[5] Trần Phạm Thanh Tùng, C# Fast Food, Năm 2008
[6] “AT Command Interface Guide”,WAVECOM, 2006
[7]GSM 07.05, ver 5.5.0 - Use of Data Terminal Equipment - Data Circuit
Terminating Equipment (DTE - DCE) interface for Short Message Service (SMS)
and Cell Broadcast Service (CBS)
[8] GSM07.07, ver 5.0.0 - AT command set for GSM Mobile Equipment (ME)
[9] SMS source samples (for GSM phones),
[10] How To Send and Receive SMS using GSM Modem, www.codeproject.com.vn
[11] GSM Modem Userguide, www.inet.vn
[12] Bảng mãASCCII,
Website: www.pcworld.com.vn, www.codeproject.com.vn