/// <summary> /// This method constatly checks with the phone for any incomming message /// If a desired message is received from a particulaar number /// The application is either started or terminated /// </summary> private void read_sms() { SmsSubmitPdu pdu; string phone_number = ""; int newPort = 10; spacelocklinqDataContext data = new spacelocklinqDataContext(); var query = (from c in data.GetTable<setting>() where c.user == "admin" select c).SingleOrDefault(); try { phone_number = query.Phone_Number.TrimEnd(); newPort = query.Port_Number; } catch (Exception) { } send = "null"; GsmCommMain comm = new GsmCommMain(newPort, 19200, 300); string storage = string.Empty; while (true) { try { comm.Open(); } catch (Exception) { break; } storage = PhoneStorageType.Phone; SmsDeliverPdu del; DecodedShortMessage[] messages; try { messages = comm.ReadMessages(PhoneMessageStatus.All, storage); } catch (Exception) { break; } foreach (DecodedShortMessage message in messages) { try { del = (SmsDeliverPdu)(message.Data); } catch (Exception) { continue; } if (del.UserDataText == "STOP" && del.OriginatingAddress == phone_number) { if (stop_check == false) { try { comm.DeleteMessage(message.Index, storage); } catch (Exception) { continue; } pdu = new SmsSubmitPdu("Space Lock has been deactivated", phone_number); comm.SendMessage(pdu); stop_check = true; send = "stop"; //MessageBox.Show("STOP"); --ideamonk commented try { comm.DeleteMessage(message.Index, storage); } catch (Exception) { continue; } } } if (del.UserDataText == "STOP" && del.OriginatingAddress == phone_number) { if (stop_check == true) { pdu = new SmsSubmitPdu("Wrong message! Space Lock has ALREADY been deactivated", phone_number); comm.SendMessage(pdu); try { comm.DeleteMessage(message.Index, storage); } catch (Exception) { continue; } } } if (del.UserDataText == "START" && del.OriginatingAddress == phone_number) { if (stop_check == true) { try { comm.DeleteMessage(message.Index, storage); } catch (Exception) { continue; } pdu = new SmsSubmitPdu("Space Lock has started", phone_number); // the message is sent comm.SendMessage(pdu); stop_check = false; send = "start"; try { comm.DeleteMessage(message.Index, storage); } catch (Exception) { continue; } } } if (del.UserDataText == "START" && del.OriginatingAddress == phone_number) { if (stop_check == false) { pdu = new SmsSubmitPdu("Space Lock is already running", phone_number); // the message is sent comm.SendMessage(pdu); try { comm.DeleteMessage(message.Index, storage); } catch (Exception) { continue; } } } } break; } try { comm.Close(); } catch (Exception) { } }