B.4.5.3 inputoutputtest2, B-20 – ElmoMC Multi-Axis Motion Controller-Maestro User Manual
Page 272

B.4.5.3 InputOutputTest2
//InputCallback
function run()
until(InputEvent.loop!=1)
InputEvent.gEvent=-1
end function
// Input handler calls then a input event occur.
function @input(int busId, int nodeId, int data)
InputEvent.iData
=
data
InputEvent.gEvent = nodeId
end function
//InputEvent
// TODO: Global Variables Declaration...
int loop
int iData
int gEvent
// Entry point of the application.
function run()
global int loop
global int iData
global int gEvent
int input,tmp,i
int m_input_old,a1_input_old,a2_input_old
int input_num
int input_level
input_num = 0
input_level = 0
loop=1
a1.adi=1
a2.adi=1
input = -1
m_input_old = m_din
a1_input_old = a1.IP
a2_input_old = a2.IP
a1_input_old = a1_input_old & 0x3f
a2_input_old = a2_input_old & 0x3f
gEvent = 128
InputCallback.run()
while(loop==1)
//
until(gEvent!=128 || loop!=1)
tmp
=
waitvar(gEvent,-1)
switch(gEvent)
case
0
input
=
iData
&
0xff
input_num
=
8
if(input
>
m_input_old)
input_level=1
tmp
=
input
-
m_input_old
else
input_level=0
tmp = m_input_old - input
end
if
m_input_old
=
input
case
a1.aid
input
=
iData
&
0x3f
input_num
=
6
if(input
>
a1_input_old)
input_level=1
tmp = input - a1_input_old
else
input_level=0
tmp = a1_input_old - input
end
if
a1_input_old
=
input
case
a2.aid
input
=
iData
&
0x3f
input_num
=
6
if(input
>
a2_input_old)
input_level=1
tmp = input - a2_input_old
else
input_level=0
tmp = a2_input_old - input
end
if
a2_input_old
=
input
end
switch
for
i=0:input_num
if(tmp&0x0001
==
1)
if(gEvent==0)
switch(i)
case
0
m_dout[0]=input_level
case
1
m_dout[1]=input_level
case
2
m_dout[2]=input_level
case
3
m_dout[3]=input_level
case
4
m_dout[4]=input_level
case
5
m_dout[5]=input_level
case
6
m_dout[6]=input_level
case
7
m_dout[7]=input_level
end
switch
end
if
TRACE( "NodeID %,Input % Input Level
% ",gEvent, i+1,input_level )
end
if
tmp
=
tmp>>1
end
for
gEvent=128
end
while
end function
/*
// Input handler calls then a input event occur.
function @input(int busId, int nodeId, int data)
global int iData,gEvent
iData = data
gEvent = nodeId
end function
*/
Maestro
Software Manual
Appendix B: Sample Programs
MAN-MASSW (Ver. Q)
B-20