Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
proview
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Esteban Blanc
proview
Commits
1389cbf7
Commit
1389cbf7
authored
Sep 20, 2016
by
Claes Sjofors
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Ge action EmitSignal added
parent
b11f6edd
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
585 additions
and
15 deletions
+585
-15
java/jpwr/jop/src/JopSession.java
java/jpwr/jop/src/JopSession.java
+8
-0
java/jpwr/jop/src/JopSessionIfc.java
java/jpwr/jop/src/JopSessionIfc.java
+2
-0
java/jpwr/jop/src/JopSessionRep.java
java/jpwr/jop/src/JopSessionRep.java
+26
-0
java/jpwr/jop/src/JopSpider.java
java/jpwr/jop/src/JopSpider.java
+40
-0
java/jpwr/jopg/src/Dyn.java
java/jpwr/jopg/src/Dyn.java
+171
-0
java/jpwr/jopg/src/Glow.java
java/jpwr/jopg/src/Glow.java
+3
-0
java/jpwr/jopg/src/GlowEventSignal.java
java/jpwr/jopg/src/GlowEventSignal.java
+43
-0
java/jpwr/jopg/src/Graph.java
java/jpwr/jopg/src/Graph.java
+5
-0
java/jpwr/jopg/src/GraphIfc.java
java/jpwr/jopg/src/GraphIfc.java
+1
-0
java/jpwr/jopg/src/GrowApplIfc.java
java/jpwr/jopg/src/GrowApplIfc.java
+1
-0
java/jpwr/jopg/src/GrowCtx.java
java/jpwr/jopg/src/GrowCtx.java
+26
-0
java/jpwr/jopg/src/GrowCtxIfc.java
java/jpwr/jopg/src/GrowCtxIfc.java
+1
-0
java/jpwr/jopg/src/GrowFrame.java
java/jpwr/jopg/src/GrowFrame.java
+4
-0
java/jpwr/jopg/src/os_templ/hw_templ/makefile
java/jpwr/jopg/src/os_templ/hw_templ/makefile
+1
-0
src/doc/man/en_us/man_geref.dat
src/doc/man/en_us/man_geref.dat
+26
-0
src/doc/man/en_us/man_opg.dat
src/doc/man/en_us/man_opg.dat
+16
-1
src/doc/man/sv_se/man_geref.dat
src/doc/man/sv_se/man_geref.dat
+25
-0
src/doc/man/sv_se/man_opg.dat
src/doc/man/sv_se/man_opg.dat
+16
-1
xtt/lib/ge/src/ge_attrnav.cpp
xtt/lib/ge/src/ge_attrnav.cpp
+1
-0
xtt/lib/ge/src/ge_dyn.cpp
xtt/lib/ge/src/ge_dyn.cpp
+106
-0
xtt/lib/ge/src/ge_dyn.h
xtt/lib/ge/src/ge_dyn.h
+26
-2
xtt/lib/xtt/src/xtt_xnav_command.cpp
xtt/lib/xtt/src/xtt_xnav_command.cpp
+37
-11
No files found.
java/jpwr/jop/src/JopSession.java
View file @
1389cbf7
...
...
@@ -177,6 +177,14 @@ public class JopSession {
public
Object
getUtility
(
int
type
,
PwrtObjid
objid
,
String
name
)
{
return
((
JopSessionIfc
)
sessionRep
).
getUtility
(
type
,
objid
,
name
);
}
public
Object
getUtilityFirst
(
int
type
)
{
return
((
JopSessionIfc
)
sessionRep
).
getUtilityFirst
(
type
);
}
public
Object
getUtilityNext
(
int
type
,
Object
o
)
{
return
((
JopSessionIfc
)
sessionRep
).
getUtilityNext
(
type
,
o
);
}
}
...
...
java/jpwr/jop/src/JopSessionIfc.java
View file @
1389cbf7
...
...
@@ -67,4 +67,6 @@ public interface JopSessionIfc {
public
void
openTrend
(
String
[]
trendList
);
public
void
openFast
(
String
fastObject
);
public
Object
getUtility
(
int
type
,
PwrtObjid
objid
,
String
name
);
public
Object
getUtilityFirst
(
int
type
);
public
Object
getUtilityNext
(
int
type
,
Object
o
);
}
java/jpwr/jop/src/JopSessionRep.java
View file @
1389cbf7
...
...
@@ -402,6 +402,32 @@ public class JopSessionRep implements JopSessionIfc {
}
public
Object
getUtilityFirst
(
int
type
)
{
for
(
int
i
=
0
;
i
<
frames
.
size
();
i
++)
{
Object
o
=
frames
.
get
(
i
);
if
(
((
JopUtilityIfc
)
o
).
getUtilityType
()
==
type
)
return
o
;
}
return
null
;
}
public
Object
getUtilityNext
(
int
type
,
Object
previous
)
{
boolean
found
=
false
;
for
(
int
i
=
0
;
i
<
frames
.
size
();
i
++)
{
Object
o
=
frames
.
get
(
i
);
if
(
found
)
{
if
(
((
JopUtilityIfc
)
o
).
getUtilityType
()
==
type
)
return
o
;
}
else
{
if
(
((
JopUtilityIfc
)
o
).
getUtilityType
()
==
type
&&
o
==
previous
)
found
=
true
;
}
}
return
null
;
}
public
int
executeCommand
(
String
command
)
{
return
JopSpider
.
command
(
session
,
command
);
}
...
...
java/jpwr/jop/src/JopSpider.java
View file @
1389cbf7
...
...
@@ -199,6 +199,7 @@ public class JopSpider {
new
CliTable
(
"LOGIN"
,
new
String
[]
{
"cli_arg1"
,
"cli_arg2"
}),
new
CliTable
(
"LOGOUT"
,
null
),
new
CliTable
(
"SHOW"
,
new
String
[]
{
"cli_arg1"
}),
new
CliTable
(
"EMIT"
,
new
String
[]
{
"cli_arg1"
,
"/SIGNALNAME"
,
"/GRAPH"
,
"/INSTANCE"
}),
};
...
...
@@ -934,6 +935,45 @@ public class JopSpider {
}
}
}
else
if
(
command
.
equals
(
"EMIT"
))
{
if
(
cli
.
qualifierFound
(
"cli_arg1"
))
{
String
signalstr
=
"SIGNAL"
;
String
cli_arg1
=
cli
.
getQualValue
(
"cli_arg1"
).
toUpperCase
();
if
(
signalstr
.
length
()
>=
cli_arg1
.
length
()
&&
signalstr
.
substring
(
0
,
cli_arg1
.
length
()).
equals
(
cli_arg1
))
{
// Command is "EMIT SIGNAL"
String
signalname
;
String
graph
;
String
instance
;
if
(
cli
.
qualifierFound
(
"/SIGNALNAME"
))
signalname
=
cli
.
getQualValue
(
"/SIGNALNAME"
);
else
{
System
.
out
.
println
(
"Cmd: Signalname is missing\n"
);
return
0
;
}
if
(
cli
.
qualifierFound
(
"/GRAPH"
))
graph
=
cli
.
getQualValue
(
"/GRAPH"
);
else
graph
=
null
;
if
(
cli
.
qualifierFound
(
"/INSTANCE"
))
instance
=
cli
.
getQualValue
(
"/INSTANCE"
);
else
instance
=
null
;
if
(
graph
==
null
)
{
for
(
Object
utility
=
session
.
getUtilityFirst
(
JopUtility
.
GRAPH
);
utility
!=
null
;
utility
=
session
.
getUtilityNext
(
JopUtility
.
GRAPH
,
utility
))
{
((
GrowFrame
)
utility
).
signalSend
(
signalname
);
}
}
}
}
}
}
else
{
System
.
out
.
println
(
"JopSpider: Parse error "
+
cli
.
getStsString
());
...
...
java/jpwr/jopg/src/Dyn.java
View file @
1389cbf7
...
...
@@ -157,6 +157,8 @@ public class Dyn {
public
static
final
int
mActionType1_MethodToolbar
=
1
<<
22
;
public
static
final
int
mActionType1_MethodPulldownMenu
=
1
<<
23
;
public
static
final
int
mActionType1_Script
=
1
<<
24
;
public
static
final
int
mActionType1_CatchSignal
=
1
<<
25
;
public
static
final
int
mActionType1_EmitSignal
=
1
<<
26
;
public
static
final
int
mActionType2_No
=
0
;
...
...
@@ -221,6 +223,8 @@ public class Dyn {
public
static
final
int
eDynPrio_ColorThemeLightness
=
57
;
public
static
final
int
eDynPrio_DigSwap
=
58
;
public
static
final
int
eDynPrio_DigScript
=
59
;
public
static
final
int
eDynPrio_CatchSignal
=
60
;
public
static
final
int
eDynPrio_EmitSignal
=
61
;
public
static
final
int
eDynPrio_Script
=
9998
;
public
static
final
int
eDynPrio_Command
=
9999
;
public
static
final
int
eDynPrio_CloseGraph
=
10000
;
...
...
@@ -289,6 +293,8 @@ public class Dyn {
public
static
final
int
eSave_MethodToolbar
=
71
;
public
static
final
int
eSave_MethodPulldownMenu
=
72
;
public
static
final
int
eSave_Script
=
73
;
public
static
final
int
eSave_CatchSignal
=
74
;
public
static
final
int
eSave_EmitSignal
=
75
;
public
static
final
int
eSave_End
=
99
;
public
static
final
int
eSave_Dyn_dyn_type1
=
100
;
public
static
final
int
eSave_Dyn_action_type1
=
101
;
...
...
@@ -683,6 +689,9 @@ public class Dyn {
public
static
final
int
eSave_MethodPulldownMenu_menu_type
=
7201
;
public
static
final
int
eSave_Script_script_len
=
7300
;
public
static
final
int
eSave_Script_script
=
7301
;
public
static
final
int
eSave_CatchSignal_signal_name
=
7400
;
public
static
final
int
eSave_EmitSignal_signal_name
=
7500
;
public
static
final
int
eSave_EmitSignal_global
=
7501
;
public
static
final
int
eAnimSequence_Inherit
=
0
;
public
static
final
int
eAnimSequence_Cycle
=
1
;
...
...
@@ -880,6 +889,10 @@ public class Dyn {
e
=
new
DynMethodPulldownMenu
((
DynMethodPulldownMenu
)
x
.
elements
.
get
(
i
));
break
;
case
Dyn
.
mActionType1_Script
:
e
=
new
DynScript
((
DynScript
)
x
.
elements
.
get
(
i
));
break
;
case
Dyn
.
mActionType1_EmitSignal
:
e
=
new
DynEmitSignal
((
DynEmitSignal
)
x
.
elements
.
get
(
i
));
break
;
case
Dyn
.
mActionType1_CatchSignal
:
e
=
new
DynCatchSignal
((
DynCatchSignal
)
x
.
elements
.
get
(
i
));
break
;
default
:
;
}
switch
(
x
.
elements
.
get
(
i
).
action_type2
)
{
...
...
@@ -969,6 +982,12 @@ public class Dyn {
case
mActionType1_Script:
e
=
(
DynElem
)
new
DynScript
((
DynScript
)
x
);
break
;
case
mActionType1_CatchSignal:
e
=
(
DynElem
)
new
DynCatchSignal
((
DynCatchSignal
)
x
);
break
;
case
mActionType1_EmitSignal:
e
=
(
DynElem
)
new
DynEmitSignal
((
DynEmitSignal
)
x
);
break
;
default
:
;
}
}
...
...
@@ -1358,6 +1377,12 @@ public class Dyn {
case
Dyn
.
eSave_Script
:
elem
=
(
DynElem
)
new
DynScript
(
this
);
break
;
case
Dyn
.
eSave_CatchSignal
:
elem
=
(
DynElem
)
new
DynCatchSignal
(
this
);
break
;
case
Dyn
.
eSave_EmitSignal
:
elem
=
(
DynElem
)
new
DynEmitSignal
(
this
);
break
;
case
Dyn
.
eSave_End
:
end_found
=
true
;
break
;
...
...
@@ -13345,5 +13370,151 @@ public class Dyn {
}
public
class
DynCatchSignal
extends
DynElem
{
String
signal_name
;
public
DynCatchSignal
(
Dyn
dyn
)
{
super
(
dyn
,
0
,
0
,
Dyn
.
mActionType1_CatchSignal
,
0
,
Dyn
.
eDynPrio_CatchSignal
);
}
public
DynCatchSignal
(
DynCatchSignal
x
)
{
super
(
x
);
}
public
int
action
(
GlowArrayElem
object
,
GlowEvent
e
)
{
if
(
!
dyn
.
graph
.
isAuthorized
(
dyn
.
access
))
return
1
;
switch
(
e
.
event
)
{
case
Glow
.
eEvent_Signal
:
if
(
signal_name
.
equals
(
((
GlowEventSignal
)
e
).
signal_name
))
{
GlowEvent
ce
=
new
GlowEvent
();
ce
.
event
=
Glow
.
eEvent_MB1Click
;
dyn
.
action
(
object
,
ce
);
}
break
;
}
return
1
;
}
public
void
open
(
BufferedReader
reader
)
{
String
line
;
StringTokenizer
token
;
boolean
end_found
=
false
;
try
{
while
(
(
line
=
reader
.
readLine
())
!=
null
)
{
token
=
new
StringTokenizer
(
line
);
int
key
=
Integer
.
valueOf
(
token
.
nextToken
());
if
(
Dyn
.
debug
)
System
.
out
.
println
(
"DynCatchSignal : "
+
line
);
switch
(
key
)
{
case
Dyn
.
eSave_CatchSignal
:
break
;
case
Dyn
.
eSave_CatchSignal_signal_name
:
if
(
token
.
hasMoreTokens
())
signal_name
=
token
.
nextToken
();
break
;
case
Dyn
.
eSave_End
:
end_found
=
true
;
break
;
default
:
System
.
out
.
println
(
"Syntax error in DynCatchSignal"
);
break
;
}
if
(
end_found
)
break
;
}
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"IOException DynCatchSignal"
);
}
}
}
public
class
DynEmitSignal
extends
DynElem
{
String
signal_name
;
int
global
;
public
DynEmitSignal
(
Dyn
dyn
)
{
super
(
dyn
,
0
,
0
,
Dyn
.
mActionType1_EmitSignal
,
0
,
Dyn
.
eDynPrio_EmitSignal
);
}
public
DynEmitSignal
(
DynEmitSignal
x
)
{
super
(
x
);
}
public
int
action
(
GlowArrayElem
object
,
GlowEvent
e
)
{
if
(
!
dyn
.
graph
.
isAuthorized
(
dyn
.
access
))
return
1
;
switch
(
e
.
event
)
{
case
Glow
.
eEvent_MB1Down
:
object
.
setColorInverse
(
1
);
dyn
.
repaintNow
=
true
;
dyn
.
graph
.
setClickActive
(
1
);
break
;
case
Glow
.
eEvent_MB1Up
:
object
.
setColorInverse
(
0
);
dyn
.
repaintNow
=
true
;
dyn
.
graph
.
setClickActive
(
0
);
break
;
case
Glow
.
eEvent_MB1Click
:
if
(
(
dyn
.
action_type1
&
Dyn
.
mActionType1_Confirm
)
!=
0
)
break
;
if
(
global
!=
0
)
{
int
sts
;
String
command
=
"emit signal /signalname="
+
signal_name
;
command
=
dyn
.
graph
.
getCommand
(
command
);
sts
=
dyn
.
graph
.
command
(
command
);
}
else
dyn
.
graph
.
signalSend
(
signal_name
);
}
return
1
;
}
public
void
open
(
BufferedReader
reader
)
{
String
line
;
StringTokenizer
token
;
boolean
end_found
=
false
;
try
{
while
(
(
line
=
reader
.
readLine
())
!=
null
)
{
token
=
new
StringTokenizer
(
line
);
int
key
=
Integer
.
valueOf
(
token
.
nextToken
());
if
(
Dyn
.
debug
)
System
.
out
.
println
(
"DynEmitSignal : "
+
line
);
switch
(
key
)
{
case
Dyn
.
eSave_EmitSignal
:
break
;
case
Dyn
.
eSave_EmitSignal_signal_name
:
if
(
token
.
hasMoreTokens
())
signal_name
=
token
.
nextToken
();
break
;
case
Dyn
.
eSave_EmitSignal_global
:
global
=
Integer
.
valueOf
(
token
.
nextToken
());
break
;
case
Dyn
.
eSave_End
:
end_found
=
true
;
break
;
default
:
System
.
out
.
println
(
"Syntax error in DynEmitSignal"
);
break
;
}
if
(
end_found
)
break
;
}
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"IOException DynEmitSignal"
);
}
}
}
}
java/jpwr/jopg/src/Glow.java
View file @
1389cbf7
...
...
@@ -1602,6 +1602,8 @@ public class Glow {
public
static
final
int
eEventType_Menu
=
1
;
public
static
final
int
eEventType_Toolbar
=
2
;
public
static
final
int
eEventType_Table
=
3
;
public
static
final
int
eEventType_CustomColor
=
4
;
public
static
final
int
eEventType_Signal
=
5
;
public
static
final
int
eEvent_MB1Click
=
0
;
public
static
final
int
eEvent_MB1Up
=
2
;
...
...
@@ -1617,4 +1619,5 @@ public class Glow {
public
static
final
int
eEvent_SliderMoved
=
12
;
public
static
final
int
eEvent_SliderMoveEnd
=
13
;
public
static
final
int
eEvent_MB3Press
=
14
;
public
static
final
int
eEvent_Signal
=
15
;
}
java/jpwr/jopg/src/GlowEventSignal.java
0 → 100644
View file @
1389cbf7
/*
* Proview Open Source Process Control.
* Copyright (C) 2005-2016 SSAB EMEA AB.
*
* This file is part of Proview.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Proview. If not, see <http://www.gnu.org/licenses/>
*
* Linking Proview statically or dynamically with other modules is
* making a combined work based on Proview. Thus, the terms and
* conditions of the GNU General Public License cover the whole
* combination.
*
* In addition, as a special exception, the copyright holders of
* Proview give you permission to, from the build function in the
* Proview Configurator, combine Proview with modules generated by the
* Proview PLC Editor to a PLC program, regardless of the license
* terms of these modules. You may copy and distribute the resulting
* combined work under the terms of your choice, provided that every
* copy of the combined work is accompanied by a complete copy of
* the source code of Proview (the version used to produce the
* combined work), being distributed under the terms of the GNU
* General Public License plus this exception.
*/
package
jpwr.jopg
;
public
class
GlowEventSignal
extends
GlowEvent
{
public
String
signal_name
;
public
GlowEventSignal
()
{}
}
java/jpwr/jopg/src/Graph.java
View file @
1389cbf7
...
...
@@ -457,6 +457,7 @@ public class Graph implements GraphIfc, GrowApplIfc {
case
Glow
.
eEvent_SliderMoveStart
:
case
Glow
.
eEvent_SliderMoveEnd
:
case
Glow
.
eEvent_SliderMoved
:
case
Glow
.
eEvent_Signal
:
if
(
e
.
object
!=
null
)
{
int
sts
;
Dyn
dyn
=
(
Dyn
)((
GlowArrayElem
)
e
.
object
).
getUserData
();
...
...
@@ -629,4 +630,8 @@ public class Graph implements GraphIfc, GrowApplIfc {
public
int
getClickActive
()
{
return
clickActive
;
}
public
void
signalSend
(
String
signalName
)
{
ctx
.
signalSend
(
signalName
);
}
}
java/jpwr/jopg/src/GraphIfc.java
View file @
1389cbf7
...
...
@@ -71,4 +71,5 @@ public interface GraphIfc {
public
double
getAnimationScanTime
();
public
String
getCommand
(
String
cmd
);
public
void
setClickActive
(
int
active
);
public
void
signalSend
(
String
signalName
);
}
java/jpwr/jopg/src/GrowApplIfc.java
View file @
1389cbf7
...
...
@@ -47,4 +47,5 @@ public interface GrowApplIfc {
public
int
getHeight
();
public
Object
loadCtx
(
String
file
);
public
int
loadSubgraph
(
String
file
);
public
void
signalSend
(
String
signalName
);
}
java/jpwr/jopg/src/GrowCtx.java
View file @
1389cbf7
...
...
@@ -954,6 +954,32 @@ public class GrowCtx implements GrowCtxIfc {
}
return
1
;
}
public
int
signalSend
(
String
signalName
)
{
for
(
int
i
=
0
;
i
<
cmn
.
a
.
size
();
i
++)
{
switch
(
cmn
.
a
.
get
(
i
).
type
())
{
case
Glow
.
eObjectType_GrowNode
:
case
Glow
.
eObjectType_GrowGroup
:
GlowEventSignal
e
=
new
GlowEventSignal
();
e
.
event
=
Glow
.
eEvent_Signal
;
e
.
type
=
Glow
.
eEventType_Signal
;
e
.
x
=
0
;
e
.
y
=
0
;
e
.
object_type
=
cmn
.
a
.
get
(
i
).
type
();
e
.
object
=
cmn
.
a
.
get
(
i
);
e
.
signal_name
=
signalName
;
cmn
.
appl
.
eventHandler
(
e
);
break
;
case
Glow
.
eObjectType_GrowWindow
:
case
Glow
.
eObjectType_GrowFolder
:
((
GrowWindow
)
cmn
.
a
.
get
(
i
)).
windowCmn
.
ctx
.
signalSend
(
signalName
);
break
;
}
}
return
1
;
}
}
...
...
java/jpwr/jopg/src/GrowCtxIfc.java
View file @
1389cbf7
...
...
@@ -72,4 +72,5 @@ public interface GrowCtxIfc {
public
void
setSubwindowSource
(
String
name
,
String
source
,
String
owner
);
public
void
setSliderActive
(
boolean
active
);
public
int
loadSubgraph
(
String
file
);
public
int
signalSend
(
String
signalName
);
}
java/jpwr/jopg/src/GrowFrame.java
View file @
1389cbf7
...
...
@@ -731,6 +731,10 @@ public class GrowFrame extends JFrame implements GraphApplIfc, ActionListener {
public
boolean
isAuthorized
(
int
access
)
{
return
graph
.
gdh
.
isAuthorized
(
access
);
}
public
void
signalSend
(
String
signalName
)
{
graph
.
signalSend
(
signalName
);
}
}
...
...
java/jpwr/jopg/src/os_templ/hw_templ/makefile
View file @
1389cbf7
...
...
@@ -47,6 +47,7 @@ local_java_sources := \
GlowEventMenu.java,
\
GlowEventToolbar.java,
\
GlowEventTable.java,
\
GlowEventSignal.java,
\
GrowCtxIfc.java,
\
GrowCmn.java,
\
GrowAnnotIfc.java,
\
...
...
src/doc/man/en_us/man_geref.dat
View file @
1389cbf7
...
...
@@ -3853,6 +3853,8 @@ OpenURL <t>- <t>Open an URL in a suitable web browser on Click MB1. <
PulldownMenu <t>- <t>Action for pulldown menus. <link>GeDynPulldownMenu
OptionMenu <t>- <t>Action for option menus. <link>GeDynOptionMenu
MethodPulldownMenu <t>- <t>Action for pulldown menus for object methods. <link>GeDynMethodPulldownMenu
EmitSignal <t>- <t>Emit a signal. <link>GeDynEmitSignal
CatchSignal <t>- <t>Catch a signal. <link>GeDynCatchSignal
</topic>
<headerlevel>
...
...
@@ -4236,6 +4238,30 @@ MethodPulldownMenu.HelpMenu <t><t>The menu is a help menu and only the help meth
<t><t>Help and Help Class is shown in the menu.
</topic>
<topic>GeDynEmitSignal <style>function
EmitSignal
Action to emit a signal.
<b>Attribute <t><t>Description
EmitSignal.SignalName <t><t>Signal name.
EmitSignal.Global <t><t>If global is set, the signal is emitted to all open
<t><t>graphs and multiviews, Otherwise only to the current
<t><t>graph.
</topic>
<topic>GeDynCatchSignal <style>function
CatchSignal
Action to catch a signal. When the signal is caught, the click actions for the
current object is executed.
<b>Attribute <t><t>Description
CatchSignal.SignalName <t><t>Signal name.
</topic>
</headerlevel>
<pagebreak>
...
...
src/doc/man/en_us/man_opg.dat
View file @
1389cbf7
...
...
@@ -1592,7 +1592,8 @@ crossreference<t>Show crossreferenses <LINK> crossreference
define <t>Define a symbol <LINK> define
delete item <t>Delete a menu item in the Xtt menu <LINK> delete item
delete opmenuitem <t>Delete a menu item in the operator window menu <LINK> delete opmenuitem
eventlist <t>Handle the eventlist <LINK> eventlist
emit signal <t>Emit a Ge signal <LINK> emit signal
eventlist <t>Handle the eventlist <LINK> eventlist
exit <t>close xtt <LINK> exit
help <t>Display help <LINK> help
login <t>User login <LINK> login
...
...
@@ -1965,6 +1966,20 @@ xtt> cross /name=hql-hvk-Start
xtt> cross /function="CreateHvkObject"
</TOPIC>
<TOPIC> emit signal <style> function
Command emit signal
Emit a Ge signal.
The signal is be emitted to a specific graph, or to all graphs and multiviews
if graph is not specified.
<B>xtt> emit signal /signalname= {/graph=] [/instance=]
/signal_name<t>Name of signal.
/graph <t>Graph or multiview to which the signal is directed.
/instance <t>Instance object if the graph is an object graph.
</TOPIC>
<TOPIC> exit <style> function
Command exit
...
...
src/doc/man/sv_se/man_geref.dat
View file @
1389cbf7
...
...
@@ -4181,6 +4181,31 @@ Endast konfigurerade metoder visas i menyn.
MethodPulldownMenu.Object <t><t>Objekt för vilket metoderna ska visas.
MethodPulldownMenu.HelpMenu <t><t>Menyn är en hjälpmeny och endast hjälp-metoderna
<t><t>Help och Help Class visas i menyn.
</topic>
<topic>GeDynEmitSignal <style>function
EmitSignal
Aktion för att sända en signal.
<b>Attribut <t><t>Beskrivning
EmitSignal.SignalName <t><t>Signalnamn.
EmitSignal.Global <t><t>Om global är satt, sänds signalen till all öppna grafer
<t><t>och multiviewer. Annars vara till den nuvarande grafen.
</topic>
<topic>GeDynCatchSignal <style>function
CatchSignal
Aktion för att fånga en signal. När signalen är fångad, exekveras aktionerna för mus-klick för
det aktuella objektet.
<b>Attribut <t><t>Beskrivning
CatchSignal.SignalName <t><t>Signalnamn.
</topic>
</headerlevel>
<pagebreak>
...
...
src/doc/man/sv_se/man_opg.dat
View file @
1389cbf7
...
...
@@ -1601,7 +1601,8 @@ crossreference<t>Visa korsreferenser <LINK> crossreference
define <t>Definiera en symbol <LINK> define
delete opmenuitem <t>Ta bort ett xtt menyalternativ <LINK> delete item
delete item <t>Ta bort ett menyalternativ i operatörsfönstret <LINK> delete item
eventlist <t>Hantera händlselistan <LINK> eventlist
emit signal <t>Sänd en Ge signal. <LINK> emit signal
eventlist <t>Hantera händelselistan <LINK> eventlist
exit <t>Stäng xtt <LINK> exit
help <t>Visa hjälp <LINK> help
login <t>Inloggning av användare <LINK> login
...
...
@@ -1934,6 +1935,20 @@ xtt> cross /name=hql-hvk-Start
xtt> cross /function="CreateHvkObject"
</TOPIC>
<TOPIC> emit signal <style> function
Command emit signal
Sänd en Ge signal.
Signalen är sänd till en specificerad graf, eller till alla grafer och multiview
om graf inte är specificerad.
<B>xtt> emit signal /signalname= {/graph=] [/instance=]
/signal_name<t>Signalnamn.
/graph <t>Graf eller multiview till vilken signalen är riktad.
/instance <t>Instansobjekt om grafen är en objektsbild.
</TOPIC>
<TOPIC> exit <style> function
Kommando exit
...
...
xtt/lib/ge/src/ge_attrnav.cpp
View file @
1389cbf7
...
...
@@ -180,6 +180,7 @@ static attrnav_sEnumElement elem_action_type[] = {
{
(
unsigned
int
)
ge_mActionType1_MethodPulldownMenu
,
"MethodPulldownMenu"
},
{
(
unsigned
int
)
ge_mActionType1_Slider
,
"Slider"
},
{
(
unsigned
int
)
ge_mActionType1_CatchSignal
,
"CatchSignal"
},
{
(
unsigned
int
)
ge_mActionType1_EmitSignal
,
"EmitSignal"
},
{
0
,
""
}};
static
attrnav_sEnumElement
elem_color
[]
=
{
...
...
xtt/lib/ge/src/ge_dyn.cpp
View file @
1389cbf7
...
...
@@ -522,6 +522,8 @@ GeDyn::GeDyn( const GeDyn& x) :
e
=
new
GeScript
((
const
GeScript
&
)
*
elem
);
break
;
case
ge_mActionType1_CatchSignal
:
e
=
new
GeCatchSignal
((
const
GeCatchSignal
&
)
*
elem
);
break
;
case
ge_mActionType1_EmitSignal
:
e
=
new
GeEmitSignal
((
const
GeEmitSignal
&
)
*
elem
);
break
;
default:
;
}
switch
(
elem
->
action_type2
)
{
...
...
@@ -651,6 +653,7 @@ void GeDyn::open( ifstream& fp)
case
ge_eSave_MethodPulldownMenu
:
e
=
(
GeDynElem
*
)
new
GeMethodPulldownMenu
(
this
);
break
;
case
ge_eSave_Script
:
e
=
(
GeDynElem
*
)
new
GeScript
(
this
);
break
;
case
ge_eSave_CatchSignal
:
e
=
(
GeDynElem
*
)
new
GeCatchSignal
(
this
);
break
;
case
ge_eSave_EmitSignal
:
e
=
(
GeDynElem
*
)
new
GeEmitSignal
(
this
);
break
;
case
ge_eSave_End
:
end_found
=
1
;
break
;
default:
cout
<<
"GeDyn:open syntax error"
<<
endl
;
...
...
@@ -1442,6 +1445,9 @@ GeDynElem *GeDyn::create_action1_element( int mask, int instance)
case
ge_mActionType1_CatchSignal
:
e
=
(
GeDynElem
*
)
new
GeCatchSignal
(
this
);
break
;
case
ge_mActionType1_EmitSignal
:
e
=
(
GeDynElem
*
)
new
GeEmitSignal
(
this
);
break
;
default:
;
}
return
e
;
...
...
@@ -1672,6 +1678,9 @@ GeDynElem *GeDyn::copy_element( GeDynElem& x)
case
ge_mActionType1_CatchSignal
:
e
=
(
GeDynElem
*
)
new
GeCatchSignal
((
GeCatchSignal
&
)
x
);
break
;
case
ge_mActionType1_EmitSignal
:
e
=
(
GeDynElem
*
)
new
GeEmitSignal
((
GeEmitSignal
&
)
x
);
break
;
default:
;
}
}
...
...
@@ -18960,6 +18969,103 @@ int GeCatchSignal::export_java( grow_tObject object, ofstream& fp, bool first, c
return
1
;
}
void
GeEmitSignal
::
get_attributes
(
attr_sItem
*
attrinfo
,
int
*
item_count
)
{
int
i
=
*
item_count
;
strcpy
(
attrinfo
[
i
].
name
,
"EmitSignal.SignalName"
);
attrinfo
[
i
].
value
=
signal_name
;
attrinfo
[
i
].
type
=
glow_eType_String
;
attrinfo
[
i
++
].
size
=
sizeof
(
signal_name
);
strcpy
(
attrinfo
[
i
].
name
,
"EmitSignal.Global"
);
attrinfo
[
i
].
value
=
&
global
;
attrinfo
[
i
].
type
=
glow_eType_Int
;
attrinfo
[
i
++
].
size
=
sizeof
(
global
);
dyn
->
display_access
=
true
;
*
item_count
=
i
;
}
void
GeEmitSignal
::
save
(
ofstream
&
fp
)
{
fp
<<
int
(
ge_eSave_EmitSignal
)
<<
endl
;
fp
<<
int
(
ge_eSave_EmitSignal_signal_name
)
<<
FSPACE
<<
signal_name
<<
endl
;
fp
<<
int
(
ge_eSave_EmitSignal_global
)
<<
FSPACE
<<
global
<<
endl
;
fp
<<
int
(
ge_eSave_End
)
<<
endl
;
}
void
GeEmitSignal
::
open
(
ifstream
&
fp
)
{
int
type
;
int
end_found
=
0
;
char
dummy
[
40
];
for
(;;)
{
if
(
!
fp
.
good
())
{
fp
.
clear
();
fp
.
getline
(
dummy
,
sizeof
(
dummy
));
printf
(
"** Read error GeEmitSignal:
\"
%d %s
\"\n
"
,
type
,
dummy
);
}
fp
>>
type
;
switch
(
type
)
{
case
ge_eSave_EmitSignal
:
break
;
case
ge_eSave_EmitSignal_signal_name
:
fp
.
get
();
fp
.
getline
(
signal_name
,
sizeof
(
signal_name
));
break
;
case
ge_eSave_EmitSignal_global
:
fp
>>
global
;
break
;
case
ge_eSave_End
:
end_found
=
1
;
break
;
default:
cout
<<
"GeEmitSignal:open syntax error"
<<
endl
;
fp
.
getline
(
dummy
,
sizeof
(
dummy
));
}
if
(
end_found
)
break
;
}
}
int
GeEmitSignal
::
action
(
grow_tObject
object
,
glow_tEvent
event
)
{
if
(
!
dyn
->
graph
->
is_authorized
(
dyn
->
access
))
return
1
;
switch
(
event
->
event
)
{
case
glow_eEvent_MB1Down
:
grow_SetClickSensitivity
(
dyn
->
graph
->
grow
->
ctx
,
glow_mSensitivity_MB1Click
);
grow_SetObjectColorInverse
(
object
,
1
);
break
;
case
glow_eEvent_MB1Up
:
grow_SetObjectColorInverse
(
object
,
0
);
break
;
case
glow_eEvent_Key_Return
:
case
glow_eEvent_MB1Click
:
{
if
(
global
)
{
pwr_tCmd
command
,
cmd
;
int
sts
;
sprintf
(
command
,
"emit signal/signalname=%s"
,
signal_name
);
dyn
->
graph
->
get_command
(
command
,
cmd
,
dyn
);
sts
=
(
dyn
->
graph
->
command_cb
)(
dyn
->
graph
->
parent_ctx
,
cmd
,
0
);
}
else
{
dyn
->
graph
->
signal_send
(
signal_name
);
}
break
;
}
default:
;
}
return
1
;
}
int
GeEmitSignal
::
export_java
(
grow_tObject
object
,
ofstream
&
fp
,
bool
first
,
char
*
var_name
)
{
return
1
;
}
...
...
xtt/lib/ge/src/ge_dyn.h
View file @
1389cbf7
...
...
@@ -198,6 +198,7 @@
ge_eDynPrio_DigSwap
,
ge_eDynPrio_DigScript
,
ge_eDynPrio_CatchSignal
,
ge_eDynPrio_EmitSignal
,
// This should always be last
ge_eDynPrio_Script
=
9998
,
...
...
@@ -283,7 +284,8 @@
ge_mActionType1_MethodToolbar
=
1
<<
22
,
ge_mActionType1_MethodPulldownMenu
=
1
<<
23
,
ge_mActionType1_Script
=
1
<<
24
,
ge_mActionType1_CatchSignal
=
1
<<
25
ge_mActionType1_CatchSignal
=
1
<<
25
,
ge_mActionType1_EmitSignal
=
1
<<
26
}
ge_mActionType1
;
typedef
enum
{
...
...
@@ -396,6 +398,7 @@
ge_eSave_MethodPulldownMenu
=
72
,
ge_eSave_Script
=
73
,
ge_eSave_CatchSignal
=
74
,
ge_eSave_EmitSignal
=
75
,
ge_eSave_End
=
99
,
ge_eSave_Dyn_dyn_type1
=
100
,
ge_eSave_Dyn_action_type1
=
101
,
...
...
@@ -790,7 +793,9 @@
ge_eSave_MethodPulldownMenu_menu_type
=
7201
,
ge_eSave_Script_script_len
=
7300
,
ge_eSave_Script_script
=
7301
,
ge_eSave_CatchSignal_signal_name
=
7400
ge_eSave_CatchSignal_signal_name
=
7400
,
ge_eSave_EmitSignal_signal_name
=
7500
,
ge_eSave_EmitSignal_global
=
7501
}
ge_eSave
;
...
...
@@ -3234,6 +3239,25 @@ class GeCatchSignal : public GeDynElem {
int
export_java
(
grow_tObject
object
,
ofstream
&
fp
,
bool
first
,
char
*
var_name
);
};
//! Emit signal.
class
GeEmitSignal
:
public
GeDynElem
{
public:
pwr_tString80
signal_name
;
int
global
;
GeEmitSignal
(
GeDyn
*
e_dyn
)
:
GeDynElem
(
e_dyn
,
ge_mDynType1_No
,
ge_mDynType2_No
,
ge_mActionType1_EmitSignal
,
ge_mActionType2_No
,
ge_eDynPrio_EmitSignal
),
global
(
0
)
{
strcpy
(
signal_name
,
""
);}
GeEmitSignal
(
const
GeEmitSignal
&
x
)
:
GeDynElem
(
x
.
dyn
,
x
.
dyn_type1
,
x
.
dyn_type2
,
x
.
action_type1
,
x
.
action_type2
,
x
.
prio
),
global
(
x
.
global
)
{
strcpy
(
signal_name
,
x
.
signal_name
);}
void
get_attributes
(
attr_sItem
*
attrinfo
,
int
*
item_count
);
void
save
(
ofstream
&
fp
);
void
open
(
ifstream
&
fp
);
int
action
(
grow_tObject
object
,
glow_tEvent
event
);
int
export_java
(
grow_tObject
object
,
ofstream
&
fp
,
bool
first
,
char
*
var_name
);
};
/*@}*/
#endif
...
...
xtt/lib/xtt/src/xtt_xnav_command.cpp
View file @
1389cbf7
...
...
@@ -259,7 +259,7 @@ static int xnav_wait_func( void *client_data,
void
*
client_flag
);
static
int
xnav_oplog_func
(
void
*
client_data
,
void
*
client_flag
);
static
int
xnav_
send
_func
(
void
*
client_data
,
static
int
xnav_
emit
_func
(
void
*
client_data
,
void
*
client_flag
);
dcli_tCmdTable
xnav_command_table
[]
=
{
...
...
@@ -452,9 +452,9 @@ dcli_tCmdTable xnav_command_table[] = {
{
"dcli_arg1"
,
"/FILE"
,
"/SPEED"
,
"/PID"
,
"/EVENT"
,
""
}
},
{
"
SEND
"
,
&
xnav_
send
_func
,
{
"dcli_arg1"
,
"/SIGNALNAME"
,
""
}
"
EMIT
"
,
&
xnav_
emit
_func
,
{
"dcli_arg1"
,
"/SIGNALNAME"
,
"
/GRAPH"
,
"/INSTANCE"
,
"
"
}
},
{
""
,}};
...
...
@@ -7748,8 +7748,8 @@ static int xnav_oplog_func(void *client_data,
return
XNAV__SUCCESS
;
}
static
int
xnav_
send_func
(
void
*
client_data
,
void
*
client_flag
)
static
int
xnav_
emit_func
(
void
*
client_data
,
void
*
client_flag
)
{
XNav
*
xnav
=
(
XNav
*
)
client_data
;
...
...
@@ -7761,17 +7761,43 @@ static int xnav_send_func(void *client_data,
if
(
cdh_NoCaseStrncmp
(
arg1_str
,
"SIGNAL"
,
strlen
(
arg1_str
))
==
0
)
{
pwr_tString80
signalname_str
;
ApplListElem
*
elem
;
char
*
instance_p
;
char
*
graph_p
;
pwr_tAName
instance_str
;
pwr_tString80
graph_str
;
void
*
appl_ctx
;
if
(
EVEN
(
dcli_get_qualifier
(
"/SIGNALNAME"
,
signalname_str
,
sizeof
(
signalname_str
))))
{
xnav
->
message
(
'E'
,
"Syntax error"
);
return
XNAV__HOLDCOMMAND
;
}
for
(
elem
=
xnav
->
appl
.
root
;
elem
;
elem
=
elem
->
next
)
{
if
(
elem
->
type
==
applist_eType_Graph
)
((
XttGe
*
)
elem
->
ctx
)
->
signal_send
(
signalname_str
);
else
if
(
elem
->
type
==
applist_eType_MultiView
)
((
XttMultiView
*
)
elem
->
ctx
)
->
signal_send
(
signalname_str
);
if
(
ODD
(
dcli_get_qualifier
(
"/GRAPH"
,
graph_str
,
sizeof
(
graph_str
))))
graph_p
=
graph_str
;
else
graph_p
=
0
;
if
(
ODD
(
dcli_get_qualifier
(
"/INSTANCE"
,
instance_str
,
sizeof
(
instance_str
))))
instance_p
=
instance_str
;
else
instance_p
=
0
;
if
(
graph_p
)
{
// Send to specified graph
if
(
xnav
->
appl
.
find
(
applist_eType_Graph
,
graph_p
,
instance_p
,
&
appl_ctx
))
((
XttGe
*
)
appl_ctx
)
->
signal_send
(
signalname_str
);
else
if
(
xnav
->
appl
.
find
(
applist_eType_MultiView
,
graph_p
,
instance_p
,
&
appl_ctx
))
((
XttMultiView
*
)
appl_ctx
)
->
signal_send
(
signalname_str
);
}
else
{
// Graph not specified, send to all
for
(
elem
=
xnav
->
appl
.
root
;
elem
;
elem
=
elem
->
next
)
{
if
(
elem
->
type
==
applist_eType_Graph
)
((
XttGe
*
)
elem
->
ctx
)
->
signal_send
(
signalname_str
);
else
if
(
elem
->
type
==
applist_eType_MultiView
)
((
XttMultiView
*
)
elem
->
ctx
)
->
signal_send
(
signalname_str
);
}
}
}
else
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment