<?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=BlackHatBrigade</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=BlackHatBrigade"/>
	<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php/Special:Contributions/BlackHatBrigade"/>
	<updated>2026-07-22T04:09:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Mitsubishi_HC1500&amp;diff=14001</id>
		<title>Mitsubishi HC1500</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Mitsubishi_HC1500&amp;diff=14001"/>
		<updated>2008-06-18T14:22:28Z</updated>

		<summary type="html">&lt;p&gt;BlackHatBrigade: New page: == Controlling a Mitsubishi HC1500 Projector with RS232 ==  Future home of HC1500 howto    ---- &amp;#039;&amp;#039;&amp;#039;Ruby Code&amp;#039;&amp;#039;&amp;#039;  Section: 193 Off&amp;lt;br&amp;gt;  log(&amp;quot;Sending Off Command&amp;quot;)  &amp;lt;$&amp;quot;00\x22\x0D&amp;quot;$&amp;gt;  sleep(2...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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\0D&amp;quot;$&amp;gt;&lt;/div&gt;</summary>
		<author><name>BlackHatBrigade</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=14000</id>
		<title>Onkyo TXSR805</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=14000"/>
		<updated>2008-06-18T14:17:42Z</updated>

		<summary type="html">&lt;p&gt;BlackHatBrigade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the Onkyo TX-SR805 with RS232 Control ==&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;
&#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>BlackHatBrigade</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=13999</id>
		<title>Onkyo TXSR805</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=13999"/>
		<updated>2008-06-18T14:17:11Z</updated>

		<summary type="html">&lt;p&gt;BlackHatBrigade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the Onkyo TX-SR805 with RS232 Control ==&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 Devices.&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;
 &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>BlackHatBrigade</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=13998</id>
		<title>Onkyo TXSR805</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=13998"/>
		<updated>2008-06-18T14:15:35Z</updated>

		<summary type="html">&lt;p&gt;BlackHatBrigade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the Onkyo TX-SR805 with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
Needs a lot of editing...&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>BlackHatBrigade</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=13997</id>
		<title>Onkyo TXSR805</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=13997"/>
		<updated>2008-06-18T14:12:41Z</updated>

		<summary type="html">&lt;p&gt;BlackHatBrigade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the Onkyo TX-SR805 with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
Needs a lot of editing...&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>BlackHatBrigade</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=13996</id>
		<title>Onkyo TXSR805</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=13996"/>
		<updated>2008-06-18T13:55:38Z</updated>

		<summary type="html">&lt;p&gt;BlackHatBrigade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the Onkyo TX-SR805 with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
Needs a lot of editing...&lt;br /&gt;
&lt;br /&gt;
Section: 193 Off&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;$&amp;quot;!1PWR00\r&amp;quot;$&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Section: 192 On&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;$&amp;quot;!1PWR01\r&amp;quot;$&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
sleep(2)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;$&amp;quot;!AMT00\r&amp;quot;$&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
@mute = false&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Section: 169 AM&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;$&amp;quot;!1SLI25\r&amp;quot;$&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>BlackHatBrigade</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=13995</id>
		<title>Onkyo TXSR805</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Onkyo_TXSR805&amp;diff=13995"/>
		<updated>2008-06-18T13:54:35Z</updated>

		<summary type="html">&lt;p&gt;BlackHatBrigade: New page: == Using the Onkyo TX-SR805 with RS232 Control ==  Needs a lot of editing...  Section: 193 Off &amp;lt;code&amp;gt; &amp;lt;$&amp;quot;!1PWR00\r&amp;quot;$&amp;gt; &amp;lt;/code&amp;gt;  Section: 192 On &amp;lt;code&amp;gt; &amp;lt;$&amp;quot;!1PWR01\r&amp;quot;$&amp;gt; sleep(2) &amp;lt;$&amp;quot;!AMT00\r&amp;quot;$...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the Onkyo TX-SR805 with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
Needs a lot of editing...&lt;br /&gt;
&lt;br /&gt;
Section: 193 Off&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;$&amp;quot;!1PWR00\r&amp;quot;$&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Section: 192 On&lt;br /&gt;
&amp;lt;code&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;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Section: 169 AM&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;$&amp;quot;!1SLI25\r&amp;quot;$&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>BlackHatBrigade</name></author>
	</entry>
</feed>