Crestron module 4.5 with series 3 processors error.

231 views
Skip to first unread message

Jarle Henriksen

unread,
Feb 12, 2014, 6:22:26 AM2/12/14
to comman...@googlegroups.com
I'm testing series 3 processors FW 1.008.0040 in order to upgrade some older installations but get the following errors in the log:

Error: splusmanagerapp.exe [App 1] # 08:34:01 2-12-2014  # Module S-45.4 : CommandFusion_iViewer_Server_v4_5 at line 272: In/Out Array index out of bounds.  Index: 10001, Length: 99
Error: splusmanagerapp.exe [App 1] # 08:34:01 2-12-2014  # Module S-45.4 : CommandFusion_iViewer_Server_v4_5 at line 273: In/Out Array index out of bounds.  Index: 10001, Length: 99
Error: splusmanagerapp.exe [App 1] # 08:34:01 2-12-2014  # Module S-45.4 : CommandFusion_iViewer_Server_v4_5 at line 272: In/Out Array index out of bounds.  Index: 10002, Length: 99
Error: splusmanagerapp.exe [App 1] # 08:34:01 2-12-2014  # Module S-45.4 : CommandFusion_iViewer_Server_v4_5 at line 273: In/Out Array index out of bounds.  Index: 10002, Length: 99

This seems to come from theese lines in the 4.5 module

} else if (CompareStrings(CommandType, "s") = 0) {
                    if (IsSignalDefined(text_i[ATOI(Join)])) {
                        text_i[ATOI(Join)] = Value;
                    }

Is there any way of getting rid of the error messages without redoing the project for the new Crestron Mobile ?



Jarrod Bell

unread,
Feb 12, 2014, 8:16:30 AM2/12/14
to comman...@googlegroups.com
Check the definitions at the top of the SIMPL+ in relation to the join array sizes.
Try incrementing them above 10000, or simply remove any joins from the module above 10000 which seems to be causing the issue.

Regards,

Jarrod Bell
CommandFusion
www.commandfusion.com


--
You received this message because you are subscribed to the Google Groups "CommandFusion Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to commandfusio...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Anthony Batchelor

unread,
Feb 12, 2014, 11:51:18 AM2/12/14
to comman...@googlegroups.com
Jarrod is right, your S+ module is only built to look for Serial Joins 1-99 as your array declaration only has a capacity of 99, it looks like you are trying to process a Join that is much higher.

You can change the Join range in use at the top of the module:

#DEFINE_CONSTANT NUMDIGITAL 1000    // Max size inputs/outputs can be expanded to. Use as few as possible to reduce memory usage
#DEFINE_CONSTANT NUMANALOG 99       // Max size inputs/outputs can be expanded to. Use as few as possible to reduce memory usage
#DEFINE_CONSTANT NUMSERIAL 99 

But as it says the more you increase it the slower the performance will be. So the better option would be to put your used range in the 1-99 area.

With that in mind, I would recommend you don't use this module at all for processing Digital, Analog and Serial Joins into Crestron. The CrestronMobile method is far better tested within the CF community and yields great results.

Anthony. 

Jarle Henriksen

unread,
Feb 13, 2014, 1:52:58 AM2/13/14
to comman...@googlegroups.com
The problem is that the settings are:
#DEFINE_CONSTANT NUMDIGITAL 1000  
#DEFINE_CONSTANT NUMANALOG 99   
#DEFINE_CONSTANT NUMSERIAL 99

And I don't have any joins above 501, so where do the 10001 and 10002 joins come from, and why are they not there in the series 2 version ?

Jarle

vmailtk5

unread,
Feb 13, 2014, 4:32:21 AM2/13/14
to commandfusion
They are internal to the iViewer App.

10001 reports iViewer version
10002 reports the device ID

comment out the following lines
/*
// Reserved join for iViewer version number on client
if (ATOI(Join) = 10001) {
iViewerVersion = value;
}
// Reserved join for client Device ID
if (ATOI(Join) = 10002) {
ConnectedDeviceID = value;
}
*/

and 

/*PUSH RequestVersion {
SendFeedback("d10001=1", 0);
SendFeedback("d10001=0", 0);
}*/   

the above one may break your module (cause signals to jump, so you dont have to comment out the push command)

2 series does not report these as as errors, 3 series is a bit more strict



Jarrod Bell

unread,
Feb 13, 2014, 9:04:00 AM2/13/14
to comman...@googlegroups.com
Good catch. Guess the module could use some additional array size checks? Anyone able to add this to the SIMPL+ code and test on 3 series?
Unfortunately I don't have a 3 series Crestron processor here to test with.


Regards,

Jarrod Bell
CommandFusion
www.commandfusion.com


vmailtk5

unread,
Feb 13, 2014, 9:25:24 AM2/13/14
to commandfusion
I think I added this to the code to stop the errors and not what I posted above, it was a year ago

...} else if (CompareStrings(CommandType, "s") = 0) {
If((ATOI(Join) <> 10001) && (ATOI(Join) <> 10002)){//Fix By Nadim

Jarrod Bell

unread,
Feb 13, 2014, 9:33:59 AM2/13/14
to comman...@googlegroups.com
That should do it! Thank you for sharing!

Jarle, please make the below changes to the SIMPL+ and let me know if all is well.
Then I could look at updating the module on github (first change in quite a while!)


Regards,

Jarrod Bell
CommandFusion
www.commandfusion.com


Jarle Henriksen

unread,
Feb 14, 2014, 6:26:47 AM2/14/14
to comman...@googlegroups.com
Hi again.

Thanks for the help.
I have tested the modified module on a Pro3, and the error messages are gone.
Attaching new module.

Best Regards

Jarle

On Wednesday, February 12, 2014 12:22:26 PM UTC+1, Jarle Henriksen wrote:
Usrsplus.zip
Reply all
Reply to author
Forward
0 new messages