=F8=
Свой-
Постов
566 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о =F8=
-
Звание
Знающий
- День рождения 16.10.1972
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
Посетители профиля
2 159 просмотров профиля
-
Sagem HiLo
=F8= ответил uhov87 тема в Сотовая связь и ее приложения
Проделайте следующий эксперемент: запускаете sagem как tcp сервер и пытаететесь подключится к нему не слишком терпеливым клиентом. Клиент посылает запрос на открытие соединения, но не дождавшись ответа сервера закрывает соединение. В таком поведении клиента нет абсолютно ничего преступного. Что должен сделать вменяемый сервер с таким полуоткрытым соединением(процедура установки соединения не закончена!!!)? - сбрость по таймауту. Что делает sagem? В лучшем случае один из сокетов остается занятым навсегда, в худшем и ч.с.х. наиболее частом - перестает вообще принимать входящие соединения. -
Sagem HiLo
=F8= ответил uhov87 тема в Сотовая связь и ее приложения
Посмотрел функцию отправки вот ее кусок strcpy(p_buffer, strAT_KTCPSND); p_buffer += 11; p_buffer = i_to_a((char*)p_buffer, socket); *p_buffer++=','; p_buffer = i_to_a(p_buffer, tx_socket_counter); *p_buffer = 0; if((PutCommandToGsm(p_gsm_port->TxCmdBuffer, OK_GSM_FLAG|ERR_GSM_FLAG|CME_ERR_GSM_FLAG|NO_CARRIER_GSM_FLAG|CONNECT_GSM_FLAG, 5000, NULL,NULL) & (OK_GSM_FLAG | CONNECT_GSM_FLAG))==0) { return -1;} vTaskDelay(50); while(tx_socket_counter != tx_counter){// Тут отправляю данные } while(GetFreeBufferSize(GSM_UART_PORT) != GSM_TX_BUFFER_SIZE); //А вот это самое интересное, жду пока уйдет последний байт из буфера (размер буфера 1024). Видимо это было важно что-бы последующая пауза в 50 мс перед EOF была именно после того как будет передан последний байт. vTaskDelay(50); if(!PutEOF())//Отправляю EOF. { return -1; } -
Sagem HiLo
=F8= ответил uhov87 тема в Сотовая связь и ее приложения
Уражите в команде кол-во байт которое хотите отправить - второй параметр. И если можете отказаться от этого "чуда" - откажитесь. Его встроенный стек столь чудесен, что пришлось прикручивать внешний. PS Чтоб не создавать новую тему. Модуль работает в режиме мультиплексирования. Пытаюсь отправить смс с подтверждением о доставке. Вместо подтверждения, примерно в то время когда должно прийти подверждение получаю CME ERROR 24. -
Спасибо! помогло!
-
Пытаюсь разобраться с gcc, столкнулся с такой проблеммой: к примеру имеюстя классы class thread_c{ public: int i; virtual void Thread(){}; static void startThread(void *arg); thread_c(); virtual ~thread_c(){}; }; class test_c : public thread_c { public: void Thread(); }; Во первых если объявить Thread абстрактным(virtual void startThread(void *arg)=0) то при компиляции появляется куча зависимостей типа _exit, _kill, _write итд. Похоже, что начинают использоваться библиотечные функции с поддержкой исключений (сама программа компилься с флагом no-exceptions). Можно с этим как-то бороться? Добавть пустую функцию, конечно, не большая проблема, но все-таки... Во-вторых. Я использую FreeRTOS реализаю кучи. Для чего переопределил глобальные new/delete. Пока обекты создаюся динамически то все OK. Но стот обявить объект статически то при инициализации обекта начинает использоваться встроенный менеджер памяти - сужу по тому, что линкер начиеает просить _sbrk насколько понял это функция которая проверяет не встретелись ли еще куча со стеком. Происходит это только в том случае если класс имеет виртуальные функции. Т.е. классы компилятор с классами без виртуальных функций обращяется как с реальными статическими обектами, а статические объекты с виртуальными функциями это лишь видимсть статических объектов? PS И еще, кто-небуть пробовал использовать semihosting на arm7 и FreeRTOS? Единственное, что получилось это перенести вызов vPortYieldProcessor на undef instruction может есть какой-то более коректный способ?
-
Eclipse для начинающего
=F8= ответил Micrick тема в GNU/OpenSource средства разработки
Поставить Eclipse 4.3 -
Как такового драйвера для phy нет. Просто там-же где выполняете инициализацию ehternet контроллера инициализируете и регистры phy. LwIP общается с железом через указатели на функции низкоуровневого ввода-вывода в структуре netif. Смотрите файл stm32x_ethernet.c http://bit.ly/stf12_freertos_commons . А вот тут весь проект http://developers.stf12.net/just-another-eclipse-demo-str91x там не только str91 есть и порт для stm)
-
Это где Вы такое вычитали? Во-первых принимающая сторона не просит повторить, это отправитель сам повторяет передачу если не дожидается ASK от получателя. Во-вторых принимающая сторона не отбрасывает H+1, а ждет H. Точней говоря отбрасывают только самые усеченные версии стеков которым просто некуда складировать пакеты. В каждом пакете содержится порядковый номер в в потоке в байтах. Если к примеру пришел пакет с номером 100 длинной 50 байт, если в потоке нет разрывов то получатель отправляет подтверждение приема 150 байт, затем, к примеру, приходит пакет с номером 200 длинной 50 байт, то TCP понимает, что 50 байт где-то потерялось и ждет их. Затем когда пакет с номером 150 длинной 50 приходит получатель отправляет отправителю подтверждение приема 250 байт(Один раз!). Сори напутал, порядковый номер это номер первого байта пакета, а не последнего. Отредактировал.
-
Роутер тут скорей всего нипричем. В любом случае изменение порядка следования пакетов в tcp соединении это не преступление - принимающая сторона должна(если позволяют ресурсы) принять все пакеты, высторить их по-порядку и отправить ask. У меня тоже бывало нарушение порядка пакетов, но к ретрансмитам это не приводило. Кстати попробуйте, для проверки, установить в конфигурации TCP_WND (1 * TCP_MSS) (ищите в lwipopts.h если его там нет то или добавьте или меняйте непосредственно в opt.h) это уберет окно и порядок пакетов точно не будет нарушен. Да, и смотрите за кодом возврата netconn_write - там ведь может быть и разрыв соединения и нехватка памяти.
-
Что значит к роутеру? Плату в lan роутера, wan роутера в лок. сеть? Если так то плата ни причем, контрольные суммы ethernet в этом случае генерит роутер.
-
SIM900 CMUX
=F8= ответил Sagittarius тема в Сотовая связь и ее приложения
Заработал CMUX с sim300. Откатился на на одну из первых версий - работает. Оказалось у меня там была ошибка - после CMUX вычитывал все из порта в течении~2сек. Потом это исправил. Кстати нигде не находил ничего по поводу этих F9 F9 F9 F9 F9, ни Cintrion, ни Telit, ни Sagmem такого не выдают. В описании протокола такого не нашел. Симкомовское ноухау? -
SIM900 CMUX
=F8= ответил Sagittarius тема в Сотовая связь и ее приложения
SIMCOM_SIM300D Revision:1008B16SIM300D32_SST34HF3284 Сорри перепроверил - тоже, что что и у вас F9 F9. Раньше тестил на каком-то IRZ модеме на SIM300, завтра попробую его найти. -
SIM900 CMUX
=F8= ответил Sagittarius тема в Сотовая связь и ее приложения
А вот про GREG как-раз ничего не скажу. Использовал его только в режиме CREG=0. -
SIM900 CMUX
=F8= ответил Sagittarius тема в Сотовая связь и ее приложения
4 канала - посмотрите на картинку в разделе 1.2. Каждый канал должен работать индивидуально(но не обязательно что-бы все каналы были симметричными), если это не так варианта два - или ждать новой прошивки где возможно это исправят или работать с тем, что есть. PS Вы-бы описали ситуацию по-подробней - про какие именно сообщения идет речь. SIM900 в mux режиме не юзал, но с SIM300 проблем не было. -
Подключите модем к компу. На компе есть TCP/IP стек. Подайте команду AT+CFUN=0. Сработало? Теперь попробуйте установить соединение не получается? Теперь аналогичные действия для CFUN = 7. Не могу сказать однозначно про BGS2, но MC52i в 7-м режиме соединение устанаваливает, а поскольку оба Cinterion-ы то... А зря.