HDMI CEC daemon

о модулях и их работе

HDMI CEC daemon

Postby FarVoice » 31 May 2013, 19:32

В связи с выпуском в паблик решил открыть новую тему.
Итак, управление плеером пультом телевизора по технологии СЕС (синонимы и фирменные названия технологии см. на http://ru.wikipedia.org/wiki/CEC )

В модуле достаточно гибкие настройки.
По дефолту модуль настроен на отдачу команд в юникс сокет (как это сделано в веб пульте, IpodCIG.cgi)
Пример конфига: юникс сокет | +
...
[translate]
target = {
# target type: 0=file, 1=unix socket, 2=command
type = 1

# target path. If type=0|1 path to file, if type=2 it's command string
path = "/tmp/CGI_request"

# data packet mode: 0=hex, 1=string
mode = 1
}
ucp_commands = {
# Sequences can be used if separated by a comma (but _NO_ spaces!)

0x00 = "select" ; Select -> Ok
0x01 = "up" ; Up
0x02 = "down" ; Down
0x03 = "left" ; Left
0x04 = "right" ; Right
...

Можно также настроить отдачу команд в файл.
Пример конфига: отдача в irfake (коды пульта Asus O!Play) | +
...
[translate]
target = {
# target type: 0=file, 1=unix socket, 2=command
type = 0

# target path. If type=0|1 path to file, if type=2 it's command string
path = "/sys/devices/platform/VenusIR/fakekey"

# data packet mode: 0=hex, 1=string
mode = 1
}
ucp_commands = {
# Sequences can be used if separated by a comma (but _NO_ spaces!)

0x00 = 0xa25d686c ; Select -> Ok
0x01 = 0xa15e686c ; Up
0x02 = 0xa35c686c ; Down
0x03 = 0xa758686c ; Left
0x04 = 0xa05f686c ; Right
...

Пример конфига: отдача в модуль Capture TV (консольные команды) | +
...
[translate]
target = {
# target type: 0=file, 1=unix socket, 2=command
type = 0

# target path. If type=0|1 path to file, if type=2 it's command string
path = "/tmp/ir"

# data packet mode: 0=hex, 1=string
mode = 1
}
ucp_commands = {
# Sequences can be used if separated by a comma (but _NO_ spaces!)

0x00 = " " ; Select -> Ok
0x01 = "W" ; Up
0x02 = "X" ; Down
0x03 = "A" ; Left
0x04 = "D" ; Right
...

Подобным образом настраивается СЕС для оригинальных прошивок для xTreamer, только команды будут другие.
Скрипт из прошивки xpro270, отвечающий за посылку команд | +
Code: Select all
if ($_POST['power']){
   exec("echo -n O > /tmp/ir");
}else if ($_POST['subt']){
   exec("echo -n '!s ' > /tmp/ir");

}else if ($_POST['home']){
   exec("echo -n '!' > /tmp/ir");
}else if ($_POST['1']){
   exec("echo -n a > /tmp/ir");
}else if ($_POST['2']){
   exec("echo -n e > /tmp/ir");
}else if ($_POST['3']){
   exec("echo -n d > /tmp/ir");
}else if ($_POST['4']){
   exec("echo -n z > /tmp/ir");
}else if ($_POST['5']){
   exec("echo -n g > /tmp/ir");
}else if ($_POST['6']){
   exec("echo -n m > /tmp/ir");
}else if ($_POST['7']){
   exec("echo -n s > /tmp/ir");
}else if ($_POST['8']){
   exec("echo -n f > /tmp/ir");
}else if ($_POST['9']){
   exec("echo -n t > /tmp/ir");
}else if ($_POST['info']){
   exec("echo -n i > /tmp/ir");
}else if ($_POST['0']){
   exec("echo -n v > /tmp/ir");
}else if ($_POST['return']){
   exec("echo -n r > /tmp/ir");

}else if ($_POST['up']){
   exec("echo -n k > /tmp/ir");
}else if ($_POST['left']){
   exec("echo -n h > /tmp/ir");
}else if ($_POST['enter']){
   exec("echo -n ' ' > /tmp/ir");
}else if ($_POST['right']){
   exec("echo -n l > /tmp/ir");
}else if ($_POST['down']){
   exec("echo -n j > /tmp/ir");


}else if ($_POST['play_pause']){
   exec("echo -n p > /tmp/ir");
}else if ($_POST['stop']){
   exec("echo -n S > /tmp/ir");
}else if ($_POST['pgup']){
   exec("echo -n '{' > /tmp/ir");
}else if ($_POST['pgdn']){
   exec("echo -n '}' > /tmp/ir");

}else if ($_POST['FF']){
   exec("echo -n '>' > /tmp/ir");
}else if ($_POST['FB']){
   exec("echo -n '<' > /tmp/ir");

}else if ($_POST['vol_up']){
   exec("echo -n '+' > /tmp/ir");
}else if ($_POST['vol_down']){
   exec("echo -n '-' > /tmp/ir");

}else if ($_POST['audio']){
   exec("echo -n A > /tmp/ir");
}else if ($_POST['a-b']){
   exec("echo -n '@' > /tmp/ir");
}else if ($_POST['repeat']){
   exec("echo -n '&' > /tmp/ir");


}else if ($_POST['shufl']){
   exec('echo -n u > /tmp/ir');
}else if ($_POST['mute']){
   exec("echo -n M > /tmp/ir");
}else if ($_POST['subtitle']){
   exec("echo -n T > /tmp/ir");
}else if ($_POST['sync_left']){
   exec("echo -n '.' > /tmp/ir");
}else if ($_POST['sync_right']){
   exec("echo -n '/' > /tmp/ir");

}else {
   $command=$_POST['command'];
   $fp=fopen('/tmp/netkey.data', 'w');
   fwrite($fp, $command);
   fclose($fp);
   exec("echo -n r > /tmp/ir");

}

Возможно также настроить вызов внешней программы для отправки команд.
Пример конфига: внешняя программа | +
...
[translate]
target = {
# target type: 0=file, 1=unix socket, 2=command
type = 2

# target path. If type=0|1 path to file, if type=2 it's command string
path = "echo '%s' > /tmp/ir"

# data packet mode: 0=hex, 1=string
mode = 1
}
ucp_commands = {
# Sequences can be used if separated by a comma (but _NO_ spaces!)

0x00 = " " ; Select -> Ok
0x01 = "W" ; Up
0x02 = "X" ; Down
0x03 = "A" ; Left
0x04 = "D" ; Right
...


Список кодов CEC команд | +
User Control Codes
0x00 Select 0x35 Display Information 0x55 Initial Configuration
0x01 Up 0x36 Help 0x56 - 0x5F Reserved
0x02 Down 0x37 Page Up 0x60 Play Function
0x03 Left 0x38 Page Down 0x61 Pause-Play Function
0x04 Right 0x39 - 0x3F Reserved 0x62 Record Function
0x05 Right-Up 0x40 Power 0x63 Pause-Record Function
0x06 Right-Down 0x41 Volume Up 0x64 Stop Function
0x07 Left-Up 0x42 Volume Down 0x65 Mute Function
0x08 Left-Down 0x43 Mute 0x66 Restore Volume Function
0x09 Root Menu 0x44 Play 0x67 Tune Function
0x0A Setup Menu 0x45 Stop 0x68 Select Media Function
0x0B Contents Menu 0x46 Pause 0x69 Select A/V Input Function
0x0C Favorite Menu 0x47 Record 0x6A Select Audio Input Function
0x0D Exit 0x48 Rewind 0x6B Power Toggle Function
0x0E - 0x1F Reserved 0x49 Fast forward 0x6C Power Off Function
0x20 - 0x29 Numbers 0-9 0x4A Eject 0x6D Power On Function
0x2A Dot 0x4B Forward 0x6E – 0x70 Reserved
0x2B Enter 0x4C Backward 0x71 F1 (Blue)
0x2C Clear 0x4D Stop-Record 0x72 F2 (Red)
0x2D - 0x2E Reserved 0x4E Pause-Record 0x73 F3 (Green)
0x2F Next Favorite 0x4F Reserved 0x74 F4 (Yellow)
0x30 Channel Up 0x50 Angle 0x75 F5
0x31 Channel Down 0x51 Sub picture 0x76 Data – see Note 3
0x32 Previous Channel 0x52 Video on Demand 0x77 – 0xFF Reserved
0x33 Sound Select 0x53 Electronic Program Guide
0x34 Input Select 0x54 Timer Programming

Список сокетных и консольных команд DvdPlayer можно посмотреть на http://sites.google.com/site/farvoice/commands
ASUS O!Play R1 (amp_r12_vrtn), xTreamer Pro (amp_r12_vrt), xTreamer Prodigy (iNeXT 2.14 r2), IconBIT HDR12L (amp_r12_vrt), 3Q F425HW (xds42gl_7725_r3), MyGica A11 (mygica_m3_20121222)
User avatar
FarVoice
Администратор
 
Posts: 8573
Joined: 03 Sep 2010, 01:27
Location: Russia, Moscow

Re: HDMI CEC daemon

Postby adslayer » 18 Jun 2013, 20:27

поставил модуль, в телеке включил в опциях easylink. зверёк на пульт не реагирует. где копать?
ASUS O!Play R1 amp_r12_icon
adslayer
 
Posts: 219
Joined: 07 Nov 2010, 16:31

Re: HDMI CEC daemon

Postby FarVoice » 18 Jun 2013, 21:13

хоть закопайтесь. На асусах R1/R3 они сцуки "забыли" припаять 13 ногу HDMI по которой идёт общение по СЕС
Т.е. надо лезть в плеер и смотреть. 13 нога HDMI разъёма должна идти на 1 ногу чипа. Плюс обвязка, которой тоже нет :(
Если полезете, я вышлю стандартную схему подключения.
ASUS O!Play R1 (amp_r12_vrtn), xTreamer Pro (amp_r12_vrt), xTreamer Prodigy (iNeXT 2.14 r2), IconBIT HDR12L (amp_r12_vrt), 3Q F425HW (xds42gl_7725_r3), MyGica A11 (mygica_m3_20121222)
User avatar
FarVoice
Администратор
 
Posts: 8573
Joined: 03 Sep 2010, 01:27
Location: Russia, Moscow

Re: HDMI CEC daemon

Postby adslayer » 19 Jun 2013, 13:22

понял, удаляю модуль. уж лучше двумя пультами пользоваться, чем остаться без зверька
ASUS O!Play R1 amp_r12_icon
adslayer
 
Posts: 219
Joined: 07 Nov 2010, 16:31

Re: HDMI CEC daemon

Postby FarVoice » 19 Jun 2013, 17:58

выкладываю стандартную схему подключения HDMI
Напомню CEC - 1-й пин чипа
RTD_HDMI.png
RTD_HDMI.png (39.04 KiB) Viewed 21583 times
ASUS O!Play R1 (amp_r12_vrtn), xTreamer Pro (amp_r12_vrt), xTreamer Prodigy (iNeXT 2.14 r2), IconBIT HDR12L (amp_r12_vrt), 3Q F425HW (xds42gl_7725_r3), MyGica A11 (mygica_m3_20121222)
User avatar
FarVoice
Администратор
 
Posts: 8573
Joined: 03 Sep 2010, 01:27
Location: Russia, Moscow

Re: HDMI CEC daemon

Postby Olegin » 19 Jun 2013, 21:17

Можно и такую обвязку, но зачем? И в Р1 и в Р3 все шланги идут напрямую. Лучше впаять кондер на 20... нФ с тринадцатой ноги хдми на первую проца... Должно заработать. Я бы попробовал, но плеер далеко.
Asus O!Play R1 (amp, vrt), xTreamer Pro (amp, vrt), Iconbit 7L(amp, vrt), Iconbit 12L(amp, vrt/12l), Iconbit 1003(3Dgui)
Olegin
 
Posts: 1240
Joined: 04 Sep 2010, 20:13
Location: Ufa, Russia

Re: HDMI CEC daemon

Postby vgk » 21 Jun 2013, 13:43

Свершилось !!!
Переустановил модуль (или наверное только конфиг из репы)
Поменял oui на 00E091

Плеер автоматически определяется теликом в течении минуты после включения

Работают все кнопки пульта телевизора Philips 7605 (реально все - стрелки, перемотки, цветные )
Даже Power выключает плеер вместе с ТВ (разремил 0x36 = "power")
Никаких обвязок не понадобилось ставить, только накоротко 13 контакт ...

на пульте у фильки нет стоп и паузы но решается либо вызовом 'экранного меню EasyLink (примочка фили) либо кнопкой Return

Всем разработчикам огромное Спасибо !!!

Единственно что не понимаю, при остановленном сервисе и попытке просканировать кнопки, по логу вообще не видно что есть ответы от телека
но это не суть важно
HDP-R3 (AMP r11+ skin hds42l) + Asus RT-N13U/B1 + NAS (WD My Book WE) 100 Ethernet
vgk
 
Posts: 88
Joined: 08 Mar 2011, 19:15
Location: Киев

Re: HDMI CEC daemon

Postby adslayer » 22 Jun 2013, 21:36

Olegin wrote:Лучше впаять кондер на 20... нФ с тринадцатой ноги хдми на первую проца...
vgk wrote:Никаких обвязок не понадобилось ставить, только накоротко 13 контакт ...
так через кондёр или закоротить всё-таки?
ASUS O!Play R1 amp_r12_icon
adslayer
 
Posts: 219
Joined: 07 Nov 2010, 16:31

Re: HDMI CEC daemon

Postby FarVoice » 22 Jun 2013, 21:47

имхо, реалтек правее :) накоротко, кондюк на землю и резистор на +3.3 В
ASUS O!Play R1 (amp_r12_vrtn), xTreamer Pro (amp_r12_vrt), xTreamer Prodigy (iNeXT 2.14 r2), IconBIT HDR12L (amp_r12_vrt), 3Q F425HW (xds42gl_7725_r3), MyGica A11 (mygica_m3_20121222)
User avatar
FarVoice
Администратор
 
Posts: 8573
Joined: 03 Sep 2010, 01:27
Location: Russia, Moscow

Re: HDMI CEC daemon

Postby vgk » 24 Jun 2013, 20:40

тоже впаяю хоть и все работает
считаю все надо делать правильно
HDP-R3 (AMP r11+ skin hds42l) + Asus RT-N13U/B1 + NAS (WD My Book WE) 100 Ethernet
vgk
 
Posts: 88
Joined: 08 Mar 2011, 19:15
Location: Киев

Next

Return to Модули

Who is online

Users browsing this forum: No registered users and 1 guest