Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26158
Рейтинг: 2127
#61: 2012-12-17 16:34:36 ЛС | профиль | цитата
rolin писал(а):
Но так как чистого Hex у нас нет по Вашим же словам

HEX -- это не бинарные данные, а текстовое представление этих данных в шестнадцатеричном виде
rolin писал(а):
а чистый есть только BIN

Это кто такое сказал
BIN -- это тоже не бинарные данные, а текстовое представление этих данных в двоичном виде.

Для работы с такими форматами контроллеру напрямую, в нем или его драйвере должна быть предусмотрена переконвертация в формат, который понимает контроллер. По описанию, контроллер понимает только бинарные данные, те данные, где байт представлен в диапазоне значений от 0 до 255
карма: 22

0
Ответов: 91
Рейтинг: 1
#62: 2012-12-17 17:40:15 ЛС | профиль | цитата
nesco писал(а):
понимает только бинарные данные, те данные, где байт представлен в диапазоне значений от 0 до 255

Это есть Char. То бишЬ текстовое представление кодировки ASCII.
И я сделал схему, которая будет работать 100%.На основе схемы предложенной г.ость.
Каждый байт исходных данных записан в виде INT и преобразуется в CHAR который и формируется в строку.
Но схема не работает
Потому что данные 0 считаются в СHAR как отсутствие символа !
code_29783.txt
карма: 1

0
файлы: 1code_29783.txt [4.7KB] [103]
Разработчик
Ответов: 26158
Рейтинг: 2127
#63: 2012-12-17 17:48:15 ЛС | профиль | цитата
rolin писал(а):
Потому что данные 0 считаются в СHAR как отсутствие символа !

Для этого и существует у нас тип String, который понимает всю последовательность CHAR символов, включая 0, если этому типу указать полную длину последовательности.
Схема Леонида выдает именно полных 22 байта бинарных данных. Почему не работает эта последовательность, надо смотреть, а правильно ли делается запрос на ввод фрейма команды Попытка преобразовать INT в CHAR, а затем сшить их в строку даст тот же результат, что и схема Леонида. К тому же, Леонид, в своей схеме, повторил строку, которая дана в описании
карма: 22

0
Ответов: 8926
Рейтинг: 823
#64: 2012-12-17 17:55:53 ЛС | профиль | цитата
rolin, это неотображаемый символ, Вы его не увидете, как суслика
..want_udp_status is a 14-byte string with numbers in little-endian order..
Что-то мозги заклинило: а не в обратном-ли порядке надо формировать управляющую строку, где должен находиться "St" справа или слева?
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#65: 2012-12-17 18:26:34 ЛС | профиль | цитата
want_udp_status is a 14-byte string with numbers in little-endian order:
rolin, а выделенное жирным понятно ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 91
Рейтинг: 1
#66: 2012-12-17 18:33:08 ЛС | профиль | цитата
nesco писал(а):
HEX -- это не бинарные данные, а текстовое представление этих данных в шестнадцатеричном виде

nesco писал(а):
BIN -- это тоже не бинарные данные, а текстовое представление этих данных в двоичном виде.

Согласен, эти типы - лишь для удобства отображения данных на экране.
Чистый формат - это Int, String, Real.
Леонид писал(а):
rolin, это неотображаемый символ, Вы его не увидете, как суслика

А чего ж его тогда его Leigth не видит ? Всего символов 22 , длину показывает 16, и как раз 6 нулей в символах
Я посщитал на каркуляторе - всё сходится )
------------ Дoбавленo в 18.33:
Tadnumbers in little-endian,
Прямой порядок, младший заканчивает, где-то так
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#67: 2012-12-17 18:54:17 ЛС | профиль | цитата
"St" слева [0:2]
------------ Дoбавленo в 18.38:
rolin писал(а):
Прямой порядок, младший заканчивает, где-то так
Да ну?
Порядок от младшего к старшему(англ. little-endian),запись начинается с младшего и заканчивается старшим. Этот порядок записи принят в памяти персональных компьютеров с x86-процессорами, в связи с чем иногда его называют интеловский порядок байтов

------------ Дoбавленo в 18.54:
Леонид писал(а):
Что-то мозги заклинило: а не в обратном-ли порядке надо формировать управляющую строку
Не строку, а в каждом числе перевернуть БАЙТЫ
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 91
Рейтинг: 1
#68: 2012-12-17 19:07:38 ЛС | профиль | цитата
Tad писал(а):
"St" слева [0:2]

Правильно, вот и у меня в схеме получается St слева.
Tad писал(а):
запись начинается с младшего и заканчивается старшим.

Ага, и теперь главное кого обозвали младшим. А младший у нас "St"[0:2] и он как раз передаётся первым. А если перевернуть байты, то это будет уже не St а белиберда какая-то. Так что в этом смысле в схеме все правильно.
Но давайте разберемся с нолями. Если Leigth их не видит, значит они и не передаются.
карма: 1

0
Разработчик
Ответов: 26158
Рейтинг: 2127
#69: 2012-12-17 19:22:17 ЛС | профиль | цитата
rolin писал(а):
Если Leigth их не видит, значит они и не передаются

Да ну Length определяет длину буферизированной строки, если до этого не была сформулирована длина строки, то у строки, при копировании в буфер, будут отсечены нули справа
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#70: 2012-12-17 19:29:39 ЛС | профиль | цитата
rolin, а если внимательно всмотреться, то в контрольной строке четко видно как в данных частот приема и передачи перевернуты байты

One example how to setup the transceiver (FPGA version 1.0):

Control word hexadecimal 0x 5374|ABAAAA07|52B8A807|78|02|27|00 -- Контрольная строка

St RXPhase TXPhase Level Mode RXC RFU - - - даже "St" записывается в HEX =5374
0x 07 AA AA AB means 3679.995kHz RX frequency
0x 07 A8 B8 52 means 3676.350kHz TX frequency
0x 78 means output drive is 120
0x 02 means mode is set to non-CW (e.g.SSB)
0x 27 means decimation is 40*8*8 which results in a samplerate of 48kSpls
0x 00 is RFU


Иметь такой мануал и ещё что-то спрашивать... ты меня извини, но видно - не читатель.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26158
Рейтинг: 2127
#71: 2012-12-17 19:51:36 ЛС | профиль | цитата
Tad писал(а):
четко видно как в данных частот приема и передачи перевернуты байты

Погодь, а у Леонида они же передаются как положено, он же полностью содрал командную строку, или нет
карма: 22

0
Ответов: 91
Рейтинг: 1
#72: 2012-12-17 20:20:27 ЛС | профиль | цитата
Tad, St - это идентификатор фрэйма, его нельзя передавать в конце, только в начале.Вы предлагаете передать как tS ? Мануал так себе, это ошибка.
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#73: 2012-12-17 21:03:52 ЛС | профиль | цитата
rolin писал(а):
St - это идентификатор фрэйма, его нельзя передавать в конце, только в начале.Вы предлагаете передать как tS ? Мануал так себе, это ошибка.
Вообще-то читать умеем ?
want_udp_status is a 14-byte string with numbers in little-endian order:
и переводить правильно:
"UDP-статус ТРЕБУЕТ 14-байтную строку в которой байты чисел записаны в ОБРАТНОМ ПОРЯДКЕ".

Что тут не понятного. Строка передается начиная с St. Где я предложил строку передавать задом на перед - покажи пальчиком.
Мануал отличный.
Если скормить эту строку
5374|ABAAAA07|52B8A807|78|02|27|00
то частота RX установится 3679.995kHz и т.д. (смотри выше)
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 91
Рейтинг: 1
#74: 2012-12-17 21:43:24 ЛС | профиль | цитата
Наконец-то я понял что вы имеете в виду.Но это может повлиять только на корректность установки частоты. Если я записал в байт установки Attenuator
11111111 (255) (0хFF)то и светодиодик припаянный к этому порту должен загореться.А он сволочь не загорается. И число только из одного байта и никак его не повернешь.
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#75: 2012-12-17 22:28:27 ЛС | профиль | цитата
Вот здесь IC для частот RX и TX с расчетом, переворотом и примером.
Данные для IC в герцах.
code_29788.txt

------------ Дoбавленo в 22.28:
rolin писал(а):
Наконец-то я понял
Нифига ты не понял. От младшего байта к старшему байту записываются числовые "многобайтовые" значения.
Однобайтовые крутить не надо. Крутим не биты, а байты.
Attenuator pins 84, 83, 82, 81, 80
Всего 5 пинов это максимум 1F. Где написано про управление Attenuator-ом ???

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_29788.txt [1.3KB] [141]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)