Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 34

Тема: Перехват LPT в PowerSDR

  1. #1
    Заблокирован навсегда
    Регистрация
    10.12.2005
    Адрес
    Одесса
    Сообщений
    2,325
    Записей в дневнике
    1
    Позывной
    UR5FFR

    Перехват LPT в PowerSDR

    Приветствую!

    беглый просмотр по диагоналы сырков версии 1.8 обнаружил, что поверсдр работает с лпт через внешнюю длл-ку, которая обзывается porttalk.dll. и ничего удивительного тут нет, ибо дотнет на котором писан этот весь повер не предназначен для работы с железяками на низком уровне. дллка эта экспортирует аж 4ре процедуры - инициализация/финализация, читать-писать в порт. сама дллка в порт не пишет, а использует для этого обращение к драйверу porttalk.sys через ioctl. т.е. она является "переходником" между powersdr и драйвером который уже непосредственно работает с "железным" портом.

    как перехватить порт. самое простое - переименовываем porttalk.dll в что-то типа porttalk_org.dll и пишем новую porttalk.dll, которая модифицирует весь трафик между powersdr и портом. чтобы не морочить себе голову новая porttalk для работы с портом вызывает оригинальную porttalk_org

    теперь что с этого можно поиметь. как известно в режиме spur reduction powersdr шагает семимильными шагами. это позволяет применять не только ддс-синтезаторы, но и pll синтез с шагом в 3кгц.

    что для всего этого нужно. самую малость - протокол обмена с лпт портом. мне такой документ не попадался. если у кого есть информация - выкладывайте. если нет - прийдется ковырять модуль hardware_v2.cs в исходниках 1.8 на предмет того что собственно суется в лпт порт


  2. #2
    Андрей, а возможно написать новую dll, кот не будет использовать LPT (разъем большой сильно...), а будет выдавать данные через СОМ?
    И возможно ли эту dll написать на Билдере?

  3. #3
    Заблокирован навсегда
    Регистрация
    10.12.2005
    Адрес
    Одесса
    Сообщений
    2,325
    Записей в дневнике
    1
    Позывной
    UR5FFR
    да, можно. хоть в ком, хоть в усб, хоть по tcp/ip на другой компьютер. куда угодно. можно и одновременно с неколькими портами работать
    никаких принципиальных возражений против билдера я не вижу. длл можно написать на любом компиляторе который умеет создавать длл.

  4. #4
    госпада можно заметить
    лучше на usb порт писать
    зто как просьба

  5. #5
    Аватар для RA9YTJ
    Регистрация
    16.03.2007
    Адрес
    Рубцовск
    Сообщений
    986
    Позывной
    RA9YTJ
    Продизасемблил я енту DLL
    Результат:
    вызовы stdcall
    ExitPortTalk() команды вызываются не требуя вх\вых параметров,
    InitPortTalk() можно делать пустышки или писать что то свое
    inport(Port:word):dw ord; требует порт 16бит возвращает 32бит
    outport (Port:word, data:dword) требует порт16 и число 32бит, которое пишет в этот порт.

    Можно написать DLL которая все пишет не в порт а в лог файл, потом сие разобрать.
    Написал, пользуйтесь, файл лог в папке поувера.
    Пробовал на версии 1.10.1
    Вложения Вложения

  6. #6
    Для RA9YTJ:

    Спасибо! Работает! Пробовал на 1.10.3...
    Попробую "расшифровать".. .

    На выходных почитаю толстую книжку по Билдеру, про dll, ибо вопросы есть, но не могу "умно" сформулировать...

    Жалко, что Андрей раньше не "ткнул носом" в такую возможность...
    Стимул отличный!

  7. #7
    Заблокирован навсегда
    Регистрация
    10.12.2005
    Адрес
    Одесса
    Сообщений
    2,325
    Записей в дневнике
    1
    Позывной
    UR5FFR
    Цитата Сообщение от ivan1
    лучше на usb порт писать
    угу. а кто с этого порта читать будет? у вас есть "железо" которое по усб работает?
    Цитата Сообщение от RA9YTJ
    Продизасемблил я енту DL
    дорогая редакция, вы меня в гроб загоните зачем ее дизассемблить!!!!!!! !!!! она в сырцах поверсдр 1.8 идет полностью в исходниках - открывай визуалстудией и компиль что длл, что сам драйвер
    для ленивых - идете на флексовский сайт, жмете справа expand site map, support->downloads, в левом списке powersdr, в правом source code, search, и качаем PowerSDR_v1.8.0_Sour ceCode.zip
    и вообще у этого porttalka сайт есть. и там тоже с сырцами все отдается http://www.beyondlogic.org/porttalk/porttalk.htm
    Вложения Вложения

  8. #8
    Кому интересно...

    В прилагаемом текстовом файле фрагмент лога с LPT при работе ПовСДР. Табуляцией я разбил для наглядности. Числа, кот. пишутся по адресу 888 перед записью по адресу 890 чисел 15 и 11 (строб) и есть байты для установки частоты.
    Числа десятичные, их надо перевести в двоичный вид и добавить (при необходимости) впереди нолики до общего числа 8 бит. Потом "пристыковать" друг к другу полученные байты, чтобы получилось 48-ми битное число. Первым выводится старший байт, последним - младший.Полученное двоичное число надо перевести в десятичный вид. Назовем его К. Потом по формуле

    F=(К*200000000)/281474976710656

    вычисляем значение частоты синтеза.

    В прилагаемом примере частота настройки была 3506300, частота синтеза 3495275 (ПЧ 11025).
    Вложения Вложения
    • Тип файла: zip log_132.zip (257 байт, Просмотров: 356)

  9. #9
    Аватар для Genadi Zawidowski
    Регистрация
    22.07.2004
    Адрес
    Санкт-Петербург
    Сообщений
    11,093
    Записей в дневнике
    20
    Позывной
    UA1ARN
    Если проблемы с 96-битной арифметикой, могу предложить использовать 32 старших бита (после умножения всё уложится в 64 бита), а потом в формуле делить на 4294967296. Увеличение погрешности пренебрежимо мало.
    Хотя, в Билдере был тип __int128... Или я опять помню то, чего небыло?
    ... Я там глубину сам промерял!


  10. #10
    Заблокирован навсегда
    Регистрация
    10.12.2005
    Адрес
    Одесса
    Сообщений
    2,325
    Записей в дневнике
    1
    Позывной
    UR5FFR
    Genadi Zawidowski
    __int64

Страница 1 из 4 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. POWERSDR
    от artemx в разделе Software Defined Radio (SDR), Digital Radio Mondiale (DRM)
    Ответов: 1
    Последнее сообщение: 13.04.2010, 19:56
  2. skin for PowerSDR
    от UR5ATF в разделе Software Defined Radio (SDR), Digital Radio Mondiale (DRM)
    Ответов: 10
    Последнее сообщение: 06.11.2009, 22:24
  3. Как и чем компилить PowerSDR?
    от www в разделе Software Defined Radio (SDR), Digital Radio Mondiale (DRM)
    Ответов: 6
    Последнее сообщение: 29.08.2009, 08:37
  4. Программа PowerSDR v1.14.0 ???
    от ut3mk в разделе Software Defined Radio (SDR), Digital Radio Mondiale (DRM)
    Ответов: 14
    Последнее сообщение: 29.11.2008, 14:12
  5. Внутринности PowerSDR
    от KosBR2 в разделе Software Defined Radio (SDR), Digital Radio Mondiale (DRM)
    Ответов: 45
    Последнее сообщение: 10.10.2007, 04:12

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •