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

Ну вы блин даете!

Intel придумал такой формат давно давно. Если гуглить не можете, то вот википедия вам поможет:

http://ru.wikipedia.org/wiki/Intel_Hex

В таком случае не совсем корректно сформулирован вопрос?

Или это не вопрос, а просто размышление вслух: посылать данные в двоичном виде или в текстовом?

Непонятно как-то, что значит - сервер не поймет ASCII, он настроен на прием HEX ?

И приведенной выше ссылки следует, что HEX - это формат текстовых файлов в кодировке ASCII.

Значит как текст и надо передавать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

текст то текстом а вот кто-то должен формировать остальные атрибуты:

 

Начало записи

Счётчик байт

Адрес

Тип записи

Данные в ASCII

Контрольная сумма

 

например это все увеличивает размер файла.

Если нет этих атрибутов как сервер поймет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если бинарные данные. переходите в прозрачный режим и шлите все что угодно.. Возврат в командный по +++ или ДТР

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

текст то текстом а вот кто-то должен формировать остальные атрибуты:

 

Начало записи

Счётчик байт

Адрес

Тип записи

Данные в ASCII

Контрольная сумма

 

например это все увеличивает размер файла.

Если нет этих атрибутов как сервер поймет?

Отправляйте в бинарном виде? зачем тогда формат HEX, если не хотите его придерживаться? А сервер не поймет.

Формат придумывается не просто так и в нем нет лишних полей. Если уж передавать, то все, включая старты, стопы и особенно важно - контрольную сумму.

 

Особенно мне понравилось, что к "остальным атрибутам" причислены "данные в ASCII".

Тогда ради чего передача ведется ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в таком режиме можно получить интересные глюки...

если коды лежат вне ascii диаппазона... например h17 может не проходить... хотя если включено аппаратное управление потоком то все вроде работает...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как тогда выйти с такого положения ?

данные могут быль любые в диапазоне 0х00-0хFF

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

неполностью разобрался как правильно вызвать эту команду, поправте если ошибаюсь

После установления коннекта шлем команду:

AT+CIPSEND=512

Модуль возвращает предложение ввести данные (хотя выдачу этой галки можно и отключить, но паузу выдержать желательно, были сообщения о глюках, если посылать данные после команды без паузы):

>

Шлете 512 байтов любых данных, после чего модем передает их все одним куском и выдает:

SEND OK

После чего можно или ждать, когда нужно будет послать новые данные или закрывать соединение.

 

Управление потоком должно быть или выключено, или установленно "аппаратное".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

при ВЫКЛЮЧЕННОМ управлении потоком у меня сьедались 17-ки (это софтовый стоп). долго не мог понять причину )) пока не отправил 00 -- 01 -- 02 .... FF ... и не увидел пропавшую 17 (или 15) точно непомню...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

при ВЫКЛЮЧЕННОМ управлении потоком у меня сьедались 17-ки (это софтовый стоп). долго не мог понять причину )) пока не отправил 00 -- 01 -- 02 .... FF ... и не увидел пропавшую 17 (или 15) точно непомню...

Вполне возможно, я без аппаратного управления потоком не проверял..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обычно простые 8 битные контроллеры не позволяют реализовать аппаратное управления потоком, это надо наверно сразу арм7 ставить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обычно простые 8 битные контроллеры не позволяют реализовать аппаратное управления потоком, это надо наверно сразу арм7 ставить.

Да ладно тебе, все что требуется - это две ножки процессора для CTS/RTS и какой-то способ их периодической проверки для "восстановления после сработки" (таймерное прерывание или программа, написанная в виде одного большого цикла). Ну, бывает, наверное, что даже этого нет... я бы от такого кристалла держался подальше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обычно простые 8 битные контроллеры не позволяют реализовать аппаратное управления потоком, это надо наверно сразу арм7 ставить.

:biggrin:

"аппаратным", управление потоком называется, в основном, потому, что помимо линий данных применяются еще два аппаратных сигнала CTS и RTS.

Все остальное реализуется программно.

CTS - сигнал от модема к МК, что буфер передатчика вот-вот заполнится и нужно приостановит передачу данных в модем.

RTS - то же самое в обратную сторону.

Просто нужно иметь в виду, что после активизации сигнала запрета, несколько байт еще могут прилететь. А вот какое конкретно кол-во - зависит от реализации модема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет,

есть вопрос....

 

Интро:

-- Есть некоторая плата на 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...