|
|
  |
AT команды, всякие мелкие вопросы |
|
|
|
Dec 7 2009, 22:19
|
Мыслящий
    
Группа: Свой
Сообщений: 1 729
Регистрация: 20-07-07
Из: Самара
Пользователь №: 29 270

|
Цитата(Aner @ Dec 8 2009, 02:11)  Ну вы блин даете! Intel придумал такой формат давно давно. Если гуглить не можете, то вот википедия вам поможет: http://ru.wikipedia.org/wiki/Intel_HexВ таком случае не совсем корректно сформулирован вопрос? Или это не вопрос, а просто размышление вслух: посылать данные в двоичном виде или в текстовом? Непонятно как-то, что значит - сервер не поймет ASCII, он настроен на прием HEX ? И приведенной выше ссылки следует, что HEX - это формат текстовых файлов в кодировке ASCII. Значит как текст и надо передавать.
--------------------
FAQ по ADФорум по ADЗнание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью. ...стоит запомнить ...вернее задуматься.
|
|
|
|
|
Dec 7 2009, 22:44
|
Мыслящий
    
Группа: Свой
Сообщений: 1 729
Регистрация: 20-07-07
Из: Самара
Пользователь №: 29 270

|
Цитата(Aner @ Dec 8 2009, 02:29)  текст то текстом а вот кто-то должен формировать остальные атрибуты:
Начало записи Счётчик байт Адрес Тип записи Данные в ASCII Контрольная сумма
например это все увеличивает размер файла. Если нет этих атрибутов как сервер поймет? Отправляйте в бинарном виде? зачем тогда формат HEX, если не хотите его придерживаться? А сервер не поймет. Формат придумывается не просто так и в нем нет лишних полей. Если уж передавать, то все, включая старты, стопы и особенно важно - контрольную сумму. Особенно мне понравилось, что к "остальным атрибутам" причислены "данные в ASCII". Тогда ради чего передача ведется ?
--------------------
FAQ по ADФорум по ADЗнание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью. ...стоит запомнить ...вернее задуматься.
|
|
|
|
|
Dec 8 2009, 07:03
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Извиняюсь, перечитал, сегодня с утра, действительно написал вопрос непонятно. Данные все они одинаковые 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. закрываем передачу Код >
|
|
|
|
|
Dec 8 2009, 10:53
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(west329_ @ Dec 8 2009, 09:03)  неполностью разобрался как правильно вызвать эту команду, поправте если ошибаюсь После установления коннекта шлем команду: Код AT+CIPSEND=512 Модуль возвращает предложение ввести данные (хотя выдачу этой галки можно и отключить, но паузу выдержать желательно, были сообщения о глюках, если посылать данные после команды без паузы): Код > Шлете 512 байтов любых данных, после чего модем передает их все одним куском и выдает: Код SEND OK После чего можно или ждать, когда нужно будет послать новые данные или закрывать соединение. Управление потоком должно быть или выключено, или установленно "аппаратное".
|
|
|
|
|
Dec 9 2009, 07:58
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 20-08-07
Из: Тула
Пользователь №: 29 919

|
Цитата(west329_ @ Dec 9 2009, 11:36)  Обычно простые 8 битные контроллеры не позволяют реализовать аппаратное управления потоком, это надо наверно сразу арм7 ставить. Да ладно тебе, все что требуется - это две ножки процессора для CTS/RTS и какой-то способ их периодической проверки для "восстановления после сработки" (таймерное прерывание или программа, написанная в виде одного большого цикла). Ну, бывает, наверное, что даже этого нет... я бы от такого кристалла держался подальше.
|
|
|
|
|
Dec 9 2009, 21:19
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(west329_ @ Dec 9 2009, 09:36)  Обычно простые 8 битные контроллеры не позволяют реализовать аппаратное управления потоком, это надо наверно сразу арм7 ставить. "аппаратным", управление потоком называется, в основном, потому, что помимо линий данных применяются еще два аппаратных сигнала CTS и RTS. Все остальное реализуется программно. CTS - сигнал от модема к МК, что буфер передатчика вот-вот заполнится и нужно приостановит передачу данных в модем. RTS - то же самое в обратную сторону. Просто нужно иметь в виду, что после активизации сигнала запрета, несколько байт еще могут прилететь. А вот какое конкретно кол-во - зависит от реализации модема.
|
|
|
|
|
Aug 12 2010, 09:26
|
Группа: Новичок
Сообщений: 2
Регистрация: 12-08-10
Пользователь №: 58 871

|
Всем привет, есть вопрос.... Интро: -- Есть некоторая плата на 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 может это какие-либо ограничения, может баг прошифки, или надо какие-то ещё параметры выставить до того как включать режим индикации сообщений?
Сообщение отредактировал ironmaden - Aug 12 2010, 09:27
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|