Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Отправка sms через Siemens c60, подключенный к USB  (Прочитано 6590 раз)
0 Пользователей и 1 Гость смотрят эту тему.
asker
Помогающий

ru
Offline Offline
Пол: Мужской

« : 05-11-2006 12:35 » 

Всем привет!

Я пишу прогу, которая должна отправлять sms на Visual C++ 7 (MFC). Отлаживаю прогу, используя телефон Siemens C60.
DataCable подключен к USB, но в системе он как COM-порт. Работая с программой SiMoCo ни каких проблем не возникает, да с HyperTerminal'ом тоже особых проблем нет (почти, иногда бывают, но это скорее по моему незнанию :Улыбаюсь).

В кратце как я работаю с телефоном и как отправляю sms:

Если этап открытия порта прошел успешно, т.е. октрыт порт, создано событие прихода пакета (CEvent ev=CreateEvent(NULL, FALSE, FALSE, NULL)), создан поток опроса порта (AfxBeginTread), выполнены команды:
    a) посылаю ATE0, чтобы тел. не повторял, то что я посылаю;
    b) узнаю поддерживает ли телефон pdu-режим (AT+CMGF=0);
    c) узнаю поддерживает ли телефон sms команды (at+csms=0);
    d) узнаю адрес sms-сервера (at+csca?)
То я могу отправлять sms,
Иначе MsgBox(codeError).

Отправка sms проходит в подготовку + 2 этапа:
1) [Подготовка] Формирование sms;
2) [1 этап] Отправка команды at+cmgs=<len> и ожидание прихода символа '>'
3) [2 этап] Отправка sms и ожидание прихода строки "OK"

*При отправке каких-то команд в модем всегда помимо ожидаемых ждется OK или ERROR

Теперь о ситуации:
Если идти пошагово, то небольшие sms (символов 5) моя прога отправляет, если символов больше (пробовал на ~30) нет, почему-то телефон либо почти сразу возвращает error (редко) либо молчит и я выхожу по тайм-ауту.
Если просто запустить debug версию, то она мне выдает "Протекает наложенное событие ввода/вывода" на этапе открытия порта при отправке какой-либо из команд a,b,c,d. Тоже самое и в релиз версии. Да судя по сообщению, это наверное что-то связано с синхронизацией обращений к данным из 2-х потоков, но доступ к ним вроде синхронизирован (с помощью критической секции).

Может кто-то сталкивался с подобной ситуацией или кто-то знает в чем дело, подскажите пожалуйста.

P.S.: надеюсь я понятно описал проблему
« Последнее редактирование: 08-12-2007 18:30 от Алексей1153++ » Записан

С уважением, asker
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines