фак по настройке Дисека

hanter2504

Профи в Сат-ТВ
Уважаемый Vic давайте всеже продолжим настройку думаю интересно будет не только мне

Добавлено через 3 минуты
toyo один из них и вы из ваших постов тоже кое что умного нащол и помоему на ваших сетингах вообще запустил катю
вот так
 
Последнее редактирование:

toyo

Moderator
Команда форума
на ваших сетингах вообще запустил катю
Так мои сетинги универсальные практически для всех жителей Украины. В основном общение со спутниковым ТВ у пользователей начинается с недовольства эфиром или кабельным, вот и ставят стандартный набор 4,8+5+13 на один тазик с дешёвым ресивером. Далее вспоминая про НТВ по кабельному, кому позволяют стедства решают от кабельного отказаться и ставят тарель на 36-й + шаринг. При этом в основном меняют свой простенький тюнерок на 500-й дрим. Далее хочеться ещё и писать на винт. Покупают дрим 7000/7020/7025 или опен 7200, на крайняк iPbox 250 или 400. Ну а так как 910-й по ценовой категории адекватен последним, то и имеемто, что имеем.:)
 

harpago

Новичок
Если, кто знает точный алгоритм, как посчитать угол офсета от нуля (тоесть от юга), для конкретного спутника по его орбитальной позиции - выложите сюда и я сделаю, скрипт, который будет работать как USALS.

p.s. На сегодня я юзал много програм, которые умеют это считать, но какие формулы они исползуют - для меня секрет
-------------------------------------------------------------------------------------------------
function Azimuth2(SatLon,SiteLat,SiteLon,Height_over_ocean)
{

var Rstation,Hemisphere,f,r_eq,r_sat,Ra,Rz,alfa_r,alfa_rx,alfa_ry,alfa_rz,alfa_r_north,alfa_r_zenith,Azimuth

f=(1/298.257) ; // Earth flattning factor
r_sat=42164.57; // Distance from earth centre to satellite
r_eq=6378.14 ; // Earth radius


Rstation= r_eq/( Math.sqrt( 1 - f*(2-f)*Math.sin(Radians(SiteLat))*Math.sin(Radians(SiteLat)) ) ) ;
Ra= (Rstation+Height_over_ocean)*Math.cos(Radians(SiteLat)) ;
Rz= Rstation*(1-f)*(1-f)*Math.sin(Radians(SiteLat));
alfa_r=r_sat-Rstation ;

alfa_rx=r_sat*Math.cos(Radians(SatLon-SiteLon)) -Ra ;
alfa_ry=r_sat*Math.sin(Radians(SatLon-SiteLon)) ;
alfa_rz=-Rz;

alfa_r_north=-alfa_rx*Math.sin(Radians(SiteLat)) + alfa_rz*Math.cos(Radians(SiteLat)) ;
alfa_r_zenith=alfa_rx*Math.cos(Radians(SiteLat)) +alfa_rz*Math.sin(Radians(SiteLat)) ;

if (alfa_r_north<=0) Azimuth=180+Deg(Math.atan(alfa_ry/alfa_r_north ))
else Azimuth=Rev(360+Deg(Math.atan(alfa_ry/alfa_r_north )));



return(Azimuth);
}
--------------------------------------------------------------------------------------------------



http://www.eutelsat.com/satellites/pdf/Diseqc/associated%20docs/positioner_appli_notice.pdf
 

hanter2504

Профи в Сат-ТВ
Vic может всетак продожим настройку мотора???
 

generator

Гуру
Если, кто знает точный алгоритм, как посчитать угол офсета от нуля (тоесть от юга), для конкретного спутника по его орбитальной позиции - выложите сюда и я сделаю, скрипт, который будет работать как USALS.

p.s. На сегодня я юзал много програм, которые умеют это считать, но какие формулы они исползуют - для меня секрет
Я как раз на днях прикрутил USALS к пионеру 1430, так что имею максимум инфы.
Например формула создания аргументов для передачи такая:
Код:
	basic.SATDEG = basic.X1;
	basic.SATDEG := 0x64;
	basic.LONG = basic.SET_LONG;
	basic.LONG := 0x64;
	if(!basic.SET_E_W) {
		basic.LONG *= -1;
	}
	basic.LAT = basic.SET_LAT;
	basic.LAT := 0x64;
	if(!basic.SET_N_S) {
		basic.LAT *= -1;
	}
	basic.PI = 3.141593;
	basic.AZIMUTH = (tg((basic.SATDEG - basic.LONG)) : sin(basic.LAT));
	basic.AZIMUTH = (basic.PI + ((arctg(basic.AZIMUTH) * basic.PI) : 0xB4));
	basic.ELEV = (arccos((cos((basic.SATDEG - basic.LONG)) * cos(basic.LAT))) * (basic.PI : 0xB4));
	basic.ELEV = (arctg(((cos(((basic.ELEV * 0xB4) : basic.PI)) - (double)0.151300) : sin(((basic.ELEV * 0xB4) : basic.PI)))) * (basic.PI : 0xB4));
	basic.ANG_X = (sin(((basic.ELEV * 0xB4) : basic.PI)) * cos(basic.LAT));
	basic.ANG_X = (basic.ANG_X - ((cos(((basic.ELEV * 0xB4) : basic.PI)) * sin(basic.LAT)) * cos(((basic.AZIMUTH * 0xB4) : basic.PI))));
	basic.ANG_X = (0xB4 + arctg(((-cos(((basic.ELEV * 0xB4) : basic.PI)) * sin(((basic.AZIMUTH * 0xB4) : basic.PI))) : basic.ANG_X)));
	basic.X1 = (ABS((0xB4 - basic.ANG_X)) * 0x10);
	basic.X2 = (basic.X1 : 0x100);
	if((ABS(basic.ANG_X) < 0xB4)) {
		basic.X2 |= 0xE0;
	}
	else {
		basic.X2 |= 0xD0;
	}
	basic.X3 = (basic.X1 % 0x100);
basic.SATDEG это орбитальная позиция спутника, у меня хранится в двух байтах;
basic.LONG географическая долгота места, хранится в 2х байтах до сотого знака;
basic.LAT географическая широта места, хранится в 2х байтах до сотого знака.
Если вычисленный угол basic.ANG_X более чем 180 то первые 4 бита это 0xD, если меньше то 0xE...
Так я и получаю эти два аргумента, формат команды такой же как описан на евтелсат, то есть E0 31 6E хх хх, передача 5 байт...

Формула пересчёта на pantalk, если надо на с++ то найдём....

Удачи
 

harpago

Новичок
CPP :
=======================================================

double calcAzimuth(double SatLon, double SiteLat, double SiteLon, int Height_over_ocean=0)
{
double f = 1.00 / 298.257, // Earth flattning factor

r_sat=42164.57, // Distance from earth centre to satellite

r_eq=6378.14, // Earth radius

sinRadSiteLat=SIN(Radians(SiteLat)),
cosRadSiteLat=COS(Radians(SiteLat)),

Rstation = r_eq / ( std::sqrt( 1 - f*(2-f)*sinRadSiteLat*sinRadSiteLat ) ),
Ra = (Rstation+Height_over_ocean)*cosRadSiteLat,
Rz = Rstation*(1-f)*(1-f)*sinRadSiteLat,

alfa_rx = r_sat*COS(Radians(SatLon-SiteLon)) - Ra,
alfa_ry = r_sat*SIN(Radians(SatLon-SiteLon)),
alfa_rz = -Rz,

alfa_r_north = -alfa_rx*sinRadSiteLat + alfa_rz*cosRadSiteLat,

Azimuth = 0.00;

if (alfa_r_north < 0)
Azimuth = 180+Deg(ATAN(alfa_ry/alfa_r_north));
else
Azimuth = Rev(360+Deg(ATAN(alfa_ry/alfa_r_north)));

return Azimuth;
}

................


int pos = sat.getOrbitalPosition();
int satDir = pos < 0 ? eDiSEqC::WEST : eDiSEqC::EAST;

double SatLon = abs(pos)/10.00,
SiteLat = lnb->getDiSEqC().gotoXXLatitude,
SiteLon = lnb->getDiSEqC().gotoXXLongitude;

if ( lnb->getDiSEqC().gotoXXLaDirection == eDiSEqC::SOUTH )
SiteLat = -SiteLat;

if ( lnb->getDiSEqC().gotoXXLoDirection == eDiSEqC::WEST )
SiteLon = 360 - SiteLon;

if (satDir == eDiSEqC::WEST )
SatLon = 360 - SatLon;


double azimuth=calcAzimuth(SatLon, SiteLat, SiteLon );
double elevation=calcElevation( SatLon, SiteLat, SiteLon );
double declination=calcDeclination( SiteLat, azimuth, elevation );
double satHourAngle=calcSatHourangle( azimuth, elevation, declination, SiteLat );


//
// xphile: USALS fix for southern hemisphere
//
if (SiteLat >= 0)
{
//
// Northern Hemisphere
//
int tmp=(int)round( fabs( 180 - satHourAngle ) * 10.0 );
RotorCmd = (tmp/10)*0x10 + gotoXTable[ tmp % 10 ];

if (satHourAngle < 180) // the east
RotorCmd |= 0xE000;
else // west
RotorCmd |= 0xD000;
}
else
{
//
// Southern Hemisphere
//
if (satHourAngle < 180) // the east
{
int tmp=(int)round( fabs( satHourAngle ) * 10.0 );
RotorCmd = (tmp/10)*0x10 + gotoXTable[ tmp % 10 ];
RotorCmd |= 0xD000;
}
else
{ // west
int tmp=(int)round( fabs( 360 - satHourAngle ) * 10.0 );
RotorCmd = (tmp/10)*0x10 + gotoXTable[ tmp % 10 ];
RotorCmd |= 0xE000;
}
}



http://cvs.tuxbox.org/cgi-bin/viewc.../lib/dvb/frontend.cpp?hideattic=0&view=markup
 

vitgraf

Модератор Kathrein
может кто небудь мне дать имедж с уже прекрученным дайзиком с пратаколом 1.1
Так ведь это будет только на базе 1.04. А на 1.05 curchan пока не работает. Так что автоматического переключения нет, ждёмс...!bad!
 

Saulius5

Профи в Сат-ТВ
dortmundez,
По мне, так Дисек 1.1 1.2 пока не работает в 1.05 нормально, как в 1.04 софте.
Проблема - currentProperty.dat файл. Он содержит информацию о текущем сервисе, но меняет ее слишком медленно.
Я не обнаружил другой источник информации о замене сервиса.
В прежних версиях эту функцию исполнял PROPERTY_TABLE, и он работал на много быстрее (инфо менялось через 3 с.)
А имидж можно будет сделать, когда начнет он нормално работать.

Добавлено через 2 минуты
vitgraf,
curchan0.51 работает исправно на 1.05, но причина (читай пост выше)
 
Последнее редактирование:

Saulius5

Профи в Сат-ТВ
Я поправил скрипт для автоматического переключения спутников по протоколу Дисек 1.2. Можете потестить, но проблемы я указал выше.
Прдупреждение: Только для фирмваре 1.05
 

Вложения

  • curchanv0.51_diseqcmon.rar
    4,2 KB · Просмотры: 78
Последнее редактирование:

vitgraf

Модератор Kathrein
но проблемы я указал выше.
"да действительно пятачёк".
curchan работает, но а какое время проходит от переключения канала, до изменения информации в currentProperty.dat? Или если точно, до того когда curchan выдаст правильное инфо. А то жена кино смотрит, не даёт щёлкать каналами:).

Добавлено через 17 минут
Проверил. curchan выдаёт правильное инфо практически через секунду , после того как был переключен канал. :yahoo:
Наверное всё хорошо.
Или есть ещё проблемы ?

Добавлено через 42 минуты
Saulius5, я посмотрел внимательно на скрипт. Кажется понял в чём проблема. А если запускать curchan в цикле, и просто сравнивать текущее и предыдущее значение. Это может сработать.
Например одна переменная хранит номер спутника. Если номер не изменился, то всё с начала. Если изменился то diseqsend тра ля ля ...
curchan вроде не грузит проц сильно...
 
Последнее редактирование:

generator

Гуру
а какая проблема с дисек 1.1? там различие в одном передаваемом байте только.
Например, для дисек 1.0 передаётся: Е0 10 38 Fx где х это либо С(4порт), 8(3порт), 4(2порт) и 0(1порт).
Для 1.1 байты Е0 10 39 Fx где х это значения портов от 1(ноль) до 16 (F).
То есть фактически важны значения третьего байта и крайних четырёх бит....
Жаль, что у меня нет катьки :):):)


Удачи
 

Saulius5

Профи в Сат-ТВ
generator,
Так я же раньше писал, как сделать Дисек1.1:

...Инсатлируй Дисек плугин, как описано в Идеи,задумки,тесты..

Дальше:
1. в /data/diseqc/diseqc.cfg меняешь позиции спутников, как они подключенны к портам реле (указывать только цыфрами А/А -1, A/B -2 ...)
2. в /data/bin/diseqc_mon скрипте меняем команду
Код:

/data/bin/diseqcsend1.2 224 49 107 $satpos 1>/dev/null 2>&1

на
Код:

/data/bin/diseqcsend1.2 224 16 57 `expr $satpos + 239` 1>/dev/null 2>&1

3. В основном меню Кати надо установить "LNB only"
К сожалению, работает только одно реле до 16 портов.

Видшь ли, diseqcsend1.2 параметры вводятся десятичным числом:
Шестнацатиричные числа, что указаны в Eutelsat протоколе Е0 10 39 F0
Это и есть аналог десятеричных чисел: 224 16 57 240

Добавлено через 3 минуты
Saulius5, я посмотрел внимательно на скрипт. Кажется понял в чём проблема. А если запускать curchan в цикле, и просто сравнивать текущее и предыдущее значение. Это может сработать.
Например одна переменная хранит номер спутника. Если номер не изменился, то всё с начала. Если изменился то diseqsend тра ля ля ...
curchan вроде не грузит проц сильно...

Неплохая идея. Надо будет воспользоватся.
Я сейчас в гостях. Бернусь во вторник.
 
Последнее редактирование:

vitgraf

Модератор Kathrein
а какая проблема с дисек 1.1
Проблема всё та же, закрытая часть софта. Всё остальное лепится сверху.
diseqsend для Кати умеет как 1.2 так и 1.1, но настоящей интеграции в софт не получается. Только прикрученные сбоку припёку скрипты.
Жаль, что у меня нет катьки
Это точно... Ваш бы талант и в сторону Катьки. Железо всё таки помощнее пионеровского. и HD опять же ...
 

hanter2504

Профи в Сат-ТВ
vitgraf
а не могли бы Вы выложить свои сетинги на спутники
 

vitgraf

Модератор Kathrein

hanter2504

Профи в Сат-ТВ
Спасибо но немного не то я бы хотел получить ваши carrier.dat config favorite.dat property.dat rectimer.dat sat.dat service.dat sat_config

просто нужно в свои добавить несколько спутников и не могу сделать толи виста не дает толи мозгов мало
(стою на асфальте я в лыжи обут толи лыжи не едут толи я еб....нут)
 

vic

Профи в Сат-ТВ
strjom, по идее это DiseqC 1.1 ..очень туманно там он описан..с таким протоколом ,а также 1.2 катрайн работает (например у меня на имидже РКТ 1.0 рус) ...как настроить спутники и каналы есть описано на нашем форуме довольно детально..но очень заморочное дело настроить списки каналов,поскольку официальный софт не поддерживает иного протокола кроме 1.0..по сему приходится делать настройки в ручном режиме с помощью компа и какой то матери...
Вы б просто детальней описали какие спутники вы хотите смотреть..ведь можна к примеру комбинировать :к примеру на 5 ть достаточно поставить обычный коммутатор 1.0 протокол и 0-22кгц..
 

dortmundez

Профи в Сат-ТВ
у меня работает такой дайзик но пока лиш с 4 конвертороми и по протоколу 1.0
раньше онже прекрасно работал с протаколом 1.1 и 1.2 но с другим (дримбокс) тюнером.
при помощи прогроматора = http://www.srt-versand.de/sat-techn...conn-programmer-fuer-diseqc-schalter-101.html
его в течении 5 секунд слёгкостью можно перепрагромировать в ЛЮБОЙ другой протакол.
 
  • Like
Реакции: vic
Сверху