2013-07-16 4 views
1

Попытка разработать небольшое приложение с использованием библиотеки GsmComm. На данный момент у вас есть проблемы с обнаружением подключения телефона или нет.GSMComm phoneConnected/phoneDisconnected Handlers

это определяет, когда отключен телефон, но не хочет, чтобы обнаружить телефон, когда снова подключен ...

Любая идея, почему?

мой код:

 GsmCommMain gsm = new GsmCommMain(4, 115200, 200); 



private void Form1_Load(object sender, EventArgs e) 
     { 
      gsm.PhoneConnected += new EventHandler(gsmPhoneConnected); 
       gsm.PhoneDisconnected += new EventHandler(gsmPhoneDisconnected); 
       gsm.Open(); 
     } 

private delegate void ConnctedHandler(bool connected); 

    private void onPhoneConnectedChange(bool connected) 
    { 
     try 
     { 
      if (connected) 
      { 

       phoneStatus.Text = "OK"; 
      } 
      else 
      { 
       phoneStatus.Text = "NG"; 
      } 
     } 
     catch (Exception exce) 
     { 
      logBox.Text += "\n\r" + exce.ToString(); 
     } 
    } 

    public void gsmPhoneConnected(object sender, EventArgs e) 
    { 
     this.Invoke(new ConnctedHandler(onPhoneConnectedChange), new object[] { true }); 
    } 

    private void gsmPhoneDisconnected(object sender, EventArgs e) 
    { 
     this.Invoke(new ConnctedHandler(onPhoneConnectedChange), new object[] { false }); 
    } 

ответ

0

Извините за поздний ответ. Просто заметил ваш вопрос. Нет необходимости использовать EventHandler для подключения. Если вы хотите вызвать некоторые функции после того, как подключен модем телефона/gsm, вы должны позвонить им после открытия порта и (!) Проверить, установлено ли соединение с помощью IsConnected() функция-член в GsmCommMain класс.

var gsm = new GsmCommMain(4, 115200, 200); 

private void Form1_Load(object sender, EventArgs e) 
{ 
    //gsm.PhoneConnected += new EventHandler(gsmPhoneConnected); // not needed.. 
    gsm.PhoneDisconnected += new EventHandler(gsmPhoneDisconnected); 
    gsm.Open(); 
    if(gsm.IsConnected()){ 
     this.onPhoneConnectedChange(true); 
    } 
} 

private delegate void ConnctedHandler(bool connected); 
private void onPhoneConnectedChange(bool connected) 
{ 
    try 
    { 
     if (connected) 
     { 

      phoneStatus.Text = "OK"; 
     } 
     else 
     { 
      phoneStatus.Text = "NG"; 
     } 
    } 
    catch (Exception exce) 
    { 
     logBox.Text += "\n\r" + exce.ToString(); 
    } 
} 

/*public void gsmPhoneConnected(object sender, EventArgs e) 
{ 
    this.Invoke(new ConnctedHandler(onPhoneConnectedChange), new object[] { true }); 
}*/ 

private void gsmPhoneDisconnected(object sender, EventArgs e) 
{ 
    this.Invoke(new ConnctedHandler(onPhoneConnectedChange), new object[] { false }); 
}