static void Main(string[] args) { var Config = new Settings("conf.json"); var Start = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000; while (true) { var Now = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000; if (Now - Start < 1000) { Thread.Sleep((int)(1000 - Now + Start)); } foreach (var DeviceName in Config.GetSpareDevices()) { Console.WriteLine($"Try to Start {DeviceName}"); Config.Devices[DeviceName].DetectPort(); Config.Devices[DeviceName].StartMonitor(); } foreach (var DeviceName in Config.GetLiveDevices()) { try { Modem.ReceiveSMS(Config.Devices[DeviceName]); Modem.ReceiveStatus(Config.Devices[DeviceName]); } catch (Exception ex) { Console.WriteLine(ex.Message); Config.Devices[DeviceName].StopMonitor(); } } Start = Now; } }
public void DetectPort() { if (this.IMEI != "") { Modem.DetectModemByIMEI(this); return; } }
public bool StartMonitor() { if (this.Monitoring == false) { try { if (ModemPortName != "") { this.ModemPort = new SerialPort(ModemPortName); this.ModemPort.Open(); Modem.InitDevice(this); } if (DiagnosePortName != "") { this.DiagnosePort = new SerialPort(DiagnosePortName); this.DiagnosePort.Open(); } if (VoicePortName != "") { this.VoicePort = new SerialPort(VoicePortName); this.VoicePort.Open(); } if (ModemPort != null && DiagnosePort != null && VoicePort != null) { this.Monitoring = true; Console.WriteLine($"{this.Name} starts being monitoring"); return(true); } } catch (Exception ex) { Console.WriteLine(ex.Message); StopMonitor(); return(false); } } StopMonitor(); return(false); }