Jump to content

User:Bulek: Difference between revisions

From LinuxMCE
No edit summary
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
Temporary copy of LG LCD TV template (based on existing LG_42LB5D template)
==== 'Add Ruby snippets to commands'====
Simpler commands from Ruby part of template :
<pre><nowiki>
<pre><nowiki>
  Power
  Power
#193 Off
#193 Off
#SendMultiZoneCommand(cmd, ["@PWR:1", "@MSP:1", "@MAM:2"]) SendMultiZonePowerOffCommand(cmd, ["@AMT:2", "@MSP:1", "@MAM:2"])
log('Sending OFF Command') <$"ka 01 00\r"$>


#192 On
#192 On
#SendMultiZoneCommand(cmd, ["@PWR:2", "@MSP:2", "@MAM:1"]) SendMultiZonePowerOnCommand(cmd, ["@AMT:1", "@MSP:2", "@MAM:1"])
log('Sending ON Command') <$"ka 01 01\r"$>


#194 Toggle Power
InputsInput commands not implemented: Antenna, Tuner - Digital (Click to add)
#316 AV 1
log('Switching Input to AV1') <$"kb 01 02\r"$>


Inputs
#317 AV 2
#164 Aux
log('Switching Input to AV2') <$"kb 01 03\r"$>
SendMultiZoneCommand(cmd, ["@SRC:9", "@MSC:9", "@MSC:9"])


#172 Aux 2
#712 Component 1
SendMultiZoneCommand(cmd, ["@SRC:A", "@MSC:A", "@MSC:A"])
log('Switching Input to Component 1') <$"kb 01 04\r"$>


#162 CD
#361 HDMI
SendMultiZoneCommand(cmd, ["@SRC:C", "@MSC:C", "@MSC:C"])
log('Switching Input to HDMI 1') <$"kb 01 07\r"$>


#420 CDR
#154 RGB
SendMultiZoneCommand(cmd, ["@SRC:D", "@MSC:D", "@MSC:D"])
log('Switching Input to RGB/PC') <$"kb 01 06\r"$>


#178 DSS
Aspect Ratios
SendMultiZoneCommand(cmd, ["@SRC:4", "@MSC:4", "@MSC:4"])
#879 16:9
log('Aspect Ratio 16:9') <$"kc 01 02\r"$>


#165 DVD
#877 4:3
SendMultiZoneCommand(cmd, ["@SRC:2", "@MSC:2", "@MSC:2"])
log('Aspect Ratio 4:3') <$"kc 01 01\r"$>


#170 FM
DSP Modes
SendMultiZoneCommand(cmd, ["@SRC:G", "@MSC:G", "@MSC:G"])
#116 DSP Mode


#160 Tape / Tape 1
General
SendMultiZoneCommand(cmd, ["@SRC:E", "@MSC:E", "@MSC:E"])
#190 Enter/Go
 
log('Sending Enter/Go Command') <$"mc 01 44\r"$>
#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")


Internal
Internal
#373 Private Method Listing
#373 Private Method Listing
          def ReceiveReportCommand()
def log(line) $log = File.open("/var/log/pluto/" + device_.devid_.to_s + "_Generic_Serial_Device.log", "a") $log.puts "(***):" + line.to_s $log.close end
          buff = conn_.RecvDelimited("\r", 1000)
 
          log("Cmd response from Marantz: " + buff + "\n")
          end
         
          def SendIrCommand(command)
                  log("SendIrCommand: " + command + "\n")
          conn_.Send(command+ "\r")
                  log("Sending Command: " + command + "\n")
          ReceiveReportCommand()
          end
         
          def log_older(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 log(line)
          #          $log = File.open("/var/log/pluto/" + device_.devid_.to_s + "_Generic_Serial_Device.log", "a")
            $log = File.open("/var/log/pluto/Marantz_SR5600.log", "a")
            logTime = Time.now
            timeStr = logTime.strftime("%d-%m-%Y  %H:%M:%S  ")
         
            $log.puts timeStr + "(***):" + line.to_s
                    $log.close
          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 )
                  zone_desc=device_.childdevices_[cmd.devidto_].devdata_[186]
          log("Determine zone for command : " + zone_desc + "[" + zone.to_s + "]\n")
          SendIrCommand(commandsArray[zone] + commandParam.to_s)
          else
          log("SendMultiZoneCommand: invalid zone " + zone.to_s + ". Send commands only to valid child devices!!!")
          end
          end
         
         
          def SendMultiZonePowerOnCommand(cmd, commandsArray, commandParam="")
          #It will Unmute Zone first and then see also global power should be turned on...
                  log("Got Power On 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 )
                  zone_desc=device_.childdevices_[cmd.devidto_].devdata_[186]
          log("Determine zone for command : " + zone_desc + "[" + zone.to_s + "]\n")
          SendIrCommand(commandsArray[zone] + commandParam.to_s)
          $ZoneStatus[zone.to_s] = 'ON'
          log("*** Setting zone : " + zone_desc + "[" + zone.to_s + "] to ON\n")
          ShowZones()
          if ($DevicePower == 0)
          SendIrCommand("@PWR:2")
          end
          $DevicePower = 1
          elsif (zone == -1)
          if ($DevicePower == 0)
          SendIrCommand("@PWR:2")
          end
          $DevicePower = 1
          log("####### Powering device On\n")
          else
          log("SendMultiZonePowerOnCommand: invalid zone " + zone.to_s + ". Send commands only to valid child devices!!!")
          end
          end
         
          def SendMultiZonePowerOffCommand(cmd, commandsArray, commandParam="")
          #It will Mute Zone first and then see if also global power can be turned off...
                  log("Got Power Off 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 )
                  zone_desc=device_.childdevices_[cmd.devidto_].devdata_[186]
          log("Determine zone for command : " + zone_desc + "[" + zone.to_s + "]\n")
          SendIrCommand(commandsArray[zone] + commandParam.to_s)
          $ZoneStatus[zone.to_s] = 'OFF'
          log("*** Setting zone : " + zone_desc + "[" + zone.to_s + "] to OFF\n")
          ShowZones()
          if (($ZoneStatus["0"] == 'OFF') and ($ZoneStatus["1"] == 'OFF') and ($ZoneStatus["2"] == 'OFF'))
          SendIrCommand("@PWR:1")
          $DevicePower = 0
          log("####### All zones are muted - device is powered Off\n")
          end
          else
          log("SendMultiZonePowerOffCommand: invalid zone " + zone.to_s + ". Send commands only to valid child devices!!!")
          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 -1
          end
         
          def ShowZonesDebug()
          log("####### Dev 2 PortChanel\n")
          device_.mapDevice_PortChannel_.each do |key, value|
          log(key.to_s + " => " + value.to_s + "\n")
          end
         
          log("======= PortChanel 2 Dev\n")
          device_.mapPortChannel_Device_.each do |key, value|
          log(key.to_s + " => " + value.to_s+ "\n")
          end
          end
         
          def ShowZonesInitialVolumes()
          log("####### Show Initial Volume Levels for zones\n")
          device_.mapDevice_PortChannel_.each do |key, value|
                  volume = device_.childdevices_[key].devdata_[208]
          log("Zone " + value.to_s + " => " + volume.to_s + "\n")
          SetVolumeInZone(volume,value)
          end
         
          end
         
         
          def ShowZones()
          temp = "####### Zones Status : "
          device_.mapDevice_PortChannel_.each do |key, value|
          temp = temp + " | Zone " + value.to_s + " => " + $ZoneStatus[value]
          end
          temp = temp + "\n"
          log(temp)
          end
         
         
          def SetZones(state)
          log("####### Setting all zones to " + state + "\n")
          device_.mapDevice_PortChannel_.each do |key, value|
          $ZoneStatus[value] = state
          log("Zone " + value.to_s + " => " + state + "\n")
          end
          end
         
          def InitZones()
          log("####### Initializing all zones to OFF\n")
          device_.mapDevice_PortChannel_.each do |key, value|
          $ZoneStatus[value] = 'OFF'
          log("Zone " + value.to_s + " => " + $ZoneStatus[value] + "\n")
          end
          log("####### Print $ZoneStatus Hash:\n")
          $ZoneStatus.each do |key, value|
          log("Zone " + key.to_s + " => " + value.to_s + "\n")
          end
          end
         
          def SetVolumeInZone(level,zone)
          # Sets Normalized Volume Level (0..100) in certain zone
          log("SetVolumeInZone: volume: " + level.to_s + " => Zone: " + zone + "\n")
         
          if ( zone == "0")
          log("SetVolumeInZone0: volume: " + level.to_s + " => Zone: " + zone + "\n")
                new_level = DeNormalizeVolume_MainZone(level.to_i)
          log("SetVolumeInZone00: volume: " + level.to_s + " => Zone: " + zone + "\n")
                temp_str="@VOL:0"+new_level.to_s;
                log("SetVolumeInZone: About to send command :" + temp_str + "\n")
                SendIrCommand(temp_str)
          elsif ( zone == "1")
          log("SetVolumeInZone1: volume: " + level.to_s + " => Zone: " + zone + "\n")
                new_level = DeNormalizeVolume_OtherZone(level.to_i)
          log("SetVolumeInZone11: volume: " + level.to_s + " => Zone: " + zone + "\n")
                temp_str="@MSV:0"+new_level.to_s;
                log("SetVolumeInZone: About to send command :" + temp_str + "\n")
                SendIrCommand(temp_str)
          elsif ( zone == "2")
          log("SetVolumeInZone2: volume: " + level.to_s + " => Zone: " + zone + "\n")
                new_level = DeNormalizeVolume_OtherZone(level.to_i)
          # log("SetVolumeInZone22: volume: " + level + " => Zone: " + zone + "\n")
                temp_str="@MVL:0"+new_level.to_s;
                log("SetVolumeInZone: About to send command :" + temp_str + "\n")
                SendIrCommand(temp_str)
          else
                log("SetVolumeInZone: invalid zone " + zone.to_s + ". Send commands only to valid child devices!!!")
          end
          log("SetVolumeInZone End: volume: " + level.to_s + " => Zone: " + zone + "\n")
         
          end
         
         
          def NormalizeVolume_MainZone(level)
          # Normalizes Marantz Volume Level (-99..+10) to 0-100 boundaries for Main Zone
          temp = (level+100)/110.0*100.0
                  log("Normalizing Main Zone Volume Level from : " + level.to_s + " to " + temp.to_s + "\n")
          return temp.round
          end
         
          def NormalizeVolume_OtherZone(level)
          # Normalizes Marantz Volume Level to 0-100 boundaries for Second Zone (-90..0)
          temp = ((level+90.0)/90.0)*100.0
                  log("Normalizing Other Zone Volume Level from : " + level.to_s + " to " + temp.to_s + "\n")
          return temp.round
          end
         
          def DeNormalizeVolume_MainZone(level)
          # DeNormalizes volume level in 0-100 boundaries to Marantz Volume Level (-99..+10) for Main Zone
          temp = (level/100.0)*110.0-99
                  log("DeNormalizing Main Zone Volume Level from : " + level.to_s + " to " + temp.to_s + "\n")
          return temp.round
          end
         
          def DeNormalizeVolume_OtherZone(level)
          # DeNormalizes volume level in 0-100 boundaries to Marantz Volume Level (-90..0) for Other Zone
          temp = ((level/100.0)*90.0)-90.0
                  log("DeNormalizing Other Zone Volume Level from : " + level.to_s + " to " + temp.to_s + "\n")
          return temp.round
          end
#351 Process IDLE
#351 Process IDLE
ShowZones()


#350 Process Incoming Data
#350 Process Incoming Data
buff = conn_.RecvDelimited("\r", 1000) print "Info from Marantz: " + buff + "\n" log("Info from Marantz: " + buff + "\n")
buff = '' while(true) buff=conn_.Recv(30,200) if(buff.length() == 0) log('Nothing Received') break end log('Received: ' + Regexp.escape(buff.to_s)) if !buff.index("OK").nil? log(Regexp.escape(buff.to_s) + ': Command Processed Successfully') elsif !buff.index("NG").nil? log(Regexp.escape(buff.to_s) +': Command Processed Unsuccessfully') end end


#355 Process Initialize
#355 Process Initialize
$DevicePower = 1 SendIrCommand("@PWR:2") log("Initializing Marantz GSD Device\n") SendIrCommand("@AST:F") # max level of feedback SendIrCommand("@MPW:2") # multi room always on SendIrCommand("@MSP:1") # turn multi room speakers off by default SendIrCommand("@MAM:2") # mute multi room line out by default SendIrCommand("@VOL:0-20") # default main volume -20 SendIrCommand("@MSV:0-60") # default multi speaker volume SendIrCommand("@MVL:0-60") # default multi room line out volume $ZoneStatus = Hash.new() InitZones() ShowZonesInitialVolumes() #$DevicePower = 0 #SendIrCommand("@PWR:1") log("Initialization of Marantz GSD Device finished - Device is powered off!!!!\n")
for iRetry in 0...4 print "Initializing unit\n" conn_.Send("ke 01 01\r") # Send UnMute Command buf = conn_.Recv(30,200) # Expected Return # ke 01 01\r\ne 00 OK01x\r\n if !buf.nil? && !buf.index("OK").nil? print "Initialized ok\n" print "Setting volume to 30%\n" cmd_313(15) SetDeviceDataInDB( device_.devid_, 158, "15" ) # 158 = DEVICEDATA_Volume_Level_CONST return end print "Failed to initialize. Wait 1 secs and try again\n" sleep(1) end #DisableDevice( device_.devid_, true ) #print "The device would not respond. Disabling it.\n"


#384 Process Receive Command For Child
#384 Process Receive Command For Child
Line 280: Line 62:


#356 Process Release
#356 Process Release
log("Shutting down Marantz GSD Device\n") SendIrCommand("@MAM:2") SendIrCommand("@MSP:1") log("Sending Marantz : Power Off: PWR:1\n") SendIrCommand("@PWR:1")


Misc
Misc
#587 Preset/Prog/Freq
#587 Preset/Prog/Freq
identifier = cmd.params_[216] # Main Frequency "TFQ:0xxxxx" from 08700 till + 10800 # Multiroom Frequency “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")
 
#676 Video Mute
log('Sending Video Mute Command') <$"kd 01 00\r"$>
 
#683 Zoom
log('Aspect Ratio 16:9') <$"kc 01 05\r"$>
 
Numbers
#204 0
log('Sending 0 ') <$"mc 01 10\r"$>
 
#205 1
log('Sending 1 ') <$"mc 01 11\r"$>
 
#206 2
log('Sending 2 ') <$"mc 01 12r"$>
 
#207 3
log('Sending 3 ') <$"mc 01 13\r"$>
 
#208 4
log('Sending 4 ') <$"mc 01 14\r"$>
 
#209 5
log('Sending 5 ') <$"mc 01 15\r"$>
 
#210 6
log('Sending 6 ') <$"mc 01 16\r"$>
 
#211 7
log('Sending 7 ') <$"mc 01 17\r"$>
 
#212 8
log('Sending 8 ') <$"mc 01 18\r"$>
 
#213 9
log('Sending 9 ') <$"mc 01 19\r"$>
 
On-Screen Menu Navig
#86 Menu (Show Menu)
log('Sending Menu Command') <$"mc 01 43\r"$>
 
#201 Move Down
log('Menu Down') <$"mc 01 41\r"$>
 
#202 Move Left
log('Menu Left') <$"mc 01 07\r"$>
 
#203 Move Right
log('Menu Right') <$"mc 01 06\r"$>
 
#200 Move Up
log('Menu Up') <$"mc 01 40\r"$>
 
Picture Control
#224 Brightness Down
 
#223 Brightness Up
 
#221 Contrast Down
 
#220 Contrast Up


Simple Control
Simple Control
Line 295: Line 143:
Sound & Volume
Sound & Volume
#97 Mute
#97 Mute
SendMultiZoneCommand(cmd, ["@AMT:0", "@MSM:0", "@MAM:0"])
if(@mute) <$"ke 01 00\r"$> else <$"ke 01 01\r"$> end @mute=!@mute


#313 Set Volume
#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 zone = GetZone(cmd.devidto_) log("313:Set Volume Command: Got Cmd with ID: " + cmd.id_.to_s + " from: " + cmd.devidfrom_.to_s + " to: " + cmd.devidto_.to_s + " | Zone : " + zone.to_s + "\n") if ( zone == 0) new_level = DeNormalizeVolume_MainZone(level.to_i) temp_str = "@VOL:0"+new_level.to_s log("SetVolumeCommand: About to send command :" + temp_str + "\n") SendIrCommand(temp_str) elsif ( zone == 1) new_level = DeNormalizeVolume_OtherZone(level.to_i) temp_str = "@MSV:0"+new_level.to_s SendIrCommand(temp_str) elsif ( zone == 2) new_level = DeNormalizeVolume_OtherZone(level.to_i) temp_str = "@MVL:0"+new_level.to_s log("SetVolumeCommand: About to send command :" + temp_str + "\n") SendIrCommand(temp_str) else log("SetVolumeCommand: invalid zone " + zone.to_s + ":" + zone.to_i + ". Send commands only to valid child devices!!!\n") end
@volume=level.to_i() ilevel = @volume.to_i log( 'setting volume to '+ ilevel.to_s) log('Sending the Following Command: kf 01 '+ilevel.to_s(16)+'\r') <$"kf 01 "+ilevel.to_s(16)+"\r"$> SetDeviceDataInDB( device_.devid_, 158, ilevel .to_s) # 158DEVICEDATA_Volume_Level_CONST # "volume and corresponding device data set\n"


#90 Vol Down
#90 Vol Down
SendMultiZoneCommand(cmd, ["@VOL:2", "@MSV:2", "@MVL:2"])
log('lowering volume from ' + @volume.to_s) cmd_313(@volume-1)


#89 Vol Up
#89 Vol Up
SendMultiZoneCommand(cmd, ["@VOL:1", "@MSV:1", "@MVL:1"])
log('Increasing volume from ' + @volume.to_s) cmd_313(@volume+1)


Speed Ctrl
#125 Scan Back/Rewind
#93 Scan Fwd/Fast Fwd


DSP Modes
</nowiki></pre>
</nowiki></pre>

Latest revision as of 21:34, 29 June 2008

Temporary copy of LG LCD TV template (based on existing LG_42LB5D template)

'Add Ruby snippets to commands'

Simpler commands from Ruby part of template :

 Power
#193 Off
	log('Sending OFF Command') <$"ka 01 00\r"$> 	

#192 On
	log('Sending ON Command') <$"ka 01 01\r"$> 	

InputsInput commands not implemented: Antenna, Tuner - Digital (Click to add)
#316 AV 1
	log('Switching Input to AV1') <$"kb 01 02\r"$> 	

#317 AV 2
	log('Switching Input to AV2') <$"kb 01 03\r"$> 	

#712 Component 1
	log('Switching Input to Component 1') <$"kb 01 04\r"$> 	

#361 HDMI
	log('Switching Input to HDMI 1') <$"kb 01 07\r"$> 	

#154 RGB
	log('Switching Input to RGB/PC') <$"kb 01 06\r"$> 	

Aspect Ratios
#879 16:9
	log('Aspect Ratio 16:9') <$"kc 01 02\r"$> 	

#877 4:3
	log('Aspect Ratio 4:3') <$"kc 01 01\r"$> 	

DSP Modes
#116 DSP Mode
		

General
#190 Enter/Go
	log('Sending Enter/Go Command') <$"mc 01 44\r"$> 	

Internal
#373 Private Method Listing
	def log(line) $log = File.open("/var/log/pluto/" + device_.devid_.to_s + "_Generic_Serial_Device.log", "a") $log.puts "(***):" + line.to_s $log.close end 	

#351 Process IDLE
		

#350 Process Incoming Data
	buff = '' while(true) buff=conn_.Recv(30,200) if(buff.length() == 0) log('Nothing Received') break end log('Received: ' + Regexp.escape(buff.to_s)) if !buff.index("OK").nil? log(Regexp.escape(buff.to_s) + ': Command Processed Successfully') elsif !buff.index("NG").nil? log(Regexp.escape(buff.to_s) +': Command Processed Unsuccessfully') end end 	

#355 Process Initialize
	for iRetry in 0...4 print "Initializing unit\n" conn_.Send("ke 01 01\r") # Send UnMute Command buf = conn_.Recv(30,200) # Expected Return # ke 01 01\r\ne 00 OK01x\r\n if !buf.nil? && !buf.index("OK").nil? print "Initialized ok\n" print "Setting volume to 30%\n" cmd_313(15) SetDeviceDataInDB( device_.devid_, 158, "15" ) # 158 = DEVICEDATA_Volume_Level_CONST return end print "Failed to initialize. Wait 1 secs and try again\n" sleep(1) end #DisableDevice( device_.devid_, true ) #print "The device would not respond. Disabling it.\n" 	

#384 Process Receive Command For Child
		

#356 Process Release
		

Misc
#587 Preset/Prog/Freq
		

#676 Video Mute
	log('Sending Video Mute Command') <$"kd 01 00\r"$> 	

#683 Zoom
	log('Aspect Ratio 16:9') <$"kc 01 05\r"$> 	

Numbers
#204 0
	log('Sending 0 ') <$"mc 01 10\r"$> 	

#205 1
	log('Sending 1 ') <$"mc 01 11\r"$> 	

#206 2
	log('Sending 2 ') <$"mc 01 12r"$> 	

#207 3
	log('Sending 3 ') <$"mc 01 13\r"$> 	

#208 4
	log('Sending 4 ') <$"mc 01 14\r"$> 	

#209 5
	log('Sending 5 ') <$"mc 01 15\r"$> 	

#210 6
	log('Sending 6 ') <$"mc 01 16\r"$> 	

#211 7
	log('Sending 7 ') <$"mc 01 17\r"$> 	

#212 8
	log('Sending 8 ') <$"mc 01 18\r"$> 	

#213 9
	log('Sending 9 ') <$"mc 01 19\r"$> 	

On-Screen Menu Navig
#86 Menu (Show Menu)
	log('Sending Menu Command') <$"mc 01 43\r"$> 	

#201 Move Down
	log('Menu Down') <$"mc 01 41\r"$> 	

#202 Move Left
	log('Menu Left') <$"mc 01 07\r"$> 	

#203 Move Right
	log('Menu Right') <$"mc 01 06\r"$> 	

#200 Move Up
	log('Menu Up') <$"mc 01 40\r"$> 	

Picture Control
#224 Brightness Down
		

#223 Brightness Up
		

#221 Contrast Down
		

#220 Contrast Up
		

Simple Control
#64 Skip Back - Channel/Track Lower
		

#63 Skip Fwd - Channel/Track Greater
		

Sound & Volume
#97 Mute
	if(@mute) <$"ke 01 00\r"$> else <$"ke 01 01\r"$> end @mute=!@mute 	

#313 Set Volume
	@volume=level.to_i() ilevel = @volume.to_i log( 'setting volume to '+ ilevel.to_s) log('Sending the Following Command: kf 01 '+ilevel.to_s(16)+'\r') <$"kf 01 "+ilevel.to_s(16)+"\r"$> SetDeviceDataInDB( device_.devid_, 158, ilevel .to_s) # 158DEVICEDATA_Volume_Level_CONST # "volume and corresponding device data set\n" 	

#90 Vol Down
	log('lowering volume from ' + @volume.to_s) cmd_313(@volume-1) 	

#89 Vol Up
	log('Increasing volume from ' + @volume.to_s) cmd_313(@volume+1)