<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.linuxmce.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Blackhat</id>
	<title>LinuxMCE - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.linuxmce.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Blackhat"/>
	<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php/Special:Contributions/Blackhat"/>
	<updated>2026-07-21T21:35:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=19600</id>
		<title>Onkyo TXSR805</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=19600"/>
		<updated>2009-07-06T19:30:00Z</updated>

		<summary type="html">&lt;p&gt;Blackhat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: Audio]]&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Onkyo TX-SR805 with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Future home of the howto for setting up a Onkyo TX-SR805 with RS232 support.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
May widen howto to all Onkyo RS232 Receivers.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This device does currently work with limited functionality.  A writeup for how to add this device to a Linux MCE system will be done soon.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
** If you use this device and have any problems or suggestions to the code here, please switch over to the discussion tab and bring it to my attention **&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Current features supported:&amp;lt;br&amp;gt;&lt;br /&gt;
-On/Off&amp;lt;br&amp;gt;&lt;br /&gt;
-Change inputs&amp;lt;br&amp;gt;&lt;br /&gt;
-Volume control (Up/Down in set increments.  cmd_313 Set Volume still needs work)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Being worked on:&amp;lt;br&amp;gt;&lt;br /&gt;
-Precise Volume Control (cmd_313)&amp;lt;br&amp;gt;&lt;br /&gt;
-Listening Modes&amp;lt;br&amp;gt;&lt;br /&gt;
-Zone 2/3&amp;lt;br&amp;gt;&lt;br /&gt;
-FM Tuner&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Ruby Code:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Section: 193 Off&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1PWR00\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 192 On&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1PWR01\r&amp;quot;$&amp;gt;&lt;br /&gt;
 sleep(2)&lt;br /&gt;
 &amp;lt;$&amp;quot;!AMT00\r&amp;quot;$&amp;gt;&lt;br /&gt;
 @mute = false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 169 AM&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI25\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 164 Aux&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI03\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 172 Aux 2&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI04\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 162 CD&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI23\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 165 DVD&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI10\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 170 FM&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI24\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 163 Phono&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI22\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 160 Tape / Tape 1&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI20\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 173 Tape 2&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI21\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 166 Tuner&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI26\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 909 XM&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI31\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 373 Private Method Listing&amp;lt;br&amp;gt;&lt;br /&gt;
 # Written by Jason Bennett&lt;br /&gt;
 #&lt;br /&gt;
 # Process 373 - Methods&lt;br /&gt;
 def receiveMsg&lt;br /&gt;
  buff = conn_.Recv(7, 1000) &lt;br /&gt;
  log(&amp;quot;Message Received: #{buff}&amp;quot;)&lt;br /&gt;
  trash = conn_.Recv(1, 100)&lt;br /&gt;
  if (buff.length() &amp;lt; 7)&lt;br /&gt;
    parsed1 = &amp;quot;ERR&amp;quot;&lt;br /&gt;
    parsed2 = &amp;quot;00&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    parsed2 = buff[5].chr + buff[6].chr&lt;br /&gt;
    parsed1 = buff[2].chr + buff[3].chr + buff[4].chr&lt;br /&gt;
    return [parsed1, parsed2]&lt;br /&gt;
  end&lt;br /&gt;
 end&lt;br /&gt;
 #-------------------------------------------- Parsing -----------------------------------------------------------------------------------&lt;br /&gt;
 def chkMsg(cat, opt)&lt;br /&gt;
    case cat&lt;br /&gt;
      # Power&lt;br /&gt;
      when &amp;quot;PWR&amp;quot;&lt;br /&gt;
          cmd = Command.new(device_.devid_, -1001, 1, 2, 48)  # 48 = Power State&lt;br /&gt;
          case opt&lt;br /&gt;
            when &amp;quot;01&amp;quot;&lt;br /&gt;
              cmd.params_[10] = &amp;quot;1&amp;quot;   # Command 48, Param 10: 1 = On&lt;br /&gt;
            when &amp;quot;00&amp;quot;&lt;br /&gt;
              cmd.params_[10] = &amp;quot;0&amp;quot;   # Command 48, Param 10: 2 = Off&lt;br /&gt;
          end&lt;br /&gt;
          SendCommand(cmd)&lt;br /&gt;
      # Master Volume Level&lt;br /&gt;
      when &amp;quot;MVL&amp;quot;&lt;br /&gt;
        cmd = Command.new(device_.devid_, -1001, 1, 2, 71)   # 71 = Volume&lt;br /&gt;
        cmd.params_[30] = opt.hex.to_s # Command 71, Param 16 = Volume Level in Decimal&lt;br /&gt;
        log(&amp;quot;volume reported as: #{opt.hex.to_s}&amp;quot;)&lt;br /&gt;
        SendCommand(cmd)&lt;br /&gt;
      # Input Selection&lt;br /&gt;
      when &amp;quot;SLI&amp;quot;&lt;br /&gt;
        cmd = Command.new(device_.devid_, -1001, 1, 2, 49)    # 49 = Input Selection&lt;br /&gt;
        case opt&lt;br /&gt;
          when &amp;quot;00&amp;quot;&lt;br /&gt;
            input_param = 316&lt;br /&gt;
          when &amp;quot;01&amp;quot;&lt;br /&gt;
            input_param = 317&lt;br /&gt;
          when &amp;quot;02&amp;quot;&lt;br /&gt;
            input_param = 318&lt;br /&gt;
          when &amp;quot;03&amp;quot;&lt;br /&gt;
            input_param = 164&lt;br /&gt;
          when &amp;quot;04&amp;quot;&lt;br /&gt;
            input_param = 172&lt;br /&gt;
          when &amp;quot;10&amp;quot;&lt;br /&gt;
            input_param = 165&lt;br /&gt;
          when &amp;quot;20&amp;quot;&lt;br /&gt;
            input_param = 160&lt;br /&gt;
          when &amp;quot;22&amp;quot;&lt;br /&gt;
            input_param = 163&lt;br /&gt;
          when &amp;quot;23&amp;quot;&lt;br /&gt;
            input_param = 162&lt;br /&gt;
          when &amp;quot;24&amp;quot;&lt;br /&gt;
            input_param = 170&lt;br /&gt;
          when &amp;quot;25&amp;quot;&lt;br /&gt;
            input_param = 169&lt;br /&gt;
          when &amp;quot;26&amp;quot;&lt;br /&gt;
            input_param = 166&lt;br /&gt;
          when &amp;quot;31&amp;quot;&lt;br /&gt;
            input_param = 909&lt;br /&gt;
        end&lt;br /&gt;
        cmd.params_[41] = input_param.to_s()  # Command 49, Param 41 = Input&lt;br /&gt;
        SendCommand(cmd)&lt;br /&gt;
    end&lt;br /&gt;
 end&lt;br /&gt;
 #-------------------------------------------- Logging -----------------------------------------------------------------------------------&lt;br /&gt;
 def log(line)&lt;br /&gt;
  $log = File.open(&amp;quot;/var/log/pluto/&amp;quot; + device_.devid_.to_s + &amp;quot;_Generic_Serial_Device.log&amp;quot;, &amp;quot;a&amp;quot;)&lt;br /&gt;
  $log.puts &amp;quot;(***):&amp;quot; + line.to_s&lt;br /&gt;
  $log.close&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 350 Process Incoming Data&amp;lt;br&amp;gt;&lt;br /&gt;
 # Written by Jason Bennett&lt;br /&gt;
 #&lt;br /&gt;
 # Process 350 - Incoming&lt;br /&gt;
 incMsg = receiveMsg()&lt;br /&gt;
 log(&amp;quot;New Msg: #{incMsg[0]}:#{incMsg[1]}&amp;quot;)&lt;br /&gt;
 chkMsg(incMsg[0], incMsg[1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 355 Process Initialize&amp;lt;br&amp;gt;&lt;br /&gt;
 #31-May-06 14:13 init  Onkyo Receiver&lt;br /&gt;
 initok=false&lt;br /&gt;
 for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
      conn_.Send(&amp;quot;!1PWRQSTN\r&amp;quot;)&lt;br /&gt;
    buf = conn_.Recv(200, 1000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR0&amp;quot;).nil? )&lt;br /&gt;
        print &amp;quot;Initialized ok\n&amp;quot;&lt;br /&gt;
                initok=true&lt;br /&gt;
                break&lt;br /&gt;
        else&lt;br /&gt;
                print &amp;quot;Didn&#039;t respond to command\n&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
 end&lt;br /&gt;
 if initok==false&lt;br /&gt;
        DisableDevice( device_.devid_, true )&lt;br /&gt;
        print &amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;&lt;br /&gt;
        return&lt;br /&gt;
 end&lt;br /&gt;
 print &amp;quot;Initialized ok, doing log\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 97 Mute&amp;lt;br&amp;gt;&lt;br /&gt;
 if(@mute)&lt;br /&gt;
  &amp;lt;$&amp;quot;!1AMT00\r&amp;quot;$&amp;gt;&lt;br /&gt;
 else&lt;br /&gt;
  &amp;lt;$&amp;quot;!1AMT01\r&amp;quot;$&amp;gt;&lt;br /&gt;
 end&lt;br /&gt;
 @mute=!@mute&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 313 Set Volume&amp;lt;br&amp;gt;&lt;br /&gt;
 slevel = sprintf( &amp;quot;%x&amp;quot;, level.to_i)&lt;br /&gt;
 &amp;lt;$&amp;quot;!1MVL&amp;quot; + slevel + &amp;quot;\r&amp;quot;$&amp;gt;&lt;br /&gt;
 SetDeviceDataInDB( device_.devid_, 158, level ) # 158 = DEVICEDATA_Volume_Level_CONST&lt;br /&gt;
 print &amp;quot;volume and corresponding device data set\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 90 Vol Down&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1MVLDOWN\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 89 Vol Up&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1MVLUP\r&amp;quot;$&amp;gt;&lt;/div&gt;</summary>
		<author><name>Blackhat</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Mitsubishi_HC1500&amp;diff=14368</id>
		<title>Mitsubishi HC1500</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Mitsubishi_HC1500&amp;diff=14368"/>
		<updated>2008-06-23T05:23:29Z</updated>

		<summary type="html">&lt;p&gt;Blackhat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Tutorials]]&lt;br /&gt;
[[Category: GSD]]&lt;br /&gt;
[[category:video]]&lt;br /&gt;
[[category: Hardware]]&lt;br /&gt;
{{stub}}&lt;br /&gt;
== Controlling a Mitsubishi HC1500 Projector with RS232 ==&lt;br /&gt;
&lt;br /&gt;
Future home of HC1500 howto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Ruby Code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Section: 193 Off&amp;lt;br&amp;gt;&lt;br /&gt;
 log(&amp;quot;Sending Off Command&amp;quot;)&lt;br /&gt;
 &amp;lt;$&amp;quot;00\x22\x0D&amp;quot;$&amp;gt;&lt;br /&gt;
 sleep(2)&lt;br /&gt;
 &amp;lt;$&amp;quot;00\x22\x0D&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 192 On&amp;lt;br&amp;gt;&lt;br /&gt;
 log(&amp;quot;Sending On Command&amp;quot;)&lt;br /&gt;
 &amp;lt;$&amp;quot;00\x21\x0D&amp;quot;$&amp;gt;&lt;br /&gt;
 sleep(2)&lt;br /&gt;
 &amp;lt;$&amp;quot;00\x21\x0D&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 373 Prive Method Listing&amp;lt;br&amp;gt;&lt;br /&gt;
 #Written by Jason Bennett&lt;br /&gt;
 def testMsg(msg)&lt;br /&gt;
  cmd = Command.new(device_.devid_, -1001, 1, 2, 48)&lt;br /&gt;
  if (msg =~ /00\x21/)&lt;br /&gt;
    cmd.params_[10] = &amp;quot;1&amp;quot;   #Device Turned on&lt;br /&gt;
    log(&amp;quot;Telling DCE Projector is on&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  if (msg =~ /00\x22/)&lt;br /&gt;
    cmd.params_[10] = &amp;quot;0&amp;quot;   #Device Turned off&lt;br /&gt;
    log(&amp;quot;Telling DCE Projector is off&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  SendCommand(cmd)&lt;br /&gt;
 end&lt;br /&gt;
 def recvMsg()&lt;br /&gt;
  reply = String.new&lt;br /&gt;
  while (true)&lt;br /&gt;
    buff = conn_.Recv(1, -1)&lt;br /&gt;
    if (buff.length() == 0)&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
    reply = reply + buff[-1].chr&lt;br /&gt;
  end&lt;br /&gt;
  log(&amp;quot;New Message: #{reply}&amp;quot;)&lt;br /&gt;
  return reply&lt;br /&gt;
 end&lt;br /&gt;
 def log(line)&lt;br /&gt;
  $log = File.open(&amp;quot;/var/log/pluto/&amp;quot; + device_.devid_.to_s + &amp;quot;_Generic_Serial_Device.log&amp;quot;, &amp;quot;a&amp;quot;)&lt;br /&gt;
  $log.puts &amp;quot;(***):&amp;quot; + line.to_s&lt;br /&gt;
  $log.close&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 350 Process Incoming Data&amp;lt;br&amp;gt;&lt;br /&gt;
 #Written by Jason Bennett&lt;br /&gt;
 msg = recvMsg()&lt;br /&gt;
 testMsg(msg)&lt;br /&gt;
 log(&amp;quot;Message Caught: #{msg}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 355 Process Initialize&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;00\x21\x0D&amp;quot;$&amp;gt;&lt;/div&gt;</summary>
		<author><name>Blackhat</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Receivers_rs-232&amp;diff=14367</id>
		<title>Receivers rs-232</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Receivers_rs-232&amp;diff=14367"/>
		<updated>2008-06-23T05:19:21Z</updated>

		<summary type="html">&lt;p&gt;Blackhat: /* Onkyo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[Category: Serial]]&lt;br /&gt;
[[Category: Audio]]&lt;br /&gt;
&lt;br /&gt;
= Receivers rs-232 support =&lt;br /&gt;
Here is a list of receivers that do or do not have rs-232 (serial port) support&lt;br /&gt;
&lt;br /&gt;
== Denon ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| AVR-2307&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR-2308&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR-2807&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR-2808&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR-3807&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Denon_AVR-4306|AVR-4306]]&lt;br /&gt;
| no (ethernet)&lt;br /&gt;
| yes (ethernet)&lt;br /&gt;
| Seemed to work fine at LinuxTag 2008, although no extensive testing was done.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Harman Kardon ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| AVR 247&lt;br /&gt;
| yes&lt;br /&gt;
| no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR 347&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marantz ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| SR5001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SR5002&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.marantz.com/new/index.cfm?fuseaction=Products.Product&amp;amp;cont=eu&amp;amp;bus=hf&amp;amp;prod_id=3662&amp;amp;series=comp&amp;amp;type=avr SR6001 ]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SR5600&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| in development(several problems exist)&lt;br /&gt;
|-&lt;br /&gt;
| SR7001&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.marantz.com/new/index.cfm?fuseaction=Products.Product&amp;amp;cont=eu&amp;amp;bus=hf&amp;amp;prod_id=3702&amp;amp;series=comp&amp;amp;type=avr  SR7002]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ZR6001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Meridian ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.meridian-audio.com/p_g68.htm G68-ADV]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NAD ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| T-765&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| T-773&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Onkyo ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| TX-SR705&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TX-SR805/875&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| [[Onkyo_TXSR805]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pioneer ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX60&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX70&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sony ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| STR-DA3000ES&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| STR-DA3200ES&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Yamaha ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| RX-V1700&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| RX-V1800&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| RX-V2700&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Blackhat</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=14366</id>
		<title>Onkyo TXSR805</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=14366"/>
		<updated>2008-06-23T05:09:29Z</updated>

		<summary type="html">&lt;p&gt;Blackhat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: Audio]]&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Onkyo TX-SR805 with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Future home of the howto for setting up a Onkyo TX-SR805 with RS232 support.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
May widen howto to all Onkyo RS232 Receivers.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This device does currently work with limited functionality.  A writeup for how to add this device to a Linux MCE system will be done soon.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Current features supported:&amp;lt;br&amp;gt;&lt;br /&gt;
-On/Off&amp;lt;br&amp;gt;&lt;br /&gt;
-Change inputs&amp;lt;br&amp;gt;&lt;br /&gt;
-Volume control (Up/Down in set increments.  cmd_313 Set Volume still needs work)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Being worked on:&amp;lt;br&amp;gt;&lt;br /&gt;
-Precise Volume Control (cmd_313)&amp;lt;br&amp;gt;&lt;br /&gt;
-Listening Modes&amp;lt;br&amp;gt;&lt;br /&gt;
-Zone 2/3&amp;lt;br&amp;gt;&lt;br /&gt;
-FM Tuner&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Ruby Code:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Section: 193 Off&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1PWR00\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 192 On&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1PWR01\r&amp;quot;$&amp;gt;&lt;br /&gt;
 sleep(2)&lt;br /&gt;
 &amp;lt;$&amp;quot;!AMT00\r&amp;quot;$&amp;gt;&lt;br /&gt;
 @mute = false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 169 AM&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI25\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 164 Aux&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI03\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 172 Aux 2&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI04\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 162 CD&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI23\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 165 DVD&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI10\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 170 FM&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI24\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 163 Phono&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI22\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 160 Tape / Tape 1&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI20\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 173 Tape 2&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI21\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 166 Tuner&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI26\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 909 XM&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI31\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 373 Private Method Listing&amp;lt;br&amp;gt;&lt;br /&gt;
 # Written by Jason Bennett&lt;br /&gt;
 #&lt;br /&gt;
 # Process 373 - Methods&lt;br /&gt;
 def receiveMsg&lt;br /&gt;
  buff = conn_.Recv(7, 1000) &lt;br /&gt;
  log(&amp;quot;Message Received: #{buff}&amp;quot;)&lt;br /&gt;
  trash = conn_.Recv(1, 100)&lt;br /&gt;
  if (buff.length() &amp;lt; 7)&lt;br /&gt;
    parsed1 = &amp;quot;ERR&amp;quot;&lt;br /&gt;
    parsed2 = &amp;quot;00&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    parsed2 = buff[5].chr + buff[6].chr&lt;br /&gt;
    parsed1 = buff[2].chr + buff[3].chr + buff[4].chr&lt;br /&gt;
    return [parsed1, parsed2]&lt;br /&gt;
  end&lt;br /&gt;
 end&lt;br /&gt;
 #-------------------------------------------- Parsing -----------------------------------------------------------------------------------&lt;br /&gt;
 def chkMsg(cat, opt)&lt;br /&gt;
    case cat&lt;br /&gt;
      # Power&lt;br /&gt;
      when &amp;quot;PWR&amp;quot;&lt;br /&gt;
          cmd = Command.new(device_.devid_, -1001, 1, 2, 48)  # 48 = Power State&lt;br /&gt;
          case opt&lt;br /&gt;
            when &amp;quot;01&amp;quot;&lt;br /&gt;
              cmd.params_[10] = &amp;quot;1&amp;quot;   # Command 48, Param 10: 1 = On&lt;br /&gt;
            when &amp;quot;00&amp;quot;&lt;br /&gt;
              cmd.params_[10] = &amp;quot;0&amp;quot;   # Command 48, Param 10: 2 = Off&lt;br /&gt;
          end&lt;br /&gt;
          SendCommand(cmd)&lt;br /&gt;
      # Master Volume Level&lt;br /&gt;
      when &amp;quot;MVL&amp;quot;&lt;br /&gt;
        cmd = Command.new(device_.devid_, -1001, 1, 2, 71)   # 71 = Volume&lt;br /&gt;
        cmd.params_[30] = opt.hex.to_s # Command 71, Param 16 = Volume Level in Decimal&lt;br /&gt;
        log(&amp;quot;volume reported as: #{opt.hex.to_s}&amp;quot;)&lt;br /&gt;
        SendCommand(cmd)&lt;br /&gt;
      # Input Selection&lt;br /&gt;
      when &amp;quot;SLI&amp;quot;&lt;br /&gt;
        cmd = Command.new(device_.devid_, -1001, 1, 2, 49)    # 49 = Input Selection&lt;br /&gt;
        case opt&lt;br /&gt;
          when &amp;quot;00&amp;quot;&lt;br /&gt;
            input_param = 316&lt;br /&gt;
          when &amp;quot;01&amp;quot;&lt;br /&gt;
            input_param = 317&lt;br /&gt;
          when &amp;quot;02&amp;quot;&lt;br /&gt;
            input_param = 318&lt;br /&gt;
          when &amp;quot;03&amp;quot;&lt;br /&gt;
            input_param = 164&lt;br /&gt;
          when &amp;quot;04&amp;quot;&lt;br /&gt;
            input_param = 172&lt;br /&gt;
          when &amp;quot;10&amp;quot;&lt;br /&gt;
            input_param = 165&lt;br /&gt;
          when &amp;quot;20&amp;quot;&lt;br /&gt;
            input_param = 160&lt;br /&gt;
          when &amp;quot;22&amp;quot;&lt;br /&gt;
            input_param = 163&lt;br /&gt;
          when &amp;quot;23&amp;quot;&lt;br /&gt;
            input_param = 162&lt;br /&gt;
          when &amp;quot;24&amp;quot;&lt;br /&gt;
            input_param = 170&lt;br /&gt;
          when &amp;quot;25&amp;quot;&lt;br /&gt;
            input_param = 169&lt;br /&gt;
          when &amp;quot;26&amp;quot;&lt;br /&gt;
            input_param = 166&lt;br /&gt;
          when &amp;quot;31&amp;quot;&lt;br /&gt;
            input_param = 909&lt;br /&gt;
        end&lt;br /&gt;
        cmd.params_[41] = input_param.to_s()  # Command 49, Param 41 = Input&lt;br /&gt;
        SendCommand(cmd)&lt;br /&gt;
    end&lt;br /&gt;
 end&lt;br /&gt;
 #-------------------------------------------- Logging -----------------------------------------------------------------------------------&lt;br /&gt;
 def log(line)&lt;br /&gt;
  $log = File.open(&amp;quot;/var/log/pluto/&amp;quot; + device_.devid_.to_s + &amp;quot;_Generic_Serial_Device.log&amp;quot;, &amp;quot;a&amp;quot;)&lt;br /&gt;
  $log.puts &amp;quot;(***):&amp;quot; + line.to_s&lt;br /&gt;
  $log.close&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 350 Process Incoming Data&amp;lt;br&amp;gt;&lt;br /&gt;
 # Written by Jason Bennett&lt;br /&gt;
 #&lt;br /&gt;
 # Process 350 - Incoming&lt;br /&gt;
 incMsg = receiveMsg()&lt;br /&gt;
 log(&amp;quot;New Msg: #{incMsg[0]}:#{incMsg[1]}&amp;quot;)&lt;br /&gt;
 chkMsg(incMsg[0], incMsg[1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 355 Process Initialize&amp;lt;br&amp;gt;&lt;br /&gt;
 #31-May-06 14:13 init  Onkyo Receiver&lt;br /&gt;
 initok=false&lt;br /&gt;
 for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
      conn_.Send(&amp;quot;!1PWRQSTN\r&amp;quot;)&lt;br /&gt;
    buf = conn_.Recv(200, 1000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR0&amp;quot;).nil? )&lt;br /&gt;
        print &amp;quot;Initialized ok\n&amp;quot;&lt;br /&gt;
                initok=true&lt;br /&gt;
                break&lt;br /&gt;
        else&lt;br /&gt;
                print &amp;quot;Didn&#039;t respond to command\n&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
 end&lt;br /&gt;
 if initok==false&lt;br /&gt;
        DisableDevice( device_.devid_, true )&lt;br /&gt;
        print &amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;&lt;br /&gt;
        return&lt;br /&gt;
 end&lt;br /&gt;
 print &amp;quot;Initialized ok, doing log\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 97 Mute&amp;lt;br&amp;gt;&lt;br /&gt;
 if(@mute)&lt;br /&gt;
  &amp;lt;$&amp;quot;!1AMT00\r&amp;quot;$&amp;gt;&lt;br /&gt;
 else&lt;br /&gt;
  &amp;lt;$&amp;quot;!1AMT01\r&amp;quot;$&amp;gt;&lt;br /&gt;
 end&lt;br /&gt;
 @mute=!@mute&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 313 Set Volume&amp;lt;br&amp;gt;&lt;br /&gt;
 slevel = sprintf( &amp;quot;%x&amp;quot;, level.to_i)&lt;br /&gt;
 &amp;lt;$&amp;quot;!1MVL&amp;quot; + slevel + &amp;quot;\r&amp;quot;$&amp;gt;&lt;br /&gt;
 SetDeviceDataInDB( device_.devid_, 158, level ) # 158 = DEVICEDATA_Volume_Level_CONST&lt;br /&gt;
 print &amp;quot;volume and corresponding device data set\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 90 Vol Down&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1MVLDOWN\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 89 Vol Up&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1MVLUP\r&amp;quot;$&amp;gt;&lt;/div&gt;</summary>
		<author><name>Blackhat</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=14365</id>
		<title>Onkyo TXSR805</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=14365"/>
		<updated>2008-06-23T05:07:20Z</updated>

		<summary type="html">&lt;p&gt;Blackhat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: Audio]]&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Onkyo TX-SR805 with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Future home of the howto for setting up a Onkyo TX-SR805 with RS232 support.&lt;br /&gt;
&lt;br /&gt;
May widen howto to all Onkyo RS232 Receivers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Current features supported:&amp;lt;br&amp;gt;&lt;br /&gt;
-On/Off&amp;lt;br&amp;gt;&lt;br /&gt;
-Change inputs&amp;lt;br&amp;gt;&lt;br /&gt;
-Volume control (Up/Down in set increments.  cmd_313 Set Volume still needs work)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Being worked on:&amp;lt;br&amp;gt;&lt;br /&gt;
-Precise Volume Control (cmd_313)&amp;lt;br&amp;gt;&lt;br /&gt;
-Listening Modes&amp;lt;br&amp;gt;&lt;br /&gt;
-Zone 2/3&amp;lt;br&amp;gt;&lt;br /&gt;
-FM Tuner&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Ruby Code:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Section: 193 Off&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1PWR00\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 192 On&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1PWR01\r&amp;quot;$&amp;gt;&lt;br /&gt;
 sleep(2)&lt;br /&gt;
 &amp;lt;$&amp;quot;!AMT00\r&amp;quot;$&amp;gt;&lt;br /&gt;
 @mute = false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 169 AM&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI25\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 164 Aux&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI03\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 172 Aux 2&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI04\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 162 CD&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI23\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 165 DVD&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI10\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 170 FM&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI24\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 163 Phono&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI22\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 160 Tape / Tape 1&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI20\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 173 Tape 2&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI21\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 166 Tuner&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI26\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 909 XM&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI31\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 373 Private Method Listing&amp;lt;br&amp;gt;&lt;br /&gt;
 # Written by Jason Bennett&lt;br /&gt;
 #&lt;br /&gt;
 # Process 373 - Methods&lt;br /&gt;
 def receiveMsg&lt;br /&gt;
  buff = conn_.Recv(7, 1000) &lt;br /&gt;
  log(&amp;quot;Message Received: #{buff}&amp;quot;)&lt;br /&gt;
  trash = conn_.Recv(1, 100)&lt;br /&gt;
  if (buff.length() &amp;lt; 7)&lt;br /&gt;
    parsed1 = &amp;quot;ERR&amp;quot;&lt;br /&gt;
    parsed2 = &amp;quot;00&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    parsed2 = buff[5].chr + buff[6].chr&lt;br /&gt;
    parsed1 = buff[2].chr + buff[3].chr + buff[4].chr&lt;br /&gt;
    return [parsed1, parsed2]&lt;br /&gt;
  end&lt;br /&gt;
 end&lt;br /&gt;
 #-------------------------------------------- Parsing -----------------------------------------------------------------------------------&lt;br /&gt;
 def chkMsg(cat, opt)&lt;br /&gt;
    case cat&lt;br /&gt;
      # Power&lt;br /&gt;
      when &amp;quot;PWR&amp;quot;&lt;br /&gt;
          cmd = Command.new(device_.devid_, -1001, 1, 2, 48)  # 48 = Power State&lt;br /&gt;
          case opt&lt;br /&gt;
            when &amp;quot;01&amp;quot;&lt;br /&gt;
              cmd.params_[10] = &amp;quot;1&amp;quot;   # Command 48, Param 10: 1 = On&lt;br /&gt;
            when &amp;quot;00&amp;quot;&lt;br /&gt;
              cmd.params_[10] = &amp;quot;0&amp;quot;   # Command 48, Param 10: 2 = Off&lt;br /&gt;
          end&lt;br /&gt;
          SendCommand(cmd)&lt;br /&gt;
      # Master Volume Level&lt;br /&gt;
      when &amp;quot;MVL&amp;quot;&lt;br /&gt;
        cmd = Command.new(device_.devid_, -1001, 1, 2, 71)   # 71 = Volume&lt;br /&gt;
        cmd.params_[30] = opt.hex.to_s # Command 71, Param 16 = Volume Level in Decimal&lt;br /&gt;
        log(&amp;quot;volume reported as: #{opt.hex.to_s}&amp;quot;)&lt;br /&gt;
        SendCommand(cmd)&lt;br /&gt;
      # Input Selection&lt;br /&gt;
      when &amp;quot;SLI&amp;quot;&lt;br /&gt;
        cmd = Command.new(device_.devid_, -1001, 1, 2, 49)    # 49 = Input Selection&lt;br /&gt;
        case opt&lt;br /&gt;
          when &amp;quot;00&amp;quot;&lt;br /&gt;
            input_param = 316&lt;br /&gt;
          when &amp;quot;01&amp;quot;&lt;br /&gt;
            input_param = 317&lt;br /&gt;
          when &amp;quot;02&amp;quot;&lt;br /&gt;
            input_param = 318&lt;br /&gt;
          when &amp;quot;03&amp;quot;&lt;br /&gt;
            input_param = 164&lt;br /&gt;
          when &amp;quot;04&amp;quot;&lt;br /&gt;
            input_param = 172&lt;br /&gt;
          when &amp;quot;10&amp;quot;&lt;br /&gt;
            input_param = 165&lt;br /&gt;
          when &amp;quot;20&amp;quot;&lt;br /&gt;
            input_param = 160&lt;br /&gt;
          when &amp;quot;22&amp;quot;&lt;br /&gt;
            input_param = 163&lt;br /&gt;
          when &amp;quot;23&amp;quot;&lt;br /&gt;
            input_param = 162&lt;br /&gt;
          when &amp;quot;24&amp;quot;&lt;br /&gt;
            input_param = 170&lt;br /&gt;
          when &amp;quot;25&amp;quot;&lt;br /&gt;
            input_param = 169&lt;br /&gt;
          when &amp;quot;26&amp;quot;&lt;br /&gt;
            input_param = 166&lt;br /&gt;
          when &amp;quot;31&amp;quot;&lt;br /&gt;
            input_param = 909&lt;br /&gt;
        end&lt;br /&gt;
        cmd.params_[41] = input_param.to_s()  # Command 49, Param 41 = Input&lt;br /&gt;
        SendCommand(cmd)&lt;br /&gt;
    end&lt;br /&gt;
 end&lt;br /&gt;
 #-------------------------------------------- Logging -----------------------------------------------------------------------------------&lt;br /&gt;
 def log(line)&lt;br /&gt;
  $log = File.open(&amp;quot;/var/log/pluto/&amp;quot; + device_.devid_.to_s + &amp;quot;_Generic_Serial_Device.log&amp;quot;, &amp;quot;a&amp;quot;)&lt;br /&gt;
  $log.puts &amp;quot;(***):&amp;quot; + line.to_s&lt;br /&gt;
  $log.close&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 350 Process Incoming Data&amp;lt;br&amp;gt;&lt;br /&gt;
 # Written by Jason Bennett&lt;br /&gt;
 #&lt;br /&gt;
 # Process 350 - Incoming&lt;br /&gt;
 incMsg = receiveMsg()&lt;br /&gt;
 log(&amp;quot;New Msg: #{incMsg[0]}:#{incMsg[1]}&amp;quot;)&lt;br /&gt;
 chkMsg(incMsg[0], incMsg[1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 355 Process Initialize&amp;lt;br&amp;gt;&lt;br /&gt;
 #31-May-06 14:13 init  Onkyo Receiver&lt;br /&gt;
 initok=false&lt;br /&gt;
 for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
      conn_.Send(&amp;quot;!1PWRQSTN\r&amp;quot;)&lt;br /&gt;
    buf = conn_.Recv(200, 1000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR0&amp;quot;).nil? )&lt;br /&gt;
        print &amp;quot;Initialized ok\n&amp;quot;&lt;br /&gt;
                initok=true&lt;br /&gt;
                break&lt;br /&gt;
        else&lt;br /&gt;
                print &amp;quot;Didn&#039;t respond to command\n&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
 end&lt;br /&gt;
 if initok==false&lt;br /&gt;
        DisableDevice( device_.devid_, true )&lt;br /&gt;
        print &amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;&lt;br /&gt;
        return&lt;br /&gt;
 end&lt;br /&gt;
 print &amp;quot;Initialized ok, doing log\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 97 Mute&amp;lt;br&amp;gt;&lt;br /&gt;
 if(@mute)&lt;br /&gt;
  &amp;lt;$&amp;quot;!1AMT00\r&amp;quot;$&amp;gt;&lt;br /&gt;
 else&lt;br /&gt;
  &amp;lt;$&amp;quot;!1AMT01\r&amp;quot;$&amp;gt;&lt;br /&gt;
 end&lt;br /&gt;
 @mute=!@mute&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 313 Set Volume&amp;lt;br&amp;gt;&lt;br /&gt;
 slevel = sprintf( &amp;quot;%x&amp;quot;, level.to_i)&lt;br /&gt;
 &amp;lt;$&amp;quot;!1MVL&amp;quot; + slevel + &amp;quot;\r&amp;quot;$&amp;gt;&lt;br /&gt;
 SetDeviceDataInDB( device_.devid_, 158, level ) # 158 = DEVICEDATA_Volume_Level_CONST&lt;br /&gt;
 print &amp;quot;volume and corresponding device data set\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 90 Vol Down&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1MVLDOWN\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 89 Vol Up&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1MVLUP\r&amp;quot;$&amp;gt;&lt;/div&gt;</summary>
		<author><name>Blackhat</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=14364</id>
		<title>Onkyo TXSR805</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=14364"/>
		<updated>2008-06-23T05:06:33Z</updated>

		<summary type="html">&lt;p&gt;Blackhat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: Audio]]&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Onkyo TX-SR805 with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Future home of the howto for setting up a Onkyo TX-SR805 with RS232 support.&lt;br /&gt;
&lt;br /&gt;
May widen howto to all Onkyo RS232 Receivers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Current features supported:&lt;br /&gt;
-On/Off&lt;br /&gt;
-Change inputs&lt;br /&gt;
-Volume control (Up/Down in set increments.  cmd_313 Set Volume still needs work)&lt;br /&gt;
&lt;br /&gt;
Being worked on:&lt;br /&gt;
-Precise Volume Control (cmd_313)&lt;br /&gt;
-Listening Modes&lt;br /&gt;
-Zone 2/3&lt;br /&gt;
-FM Tuner&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Ruby Code:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Section: 193 Off&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1PWR00\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 192 On&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1PWR01\r&amp;quot;$&amp;gt;&lt;br /&gt;
 sleep(2)&lt;br /&gt;
 &amp;lt;$&amp;quot;!AMT00\r&amp;quot;$&amp;gt;&lt;br /&gt;
 @mute = false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 169 AM&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI25\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 164 Aux&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI03\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 172 Aux 2&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI04\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 162 CD&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI23\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 165 DVD&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI10\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 170 FM&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI24\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 163 Phono&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI22\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 160 Tape / Tape 1&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI20\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 173 Tape 2&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI21\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 166 Tuner&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI26\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 909 XM&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1SLI31\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 373 Private Method Listing&amp;lt;br&amp;gt;&lt;br /&gt;
 # Written by Jason Bennett&lt;br /&gt;
 #&lt;br /&gt;
 # Process 373 - Methods&lt;br /&gt;
 def receiveMsg&lt;br /&gt;
  buff = conn_.Recv(7, 1000) &lt;br /&gt;
  log(&amp;quot;Message Received: #{buff}&amp;quot;)&lt;br /&gt;
  trash = conn_.Recv(1, 100)&lt;br /&gt;
  if (buff.length() &amp;lt; 7)&lt;br /&gt;
    parsed1 = &amp;quot;ERR&amp;quot;&lt;br /&gt;
    parsed2 = &amp;quot;00&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    parsed2 = buff[5].chr + buff[6].chr&lt;br /&gt;
    parsed1 = buff[2].chr + buff[3].chr + buff[4].chr&lt;br /&gt;
    return [parsed1, parsed2]&lt;br /&gt;
  end&lt;br /&gt;
 end&lt;br /&gt;
 #-------------------------------------------- Parsing -----------------------------------------------------------------------------------&lt;br /&gt;
 def chkMsg(cat, opt)&lt;br /&gt;
    case cat&lt;br /&gt;
      # Power&lt;br /&gt;
      when &amp;quot;PWR&amp;quot;&lt;br /&gt;
          cmd = Command.new(device_.devid_, -1001, 1, 2, 48)  # 48 = Power State&lt;br /&gt;
          case opt&lt;br /&gt;
            when &amp;quot;01&amp;quot;&lt;br /&gt;
              cmd.params_[10] = &amp;quot;1&amp;quot;   # Command 48, Param 10: 1 = On&lt;br /&gt;
            when &amp;quot;00&amp;quot;&lt;br /&gt;
              cmd.params_[10] = &amp;quot;0&amp;quot;   # Command 48, Param 10: 2 = Off&lt;br /&gt;
          end&lt;br /&gt;
          SendCommand(cmd)&lt;br /&gt;
      # Master Volume Level&lt;br /&gt;
      when &amp;quot;MVL&amp;quot;&lt;br /&gt;
        cmd = Command.new(device_.devid_, -1001, 1, 2, 71)   # 71 = Volume&lt;br /&gt;
        cmd.params_[30] = opt.hex.to_s # Command 71, Param 16 = Volume Level in Decimal&lt;br /&gt;
        log(&amp;quot;volume reported as: #{opt.hex.to_s}&amp;quot;)&lt;br /&gt;
        SendCommand(cmd)&lt;br /&gt;
      # Input Selection&lt;br /&gt;
      when &amp;quot;SLI&amp;quot;&lt;br /&gt;
        cmd = Command.new(device_.devid_, -1001, 1, 2, 49)    # 49 = Input Selection&lt;br /&gt;
        case opt&lt;br /&gt;
          when &amp;quot;00&amp;quot;&lt;br /&gt;
            input_param = 316&lt;br /&gt;
          when &amp;quot;01&amp;quot;&lt;br /&gt;
            input_param = 317&lt;br /&gt;
          when &amp;quot;02&amp;quot;&lt;br /&gt;
            input_param = 318&lt;br /&gt;
          when &amp;quot;03&amp;quot;&lt;br /&gt;
            input_param = 164&lt;br /&gt;
          when &amp;quot;04&amp;quot;&lt;br /&gt;
            input_param = 172&lt;br /&gt;
          when &amp;quot;10&amp;quot;&lt;br /&gt;
            input_param = 165&lt;br /&gt;
          when &amp;quot;20&amp;quot;&lt;br /&gt;
            input_param = 160&lt;br /&gt;
          when &amp;quot;22&amp;quot;&lt;br /&gt;
            input_param = 163&lt;br /&gt;
          when &amp;quot;23&amp;quot;&lt;br /&gt;
            input_param = 162&lt;br /&gt;
          when &amp;quot;24&amp;quot;&lt;br /&gt;
            input_param = 170&lt;br /&gt;
          when &amp;quot;25&amp;quot;&lt;br /&gt;
            input_param = 169&lt;br /&gt;
          when &amp;quot;26&amp;quot;&lt;br /&gt;
            input_param = 166&lt;br /&gt;
          when &amp;quot;31&amp;quot;&lt;br /&gt;
            input_param = 909&lt;br /&gt;
        end&lt;br /&gt;
        cmd.params_[41] = input_param.to_s()  # Command 49, Param 41 = Input&lt;br /&gt;
        SendCommand(cmd)&lt;br /&gt;
    end&lt;br /&gt;
 end&lt;br /&gt;
 #-------------------------------------------- Logging -----------------------------------------------------------------------------------&lt;br /&gt;
 def log(line)&lt;br /&gt;
  $log = File.open(&amp;quot;/var/log/pluto/&amp;quot; + device_.devid_.to_s + &amp;quot;_Generic_Serial_Device.log&amp;quot;, &amp;quot;a&amp;quot;)&lt;br /&gt;
  $log.puts &amp;quot;(***):&amp;quot; + line.to_s&lt;br /&gt;
  $log.close&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 350 Process Incoming Data&amp;lt;br&amp;gt;&lt;br /&gt;
 # Written by Jason Bennett&lt;br /&gt;
 #&lt;br /&gt;
 # Process 350 - Incoming&lt;br /&gt;
 incMsg = receiveMsg()&lt;br /&gt;
 log(&amp;quot;New Msg: #{incMsg[0]}:#{incMsg[1]}&amp;quot;)&lt;br /&gt;
 chkMsg(incMsg[0], incMsg[1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 355 Process Initialize&amp;lt;br&amp;gt;&lt;br /&gt;
 #31-May-06 14:13 init  Onkyo Receiver&lt;br /&gt;
 initok=false&lt;br /&gt;
 for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
      conn_.Send(&amp;quot;!1PWRQSTN\r&amp;quot;)&lt;br /&gt;
    buf = conn_.Recv(200, 1000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR0&amp;quot;).nil? )&lt;br /&gt;
        print &amp;quot;Initialized ok\n&amp;quot;&lt;br /&gt;
                initok=true&lt;br /&gt;
                break&lt;br /&gt;
        else&lt;br /&gt;
                print &amp;quot;Didn&#039;t respond to command\n&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
 end&lt;br /&gt;
 if initok==false&lt;br /&gt;
        DisableDevice( device_.devid_, true )&lt;br /&gt;
        print &amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;&lt;br /&gt;
        return&lt;br /&gt;
 end&lt;br /&gt;
 print &amp;quot;Initialized ok, doing log\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 97 Mute&amp;lt;br&amp;gt;&lt;br /&gt;
 if(@mute)&lt;br /&gt;
  &amp;lt;$&amp;quot;!1AMT00\r&amp;quot;$&amp;gt;&lt;br /&gt;
 else&lt;br /&gt;
  &amp;lt;$&amp;quot;!1AMT01\r&amp;quot;$&amp;gt;&lt;br /&gt;
 end&lt;br /&gt;
 @mute=!@mute&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 313 Set Volume&amp;lt;br&amp;gt;&lt;br /&gt;
 slevel = sprintf( &amp;quot;%x&amp;quot;, level.to_i)&lt;br /&gt;
 &amp;lt;$&amp;quot;!1MVL&amp;quot; + slevel + &amp;quot;\r&amp;quot;$&amp;gt;&lt;br /&gt;
 SetDeviceDataInDB( device_.devid_, 158, level ) # 158 = DEVICEDATA_Volume_Level_CONST&lt;br /&gt;
 print &amp;quot;volume and corresponding device data set\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 90 Vol Down&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1MVLDOWN\r&amp;quot;$&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Section: 89 Vol Up&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;$&amp;quot;!1MVLUP\r&amp;quot;$&amp;gt;&lt;/div&gt;</summary>
		<author><name>Blackhat</name></author>
	</entry>
</feed>