I changed the template to read N81 and now the device starts without errors. But is it normal to spew out all the code on start? See below:
== ATTEMPT FRESH START ==
1 01/07/09 22:14:35 /usr/pluto/bin/Spawn_Device.sh 158 (spawning-device) 11057 Dev: 158; Already Running list: 31,32,34,35,33
,37,36,61,38,62,135,
== FRESH START ==
1 01/07/09 22:14:35 /usr/pluto/bin/Spawn_Device.sh 158 (spawning-device) device: 158 ip: dcerouter cmd_line: Generic_Serial_D
evice
0 01/07/09 22:14:35 158 (spawning-device) Entering 158
========== NEW LOG SECTION ==========
1 01/07/09 22:14:35 158 (spawning-device) Starting... 1
1 01/07/09 22:14:36 158 (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_158 < Ruby_Generic_Serial_Device::RubySerialIOWrapper
4:#### 89 ####################################################################
5:def cmd_89(repeat_command, cmd=nil)
6:@returnParamArray.clear
7:conn_.Send("MVUP\r")
8:
9:return @returnParamArray
10:end
11:#### 90 ####################################################################
12:def cmd_90(repeat_command, cmd=nil)
13:@returnParamArray.clear
14:conn_.Send("MVDOWN\r")
15:
16:return @returnParamArray
17:end
18:#### 97 ####################################################################
19:def cmd_97(cmd=nil)
20:@returnParamArray.clear
21:if(@mute)
22: conn_.Send("MUOFF\r")
23:
24:else
25: conn_.Send("MUON\r")
26:
27:end
28:@mute=!@mute
29:return @returnParamArray
30:end
31:#### 149 ####################################################################
32:def cmd_149(cmd=nil)
33:@returnParamArray.clear
34:conn_.Send("MSJAZZ CLUB\r")
35:
36:return @returnParamArray
37:end
38:#### 150 ####################################################################
39:def cmd_150(cmd=nil)
40:@returnParamArray.clear
41:conn_.Send("MSROCK ARENA\r")
42:
43:return @returnParamArray
44:end
45:#### 153 ####################################################################
46:def cmd_153(cmd=nil)
47:@returnParamArray.clear
48:conn_.Send("MSCLASSIC CONCERT\r")
49:
50:return @returnParamArray
51:end
52:#### 161 ####################################################################
53:def cmd_161(cmd=nil)
54:@returnParamArray.clear
55:conn_.Send("SITV\r")
56:
57:return @returnParamArray
58:end
59:#### 162 ####################################################################
60:def cmd_162(cmd=nil)
61:@returnParamArray.clear
62:conn_.Send("SICD\r")
63:
64:return @returnParamArray
65:end
66:#### 163 ####################################################################
67:def cmd_163(cmd=nil)
68:@returnParamArray.clear
69:conn_.Send("SIPHONO\r")
70:
71:return @returnParamArray
72:end
73:#### 165 ####################################################################
74:def cmd_165(cmd=nil)
75:@returnParamArray.clear
76:conn_.Send("SIDVD\r")
77:
78:return @returnParamArray
79:end
80:#### 166 ####################################################################
81:def cmd_166(cmd=nil)
82:@returnParamArray.clear
83:conn_.Send("SITUNER\r")
84:
85:return @returnParamArray
86:end
87:#### 174 ####################################################################
88:def cmd_174(cmd=nil)
89:@returnParamArray.clear
90:conn_.Send("SIMD/TAPE2\r")
91:
92:return @returnParamArray
93:end
94:#### 176 ####################################################################
95:def cmd_176(cmd=nil)
96:@returnParamArray.clear
97:conn_.Send("SIVDP\r")
98:
99:return @returnParamArray
100:end
101:#### 192 ####################################################################
102:def cmd_192(pk_pipe, pk_device_pipes, cmd=nil)
103:@returnParamArray.clear
104:conn_.Send("PWON\r")
105:
106:sleep(2)
107:conn_.Send("MUOFF\r")
108:
109:@mute = false
110:
111:return @returnParamArray
112:end
113:#### 193 ####################################################################
114:def cmd_193(pk_pipe, cmd=nil)
115:@returnParamArray.clear
116:conn_.Send("PWSTANDBY\r")
117:
118:return @returnParamArray
119:end
120:#### 281 ####################################################################
121:def cmd_281(cmd=nil)
122:@returnParamArray.clear
123:conn_.Send("SIDBS/SAT\r")
124:
125:return @returnParamArray
126:end
127:#### 282 ####################################################################
128:def cmd_282(cmd=nil)
129:@returnParamArray.clear
130:conn_.Send("SIVCR-1\r")
131:
132:return @returnParamArray
133:end
134:#### 283 ####################################################################
135:def cmd_283(cmd=nil)
136:@returnParamArray.clear
137:conn_.Send("SIVCR-2\r")
138:
139:return @returnParamArray
140:end
141:#### 284 ####################################################################
142:def cmd_284(cmd=nil)
143:@returnParamArray.clear
144:conn_.Send("SIVCR-3\r")
145:
146:return @returnParamArray
147:end
148:#### 285 ####################################################################
149:def cmd_285(cmd=nil)
150:@returnParamArray.clear
151:conn_.Send("SIV.AUX\r")
152:
153:return @returnParamArray
154:end
155:#### 286 ####################################################################
156:def cmd_286(cmd=nil)
157:@returnParamArray.clear
158:conn_.Send("MSPURE DIRECT\r")
159:
160:return @returnParamArray
161:end
162:#### 287 ####################################################################
163:def cmd_287(cmd=nil)
164:@returnParamArray.clear
165:conn_.Send("MSMULTI CH IN\r")
166:
167:return @returnParamArray
168:end
169:#### 288 ####################################################################
170:def cmd_288(cmd=nil)
171:@returnParamArray.clear
172:conn_.Send("MSMULTI CH DIRECT\r")
173:
174:return @returnParamArray
175:end
176:#### 289 ####################################################################
177:def cmd_289(cmd=nil)
178:@returnParamArray.clear
179:conn_.Send("MSMULTI CH PURE D\r")
180:
181:return @returnParamArray
182:end
183:#### 290 ####################################################################
184:def cmd_290(cmd=nil)
185:@returnParamArray.clear
186:conn_.Send("MSDOLBY PRO LOGIC\r")
187:
188:return @returnParamArray
189:end
190:#### 291 ####################################################################
191:def cmd_291(cmd=nil)
192:@returnParamArray.clear
193:conn_.Send("MSDOLBY PL2\r")
194:
195:return @returnParamArray
196:end
197:#### 292 ####################################################################
198:def cmd_292(cmd=nil)
199:@returnParamArray.clear
200:conn_.Send("MSDOLBY DIGITAL\r")
201:
202:return @returnParamArray
203:end
204:#### 293 ####################################################################
205:def cmd_293(cmd=nil)
206:@returnParamArray.clear
207:conn_.Send("MSDOLBY D EX\r")
208:
209:return @returnParamArray
210:end
211:#### 294 ####################################################################
212:def cmd_294(cmd=nil)
213:@returnParamArray.clear
214:conn_.Send("MS6.1 SURROUND\r")
215:
216:return @returnParamArray
217:end
218:#### 295 ####################################################################
219:def cmd_295(cmd=nil)
220:@returnParamArray.clear
221:conn_.Send("MSDTS NEO:6\r")
222:
223:return @returnParamArray
224:end
225:#### 296 ####################################################################
226:def cmd_296(cmd=nil)
227:@returnParamArray.clear
228:conn_.Send("MSDTS SURROUND\r")
229:
230:return @returnParamArray
231:end
232:#### 297 ####################################################################
233:def cmd_297(cmd=nil)
234:@returnParamArray.clear
235:conn_.Send("MSDTS ES DSCRT6.1\r")
236:
237:return @returnParamArray
238:end
239:#### 298 ####################################################################
240:def cmd_298(cmd=nil)
241:@returnParamArray.clear
242:conn_.Send("MSDTS ES MTRX6.1\r")
243:
244:return @returnParamArray
245:end
246:#### 299 ####################################################################
247:def cmd_299(cmd=nil)
248:@returnParamArray.clear
249:conn_.Send("MSHOME THX CINEMA\r")
250:
251:return @returnParamArray
252:end
253:#### 300 ####################################################################
254:def cmd_300(cmd=nil)
255:@returnParamArray.clear
256:conn_.Send("MSTHX5.1\r")
257:
258:return @returnParamArray
259:end
260:#### 301 ####################################################################
261:def cmd_301(cmd=nil)
262:@returnParamArray.clear
263:conn_.Send("MSTHX U2 CINEMA\r")
264:
265:return @returnParamArray
266:end
267:#### 302 ####################################################################
268:def cmd_302(cmd=nil)
269:@returnParamArray.clear
270:conn_.Send("MSTHX MUSIC MODE\r")
271:
272:return @returnParamArray
273:end
274:#### 303 ####################################################################
275:def cmd_303(cmd=nil)
276:@returnParamArray.clear
277:conn_.Send("MSTHX6.1\r")
278:
279:return @returnParamArray
280:end
281:#### 304 ####################################################################
282:def cmd_304(cmd=nil)
283:@returnParamArray.clear
284:conn_.Send("MSTHX SURROUND EX\r")
285:
286:return @returnParamArray
287:end
288:#### 305 ####################################################################
289:def cmd_305(cmd=nil)
290:@returnParamArray.clear
291:conn_.Send("MSWIDE SCREEN\r")
292:
293:return @returnParamArray
294:end
295:#### 306 ####################################################################
296:def cmd_306(cmd=nil)
297:@returnParamArray.clear
298:conn_.Send("MS5CH STEREO\r")
299:
300:return @returnParamArray
301:end
302:#### 307 ####################################################################
303:def cmd_307(cmd=nil)
304:@returnParamArray.clear
305:conn_.Send("MS7CH STEREO\r")
306:
307:return @returnParamArray
308:end
309:#### 308 ####################################################################
310:def cmd_308(cmd=nil)
311:@returnParamArray.clear
312:conn_.Send("MSDIRECT\r")
313:
314:return @returnParamArray
315:end
316:#### 309 ####################################################################
317:def cmd_309(cmd=nil)
318:@returnParamArray.clear
319:conn_.Send("MSMATRIX\r")
320:
321:return @returnParamArray
322:end
323:#### 310 ####################################################################
324:def cmd_310(cmd=nil)
325:@returnParamArray.clear
326:conn_.Send("MSMONO MOVIE\r")
327:
328:return @returnParamArray
329:end
330:#### 311 ####################################################################
331:def cmd_311(cmd=nil)
332:@returnParamArray.clear
333:conn_.Send("MSSTEREO\r")
334:
335:return @returnParamArray
336:end
337:#### 312 ####################################################################
338:def cmd_312(cmd=nil)
339:@returnParamArray.clear
340:conn_.Send("MSSUPER STADIUM\r")
341:
342:return @returnParamArray
343:end
344:#### 313 ####################################################################
345:def cmd_313(level, cmd=nil)
346:@returnParamArray.clear
347:conn_.Send("MV" + level + "\r")
348:
349:SetDeviceDataInDB( device_.devid_, 158, level ) # 158 = DEVICEDATA_Volume_Level_CONST
350:print "volume and corresponding device data set\n"
351:
352:return @returnParamArray
353:end
354:#### 350 ####################################################################
355:def cmd_350(cmd=nil)
356:@returnParamArray.clear
357:#event 31 A 06 14:50 Denon AVC
358:buff = readLine()
359:print buff,"\n"
360:return @returnParamArray
361:end
362:#### 355 ####################################################################
363:def cmd_355(cmd=nil)
364:@returnParamArray.clear
365:#31-May-06 14:13 init Denon AVC
366:
367:initok=false
368:
369:
370:# It doesn't respond to anything but power on when it's off. Before turning it on and off
371:# See if it responds to something it normally would while it's on
372:
373:for iRetry in 0...4
374: print "Initializing unit\n"
375: conn_.Send("MVUP\rMVDOWN\r")
376: buf = conn_.Recv(200, 1000)
377: if( !buf.nil? && !buf.index("MV" ).nil? )
378: print "Initialized ok\n"
379: initok=true
380: break
381: else
382: print "Didn't respond to mv up/down\n"
383: end
384:end
385:
386:if initok==false
387: for iRetry in 0...4
388: print "Initializing unit\n"
389: conn_.Send("PWON\r")
390: sleep(3);
391: conn_.Send("PWSTANDBY\r");
392: buf = conn_.Recv(200, 4000)
393: if( !buf.nil? && (!buf.index("ON" ).nil? || !buf.index("STAND" ).nil? || !buf.index("OFF" ).nil?) )
394: print "Initialized ok from off state\n"
395: initok=true
396: break
397: else
398: print "Failed to initialize\n"
399: end
400: print "Failed to initialize. Wait 1 secs and try again\n"
401: sleep(1)
402: end
403:end
404:
405:if initok==false
406: DisableDevice( device_.devid_, true )
407: print "The device wouldn't respond. Disabling it.\n"
408: return
409:end
410:
411:print "Initialized ok, doing log\n"
412:
413:$logFile = File.new("/var/log/pluto/DenonAVC.log", "w")
414:$SoundLevel = 0
415:
416:#buffer for reading from serial
417:$line=String.new
418:$lineIndex=0
419:
420:$waitTime = 3000 #wait time in comunication
421:
422:$eventCode = {
423:"MS" => "Mode surround",
424:"PS" => "Parameter settings",
425:"TF" => "Tone frequency",
426:"TP" => "Tuner present",
427:"TM" => "Tuner band",
428:"PW" => "Power",
429:"MV" => "Master volume",
430:"CV" => "Chanel volume",
431:"MU" => "Mute",
432:"SI" => "Select Input"
433:}
434:
435:$inputSources = {
436:"VDP" => 176,
437:"VCR-3" => 284,
438:"VCR-2" => 283,
439:"VCR-1" => 282,
440:"V.AUX" => 285,
441:"TV" => 161,
442:"TUNER" => 166,
443:"PHONO" => 163,
444:"MD/TAPE2" => 174,
445:"DVD" => 165,
446:"DBS/SAT" => 281,
447:"CD" => 162,
448:"CDR/TAPE1" => 420
449:}
450:
451:return @returnParamArray
452:end
453:#### PRIVATE METHODS ####################################################################
454:#private Denon 2006-12-07 17:50:58
455:
456:def TestPrivate()
457:print "In TestPrivate\n"
458:end
459:
460:def log(word)
461:logTime = Time.now
462:timeStr = logTime.strftime("%d-%m-%Y %H:%M:%S ")
463:
464:print( timeStr + " " + word)
465:if( $logFile.nil? == false ) then
466: $logFile.print( timeStr + " " + word )
467: $logFile.flush()
468:end
469:end
470:
471:def readLine()
472: $line=String.new
473: $index=0
474:
475: cod=conn_.Recv(1, $waitTime)
476: $line+=cod
477:
478: beforeTime = Time.now
479:
480:while (cod[0,1] != "\r") do
481: if (conn_ != nil) then
482: cod=conn_.Recv(1, $waitTime)
483: $line += cod
484: else
485: log( "Can not read from serial " + "\n" )
486: end
487:
488: afterTime = Time.now
489: diffTime = afterTime - beforeTime
490: if( diffTime > 5 ) then
491: log( "Timeout received:" + $line + "\n" )
492: break
493: end
494:
495: if( $line.size() >2 ) then
496: log( "Temp received:" + $line + "\n" )
497: end
498:end
499: log( "Final received:" + $line + "\n" )
500: return $line
501:end
502:
503:#### 420 ####################################################################
504:def cmd_420(cmd=nil)
505:@returnParamArray.clear
506:conn_.Send("SICDR/TAPE1\r")
507:
508:return @returnParamArray
509:end
510:#### START SETTERS ####################################################################
511:def initialize()
512:super
513:@returnParamArray=Array.new
514:end
515:#### END SETTERS ####################################################################
516:end
518:
Sadly, no state change on the Denon receiver makes anything appear in the logs. Also manually triggering commands from the web admin has no effect upon the log or the device itself.
If I use the same USB to serial adapter and plug it into my laptop I am able to see the status of the receiver using hyperterminal and also control it by typing commands.
I also notice that the Denon AVC receiver autodetection script reports that the attached hardware is not a Denon receiver. Hmmm.
Any ideas? This is very strange.
Thanks,
Chris