Kenwood Sovereign Receivers

From LinuxMCE
Revision as of 03:46, 24 January 2011 by Ardirtbiker (Talk | contribs)

Jump to: navigation, search
Version Status Date Updated Updated By
710 Unknown N/A N/A
810 Unknown N/A N/A
1004 Unknown N/A N/A
1204 Unknown N/A N/A
1404 Unknown N/A N/A
Usage Information
This article is a stub and requires expansion

Using the Kenwood Sovereign Receivers with RS232 Control

THIS CODE IS STILL BEING DEVELOPED

Models are VR 5900, VR 5700, VR 5090 and VR 5080. There may be others.




Operational Status

  • On/Off works
  • Volume & Mute work
  • Defined but not tested:
    • Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...)
    • Input Select (CDR/AV1/DVD/TUNER ...)
    • Surround Mode (THX/THX EX)



Ruby Codes

INTERNAL

#350 Process Initialize

$logFile = File.new("/var/log/pluto/VR5x00.log", "w")

for iRetry in 0...4

   print "Initializing unit\n"
   conn_.Send("\x01PWR?\x02\x0D\x0D\x0A")
   buf = conn_.RecvDelimited("\x04", 2000)
   if( !buf.nil? && !buf.index("PWR").nil? )
       log("Data from Receiver: " + buf + "\n")
       # see if any more data from receiver
       buf = conn.Recv(1000,1000)
       log("is this data trash? " + buf + "\n")
       log("Initialized ok\n")
       return
   end
   log("Failed to initialize.  Wait 1 secs and try again\n")
   sleep(1)

end

DisableDevice( device_.devid_, true )

log("The device wouldn't respond. Disabling it.\n")


#350 Process Incoming Data

buf = conn_.Recv(1000,1000)

log("Received '" + buf + "' data from Receiver")


#373 Private Method Listing

def SendIrCommand(command)

   for i in 0...1
       conn_.Send("\x01" + command + "\x02\x0D\x0D\x0A")
       reply = conn_.RecvDelimited("\x04", 2000)
       if( !reply.nil? && reply.length()>4 )
           log("Received good reply: " + reply + "\n")
           return reply
       else
           buf = conn_.Recv(1000,1000);
           log("Flushed buffer: " + buf + "\n")
       end
   end
   return "Invalid"

end

def log(word) $logFile.print( word + "\n" ) $logFile.flush() print(word + "\n") end

def GetRadioStations()

   # would like to implement reading from a table in pluto_media that
   # is populated from a screen in web admin... that queries a website for
   # local radio stations based on latitude & longitude or zip code.

end


POWER

#192 On

SendIrCommand("PWR1") sleep(2) SendIrCommand("MUTE0") @mute=false


#193 Off

SendIrCommand("PWR0")


SOUND & VOLUME

#89 Vol Up

volume_level = (SendIrCommand("VOL?")[-3,2]).hex

if volume_level < 100

   volume_level += 1
   newvol = ("VOL" + "%02x" % volume_level.to_s).upcase
   SendIrCommand(newvol)
   log("Volume increase to : " + newvol)

else

   log("Volume at Maximum")

end


#90 Vol Down

volume_level = (SendIrCommand("VOL?")[-3,2]).hex

if volume_level > 0

   volume_level -= 1
   newvol = ("VOL" + "%02x" % volume_level.to_s).upcase
   SendIrCommand(newvol)
   log("Volume decreased to : " + newvol)

else

   log("Volume at Minimum")

end


#97 Mute

mute_state = SendIrCommand("MUTE?")[-6,5]

case mute_state

   when "MUTE0"
       SendIrCommand("MUTE1")
   when "MUTE1"
       SendIrCommand("MUTE0")

end


INPUTS


DSP MODES


RECEIVER

#1094 Analog

SendIrCommand("INPUTM2")


#1095 DGTL Manual

SendIrCommand("INPUTM1")


#1096 Full Auto

SendIrCommand("INPUTM0")


#1098 6-ch Input

SendIrCommand("INPUTM3")