Multi-mode

BMAX

Member
I am attempting to add to my multi-mode settings, but when I select the appropriate settings page, I get one box with a previously setting, but no means of adding other settings. Previously I had other boxes allowing channels to be selected and modified. Is it just me or am I doing something wrong?
 

Luke

Well-Knwοn Мember
When his happened to me af123 suggested
Can you look into the webif-error.log file via diagnostics and see if there's an error shown there?

When I looked in the log it revealed a clash with a channel that had been renumbered.
 
OP
BMAX

BMAX

Member
Thanks for the reply. This problem is happening on both my machines. Machine 2 has no entry in the webif-error.log. Machine 1 has error "Can't read "Channel (70) no such element in array".
(I believe Channel 70 has recently changed to Channel 64.)
I tried uninstalling and reinstalling the multi mode package on Box 2, but no difference.
Any suggestions?
 

af123

Administrator
Staff member
Try running the 'mmreset' diagnostic from the diagnostics screen (type mmreset into the box).
That error message should allow me to fix the underlying problem too.
 

Luke

Well-Knwοn Мember
af123's answer may result in an easier method to resolve, but what I did was along these lines:

With the renumber/reorder package
  • renumber 64 back to 70;
  • remove multi-mode from the restored 70;
  • Renumber 70 back to what you just changed it from;
  • Re-add multi-mode for the channel
If you have multi-mode for more than 1 channel that has been renumbered then you will need to identify them all and renumber them back. If you have deleted the channel then you could temporarily renumber another channel to fill the void.
 

prpr

Well-Known Member
The problem is that if channel 70 is in the mm.db file, and channel 70 has been moved to channel 64 because of a retune, the whole multimode page falls over because it can't find channel 70 in the channel.db file.

(OMG, I've just seen the new database viewer page in the Webif - does it really have to fill the width of the screen even when there are few columns and they are all fairly narrow? This make it very hard to read and it just looks UGLY. I do like the ability to sort on columns though.)
 

prpr

Well-Known Member
Here is the error from running settings.jim manually:
Code:
./settings.jim:81: Error: can't read "channels(64)": no such element in array
in procedure 'chanlist' called at file "./settings.jim", line 110
at file "./settings.jim", line 81
 
OP
BMAX

BMAX

Member
Try running the 'mmreset' diagnostic from the diagnostics screen (type mmreset into the box).
That error message should allow me to fix the underlying problem too.
That did the trick on machine 1. I will do machine 2 when a recording has finished.

The response was " Beginning diagnostic mmreset Running: mmreset Reset MM state. >>> Ending diagnostic mmreset"

Many thanks.
 

prpr

Well-Known Member
Workaround to stop it crashing the script:
Code:
humax /mnt/hd2/mod/webif/plugin/multimode # diff -u settings.jim~ settings.jim
--- settings.jim~
+++ settings.jim
@@ -78,7 +78,7 @@
  multiple=multiple>"
  foreach lcn [lsort -integer $list] {
  if {$lcn == 0} continue
-  puts "<option value=$lcn>$lcn - $channels($lcn)"
+  catch {puts "<option value=$lcn>$lcn - $channels($lcn)"}
  }
  puts "</select>"
}
 

prpr

Well-Known Member
That did the trick on machine 1. I will do machine 2 when a recording has finished.
All it does is delete the multi-mode database. It has no bearing on recording so it's perfectly safe to do at any time.
The response was " Beginning diagnostic mmreset Running: mmreset Reset MM state. >>> Ending diagnostic mmreset"
Despite what af123 said, it's a useless message. It doesn't help diagnose the problem at all.
 
OP
BMAX

BMAX

Member
I wasn't sure about resetting during a recording - better safe than sorry!
I assume af123 meant the original fault message, not the response to the reset.

Edit: All ok now on second machine
 
Last edited:

prpr

Well-Known Member
Maybe af123 was referring to the check to see if the mm.db file existed
Possibly, but if the database doesn't exist there wouldn't be any settings to stop the script working. If it does exist, the action is to delete it, which obviously makes it not exist. This wouldn't be a sensible course of action IF a missing database was also going to be the source of another problem.
 

af123

Administrator
Staff member
Workaround to stop it crashing the script:
Just changed it to tis:

Code:
===================================================================
--- var/mongoose/plugin/multimode/settings.jim   (revision 2156)
+++ var/mongoose/plugin/multimode/settings.jim   (working copy)
@@ -78,7 +78,9 @@
    multiple=multiple>"
   foreach lcn [lsort -integer $list] {
     if {$lcn == 0} continue
-     puts "<option value=$lcn>$lcn - $channels($lcn)"
+     if {[dict exists $channels $lcn]} {
+       puts "<option value=$lcn>$lcn - $channels($lcn)"
+     }
   }
   puts "</select>"
 }
 

af123

Administrator
Staff member
(OMG, I've just seen the new database viewer page in the Webif - does it really have to fill the width of the screen even when there are few columns and they are all fairly narrow?
No, that wasn't intentional. I did my testing on the schedule and channel databases which are fairly wide! Will fix.
 
Top