User:Bulek
From LinuxMCE
Power #193 Off SendMultiZoneCommand(cmd, ["@PWR:1", "@MSP:1", "@MAM:2"]) #SendMultiZoneCommand(cmd, ["@AMT:2", "@MSP:1", "@MAM:2"]) #192 On SendMultiZoneCommand(cmd, ["@PWR:2", "@MSP:2", "@MAM:1"]) #SendMultiZoneCommand(cmd, ["@AMT:1", "@MSP:2", "@MAM:1"]) Inputs #169 AM SendMultiZoneCommand(cmd, ["@SRC:H", "@MSC:H", "@MSC:H"]) #164 Aux SendMultiZoneCommand(cmd, ["@SRC:9", "@MSC:9", "@MSC:9"]) #172 Aux 2 SendMultiZoneCommand(cmd, ["@SRC:A", "@MSC:A", "@MSC:A"]) #162 CD SendMultiZoneCommand(cmd, ["@SRC:C", "@MSC:C", "@MSC:C"]) #420 CDR SendMultiZoneCommand(cmd, ["@SRC:D", "@MSC:D", "@MSC:D"]) #178 DSS SendMultiZoneCommand(cmd, ["@SRC:4", "@MSC:4", "@MSC:4"]) #165 DVD SendMultiZoneCommand(cmd, ["@SRC:2", "@MSC:2", "@MSC:2"]) #170 FM SendMultiZoneCommand(cmd, ["@SRC:G", "@MSC:G", "@MSC:G"]) #160 Tape / Tape 1 SendMultiZoneCommand(cmd, ["@SRC:E", "@MSC:E", "@MSC:E"]) #166 Tuner SendMultiZoneCommand(cmd, ["@SRC:F", "@MSC:F", "@MSC:F"]) #161 TV SendMultiZoneCommand(cmd, ["@SRC:1", "@MSC:1", "@MSC:1"]) #282 VCR-1 SendMultiZoneCommand(cmd, ["@SRC:3", "@MSC:3", "@MSC:3"]) DSP Modes (Audio) #891 All Ch Stereo #<$"@SUR:0H\r"$> SendIrCommand("@SUR:0H") Disk Handle #48 Eject Disk General #190 Enter/Go Internal #373 Private Method Listing def ReceiveReportCommand() buff = conn_.RecvDelimited("\r", 1000) print "Cmd response from Marantz: " + buff + "\n" log("Cmd response from Marantz: " + buff + "\n") end def SendIrCommand(command) conn_.Send(command+ "\r") log("Sending Command: " + command + "\n") ReceiveReportCommand() end def log(word) logTime = Time.now timeStr = logTime.strftime("%d-%m-%Y %H:%M:%S ") print( timeStr + " " + word) if( $logFile.nil? == false ) then $logFile.print( timeStr + " " + word ) $logFile.flush() end end def SendMultiZoneCommand(cmd, commandsArray, commandParam="") log("Got Command with ID: " + cmd.id_.to_s + " from: " + cmd.devidfrom_.to_s + " to: " + cmd.devidto_.to_s + "\n") zone = GetZone(cmd.devidto_) if( zone >= 0 and zone < commandsArray.size ) log("Determine zone for command : " + zone.to_s + "\n") SendIrCommand(commandsArray[zone] + commandParam.to_s) else log("SendMultiZoneCommand: invalid zone " + zone.to_s) end end def GetZone(deviceDestination) if( device_.mapDevice_PortChannel_.has_key?(deviceDestination) and device_.mapDevice_PortChannel_[deviceDestination] != nil and !device_.mapDevice_PortChannel_[deviceDestination].empty? ) return device_.mapDevice_PortChannel_[deviceDestination].to_i end return 0 end def ShowZones() log("####### Dev 2 PortChanel") device_.mapDevice_PortChannel_.each do |key, value| log(key.to_s + " => " + value.to_s) end log("======= PortChanel 2 Dev") device_.mapPortChannel_Device_.each do |key, value| log(key.to_s + " => " + value.to_s) end end #351 Process IDLE #350 Process Incoming Data buff = conn_.RecvDelimited("\r", 1000) print "Info from Marantz: " + buff + "\n" log("Info from Marantz: " + buff + "\n") #355 Process Initialize $logFile = File.new("/var/log/pluto/Marantz_SR5600.log", "w") log("Initializing Marantz GSD Device\n") #<$"@AST:F\r"$> # max level of feedback SendIrCommand("@AST:F") #<$"@MPW:2\r"$> # multi room always on SendIrCommand("@MPW:2") #<$"@MSP:1\r"$> # turn multi room speakers off by default SendIrCommand("@MSP:1") #<$"@MAM:2\r"$> # mute multi room line out by default SendIrCommand("MAM:2") #<$"@VOL:0-20\r"$> # default main volume -20 SendIrCommand("@VOL:0-20") #<$"@MSV:0-60\r"$> # default multi speaker volume SendIrCommand("@MSV:0-60") #<$"@MVL:0-60\r"$> # default multi room line out volume SendIrCommand("@MVL:0-60") log("Initialization of Marantz GSD Device finished !!!!\n") #384 Process Receive Command For Child #356 Process Release log("Shutting down Marantz GSD Device\n") SendIrCommand("@MAM:2") SendIrCommand("@MSP:1") log("Sending Marantz : Power Off: PWR:1\n") #<$"@PWR:1\r"</s></s>$> SendIrCommand("@PWR:1") Misc #587 Preset/Prog/Freq identifier = cmd.params_[216] # Main volume "TFQ:0xxxxx" from 08700 till + 10800 # Multiroom Frequency “MTF:0xxxxx“ from 08700 till + 10800 # Multiroom Speakers “MTF:0xxxxx“ from 08700 till + 10800 # switch to tuner mode first SendMultiZoneCommand(cmd, ["@SRC:G", "@MSC:G", "@MSC:G"]) # tune to desired frequency SendMultiZoneCommand(cmd, ["@TFQ:0"+identifier, "@MTF:0"+identifier, "@MTF:0"+identifier]) log("Sending Marantz : Setting tuner frequency to "+identifier+"\n") On-Screen Menu Navig #240 Back / Prior Menu #225 Display #368 Help #86 Menu (Show Menu) #201 Move Down #202 Move Left #203 Move Right #200 Move Up Simple Control #92 Pause #139 Play #102 Record #64 Skip Back - Channel/Track Lower #63 Skip Fwd - Channel/Track Greater #95 Stop Sound & Volume #97 Mute SendMultiZoneCommand(cmd, ["@AMT:0", "@MSM:0", "@MAM:0"]) #313 Set Volume level = cmd.params_[76] # Main volume “VOL:0xxx” from - 99 till + 18 # Multiroom Speakers "MSV:0xxx" from - 99 till + 0 # Multiroom Speakers “MVL:0xxx” from - 99 till + 0 SendMultiZoneCommand(cmd, ["@VOL:0"+level, "@MSV:0"+level, "@MVL:0"+level]) log("Sending Marantz : Set Volume Level to "+level+"\n") #90 Vol Down SendMultiZoneCommand(cmd, ["@VOL:2", "@MSV:2", "@MVL:2"]) #89 Vol Up SendMultiZoneCommand(cmd, ["@VOL:1", "@MSV:1", "@MVL:1"]) Speed Ctrl #125 Scan Back/Rewind #93 Scan Fwd/Fast Fwd #98 Slow Scan Back #99 Slow Scan Forward DSP ModesDSP Mode commands not implemented: Dolby Digital, DTS Surround, Surround (Click to add) def ReceiveReportCommand() buff = conn_.RecvDelimited("\r", 1000) print "Cmd response from Marantz: " + buff + "\n" log("Cmd response from Marantz: " + buff + "\n") end def SendIrCommand(command) conn_.Send(command+ "\r") log("Sending Command: " + command + "\n") ReceiveReportCommand() end def log(word) logTime = Time.now timeStr = logTime.strftime("%d-%m-%Y %H:%M:%S ") print( timeStr + " " + word) if( $logFile.nil? == false ) then $logFile.print( timeStr + " " + word ) $logFile.flush() end end def SendMultiZoneCommand(cmd, commandsArray, commandParam="") log("Got Command with ID: " + cmd.id_.to_s + " from: " + cmd.devidfrom_.to_s + " to: " + cmd.devidto_.to_s + "\n") zone = GetZone(cmd.devidto_) if( zone >= 0 and zone < commandsArray.size ) log("Determine zone for command : " + zone.to_s + "\n") SendIrCommand(commandsArray[zone] + commandParam.to_s) else log("SendMultiZoneCommand: invalid zone " + zone.to_s) end end def GetZone(deviceDestination) if( device_.mapDevice_PortChannel_.has_key?(deviceDestination) and device_.mapDevice_PortChannel_[deviceDestination] != nil and !device_.mapDevice_PortChannel_[deviceDestination].empty? ) return device_.mapDevice_PortChannel_[deviceDestination].to_i end return 0 end def ShowZones() log("####### Dev 2 PortChanel") device_.mapDevice_PortChannel_.each do |key, value| log(key.to_s + " => " + value.to_s) end log("======= PortChanel 2 Dev") device_.mapPortChannel_Device_.each do |key, value| log(key.to_s + " => " + value.to_s) end end buff = conn_.RecvDelimited("\r", 1000) print "Info from Marantz: " + buff + "\n" log("Info from Marantz: " + buff + "\n") $logFile = File.new("/var/log/pluto/Marantz_SR5600.log", "w") log("Initializing Marantz GSD Device\n") #<$"@AST:F\r"$> # max level of feedback SendIrCommand("@AST:F") #<$"@MPW:2\r"$> # multi room always on SendIrCommand("@MPW:2") #<$"@MSP:1\r"$> # turn multi room speakers off by default SendIrCommand("@MSP:1") #<$"@MAM:2\r"$> # mute multi room line out by default SendIrCommand("MAM:2") #<$"@VOL:0-20\r"$> # default main volume -20 SendIrCommand("@VOL:0-20") #<$"@MSV:0-60\r"$> # default multi speaker volume SendIrCommand("@MSV:0-60") #<$"@MVL:0-60\r"$> # default multi room line out volume SendIrCommand("@MVL:0-60") log("Initialization of Marantz GSD Device finished !!!!\n") log("Shutting down Marantz GSD Device\n") SendIrCommand("@MAM:2") SendIrCommand("@MSP:1") log("Sending Marantz : Power Off: PWR:1\n") #<$"@PWR:1\r"</s></s>$> SendIrCommand("@PWR:1") identifier = cmd.params_[216] # Main volume "TFQ:0xxxxx" from 08700 till + 10800 # Multiroom Frequency “MTF:0xxxxx“ from 08700 till + 10800 # Multiroom Speakers “MTF:0xxxxx“ from 08700 till + 10800 # switch to tuner mode first SendMultiZoneCommand(cmd, ["@SRC:G", "@MSC:G", "@MSC:G"]) # tune to desired frequency SendMultiZoneCommand(cmd, ["@TFQ:0"+identifier, "@MTF:0"+identifier, "@MTF:0"+identifier]) log("Sending Marantz : Setting tuner frequency to "+identifier+"\n") level = cmd.params_[76] # Main volume “VOL:0xxx” from - 99 till + 18 # Multiroom Speakers "MSV:0xxx" from - 99 till + 0 # Multiroom Speakers “MVL:0xxx” from - 99 till + 0 SendMultiZoneCommand(cmd, ["@VOL:0"+level, "@MSV:0"+level, "@MVL:0"+level]) log("Sending Marantz : Set Volume Level to "+level+"\n")