На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 56,
участников - 13 [ Slavik, SaDim, iml, Shuare, Evpator, Vox, Simon, rusal, Sergey4565, Greenland, Vangog, rn6dp, Kolomchanin]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Программное обеспечение —› Расшифровка файла для программы радиостанции 
Новая линейка радиостанций Hytera в нашем магазине


Hytera TC-320
руб.

Hytera TC-508
руб.

Hytera TC-580
руб.

Hytera PD-355
руб.

Hytera X1E
руб.
 Страница:  ««  1  2Поиск в теме
Автор Сообщение
rn3kk
Участник
Offline1.1
с мая 2014
Воронеж
Сообщений: 36

Дата: 03 Сен 2019 09:09:42 #  

xin спасибо. мне не хватало только одного числа. Задышало. Можете как то рассказать как получили сами цифры бендов и число для марса?

Числа бендов я видел, но в чистом переводе фигня получалась, а вот марс я вообще не нашел в бинаре. Где оно находится?
xin
Участник
Offline3.3
с июл 2006
ДВ
Сообщений: 599

Дата: 03 Сен 2019 10:22:24 #  

Можете как то рассказать как получили сами цифры бендов и число для марса?

Ну дизассемблировал smartsdr, там и нашел эти таблицы:

# таблица регионов

.data:004D95A8 region_table DCD 0 ; DATA XREF: region_transmitOK+C0↑r
.data:004D95AC off_4D95AC DCD us_extra ; DATA XREF: region_transmitOK+E4↑r
.data:004D95B0 dword_4D95B0 DCD 1 ; DATA XREF: region_transmitOK:loc_FF930↑r
.data:004D95B4 DCD uk
.data:004D95B8
.data:004D95B8 DCD 2
.data:004D95BC DCD europe
.data:004D95C0
.data:004D95C0 DCD 3
.data:004D95C4 DCD uk_plus
.data:004D95C8
.data:004D95C8 DCD 4
.data:004D95CC DCD italy
.data:004D95D0
.data:004D95D0 DCD 5
.data:004D95D4 DCD norway
.data:004D95D8
.data:004D95D8 DCD 6
.data:004D95DC DCD denmark
.data:004D95E0
.data:004D95E0 DCD 7
.data:004D95E4 DCD latvia
.data:004D95E8
.data:004D95E8 DCD 8
.data:004D95EC DCD slovakia
.data:004D95F0
.data:004D95F0 DCD 9
.data:004D95F4 DCD bulgaria
.data:004D95F8
.data:004D95F8 DCD 10
.data:004D95FC DCD greece
.data:004D9600
.data:004D9600 DCD 11
.data:004D9604 DCD hungary
.data:004D9608
.data:004D9608 DCD 12
.data:004D960C DCD belgium
...

# частоты для марса
.data:004DAA18 us_mars DCQ 1887436800000 ; DATA XREF: .data:004D967C↑o
.data:004DAA20 DCQ 32505856000000
.data:004DAA28 DCQ 52428800000000
.data:004DAA30 DCQ 56623104000000
.data:004DAA38 DCQ 148897792000000
.data:004DAA40 DCQ 157286400000000
Реклама
Google
rn3kk
Участник
Offline1.1
с мая 2014
Воронеж
Сообщений: 36

Дата: 03 Сен 2019 11:26:05 #  

Да, подставив то самое число, передача открылась. Но после перезапуска не пашет. Видимо это в памяти изменения хранились, которые я делал.
Копаем дальше.
xin
Участник
Offline3.3
с июл 2006
ДВ
Сообщений: 599

Дата: 03 Сен 2019 12:59:16 · Поправил: xin (03 Сен 2019 13:18:58) #  

Самое простое это сформировать turf файл для вашего трансивера.

TurfClient хоть и для старых версий, но функционал в нем для формирования turf файлов присутствует и программа написана на C#, что дает возможность получить его исходники, их немного изменить и скомпилировать свою прогу, которая будет создавать turf файлы.

Есть еще вариант, это тупо посредством программного функционала turfclient'а послать команду для записи в eeprom нужных данных для смены региона, благо API опять же в TurfClient'е присутствует.

Ну про сложные варианты изменения smartsdr я уже не говорю, смысла в них нет когда существуют простые варианты.
rn3kk
Участник
Offline1.1
с мая 2014
Воронеж
Сообщений: 36

Дата: 03 Сен 2019 16:31:12 #  

Turf я сформировал и радио его нормально всасывает и меняет регион, но не совсем понятно как мне число 4096 запихать в него правильно. Как не пытался, не то выходит. У меня старых файлов с MARS нет чтобы там подсмотреть
rn3kk
Участник
Offline1.1
с мая 2014
Воронеж
Сообщений: 36

Дата: 03 Сен 2019 16:40:07 · Поправил: rn3kk (03 Сен 2019 17:37:57) #  

делаю так
byte[] b = {0x10, 0x00}

EEPROMEmtry e = new EEPromEntry(0x17D, b)

и прога видит регон IARU некий и передача с его параметрами (т.е. только на любительских бендах)
xin
Участник
Offline3.3
с июл 2006
ДВ
Сообщений: 599

Дата: 03 Сен 2019 18:56:26 #  

А если сделать так:
byte[] b = {0x00, 0x10} ?

А так правильно он у вас видит iaru_3 (0x10)
rn3kk
Участник
Offline1.1
с мая 2014
Воронеж
Сообщений: 36

Дата: 03 Сен 2019 19:00:51 #  

byte[] b = {0x00, 0x10} ?

так видит как USA
rn3kk
Участник
Offline1.1
с мая 2014
Воронеж
Сообщений: 36

Дата: 03 Сен 2019 19:12:55 · Поправил: rn3kk (03 Сен 2019 20:14:23) #  

я кручусь около этого блока

.text:00158158 BL drv_M24c64WriteOne
.text:0015815C MOV R3, #0x17D
.text:00158160 CMP R5, R3
.text:00158164 BNE loc_1580E0
.text:00158168 LDRB R0, [R4,#1]
.text:0015816C BL drv_MB_setRegion

когда из отладчика вызываю drv_MB_setRegion(4096) все отрабатывает. Нужно понять по каким регистрам уложено число 4096 и как оно собирается.
xin
Участник
Offline3.3
с июл 2006
ДВ
Сообщений: 599

Дата: 04 Сен 2019 02:44:49 · Поправил: xin (04 Сен 2019 07:54:25) #  

Короче ситуация, если я правильно понял, такая:

Адрес 0x17d - адрес региона. Длина данных 1 байт.
Адрес 0x17e - адрес флага разлочки диапазонов.

Кусок из region_transmitOK (0x000FF860)

...
_region = drv_MB_getRegion(a1);
_is_unlocked = HAL_isUnlocked();
_true_or_false = 0x3FB82C;
if ( !_is_unlocked )
_true_or_false = 0x3FB834;
if ( _is_unlocked )
_region = 4096;

SL_Log("../smoothlake/regions.c", 4285704, 490, 78, 2, (char *)1, "unlock=%s", _true_or_false);
SL_Log("../smoothlake/regions.c", 4285704, 491, 78, 2, (char *)1, "region=%d", _region);
...


Видим, что при разлоченом признаке региону автоматом присваивается US_MARS

Ищем где устанавливается признак разблоокировки:

Кусок из turf_execute (0x157E2C ):

...
_value = (_BYTE *)(v11 + 1);
...
drv_M24c64WriteOne(0, 160, (unsigned __int16)_address, *(unsigned __int8 *)(v11 + 1));
switch ( _address )
{
case 0x17D:
drv_MB_setRegion(*(unsigned __int8 *)(v11 + 1));
break;
case 0x17E:
drv_MB_setUnlocked(*_value == 120);
break;
case 0x17F:
...


Из чего следует, что должен формироваться пакет EEPROMEmtry для адреса 0x17e с данными byte[] b = {0x78}

Пробуйте.
rn3kk
Участник
Offline1.1
с мая 2014
Воронеж
Сообщений: 36

Дата: 04 Сен 2019 08:12:45 #  

Во, супер. Спасибо. Буду пробовать.
rn3kk
Участник
Offline1.1
с мая 2014
Воронеж
Сообщений: 36

Дата: 04 Сен 2019 09:41:28 #  

Хм. Не совсем то получилось.

сделал turf c
byte[] b1 = {0x78};
EEPROMEntry ent1 = new EEPROMEntry(0x17E,b1);

Получилось что регион изменился на ULCK в программе, но передача работает согласно региона (USA). вызвал команду drv_MB_getRegion, она вернула 0, а должна вернуть 0х1000 когда регион = 4096. Какое-то условие не проходит.

У меня IDA отображает шестнадцатиричный код, Си подобного не вижу кода.
xin
Участник
Offline3.3
с июл 2006
ДВ
Сообщений: 599

Дата: 04 Сен 2019 09:46:52 · Поправил: xin (04 Сен 2019 09:49:10) #  

а так EEPROMEntry ent1 = new EEPROMEntry(0x17d, {0x00, 0x78 }) ?

как такового региона 4096 не существует, это служебное условие при опросе разрешения на передачу
фактически это регион 0 (USA)

if ( _is_unlocked )
_region = 4096;

Возможно есть еще ряд условие в процедуре HAL_isUnlocked() которые я не увидел.

int HAL_isUnlocked()
{
unsigned __int8 v1; // r4

if ( drv_isMICROBURST() )
return drv_MB_isUnlocked();
if ( drv_isTEMPEST() || !drv_isDEEPEDDY() )
return 0;
v1 = drv_MB_isUnlocked();
return drv_DELPFE_isAvailable() & v1;
}

Вообщем не всё так просто
rn3kk
Участник
Offline1.1
с мая 2014
Воронеж
Сообщений: 36

Дата: 04 Сен 2019 10:07:54 · Поправил: rn3kk (04 Сен 2019 10:10:01) #  

вызвал вот это HAL_isUnlocked(); из отладчика. вернула ноль.

сейчас все вызовы проверю отпишу результат
xin
Участник
Offline3.3
с июл 2006
ДВ
Сообщений: 599

Дата: 04 Сен 2019 10:09:10 #  

А эти чо возвращают?

drv_isMICROBURST()
drv_isTEMPEST()
drv_isDEEPEDDY
drv_DELPFE_isAvailable()
rn3kk
Участник
Offline1.1
с мая 2014
Воронеж
Сообщений: 36

Дата: 04 Сен 2019 10:13:15 #  

drv_isMICROBURST()
0
drv_isTEMPEST()
0
drv_isDEEPEDDY
1
drv_DELPFE_isAvailable()
1
rn3kk
Участник
Offline1.1
с мая 2014
Воронеж
Сообщений: 36

Дата: 04 Сен 2019 10:15:12 #  

drv_MB_isUnlocked()
1
xin
Участник
Offline3.3
с июл 2006
ДВ
Сообщений: 599

Дата: 04 Сен 2019 10:16:07 #  

Контакты в личке, устал я здесь отслеживать :)
Реклама
Google
 Страница:  ««  1  2 
Эта тема закрыта. Ответы больше не принимаются.
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.030; miniBB ®