Anytime Help Center

AMX NetLinx Runtime Error Assign Stack Ref Error - Out of Range

Rating


Symptoms

Code compiles fine, but when you run it you get the error:

Assign Stack Ref Error - Out of range

You may also see other errors like:

CHeap::Delete - ERROR(2) Attempting to delete invalid block 00AE6024 (Task=tInterpreter)

DoNumberExpression - Error 2 Tk=0x2008

GetNumber - Error 1 Tk=0x0000

 

Cause

Having a SWITCH/CASE statement inside a WAIT:

DEFINE_VARIABLE

X

DEFINE_CALL 'Switch Case In A Wait' (X)

{

WAIT 20

{

X++

IF (X > 2)

X = 0

SWITCH (X)

{

CASE 2:

SEND_STRING 0,FORMAT('SWITCH 2, X = %d',X)

CASE 1:

SEND_STRING 0,FORMAT('SWITCH 1, X = %d',X)

DEFAULT:

SEND_STRING 0,'DEFAULT'

}

}

}

DEFINE_PROGRAM

CALL 'Switch Case In A Wait' (X)

// end

Resolution

Modify the code so it uses a SELECT/ACTIVE statement instead:

DEFINE_VARIABLE

X

DEFINE_CALL 'Select Active In A Wait' (X)

{

WAIT 20

{

X++

IF (X > 2)

X = 0

SELECT

{

ACTIVE (X = 2):

SEND_STRING 0,FORMAT('SWITCH 2, X = %d',X)

ACTIVE (X = 1):

SEND_STRING 0,FORMAT('SWITCH 1, X = %d',X)

ACTIVE (1):

SEND_STRING 0,'DEFAULT'

}

}

}

DEFINE_PROGRAM

CALL 'Select Active In A Wait' (X)

// end​



Downloads

Product

 

Topic

Programming

Related Articles

Last modified at 3/31/2023 10:46 AM by PRO Knowledge Base
Top