class SmsEngine : IDisposable
{ SerialPort serialPort;
SmsEngine() { }
public SmsEngine(string comPort)
{ this.serialPort = new SerialPort();
this.serialPort.PortName = comPort;
this.serialPort.BaudRate = 9600;
this.serialPort.Parity = Parity.None;
this.serialPort.DataBits = 8;
this.serialPort.StopBits = StopBits.One;
this.serialPort.Handshake = Handshake.RequestToSend;
this.serialPort.DtrEnable = true;
this.serialPort.RtsEnable = true;
this.serialPort.NewLine = System.Environment.NewLine;
}
public bool SendSMS(string CellNumber, string SMSMessage)
{ string messageToSend = null;
if (SMSMessage.Length <= 160)
{ messageToSend = SMSMessage;
}
else
{ messageToSend = SMSMessage.Substring(0, 160);
}
if (this.IsOpen == true)
{ this.serialPort.WriteLine(@"AT" + (char)(13));
Thread.Sleep(200);
this.serialPort.WriteLine("AT+CMGF=1" + (char)(13)); Thread.Sleep(200);
this.serialPort.WriteLine(@"AT+CMGS=""" + CellNumber + @"""" + (char)(13));
Thread.Sleep(200);
this.serialPort.WriteLine(SMSMessage + (char)(26));
return true;
}
return false;
}
public void Open()
{ if (this.IsOpen == false)
{ this.serialPort.Open();
}
}
public void Close()
{ if (this.IsOpen == true)
{ this.serialPort.Close();
}
}
public bool IsOpen
{ get
{ return this.serialPort.IsOpen;
}
}
public void Dispose()
{ if (this.IsOpen)
this.Close();
}
}