Advertisement
icorrelate

SendSms

Jul 17th, 2017
581
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.46 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO.Ports;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading;
  7. using System.Threading.Tasks;
  8. using System.Windows.Forms;
  9.  
  10. namespace YourNamespaceName
  11. {
  12.     class SmsEngine
  13.     {
  14.         SerialPort serialPort;
  15.         Random rnd = new Random();
  16.         int interval = 0;
  17.         public SmsEngine(string comPort, int interval)
  18.         {
  19.             this.serialPort = new SerialPort();
  20.             this.serialPort.PortName = comPort;
  21.             this.serialPort.BaudRate = 9600;
  22.             this.serialPort.Parity = Parity.None;
  23.             this.serialPort.DataBits = 8;
  24.             this.serialPort.StopBits = StopBits.One;
  25.             this.serialPort.Handshake = Handshake.RequestToSend;
  26.             this.serialPort.DtrEnable = true;
  27.             this.serialPort.RtsEnable = true;
  28.             this.serialPort.NewLine = System.Environment.NewLine;
  29.             this.interval = interval;
  30.  
  31.         }
  32.  
  33.         public bool sendSms(string number, string message)
  34.         {
  35.             Application.DoEvents();
  36.             string messages = null;
  37.             messages = message;
  38.             if (this.serialPort.IsOpen == true)
  39.             {
  40.                 try
  41.                 {
  42.                     Application.DoEvents();
  43.                     switch (interval)
  44.                     {
  45.                         case 0:
  46.                             Thread.Sleep(rnd.Next(1000, 2000));
  47.                             break;
  48.                         case 1:
  49.                             Thread.Sleep(rnd.Next(2000, 3000));
  50.                             break;
  51.  
  52.                         case 2:
  53.                             Thread.Sleep(rnd.Next(3000, 4000));
  54.                             break;
  55.  
  56.                         case 3:
  57.                             Thread.Sleep(rnd.Next(4000, 5000));
  58.                             break;
  59.                         case 4:
  60.                             Thread.Sleep(rnd.Next(5000, 6000));
  61.                             break;
  62.                         case 5:
  63.                             Thread.Sleep(rnd.Next(6000, 7000));
  64.                             break;
  65.  
  66.                         default:
  67.                             Thread.Sleep(4000);
  68.                             break;
  69.                     }
  70.  
  71.                     this.serialPort.WriteLine("AT" + (char)(13));
  72.                     Thread.Sleep(4);
  73.                     this.serialPort.WriteLine("AT+CMGF=1" + (char)(13));
  74.                     Thread.Sleep(5);
  75.                     this.serialPort.WriteLine("AT+CMGS=\"" + number + "\"");
  76.                     Thread.Sleep(10);
  77.                     this.serialPort.WriteLine("" + messages + (char)(26));
  78.                     Application.DoEvents();
  79.                 }
  80.                 catch (Exception ex)
  81.                 {
  82.                     MessageBox.Show(ex.Source);
  83.                 }
  84.                 return true;
  85.             }
  86.             else
  87.                 return false;
  88.         }
  89.         public bool sendSms(string cellNo, string sms, int times)
  90.         {
  91.             string messages = null;
  92.             messages = sms;
  93.             if (this.serialPort.IsOpen == true)
  94.             {
  95.                 for(int i = times; times > 0; times--)
  96.                 {
  97.                     try
  98.                     {
  99.                         Application.DoEvents();
  100.                         this.serialPort.WriteLine("AT" + (char)(13));
  101.                         Thread.Sleep(4);
  102.                         this.serialPort.WriteLine("AT+CMGF=1" + (char)(13));
  103.                         Thread.Sleep(5);
  104.                         this.serialPort.WriteLine("AT+CMGS=\"" + cellNo + "\"");
  105.                         Thread.Sleep(10);
  106.                         this.serialPort.WriteLine("" + messages + (char)(26));
  107.                         Application.DoEvents();
  108.                     }
  109.                     catch (Exception ex)
  110.                     {
  111.                         MessageBox.Show(ex.Source);
  112.                     }
  113.                 }
  114.                 return true;
  115.             }
  116.             else
  117.                 return false;
  118.         }
  119.  
  120.  
  121.  
  122.         public void openPort()
  123.         {
  124.             if (this.serialPort.IsOpen == false)
  125.             {
  126.                 this.serialPort.Open();
  127.             }
  128.         }
  129.  
  130.         public void closePort()
  131.         {
  132.             if (this.serialPort.IsOpen == true)
  133.             {
  134.                 this.serialPort.Close();
  135.             }
  136.         }
  137.     }
  138.  
  139.  
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement