masterofnature 0 7 декабря, 2009 Опубликовано 7 декабря, 2009 · Жалоба Ну вы блин даете! Intel придумал такой формат давно давно. Если гуглить не можете, то вот википедия вам поможет: http://ru.wikipedia.org/wiki/Intel_Hex В таком случае не совсем корректно сформулирован вопрос? Или это не вопрос, а просто размышление вслух: посылать данные в двоичном виде или в текстовом? Непонятно как-то, что значит - сервер не поймет ASCII, он настроен на прием HEX ? И приведенной выше ссылки следует, что HEX - это формат текстовых файлов в кодировке ASCII. Значит как текст и надо передавать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 5 7 декабря, 2009 Опубликовано 7 декабря, 2009 · Жалоба текст то текстом а вот кто-то должен формировать остальные атрибуты: Начало записи Счётчик байт Адрес Тип записи Данные в ASCII Контрольная сумма например это все увеличивает размер файла. Если нет этих атрибутов как сервер поймет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
av-master 0 7 декабря, 2009 Опубликовано 7 декабря, 2009 · Жалоба если бинарные данные. переходите в прозрачный режим и шлите все что угодно.. Возврат в командный по +++ или ДТР Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
masterofnature 0 7 декабря, 2009 Опубликовано 7 декабря, 2009 · Жалоба текст то текстом а вот кто-то должен формировать остальные атрибуты: Начало записи Счётчик байт Адрес Тип записи Данные в ASCII Контрольная сумма например это все увеличивает размер файла. Если нет этих атрибутов как сервер поймет? Отправляйте в бинарном виде? зачем тогда формат HEX, если не хотите его придерживаться? А сервер не поймет. Формат придумывается не просто так и в нем нет лишних полей. Если уж передавать, то все, включая старты, стопы и особенно важно - контрольную сумму. Особенно мне понравилось, что к "остальным атрибутам" причислены "данные в ASCII". Тогда ради чего передача ведется ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
west329 0 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба Извиняюсь, перечитал, сегодня с утра, действительно написал вопрос непонятно. Данные все они одинаковые 1/0, просто я заметил на форуме что большинство использует передачу сообщений ASCII, имхо удобно для отладки, но непрактично. Вот и заинтересовало, как правильно передавать просто сырые данные (любое значение байта). Отдельно спасибо Baser. Направил в нуженое русло. из даташита SIM300D AT Commands Set V1.06 sim300d_atc_v1.06.pdf Write command AT+CIPSEND=<length> This command is used to send fixed length data. If connection is not established or disconnect: ERROR If sending successfully: SEND OK If sending fail: SEND FAIL Parameter <length> a numeric parameter which indicatesthe length of sending data, it must less than 1024 неполностью разобрался как правильно вызвать эту команду, поправте если ошибаюсь Действие 1. шлем в модем AT+CIPSEND=512< Действие 2. шлём сырые данные 512байт ......... Действие 3. закрываем передачу > Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
av-master 0 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба в таком режиме можно получить интересные глюки... если коды лежат вне ascii диаппазона... например h17 может не проходить... хотя если включено аппаратное управление потоком то все вроде работает... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
west329 0 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба Как тогда выйти с такого положения ? данные могут быль любые в диапазоне 0х00-0хFF Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 5 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба неполностью разобрался как правильно вызвать эту команду, поправте если ошибаюсь После установления коннекта шлем команду: AT+CIPSEND=512 Модуль возвращает предложение ввести данные (хотя выдачу этой галки можно и отключить, но паузу выдержать желательно, были сообщения о глюках, если посылать данные после команды без паузы): > Шлете 512 байтов любых данных, после чего модем передает их все одним куском и выдает: SEND OK После чего можно или ждать, когда нужно будет послать новые данные или закрывать соединение. Управление потоком должно быть или выключено, или установленно "аппаратное". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
av-master 0 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба при ВЫКЛЮЧЕННОМ управлении потоком у меня сьедались 17-ки (это софтовый стоп). долго не мог понять причину )) пока не отправил 00 -- 01 -- 02 .... FF ... и не увидел пропавшую 17 (или 15) точно непомню... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 5 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба при ВЫКЛЮЧЕННОМ управлении потоком у меня сьедались 17-ки (это софтовый стоп). долго не мог понять причину )) пока не отправил 00 -- 01 -- 02 .... FF ... и не увидел пропавшую 17 (или 15) точно непомню... Вполне возможно, я без аппаратного управления потоком не проверял.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
west329 0 9 декабря, 2009 Опубликовано 9 декабря, 2009 · Жалоба Обычно простые 8 битные контроллеры не позволяют реализовать аппаратное управления потоком, это надо наверно сразу арм7 ставить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stream 0 9 декабря, 2009 Опубликовано 9 декабря, 2009 · Жалоба Обычно простые 8 битные контроллеры не позволяют реализовать аппаратное управления потоком, это надо наверно сразу арм7 ставить. Да ладно тебе, все что требуется - это две ножки процессора для CTS/RTS и какой-то способ их периодической проверки для "восстановления после сработки" (таймерное прерывание или программа, написанная в виде одного большого цикла). Ну, бывает, наверное, что даже этого нет... я бы от такого кристалла держался подальше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 5 9 декабря, 2009 Опубликовано 9 декабря, 2009 · Жалоба Обычно простые 8 битные контроллеры не позволяют реализовать аппаратное управления потоком, это надо наверно сразу арм7 ставить. "аппаратным", управление потоком называется, в основном, потому, что помимо линий данных применяются еще два аппаратных сигнала CTS и RTS. Все остальное реализуется программно. CTS - сигнал от модема к МК, что буфер передатчика вот-вот заполнится и нужно приостановит передачу данных в модем. RTS - то же самое в обратную сторону. Просто нужно иметь в виду, что после активизации сигнала запрета, несколько байт еще могут прилететь. А вот какое конкретно кол-во - зависит от реализации модема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ironmaden 0 12 августа, 2010 Опубликовано 12 августа, 2010 (изменено) · Жалоба Всем привет, есть вопрос.... Интро: -- Есть некоторая плата на ARM-e, с линуксом собранным на основе идеологии сборки openembedded -- Вариант платы #1 - на плате распаяны два модема GSM/CDMA оба AnyData (выбор, вкл, выкл нужного модема через gpio) -- Вариант платы #2 - на плате распаян GSM модем Wavecom Общение в обоих случаях идет через последовательный порт /dev/ttySAC0. При отладке общаюсь с модемом в ручном режиме через minicom но через тот же /dev/ttySAC0. Треубется -- принимать на плату SMS-сообщения, с последующей их обработкой на стороне ещё одного приложения -- это по сути все реализовано и работает с модемом Wavecom для варианта индикации "AT+CNMI=2,2,2,1,0" AnyData GSM (DTP-601W) модем с такими настройками работать не хочет at+cnmi=2,2,2,1,0 +CMS ERROR: 303 С другими значениями индикации тоже весело, на большую часть отвечает "+CMS ERROR: 303", на других (например, "AT+CNMI=2,1,0,0,0") виснет наглухо -- помогает только ребут всей платы. ati Manufacturer: QUALCOMM INCORPORATED Model: 19 Revision: U66WHH02 1 [Aug 10 2009 24:00:00] IMEI: 354862010998768 +GCAP: +CGSM,+DS,+ES OK at+csq +CSQ: 10,99 OK at+cnmi=2,2,2,1,0 +CMS ERROR: 303 at+creg? +CREG: 0,1 OK at+cops? +COPS: 0,0,"MegaFon RUS",2 OK может это какие-либо ограничения, может баг прошифки, или надо какие-то ещё параметры выставить до того как включать режим индикации сообщений? Изменено 12 августа, 2010 пользователем ironmaden Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewlekar 0 13 августа, 2010 Опубликовано 13 августа, 2010 · Жалоба Попробуйте AT+CNMI=2,2,0,1,0 и ещё AT+CNMI=2,2,0,0,0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться