Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прием входящего звонка на модем, RING 
:(
    Опции темы
wbkn
Дата 16.8.2009, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.8.2009

Репутация: нет
Всего: нет



Здравствуйте. Уменя возникла такая проблема при работе с com портом, не получается отследить звонок поступающий на модем. Вот код функции работает в таймере.
Код

            string buffer = "";
            if (port.BytesToRead > 0)
            {
                try
                {
                    buffer = port.ReadLine();
                    if (buffer != "")
                        listBoxLog.Items.Add(buffer);
                }
                catch
                { }
            }

Если самому из программы отправлять модему AT команды то он их определяет. 
PM MAIL   Вверх
Heinzz
Дата 17.8.2009, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



а на событие подписались? smile 


--------------------
user posted image
PM MAIL   Вверх
wbkn
Дата 17.8.2009, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.8.2009

Репутация: нет
Всего: нет



Скорее всего нет. Не могли бы сказать как это можно сделать?
PM MAIL   Вверх
Heinzz
Дата 17.8.2009, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



Код

static void Main(string[] args)
        {
            SerialPort port = new SerialPort("COM1");
            port.Open();

            port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
        }

        static void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            //делаем что-то с данными
        }


это рыба  smile 


--------------------
user posted image
PM MAIL   Вверх
wbkn
Дата 18.8.2009, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.8.2009

Репутация: нет
Всего: нет



Сделал все как вы сказали все сообщения принимает кроме входящего звонка. Может из-за модема (Huawei E220)?
PM MAIL   Вверх
Heinzz
Дата 19.8.2009, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



дальше не подскажу, не знаю smile 


--------------------
user posted image
PM MAIL   Вверх
medicdim
Дата 28.8.2009, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 19.1.2007

Репутация: нет
Всего: нет



Попробуй установить свойства DtrEnable = true; и RtsEnable = true; для порта
PM MAIL   Вверх
badhitman
Дата 1.9.2009, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.9.2009

Репутация: нет
Всего: нет



Цитата

static void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            //делаем что-то с данными
        }


подскажите пожалуйста как положить трубку и закрыть порт модема (для освобождения перед дальнейшими манипуляциями) в этом обработчике события?интересно как можно через sender получить объект port положить трубку и закрыть порт... ??? заранее спасибо...

Это сообщение отредактировал(а) badhitman - 2.9.2009, 00:12
PM MAIL   Вверх
badhitman
Дата 2.9.2009, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.9.2009

Репутация: нет
Всего: нет



Я задал слишком глупый или слишком сложный вопрос? Что-то ни кто не хочет подсказать бедному самаритянину. Люди... хоть подскажите направление, где искать... а то ведь даже порт не могу закрыть... при прогоне программы он первый раз нормально схватывает звонок, но потом только перезапуск программы, а так порт не закрывается
Вот код обработки нажатия на кнопку
private void button1_Click(object sender, EventArgs e)
{
SerialPort modem = new SerialPort("COM3");
try
{
modem.Open();
}
catch
{
modem.Close();
modem.Open();
}
modem.DtrEnable = true;
modem.RtsEnable = true;
//modem.Close();
}
Почему в обработчике исключения при повторном нажатии на button1 пишет что Доступ к порту 'COM3' закрыт. Т.е. как корректно проверить доступность порта и при необходимости сбросить его? Или я реализую не правильно? Вообще-то было бы шикарно закрыть в обработчике события "входящий звонок" и там положить трубку и освободить порт
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0968 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.