Перейти к содержанию
    

de__

Участник
  • Постов

    25
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о de__

  • Звание
    Участник
    Участник
  1. для меня тоже это тоже актуально. Пока обхожусь псевдомногозадачностью и мне большие задержки в одном потоке не нужны. По идее это более изящно. Меньше нагрузка на проц и защита от зависания. По идее (по мануалу) внешня схема должна сбрасывать "сторожевого пса". Есть ещё вопросы (сразу до кучи) по Q24. Из за того что в этом модеме (в отличии от Q26) нет истинной многозадачности: 1. как организовать задержки без выхода из потока. (без передачи управления). То есть хочу, например, иметь функцию типа bool Delay_ms(unsigned long ms); 2. можно ли как нибудь в одном потоке организовать запросы АТ команд? То есть выполняем первую команду. После того как она выполнилась - выполняем 2ую команду и т.д. С помощью обработчиков то можно. Но хотелось бы как то проще. линейно.
  2. никаких гарантий. схему подсмотрел в чужом изделии. резисторы на 10 кОм. У меня все работает но изделие в процессе разработки только. Диоды любые. себе заложил в схему любые из этих BAV70, BAT54, BAT54C На активной симке, на управляющем входе - 1, или лучше, если можно, Z-состояние. На другой - 0
  3. set sim1 ------------ |<|------┐ | SimRST1 (к сим карте 1) ┌-[res]--┴-------------- sim rst | ------------┤ | SimRST2 (к сим карте2) └ -[res]--┬-------------- set sim2 | ------------ |<|-------┘ удачи ЧОрт, движок сайта режет пробелы слева. остается только собрать пазл )
  4. C перезагрузкой. То есть встроенное приложение тоже перезагрузится.
  5. Wavecom. Сделал коммутацию двух симкарт на диодах (сигнал RST). Работает прекрасно но с перезагрузкой (. Единственно что получилось, это сделать "дерегистрацию" at+cops=2 а потом можно обратно подцепить ту же симку at+cops=0 Подключиться на другую не получается без перезагрузки модема. Так как ВРОДЕ только при инициализации стека модем считывает параметры сим карты. Может как нибудь можно? А можно стартануть модем без автоматической регистрации, а в сеть выйти позже (без перезагрузки)?
  6. wavecom Q2686 c GPS модулем - розничная цена в районе 65 баксов.
  7. даже если вдруг нет апаратной возможности обращаться к половине слова никто не мешал разработчикам си-компилятора сделать программно эту возможность. Но тут резко возрастет размер кода прошивки. например вам нужно к 8 отдельным байтам прибавить разные числа. если они находятся в словах, то это 8 команд. а если в 4 словах, то это еще нужно разделить полуслова а потом еще собрать заново Возможно дело в настройках компилятора. Возможно если сменить режим на "минимум прошивки" то выравнивание будет по другому. "хранить байт в слове" будет работать быстрее
  8. Каждую новую среду разработки я начинаю типа: printf("char: %d; int: %d; ...\r\n", sizeof(char), sizeof(int)); не уверен что здесь 16 битный char. не путайте размещение в озу и размер. то есть struct { char a; char b; }Tstruct; может быть и будет иметь размер 4 байта, но char должен иметь размер 1 байт. Если писать качественно то выравниваение в памяти никак не должно влиять. Если не согласны - приведите пример. Скорее всего его можно переписать более симпатично. Техасами не занимаюсь, пришел с RSS просто пофлудить )
  9. как то такое я написал http://kazus.ru/forum/topics/f_19425.html&...%CD%C8%C5#19425
  10. Не понятно зачем вы переходите в ДАТА режим для отправки данных? разве не достаточно просто послать adl_atSendResponse(ADL_PORT_UART1,bufUart1); или для текущего порта adl_atSendResponse(ADL_AT_RSP,bufUart1); или для вашего случая adl_atSendResponsePort(ADL_AT_RSP, p->Port, x) Я как то написал универсальную функцию и забыл... Возможно кривовато #define MAX_LEN_BUF_UART1 512 //максимальная длина посылки за один раз unsigned char bufUart1[MAX_LEN_BUF_UART1+1]; //Буфер глобальный. Возможно так быстрее unsigned int SendUart1(unsigned char *str) { unsigned char *pBuf; unsigned int len, bufLen; bufLen = len = (unsigned int)strlen(str); if(!len) //Нулевую длину не обрабатываем return 0; if(len<=MAX_LEN_BUF_UART1) {//Для буфера меньше допустимо возможного просто отправляем данные и выходим adl_atSendResponse(ADL_PORT_UART1,str); } else { //Массив большой - пошлём кусками pBuf = str; do{ memset(bufUart1, 0, MAX_LEN_BUF_UART1+1); strncpy(bufUart1, pBuf, MAX_LEN_BUF_UART1); //копируем кусок для отправки adl_atSendResponse(ADL_PORT_UART1,bufUart1); len = (unsigned int)strlen(pBuf); if(len<=MAX_LEN_BUF_UART1) break; else pBuf+=MAX_LEN_BUF_UART1; }while(1); } return bufLen; //Возвращаем количество посланных байт }
  11. Q2406B - снят с производства. Даже начинать новый проект нет смысла. Q24Plus - конечно по заверениям менеджеров Вейвкома полный аналог, но это не так. Попробуйте подать 3,9 вольт от лабораторного мощного блока напрямую на модем. в этих модулях если тока не хватает то GPRS отваливается.
  12. У меня модем проще, работы со звуком нет. а что за парметр adl_atSendResponse( ADL_AT_INT,"!!!\r\n" ); может быть ADL_PORT_UART1? А вы брейкпоинт на обработчик ставили?
  13. модем Q24Plus. Последние версии всех OS, WIP (те что доступны у компела) На сим карте МТС все прекрасно. Соединение держится хорошо. В случае разрыва моя программа успешно пересоединяется. На сим карте от Билайна соединение постоянно рвется- максимом это удерживает канал секунд 30 ( Особенно ужасно в "часы пик". Становится чуть лучше, если понизить скорость обмена с сим картой AT+WFM=0,B. То есть моя программа чаще всего может переподключиться. Но на раз эдак десятый поток пытается закрыть bearer но безрезультатно. - постоянно ошибка -27 - в процессе Кто нибудь сталкивался с подобным? Убил на это не менее недели ( Приложил файл с исходником Забыл сказать что модем посылает сообщение ADL_GPRS_EVENT_ME_CONTEXT_DEACT Как я понимаю это не сеть его выбросила а сам МЕ (телефон) почему то захотел отключиться bearer.txt
  14. Хм. На вопрос "а мне все здесь непонятно, расскажите мне всё, как это работает" не хочется и отвечать. Так и хочется сказать RTFM! "Для работы с СОМ портом внутри модема нужно ли использовать FCM, как записать принятое в буфер и т.д.?" Смысл в том что нужно объявить подписку на нужный порт. (FCM) И при подписке в одном из параметров - указатель на вашу функцию обработчик. По событиям - обрабатываем... Грабли - передающий буфер ограничен. (смотреть документацию для каждого случая) Если нужно послать больше - рвать на куски
  15. в моем q24plus, кажется, 768 кБ
×
×
  • Создать...