using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace SDRgateway { class SMSmanager { private static System.Threading.Timer tCheckMail; private Thread t_CheckSMS_out; private SDR sdr; private Config config; public SMSmanager(SDR _sdr, Config config) { sdr = _sdr; this.config = config; //tCheckSMSqueue = new System.Threading.Timer(CheckQueue, null, new TimeSpan(0, 0, 5), new TimeSpan(0, 0, 5)); t_CheckSMS_out = new Thread(new ThreadStart(CheckQueue)); t_CheckSMS_out.IsBackground = true; t_CheckSMS_out.Start(); } private void CheckQueue() { while (true) { try { msgCell cell = Program.smsOutQueue.GetItem(100); while (cell != null) { // if CallOut option is selected if (config.SDR_CallOut == 1) sdr.SendCallOutMessage(Int32.Parse(cell.IMEI), LIPSDR.Stds_CallOutAlertPDU_sdsEncoder(LIPSDR.callOutNumber++, LIPSDR.CallOutFunction.Clear, 3, 0x00, cell.sms, LIPSDR.TGctrl.TGControlNotUsed)); else sdr.SEND_SMS(uint.Parse(cell.IMEI), cell.sms); Thread.Sleep(100); cell = Program.smsOutQueue.GetItem(100); } } catch (Exception ex) { Console.WriteLine("Error in SMSmanager/CheckQueue \n" + ex.ToString()); Thread.Sleep(1000); } Thread.Sleep(1000); } } } }