Author Topic: gc100 and rs232 control  (Read 26351 times)

mikeybs

  • Veteran
  • ***
  • Posts: 74
    • View Profile
Re: gc100 and rs232 control
« Reply #30 on: December 11, 2013, 12:07:22 am »
ok, I think I've got my ruby commands squared away now, there is still no way to test them from within the template so I am not sure....

is there any way to test device commands?  My template doesn't know I am using the gc100 virtual serial port so I can't test from within the template...

I am getting this in my receiver log file now:

407:01   12/10/13 17:49:45.524      Error while calling method: Cannot call class method: cmd_350
error: SIGHUP, line: 118
backtrace:
   in: (eval): 118
   from (eval):118:in `cmd_350'
 <0xb53ffb40>
05   12/10/13 17:49:45.639      Socket::ReceiveData 0x9f065f8 failed, bytes left 0 start: 5550000 1: 0 1b: 0 2: 0 2b: 0 m_Socket: 8 Command_Impl1 Dev #49 <0xb5dffb40>
05   12/10/13 17:49:45.640      Socket::ReceiveString2 ReceiveData failed m_Socket: -1 Command_Impl1 Dev #49 <0xb5dffb40>
01   12/10/13 17:49:45.640      Receive string failed in HandleRequestSocket 18:ReceiveData failed Command_Impl1 Dev #49 <0xb5dffb40>
05   12/10/13 17:49:45.640      Dumping 1 locks <0xb5dffb40>
05   12/10/13 17:49:45.640      finished check for exceptions <0xb5dffb40>
05   12/10/13 17:49:45.640      OL: (0x9f06744) (>91) MessageQueue Command_Impl.cpp l:852 time: 7:00:00p (1386715785 s) thread: 3061214016 Rel: Y Got: Y <0xb5dffb40>
== ATTEMPT FRESH START ==
1   12/10/13 17:52:37   /usr/pluto/bin/Spawn_Device.sh 49 (spawning-device)   10831 Dev: 49; Already Running list: 15,16,18,19,29,30,31,45,
== FRESH START ==
1   12/10/13 17:52:37   /usr/pluto/bin/Spawn_Device.sh 49 (spawning-device)   device: 49 ip: localhost cmd_line: Generic_Serial_Device
0   12/10/13 17:52:37   49 (spawning-device)   Entering 49
========== NEW LOG SECTION ==========
1   12/10/13 17:52:37   49 (spawning-device)   Starting... 1
1   12/10/13 17:52:38   49 (spawning-device)   Found /usr/pluto/bin/Generic_Serial_Device

mikeybs

  • Veteran
  • ***
  • Posts: 74
    • View Profile
Re: gc100 and rs232 control
« Reply #31 on: December 11, 2013, 01:42:12 am »
here is an attached image of my connection wizard to show how my pipes are connected...

I thought I remember reading that scenarios should be automatically generated after I've set up all the AV equipment, but nothing like that happened for me. 

I tried manually creating a "verzion" scenario with the objective of have the tv power on and turn to HDMI input, the receiver power on and turn to HDMI 3 input, and the verizon STB powering on... but I have not been able to get anything like that happening.  None of my components respond in any way except for my ability to successfully test IR commands to the TV and verizon STB in the templates where IR codes are defined.  Using that mechanism I am able to make all the things happen to the verizon STB and TV that I want.  As far as the receiver, that is rs232 and I am only able to send it commands successfully via the /usr/pluto/bin/TestSerialPort utility.

My setup includes all of this connected to a gc100, there is no MD. 

Any advice would be appreciated, not sure where to go at this point...

tschak909

  • LinuxMCE God
  • ****
  • Posts: 5549
  • DOES work for LinuxMCE.
    • View Profile
Re: gc100 and rs232 control
« Reply #32 on: December 11, 2013, 01:45:42 am »
Can you please paste the code output of the GSD from the log? Also, can you paste the contents of command 350?

-Thom

mikeybs

  • Veteran
  • ***
  • Posts: 74
    • View Profile
Re: gc100 and rs232 control
« Reply #33 on: December 11, 2013, 01:56:37 am »
here is the GSD log

407:01   12/10/13 17:49:45.524      Error while calling method: Cannot call class method: cmd_350
error: SIGHUP, line: 118
backtrace:
   in: (eval): 118
   from (eval):118:in `cmd_350'
 <0xb53ffb40>
05   12/10/13 17:49:45.639      Socket::ReceiveData 0x9f065f8 failed, bytes left 0 start: 5550000 1: 0 1b: 0 2: 0 2b: 0 m_Socket: 8 Command_Impl1 Dev #49 <0xb5dffb40>
05   12/10/13 17:49:45.640      Socket::ReceiveString2 ReceiveData failed m_Socket: -1 Command_Impl1 Dev #49 <0xb5dffb40>
01   12/10/13 17:49:45.640      Receive string failed in HandleRequestSocket 18:ReceiveData failed Command_Impl1 Dev #49 <0xb5dffb40>
05   12/10/13 17:49:45.640      Dumping 1 locks <0xb5dffb40>
05   12/10/13 17:49:45.640      finished check for exceptions <0xb5dffb40>
05   12/10/13 17:49:45.640      OL: (0x9f06744) (>91) MessageQueue Command_Impl.cpp l:852 time: 7:00:00p (1386715785 s) thread: 3061214016 Rel: Y Got: Y <0xb5dffb40>
== ATTEMPT FRESH START ==
1   12/10/13 17:52:37   /usr/pluto/bin/Spawn_Device.sh 49 (spawning-device)   10831 Dev: 49; Already Running list: 15,16,18,19,29,30,31,45,
== FRESH START ==
1   12/10/13 17:52:37   /usr/pluto/bin/Spawn_Device.sh 49 (spawning-device)   device: 49 ip: localhost cmd_line: Generic_Serial_Device
0   12/10/13 17:52:37   49 (spawning-device)   Entering 49
========== NEW LOG SECTION ==========
1   12/10/13 17:52:37   49 (spawning-device)   Starting... 1
1   12/10/13 17:52:38   49 (spawning-device)   Found /usr/pluto/bin/Generic_Serial_Device
RCODE:
   0:require 'Ruby_Generic_Serial_Device'
   1:class Command < Ruby_Generic_Serial_Device::RubyCommandWrapper
   2:end
   3:class Device_49 < Ruby_Generic_Serial_Device::RubySerialIOWrapper
   4:#### 89 ####################################################################
   5:def cmd_89(repeat_command, cmd=nil)
   6:@returnParamArray.clear
   7:SendMyIrCommand("781E")
   8:return @returnParamArray
   9:end
  10:#### 90 ####################################################################
  11:def cmd_90(repeat_command, cmd=nil)
  12:@returnParamArray.clear
  13:SendMyIrCommand("781F")
  14:return @returnParamArray
  15:end
  16:#### 97 ####################################################################
  17:def cmd_97(cmd=nil)
  18:@returnParamArray.clear
  19:# Mute - Date: 2007-02-22 12:41:58
  20:
  21:if(@mute[cmd.devidto_])
  22:  SendMultiZoneCommand(cmd, ["07EA3", "07EA1", "07E66"])
  23:else
  24:  SendMultiZoneCommand(cmd, ["07EA2", "07EA0","07E26"])
  25:end
  26:@mute[cmd.devidto_]=!@mute[cmd.devidto_]
  27:
  28:return @returnParamArray
  29:end
  30:#### 161 ####################################################################
  31:def cmd_161(cmd=nil)
  32:@returnParamArray.clear
  33:SendIrCommand("07A54")
  34:return @returnParamArray
  35:end
  36:#### 162 ####################################################################
  37:def cmd_162(cmd=nil)
  38:@returnParamArray.clear
  39:SendIrCommand("07A15")
  40:
  41:return @returnParamArray
  42:end
  43:#### 163 ####################################################################
  44:def cmd_163(cmd=nil)
  45:@returnParamArray.clear
  46:SendIrCommand("07A14")
  47:return @returnParamArray
  48:end
  49:#### 165 ####################################################################
  50:def cmd_165(cmd=nil)
  51:@returnParamArray.clear
  52:SendMultiZoneCommand(cmd, ["07AC1", "07ACD", "07AFC"])
  53:return @returnParamArray
  54:end
  55:#### 166 ####################################################################
  56:def cmd_166(cmd=nil)
  57:@returnParamArray.clear
  58:SendIrCommand("07A16")
  59:return @returnParamArray
  60:end
  61:#### 174 ####################################################################
  62:def cmd_174(cmd=nil)
  63:@returnParamArray.clear
  64:SendIrCommand("07AC9")
  65:return @returnParamArray
  66:end
  67:#### 192 ####################################################################
  68:def cmd_192(pk_pipe, pk_device_pipes, cmd=nil)
  69:@returnParamArray.clear
  70:SendMyIrCommand("787E")
  71:return @returnParamArray
  72:end
  73:#### 193 ####################################################################
  74:def cmd_193(pk_pipe, cmd=nil)
  75:@returnParamArray.clear
  76:SendMyIrCommand("787F")
  77:return @returnParamArray
  78:end
  79:#### 228 ####################################################################
  80:def cmd_228(cmd=nil)
  81:@returnParamArray.clear
  82:SendIrCommand("27500") # that if Bass Sel is the same as LFE/Bass
  83:return @returnParamArray
  84:end
  85:#### 281 ####################################################################
  86:def cmd_281(cmd=nil)
  87:@returnParamArray.clear
  88:SendIrCommand("07AC0")
  89:return @returnParamArray
  90:end
  91:#### 282 ####################################################################
  92:def cmd_282(cmd=nil)
  93:@returnParamArray.clear
  94:SendIrCommand("07A0F")
  95:return @returnParamArray
  96:end
  97:#### 285 ####################################################################
  98:def cmd_285(cmd=nil)
  99:@returnParamArray.clear
 100:SendIrCommand("07A55")
 101:return @returnParamArray
 102:end
 103:#### 313 ####################################################################
 104:def cmd_313(level, cmd=nil)
 105:@returnParamArray.clear
 106:# Set Volume - Date: 2007-02-22 12:41:58
 107:
 108:SendMultiZoneCommand( cmd, ["230", "", "", ""], sprintf( "%x", level.to_i * 1.73 + 38) )
 109:
 110:SetDeviceDataInDB( cmd.devidto_, 158, level ) # 158 = DEVICEDATA_Volume_Level_CONST
 111:
 112:print "volume and corresponding device data set\n"
 113:
 114:return @returnParamArray
 115:end
 116:#### 350 ####################################################################
 117:def cmd_350(cmd=nil)
 118:@returnParamArray.clear
 119:ReceiveReportCommand()
 120:return @returnParamArray
 121:end
 122:#### 355 ####################################################################
 123:def cmd_355(cmd=nil)
 124:@returnParamArray.clear
 125:# Initialize --- Date: 21.02.2007
 126:$logFile = File.new("/var/log/pluto/yamaha.log", "w")
 127:
 128:@mute = [false, false, false, false];
 129:
 130:@input=-1
 131:for iRetry in 0...4
 132:    print "Initializing unit\n"
 133:    conn_.Send("\x11000\x03")
 134:    buf = conn_.RecvDelimited("\x03", 2000)
 135:    model_id = GetCurrentDeviceData( device_.devid_, 59 ) # 59 = DEVICEDATA_Configuration_CONST
 136:    if( !buf.nil? && !buf.index("\x12").nil? )
 137:        print "Initialized ok\n"
 138:      volume_level = GetCurrentDeviceData( device_.devid_, 207 ) # 59 = DEVICEDATA_Initial_Volume_CONST
 139:      if( !volume_level.empty? && volume_level!="ERR Parameter not found" )
 140:         print "Setting volume to ", volume_level, "\n"
 141:         cmd_313(volume_level)
 142:         SetDeviceDataInDB( device_.devid_, 158, volume_level ) # 158 = DEVICEDATA_Volume_Level_CONST
 143:      end
 144:        return
 145:    end
 146:    print "Failed to initialize.  Wait 1 secs and try again\n"
 147:    sleep(1)
 148:end
 149:
 150:#DisableDevice( device_.devid_, true )
 151:print "The device wouldn't respond. Disabling it.\n"
 152:
 153:return @returnParamArray
 154:end
 155:#### 361 ####################################################################
 156:def cmd_361(cmd=nil)
 157:@returnParamArray.clear
 158:SendMyIrCommand("784A")
 159:return @returnParamArray
 160:end
 161:#### PRIVATE METHODS ####################################################################
 162:# Private - Date: 2007-02-22 17:43
 163:def SendMyIrCommand(command)
 164:   for i in 0...4
 165:      conn_.Send("\x02\x00" + command + "\x03")
 166:      reply = ReceiveReportCommand()
 167:      if( !reply.nil? && reply.length()>4 )
 168:         print "Received good reply: ", reply, "\n"
 169:         return
 170:      else
 171:         buf = conn_.Recv(1000,1000);
 172:         print "Flushed buffer: ", buf, "\n"
 173:      end
 174:   end
 175:end
 176:
 177:def SendIrCommand(command)
 178:   for i in 0...4
 179:      conn_.Send("\x02" + command + "\x03")
 180:      reply = ReceiveReportCommand()
 181:      if( !reply.nil? && reply.length()>4 )
 182:         print "Received good reply: ", reply, "\n"
 183:         return
 184:      else
 185:         buf = conn_.Recv(1000,1000);
 186:         print "Flushed buffer: ", buf, "\n"
 187:      end
 188:   end
 189:end
 190:
 191:def ReceiveReportCommand()
 192:   for i in 0...200
 193:      buf = conn_.Recv(1,3000);
 194:      if( buf.length()==0 )
 195:         return
 196:      end # nothing to do
 197:      if( buf[0]==0x02 )
 198:         buf = conn_.Recv(7,500);
 199:         if( buf[6]!=0x03 )
 200:            print "Received malformed status: ", buf,"\n"
 201:            return ""
 202:         end
 203:
 204:         ProcessReportCommand(buf)
 205:         return buf
 206:      else
 207:         if( buf[0]==0x12 )
 208:            ReceiveConfigurationCommand()
 209:         else
 210:            print "Received unknown character: ", buf[0],"\n"
 211:         end
 212:      end
 213:   end
 214:end
 215:
 216:def ProcessReportCommand(command)
 217:   if( command[0,1]=="1" || command[0,1]=="2" )
 218:      print "Received command ", command[2,2], "\n"
 219:      if( command[2,2]=="20" )
 220:         if( command[4,2]=="00" )
 221:               cmd = Command.new(device_.devid_, -1001, 1, 2, 48);
 222:               cmd.params_[10] = "0";
 223:               SendCommand(cmd);
 224:         else
 225:            if( command[4,2]=="01" )
 226:               cmd = Command.new(device_.devid_, -1001, 1, 2, 48);
 227:               cmd.params_[10] = "1";
 228:               SendCommand(cmd);
 229:            end
 230:         end
 231:      end
 232:      if( command[2,2]=="21" )
 233:         if( command[5]<65 )
 234:                SwitchInput(command[5]-48)
 235:         else
 236:            SwitchInput(command[5]-55)
 237:         end
 238:      end
 239:   else
 240:      if( command[0,4]=="4026" )
 241:         volume = (command[4,2].hex - 38) / 1.73
 242:         SetDeviceDataInDB( device_.devid_, 158, volume.to_s ) # 158 = DEVICEDATA_Volume_Level_CONST
 243:         cmd = Command.new(device_.devid_, -1001, 1, 2, 71);
 244:         cmd.params_[30] = volume.to_s
 245:         SendCommand(cmd);
 246:      else
 247:         print "Incoming report command ", command, " doesn't need handling"
 248:      end
 249:   end
 250:end
 251:
 252:def ReceiveConfigurationCommand()
 253:   # This is called only after we already received the 0x12
 254:   print "ReceiveConfigurationCommand\n"
 255:   header = conn_.Recv(6,100)
 256:   slength = conn_.Recv(2,100)
 257:   ilength = hextodecimal(slength)
 258:   data = conn_.Recv(ilength,100)
 259:   term = conn_.Recv(3,100)
 260:   if( term[2]!=3 )
 261:      print "Data is malformed\n"
 262:      return false
 263:   end
 264:
 265:   if( ilength>=10 )
 266:      if( data[9]<65 )
 267:            SwitchInput(data[9]-48)
 268:      else
 269:         SwitchInput(data[9]-55)
 270:      end
 271:   end
 272:end
 273:
 274:def SwitchInput(input)
 275:   if( input==@input )
 276:      print "Input didn't change from ", input, "\n"
 277:      return
 278:   end
 279:   input_param = 0
 280:   @input = input
 281:   print "set to input ", input, "\n"
 282:   case input
 283:#   multi? dvd?
 284:      when 0
 285:         input_param = 163 # Phono
 286:      when 1
 287:         input_param = 162 # CD
 288:      when 2
 289:         input_param = 166 # Tuner
 290:      when 3
 291:         input_param = 420 # cd-r
 292:      when 4
 293:         input_param = 174 # md-tape
 294:      when 5
 295:         input_param = 165 # dvd
 296:      when 6
 297:         input_param = 161 # dtv
 298:      when 7
 299:         input_param = 281 # cbl-sat
 300:      when 9
 301:         input_param = 282 # vcr1
 302:      when 10
 303:         input_param = 283 # vcr2
 304:      when 12
 305:         input_param = 285 # vaux
 306:   end
 307:   
 308:   if( input_param==0 )
 309:      print "Unknown input ", input, "\n"
 310:      return
 311:   end
 312:
 313:   cmd = Command.new(device_.devid_, -1001, 1, 2, 49);
 314:   cmd.params_[41] = input_param.to_s()
 315:   SendCommand(cmd);
 316:end
 317:
 318:def hextodecimal(slength)
 319:   #slength is a 2 digit hex.  don't know the ruby equivalent of scanf
 320:   ilength = 0
 321:   if( slength[0]<65 ) # it's less than an A
 322:      ilength = (slength[0] - 48) * 16
 323:   else
 324:      ilength = (slength[0] - 55) * 16
 325:   end
 326:   if( slength[1]<65 ) # it's less than an A
 327:      ilength = ilength + slength[1] - 48
 328:   else
 329:      ilength = ilength + slength[1] - 55
 330:   end
 331:end
 332:
 333:def log(word)
 334:   $logFile.print( word + "\n" )
 335:   $logFile.flush()
 336:   print(word + "\n")
 337:end
 338:
 339:def SendMultiZoneCommand(cmd, commandsArray, commandParam="")
 340:   zone = GetZone(cmd.devidto_)
 341:   if( zone >= 0 and zone < commandsArray.size )
 342:      SendIrCommand(commandsArray[zone] + commandParam.to_s)
 343:   else
 344:      log("SendMultiZoneCommand: invalid zone " + zone.to_s)
 345:   end
 346:end
 347:
 348:def GetZone(deviceDestination)
 349:   if( device_.mapDevice_PortChannel_.has_key?(deviceDestination) and
 350:      device_.mapDevice_PortChannel_[deviceDestination] != nil and
 351:      !device_.mapDevice_PortChannel_[deviceDestination].empty? )
 352:      return device_.mapDevice_PortChannel_[deviceDestination].to_i
 353:   end
 354:   
 355:      return 0
 356:end
 357:
 358:def ShowZones()
 359:   log("####### Dev 2 PortChanel")
 360:   device_.mapDevice_PortChannel_.each do |key, value|
 361:      log(key.to_s + " => " + value.to_s)
 362:   end
 363:   
 364:   log("======= PortChanel 2 Dev")
 365:   device_.mapPortChannel_Device_.each do |key, value|
 366:      log(key.to_s + " => " + value.to_s)
 367:   end
 368:end
 369:#### 420 ####################################################################
 370:def cmd_420(cmd=nil)
 371:@returnParamArray.clear
 372:SendIrCommand("07A19")
 373:return @returnParamArray
 374:end
 375:#### 714 ####################################################################
 376:def cmd_714(cmd=nil)
 377:@returnParamArray.clear
 378:SendIrCommand("07A13")
 379:return @returnParamArray
 380:end
 381:#### 767 ####################################################################
 382:def cmd_767(cmd=nil)
 383:@returnParamArray.clear
 384:SendMyIrCommand("78D0")
 385:return @returnParamArray
 386:end
 387:#### 930 ####################################################################
 388:def cmd_930(cmd=nil)
 389:@returnParamArray.clear
 390:SendMyIrCommand("782A")
 391:return @returnParamArray
 392:end
 393:#### 985 ####################################################################
 394:def cmd_985(cmd=nil)
 395:@returnParamArray.clear
 396:SendMyIrCommand("7841")
 397:return @returnParamArray
 398:end
 399:#### START SETTERS ####################################################################
 400:def initialize()
 401:super
 402:@returnParamArray=Array.new
 403:end
 404:####  END  SETTERS ####################################################################
 405:end

mikeybs

  • Veteran
  • ***
  • Posts: 74
    • View Profile
Re: gc100 and rs232 control
« Reply #34 on: December 11, 2013, 02:11:52 am »
command 350 is:
ReceiveReportCommand()

mikeybs

  • Veteran
  • ***
  • Posts: 74
    • View Profile
Re: gc100 and rs232 control
« Reply #35 on: December 11, 2013, 02:39:18 am »
I just created a new group/codeset instead of attempting to use the existing one for yahama receivers rs232 and editing it....

I've defined the ruby codes for:     On/Off/HDMI1-4/Vol+/Vol-/Mute

I'm hoping that's enough to get going...


I rebooted my LMCE core and I'm still getting an error message for command 350...

command 350 is not defined by me in my new codeset, not sure what is going on...


here is the output of /var/log/pluto/49_Generic_Serial_Device.log

   12/10/13 20:28:24.502      Socket::ReceiveData 0x96b85f8 failed, bytes left 0 start: 82690000 1: 0 1b: 0 2: 0 2b: 0 m_Socket: 8 Command_Impl1 Dev #49 <0xb5dffb40>
05   12/10/13 20:28:24.647      Socket::ReceiveString2 ReceiveData failed m_Socket: -1 Command_Impl1 Dev #49 <0xb5dffb40>
01   12/10/13 20:28:24.647      Receive string failed in HandleRequestSocket 18:ReceiveData failed Command_Impl1 Dev #49 <0xb5dffb40>
05   12/10/13 20:28:24.678      Dumping 1 locks <0xb5dffb40>
05   12/10/13 20:28:24.678      finished check for exceptions <0xb5dffb40>
05   12/10/13 20:28:24.678      OL: (0x96b8744) (>145) MessageQueue Command_Impl.cpp l:852 time: 7:00:00p (1386725304 s) thread: 3061021504 Rel: Y Got: Y <0xb5dffb40>
01   12/10/13 20:28:24.618      Error while calling method: Cannot call class method: cmd_350
error: SIGHUP, line: 118
backtrace:
   in: (eval): 118
   from (eval):118:in `cmd_350'
 <0xb53ffb40>
== ATTEMPT FRESH START ==
1   12/10/13 20:31:13   /usr/pluto/bin/Spawn_Device.sh 49 (spawning-device)   11505 Dev: 49; Already Running list: 15,16,18,19,29,30,31,45,
== FRESH START ==
1   12/10/13 20:31:13   /usr/pluto/bin/Spawn_Device.sh 49 (spawning-device)   device: 49 ip: localhost cmd_line: Generic_Serial_Device
0   12/10/13 20:31:13   49 (spawning-device)   Entering 49
========== NEW LOG SECTION ==========
1   12/10/13 20:31:13   49 (spawning-device)   Starting... 1
1   12/10/13 20:31:13   49 (spawning-device)   Found /usr/pluto/bin/Generic_Serial_Device
RCODE:
   0:require 'Ruby_Generic_Serial_Device'
   1:class Command < Ruby_Generic_Serial_Device::RubyCommandWrapper
   2:end
   3:class Device_49 < Ruby_Generic_Serial_Device::RubySerialIOWrapper
   4:#### 89 ####################################################################
   5:def cmd_89(repeat_command, cmd=nil)
   6:@returnParamArray.clear
   7:conn_.Send("x02x00x37x38x31x45x03")
   8:return @returnParamArray
   9:end
  10:#### 90 ####################################################################
  11:def cmd_90(repeat_command, cmd=nil)
  12:@returnParamArray.clear
  13:conn_.Send("x02x00x37x38x31x46x03")
  14:return @returnParamArray
  15:end
  16:#### 97 ####################################################################
  17:def cmd_97(cmd=nil)
  18:@returnParamArray.clear
  19:conn_.Send("x02x00x37x38x39x43x03")
  20:return @returnParamArray
  21:end
  22:#### 151 ####################################################################
  23:def cmd_151(cmd=nil)
  24:@returnParamArray.clear
  25:conn_.Send("x02x00x37x38x44x42x03")
  26:return @returnParamArray
  27:end
  28:#### 192 ####################################################################
  29:def cmd_192(pk_pipe, pk_device_pipes, cmd=nil)
  30:@returnParamArray.clear
  31:conn_.Send("x02x00x37x38x37x45x03")
  32:return @returnParamArray
  33:end
  34:#### 193 ####################################################################
  35:def cmd_193(pk_pipe, cmd=nil)
  36:@returnParamArray.clear
  37:conn_.Send("x02x00x37x38x37x46x03")
  38:return @returnParamArray
  39:end
  40:#### 361 ####################################################################
  41:def cmd_361(cmd=nil)
  42:@returnParamArray.clear
  43:conn_.Send("x02x00x37x38x34x41x03")
  44:return @returnParamArray
  45:end
  46:#### 716 ####################################################################
  47:def cmd_716(cmd=nil)
  48:@returnParamArray.clear
  49:conn_.Send("x02x00x37x38x44x39x03")
  50:return @returnParamArray
  51:end
  52:#### 767 ####################################################################
  53:def cmd_767(cmd=nil)
  54:@returnParamArray.clear
  55:conn_.Send("x02x00x37x38x44x30x03")
  56:return @returnParamArray
  57:end
  58:#### 900 ####################################################################
  59:def cmd_900(cmd=nil)
  60:@returnParamArray.clear
  61:conn_.Send("x02x00x37x38x44x41x03")
  62:return @returnParamArray
  63:end
  64:#### 930 ####################################################################
  65:def cmd_930(cmd=nil)
  66:@returnParamArray.clear
  67:conn_.Send("x02x00x37x38x32x41x03")
  68:return @returnParamArray
  69:end
  70:#### 985 ####################################################################
  71:def cmd_985(cmd=nil)
  72:@returnParamArray.clear
  73:conn_.Send("x02x00x37x38x34x31x03")
  74:return @returnParamArray
  75:end
  76:#### START SETTERS ####################################################################
  77:def initialize()
  78:super
  79:@returnParamArray=Array.new
  80:end
  81:####  END  SETTERS ####################################################################
  82:end

mikeybs

  • Veteran
  • ***
  • Posts: 74
    • View Profile
Re: gc100 and rs232 control
« Reply #36 on: December 11, 2013, 07:06:23 am »
ok I implemented a blank command 350 and now I get the following in my /var/log/pluto/49_Generic_Serial_Device.log

05   12/11/13 1:02:22.377      Got a reload command from 0  <0xb5cffb40>
05   12/11/13 1:02:22.643      void ClientSocket::Disconnect() on this socket: 0x86d95f8 (m_Socket: 8) <0xb76faac0>
Return code: 2
2   12/11/13 01:02:23   49 (spawning-device)   Device requests restart... count=1/50 dev=49
Wed Dec 11 01:02:23 EST 2013 Restart
========== NEW LOG SECTION ==========
1   12/11/13 01:02:32   49 (spawning-device)   Starting... 1
1   12/11/13 01:02:32   49 (spawning-device)   Found /usr/pluto/bin/Generic_Serial_Device
01   12/11/13 1:02:32.975      GSD Port is not specified. Instantiating non-IO Wrapper. <0xb5dffb40>
RCODE:
   0:require 'Ruby_Generic_Serial_Device'
   1:class Command < Ruby_Generic_Serial_Device::RubyCommandWrapper
   2:end
   3:class Device_49 < Ruby_Generic_Serial_Device::RubySerialWrapper
   4:#### 89 ####################################################################
   5:def cmd_89(repeat_command, cmd=nil)
   6:@returnParamArray.clear
   7:conn_.Send("x02x00x37x38x31x45x03")
   8:return @returnParamArray
   9:end
  10:#### 90 ####################################################################
  11:def cmd_90(repeat_command, cmd=nil)
  12:@returnParamArray.clear
  13:conn_.Send("x02x00x37x38x31x46x03")
  14:return @returnParamArray
  15:end
  16:#### 97 ####################################################################
  17:def cmd_97(cmd=nil)
  18:@returnParamArray.clear
  19:conn_.Send("x02x00x37x38x39x43x03")
  20:return @returnParamArray
  21:end
  22:#### 151 ####################################################################
  23:def cmd_151(cmd=nil)
  24:@returnParamArray.clear
  25:conn_.Send("x02x00x37x38x44x42x03")
  26:return @returnParamArray
  27:end
  28:#### 192 ####################################################################
  29:def cmd_192(pk_pipe, pk_device_pipes, cmd=nil)
  30:@returnParamArray.clear
  31:conn_.Send("x02x00x37x38x37x45x03")
  32:return @returnParamArray
  33:end
  34:#### 193 ####################################################################
  35:def cmd_193(pk_pipe, cmd=nil)
  36:@returnParamArray.clear
  37:conn_.Send("x02x00x37x38x37x46x03")
  38:return @returnParamArray
  39:end
  40:#### 361 ####################################################################
  41:def cmd_361(cmd=nil)
  42:@returnParamArray.clear
  43:conn_.Send("x02x00x37x38x34x41x03")
  44:return @returnParamArray
  45:end
  46:#### 716 ####################################################################
  47:def cmd_716(cmd=nil)
  48:@returnParamArray.clear
  49:conn_.Send("x02x00x37x38x44x39x03")
  50:return @returnParamArray
  51:end
  52:#### 767 ####################################################################
  53:def cmd_767(cmd=nil)
  54:@returnParamArray.clear
  55:conn_.Send("x02x00x37x38x44x30x03")
  56:return @returnParamArray
  57:end
  58:#### 900 ####################################################################
  59:def cmd_900(cmd=nil)
  60:@returnParamArray.clear
  61:conn_.Send("x02x00x37x38x44x41x03")
  62:return @returnParamArray
  63:end
  64:#### 930 ####################################################################
  65:def cmd_930(cmd=nil)
  66:@returnParamArray.clear
  67:conn_.Send("x02x00x37x38x32x41x03")
  68:return @returnParamArray
  69:end
  70:#### 985 ####################################################################
  71:def cmd_985(cmd=nil)
  72:@returnParamArray.clear
  73:conn_.Send("x02x00x37x38x34x31x03")
  74:return @returnParamArray
  75:end
  76:#### START SETTERS ####################################################################
  77:def initialize()
  78:super
  79:@returnParamArray=Array.new
  80:end
  81:####  END  SETTERS ####################################################################
  82:end

tschak909

  • LinuxMCE God
  • ****
  • Posts: 5549
  • DOES work for LinuxMCE.
    • View Profile
Re: gc100 and rs232 control
« Reply #37 on: December 11, 2013, 02:11:53 pm »
The key error is this:

01   12/11/13 1:02:32.975      GSD Port is not specified. Instantiating non-IO Wrapper. <0xb5dffb40>


This means you don't have either a:

(a) COM Port on PC, or
(b) TCP Port

device data specified in your device template. Since this is an RS232 template, you need at the very least a COM Port on PC device data, along with at least Baud Rate.

-Thom

mikeybs

  • Veteran
  • ***
  • Posts: 74
    • View Profile
Re: gc100 and rs232 control
« Reply #38 on: December 11, 2013, 07:55:41 pm »
odd, for some reason the COM Port on PC on the receiver device got blanked...  I changed it back to the virtual gc100 serial port and things have gotten more interesting....

here is some output after a core reboot, I'm thinking it looks healthy...

/var/log/pluto/49_Generic_Serial_Device.log:

05   12/11/13 13:16:25.662      Socket::ReceiveData 0x8e005f8 failed, bytes left 0 start: 5280000 1: 0 1b: 0 2: 0 2b: 0 m_Socket: 8 Command_Impl1 Dev #49 <0xb5dffb40>
05   12/11/13 13:16:25.662      Socket::ReceiveString2 ReceiveData failed m_Socket: -1 Command_Impl1 Dev #49 <0xb5dffb40>
01   12/11/13 13:16:25.662      Receive string failed in HandleRequestSocket 18:ReceiveData failed Command_Impl1 Dev #49 <0xb5dffb40>
05   12/11/13 13:16:25.663      Dumping 1 locks <0xb5dffb40>
05   12/11/13 13:16:25.663      finished check for exceptions <0xb5dffb40>
05   12/11/13 13:16:25.664      OL: (0x8e00744) (>101) MessageQueue Command_Impl.cpp l:852 time: 7:00:00p (1386785785 s) thread: 3061005120 Rel: Y Got: Y <0xb5dffb40>
== ATTEMPT FRESH START ==
1   12/11/13 13:18:59   /usr/pluto/bin/Spawn_Device.sh 49 (spawning-device)   10546 Dev: 49; Already Running list: 15,16,18,19,29,30,31,45,
== FRESH START ==
1   12/11/13 13:18:59   /usr/pluto/bin/Spawn_Device.sh 49 (spawning-device)   device: 49 ip: localhost cmd_line: Generic_Serial_Device
0   12/11/13 13:18:59   49 (spawning-device)   Entering 49
========== NEW LOG SECTION ==========
1   12/11/13 13:18:59   49 (spawning-device)   Starting... 1
1   12/11/13 13:18:59   49 (spawning-device)   Found /usr/pluto/bin/Generic_Serial_Device
RCODE:......



I still don't have any autogenerated scenarios, either that or I just don't know how to use/find them

Messages are definitely being sent to and received from my receiver though, I can see them in /var/log/pluto/socat_ttyS_45_0.log

Right now the only devices defined by me are the verizon STB, the receiver, and the tv:  Verizon STB-> HMDI3 of receiver -> HDMI1 of tv

Now if I change the receiver to HDMI2, then turn the TV off, then turn the TV back on, Linuxmce will change the receiver to HDMI3 after the TV powers up.  I'm guessing it does this because HDMI3 is the only input I have in use for the receiver so it assumes I want to use it.

So far turning the TV off and back on using the TV remote control is the only way I have found that makes Linuxmce send any commands to my devices. 

I would like to create a scenario that will turn the TV on if it's off and change it to HDMI1, turn the receiver on if it's off and change it to HDMI3, and power on the verizon STB

And I would like another scenario that turns everything off.

I'm guessing the verizon STB will prove tricky since it does not have discrete on/off commands.  Hopefully that won't prove too annoying...

Should scenarios like these be automatically generated for me?  Does it mean I still have not configured things properly...

On my orbiter I have tried clicking the Entertainment icon, then selecting my entertainment area, then trying to power it on/off and volume up/down, but nothing happens.

At least I do feel like I am making progress :)

tschak909

  • LinuxMCE God
  • ****
  • Posts: 5549
  • DOES work for LinuxMCE.
    • View Profile
Re: gc100 and rs232 control
« Reply #39 on: December 11, 2013, 08:58:44 pm »
Basically, because you don't have a media director in that room, you'll need to make an entertainment area, and manually create scenarios within the Wizard > Media Scenarios section.

-Thom

mikeybs

  • Veteran
  • ***
  • Posts: 74
    • View Profile
Re: gc100 and rs232 control
« Reply #40 on: December 11, 2013, 10:23:59 pm »
I attempted to create two media scenarios called "verizon" and "dvd player".  I am not attempting to control the dvd player in any way, I just want the receiver and tv to respond appropriately.

Choosing either one from my orbiter causes the dce router to reboot and reload my orbiter...

I am happy to post any relevant logs, just let me know what you'd like to see...

tschak909

  • LinuxMCE God
  • ****
  • Posts: 5549
  • DOES work for LinuxMCE.
    • View Profile
Re: gc100 and rs232 control
« Reply #41 on: December 11, 2013, 10:31:28 pm »
Please pastebin your DCE Router log. That is very strange. Also paste your generic serial device log for your gc100.

-Thom

CentralMedia

  • Guru
  • ****
  • Posts: 161
    • View Profile
Re: gc100 and rs232 control
« Reply #42 on: December 11, 2013, 10:38:52 pm »
I had an issue, where when I added my Directv box to a TV in a room, without the room being configured with an MD, it would cause the router to reload, I simple used my sons machine temporarily to create an MD and all worked well after that.


mikeybs

  • Veteran
  • ***
  • Posts: 74
    • View Profile
Re: gc100 and rs232 control
« Reply #43 on: December 11, 2013, 10:44:40 pm »

mikeybs

  • Veteran
  • ***
  • Posts: 74
    • View Profile
Re: gc100 and rs232 control
« Reply #44 on: December 11, 2013, 10:50:51 pm »
I've got nothing good to use for an MD right now :(

I suppose I could wrangle something up in a day or two if it's my only option

I do have a raspberry pi, but I am not able to get it to boot up as an MD, I am posting in another thread about that....

If I get that working maybe I'll be able to make some better progress