Доброго времени суток. Благородные доны помогите подправить код. Написал АОН, но возникли трудности в этом месте:
| Код | public string str = ""; private void timer1_Tick(object sender, EventArgs e) { while (port.BytesToRead > 0) { try { str = port.ReadLine(); listBox1.Items.Add(str); CallerID(); } catch { } } }
public void CallerID() { string number = ""; if (str.StartsWith("+CLIP:")) { number = str.Substring(str.IndexOf("\"") + 1, str.IndexOf(",") - str.IndexOf("\"") - 2); listBox2.Items.Add("Входящий звонок"); listBox2.Items.Add("Время: " + DateTime.Now); listBox2.Items.Add("Номер определен: " + number); listBox2.Items.Add(" "); } }
|
Проблема в том, что пока телефон звонит номер постоянно определяется, т.к. он в таймере. Что тут можно предпринять? Кроме выключения таймера, потому что его потом как-то нужно включать, а это "как-то" - RING (при прослушивании порта), но он возникает через определенные промежутки времени при входящем звонке. Поэтому как таймер выключится, так сразу и включится. Условие по времени между рингами это вообще не вариант. Может флаг на открытую линию? Но что-то не получается. В общем мне на ум больше ничего не приходит. Подайте пожалуйста идею.
|