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
c4978f69
Commit
c4978f69
authored
Jun 15, 2012
by
Claes Sjofors
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Profinet configurator, sorting of moduletypes and iodata length settings
parent
5964a7aa
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
234 additions
and
51 deletions
+234
-51
profibus/lib/cow/gtk/cow_pn_gsdml_attr_gtk.cpp
profibus/lib/cow/gtk/cow_pn_gsdml_attr_gtk.cpp
+46
-0
profibus/lib/cow/gtk/cow_pn_gsdml_attr_gtk.h
profibus/lib/cow/gtk/cow_pn_gsdml_attr_gtk.h
+3
-0
profibus/lib/cow/src/cow_pn_gsdml_attr.cpp
profibus/lib/cow/src/cow_pn_gsdml_attr.cpp
+5
-0
profibus/lib/cow/src/cow_pn_gsdml_attr.h
profibus/lib/cow/src/cow_pn_gsdml_attr.h
+7
-0
profibus/lib/cow/src/cow_pn_gsdml_attrnav.cpp
profibus/lib/cow/src/cow_pn_gsdml_attrnav.cpp
+79
-16
profibus/lib/cow/src/cow_pn_gsdml_attrnav.h
profibus/lib/cow/src/cow_pn_gsdml_attrnav.h
+43
-35
xtt/lib/flow/src/flow_array.cpp
xtt/lib/flow/src/flow_array.cpp
+40
-0
xtt/lib/flow/src/flow_array.h
xtt/lib/flow/src/flow_array.h
+1
-0
xtt/lib/flow/src/flow_browapi.cpp
xtt/lib/flow/src/flow_browapi.cpp
+6
-0
xtt/lib/flow/src/flow_browapi.h
xtt/lib/flow/src/flow_browapi.h
+2
-0
xtt/lib/flow/src/flow_browctx.h
xtt/lib/flow/src/flow_browctx.h
+2
-0
No files found.
profibus/lib/cow/gtk/cow_pn_gsdml_attr_gtk.cpp
View file @
c4978f69
...
@@ -137,6 +137,27 @@ void GsdmlAttrGtk::activate_change_value( GtkWidget *w, gpointer data)
...
@@ -137,6 +137,27 @@ void GsdmlAttrGtk::activate_change_value( GtkWidget *w, gpointer data)
attr
->
change_value
();
attr
->
change_value
();
}
}
void
GsdmlAttrGtk
::
activate_ordermoduletype_default
(
GtkWidget
*
w
,
gpointer
data
)
{
GsdmlAttrGtk
*
attr
=
(
GsdmlAttrGtk
*
)
data
;
attr
->
activate_ordermoduletype
(
attr_eOrderModuleType_Default
);
}
void
GsdmlAttrGtk
::
activate_ordermoduletype_name
(
GtkWidget
*
w
,
gpointer
data
)
{
GsdmlAttrGtk
*
attr
=
(
GsdmlAttrGtk
*
)
data
;
attr
->
activate_ordermoduletype
(
attr_eOrderModuleType_Name
);
}
void
GsdmlAttrGtk
::
activate_ordermoduletype_number
(
GtkWidget
*
w
,
gpointer
data
)
{
GsdmlAttrGtk
*
attr
=
(
GsdmlAttrGtk
*
)
data
;
attr
->
activate_ordermoduletype
(
attr_eOrderModuleType_Number
);
}
void
GsdmlAttrGtk
::
activate_exit
(
GtkWidget
*
w
,
gpointer
data
)
void
GsdmlAttrGtk
::
activate_exit
(
GtkWidget
*
w
,
gpointer
data
)
{
{
GsdmlAttr
*
attr
=
(
GsdmlAttr
*
)
data
;
GsdmlAttr
*
attr
=
(
GsdmlAttr
*
)
data
;
...
@@ -408,8 +429,33 @@ GsdmlAttrGtk::GsdmlAttrGtk( GtkWidget *a_parent_wid,
...
@@ -408,8 +429,33 @@ GsdmlAttrGtk::GsdmlAttrGtk( GtkWidget *a_parent_wid,
gtk_widget_add_accelerator
(
menubutton_changevalue
,
"activate"
,
accel_g
,
gtk_widget_add_accelerator
(
menubutton_changevalue
,
"activate"
,
accel_g
,
'q'
,
GDK_CONTROL_MASK
,
GTK_ACCEL_VISIBLE
);
'q'
,
GDK_CONTROL_MASK
,
GTK_ACCEL_VISIBLE
);
// Submenu Order module type
GSList
*
radio_group
=
NULL
;
GtkWidget
*
func_ordermoduletype_default
=
gtk_radio_menu_item_new_with_mnemonic
(
radio_group
,
"_Default"
);
radio_group
=
gtk_radio_menu_item_get_group
(
GTK_RADIO_MENU_ITEM
(
func_ordermoduletype_default
));
g_signal_connect
(
func_ordermoduletype_default
,
"activate"
,
G_CALLBACK
(
activate_ordermoduletype_default
),
this
);
GtkWidget
*
func_ordermoduletype_name
=
gtk_radio_menu_item_new_with_mnemonic
(
radio_group
,
"By _name"
);
radio_group
=
gtk_radio_menu_item_get_group
(
GTK_RADIO_MENU_ITEM
(
func_ordermoduletype_name
));
g_signal_connect
(
func_ordermoduletype_name
,
"activate"
,
G_CALLBACK
(
activate_ordermoduletype_name
),
this
);
GtkWidget
*
func_ordermoduletype_number
=
gtk_radio_menu_item_new_with_mnemonic
(
radio_group
,
"By n_umber"
);
radio_group
=
gtk_radio_menu_item_get_group
(
GTK_RADIO_MENU_ITEM
(
func_ordermoduletype_number
));
g_signal_connect
(
func_ordermoduletype_number
,
"activate"
,
G_CALLBACK
(
activate_ordermoduletype_number
),
this
);
GtkWidget
*
func_ordermoduletype
=
gtk_menu_item_new_with_mnemonic
(
"_Order ModuleType"
);
GtkMenu
*
func_ordermoduletype_menu
=
(
GtkMenu
*
)
g_object_new
(
GTK_TYPE_MENU
,
NULL
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
func_ordermoduletype_menu
),
func_ordermoduletype_default
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
func_ordermoduletype_menu
),
func_ordermoduletype_name
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
func_ordermoduletype_menu
),
func_ordermoduletype_number
);
gtk_menu_item_set_submenu
(
GTK_MENU_ITEM
(
func_ordermoduletype
),
GTK_WIDGET
(
func_ordermoduletype_menu
));
GtkMenu
*
func_menu
=
(
GtkMenu
*
)
g_object_new
(
GTK_TYPE_MENU
,
NULL
);
GtkMenu
*
func_menu
=
(
GtkMenu
*
)
g_object_new
(
GTK_TYPE_MENU
,
NULL
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
func_menu
),
menubutton_changevalue
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
func_menu
),
menubutton_changevalue
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
func_menu
),
func_ordermoduletype
);
GtkWidget
*
functions
=
gtk_menu_item_new_with_mnemonic
(
"_Functions"
);
GtkWidget
*
functions
=
gtk_menu_item_new_with_mnemonic
(
"_Functions"
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
menu_bar
),
functions
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
menu_bar
),
functions
);
...
...
profibus/lib/cow/gtk/cow_pn_gsdml_attr_gtk.h
View file @
c4978f69
...
@@ -80,6 +80,9 @@ class GsdmlAttrGtk : public GsdmlAttr {
...
@@ -80,6 +80,9 @@ class GsdmlAttrGtk : public GsdmlAttr {
static
void
gsdnkattr_message
(
void
*
attr
,
char
severity
,
char
*
message
);
static
void
gsdnkattr_message
(
void
*
attr
,
char
severity
,
char
*
message
);
static
void
gsdmlattr_change_value_cb
(
void
*
attr_ctx
);
static
void
gsdmlattr_change_value_cb
(
void
*
attr_ctx
);
static
void
activate_change_value
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_change_value
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_ordermoduletype_default
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_ordermoduletype_name
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_ordermoduletype_number
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_exit
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_exit
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_help
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_help
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_copy
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_copy
(
GtkWidget
*
w
,
gpointer
data
);
...
...
profibus/lib/cow/src/cow_pn_gsdml_attr.cpp
View file @
c4978f69
...
@@ -91,6 +91,11 @@ void GsdmlAttr::activate_exit()
...
@@ -91,6 +91,11 @@ void GsdmlAttr::activate_exit()
delete
this
;
delete
this
;
}
}
void
GsdmlAttr
::
activate_ordermoduletype
(
attr_eOrderModuleType
type
)
{
attrnav
->
set_order_moduletype
(
type
);
}
void
GsdmlAttr
::
activate_help
()
void
GsdmlAttr
::
activate_help
()
{
{
int
sts
;
int
sts
;
...
...
profibus/lib/cow/src/cow_pn_gsdml_attr.h
View file @
c4978f69
...
@@ -54,6 +54,12 @@ typedef struct {
...
@@ -54,6 +54,12 @@ typedef struct {
int
mask
;
int
mask
;
}
attr_sItem
;
}
attr_sItem
;
typedef
enum
{
attr_eOrderModuleType_Default
,
attr_eOrderModuleType_Name
,
attr_eOrderModuleType_Number
}
attr_eOrderModuleType
;
class
GsdmlAttrNav
;
class
GsdmlAttrNav
;
class
CoWow
;
class
CoWow
;
...
@@ -87,6 +93,7 @@ class GsdmlAttr {
...
@@ -87,6 +93,7 @@ class GsdmlAttr {
virtual
void
set_prompt
(
const
char
*
prompt
)
{}
virtual
void
set_prompt
(
const
char
*
prompt
)
{}
virtual
void
change_value
()
{}
virtual
void
change_value
()
{}
void
activate_ordermoduletype
(
attr_eOrderModuleType
type
);
void
activate_exit
();
void
activate_exit
();
void
activate_help
();
void
activate_help
();
void
activate_copy
();
void
activate_copy
();
...
...
profibus/lib/cow/src/cow_pn_gsdml_attrnav.cpp
View file @
c4978f69
...
@@ -469,7 +469,8 @@ GsdmlAttrNav::GsdmlAttrNav(
...
@@ -469,7 +469,8 @@ GsdmlAttrNav::GsdmlAttrNav(
parent_ctx
(
xn_parent_ctx
),
parent_ctx
(
xn_parent_ctx
),
gsdml
(
xn_gsdml
),
edit_mode
(
xn_edit_mode
),
trace_started
(
0
),
gsdml
(
xn_gsdml
),
edit_mode
(
xn_edit_mode
),
trace_started
(
0
),
message_cb
(
0
),
change_value_cb
(
0
),
device_num
(
0
),
device_item
(
0
),
message_cb
(
0
),
change_value_cb
(
0
),
device_num
(
0
),
device_item
(
0
),
device_confirm_active
(
0
),
device_read
(
0
),
viewio
(
0
),
time_ratio
(
1
),
send_clock
(
32
),
phase
(
1
)
device_confirm_active
(
0
),
device_read
(
0
),
viewio
(
0
),
time_ratio
(
1
),
send_clock
(
32
),
phase
(
1
),
order_moduletype
(
attr_eOrderModuleType_Default
)
{
{
strcpy
(
name
,
xn_name
);
strcpy
(
name
,
xn_name
);
...
@@ -1712,9 +1713,8 @@ int GsdmlAttrNav::save( const char *filename)
...
@@ -1712,9 +1713,8 @@ int GsdmlAttrNav::save( const char *filename)
for
(
unsigned
int
j
=
0
;
j
<
dev_data
.
slot_data
[
i
]
->
subslot_data
.
size
();
j
++
)
{
for
(
unsigned
int
j
=
0
;
j
<
dev_data
.
slot_data
[
i
]
->
subslot_data
.
size
();
j
++
)
{
GsdmlSubslotData
*
ssd
=
dev_data
.
slot_data
[
i
]
->
subslot_data
[
j
];
GsdmlSubslotData
*
ssd
=
dev_data
.
slot_data
[
i
]
->
subslot_data
[
j
];
unsigned
int
io_input_length
=
0
;
ssd
->
io_input_length
=
0
;
unsigned
int
io_output_length
=
0
;
ssd
->
io_output_length
=
0
;
gsdml_VirtualSubmoduleItem
*
vsd
=
0
;
gsdml_VirtualSubmoduleItem
*
vsd
=
0
;
if
(
ssd
->
submodule_enum_number
)
{
if
(
ssd
->
submodule_enum_number
)
{
...
@@ -1760,8 +1760,12 @@ int GsdmlAttrNav::save( const char *filename)
...
@@ -1760,8 +1760,12 @@ int GsdmlAttrNav::save( const char *filename)
sts
=
gsdml
->
get_datavalue_length
(
datatype
,
di
->
Body
.
Length
,
&
len
);
sts
=
gsdml
->
get_datavalue_length
(
datatype
,
di
->
Body
.
Length
,
&
len
);
if
(
EVEN
(
sts
))
printf
(
"GSDML-Error, Datatype %s not yet implemented
\n
"
,
di
->
Body
.
DataType
);
if
(
EVEN
(
sts
))
printf
(
"GSDML-Error, Datatype %s not yet implemented
\n
"
,
di
->
Body
.
DataType
);
ssd
->
io_input_length
+=
len
;
io_input_length
+=
len
;
}
}
if
(
ssd
->
io_input_length
==
0
)
ssd
->
io_input_length
=
io_input_length
;
else
if
(
ssd
->
io_input_length
>
io_input_length
)
ssd
->
io_input_length
=
io_input_length
;
}
}
if
(
vsd
->
IOData
->
Output
)
{
if
(
vsd
->
IOData
->
Output
)
{
for
(
unsigned
k
=
0
;
k
<
vsd
->
IOData
->
Output
->
DataItem
.
size
();
k
++
)
{
for
(
unsigned
k
=
0
;
k
<
vsd
->
IOData
->
Output
->
DataItem
.
size
();
k
++
)
{
...
@@ -1775,8 +1779,12 @@ int GsdmlAttrNav::save( const char *filename)
...
@@ -1775,8 +1779,12 @@ int GsdmlAttrNav::save( const char *filename)
sts
=
gsdml
->
get_datavalue_length
(
datatype
,
di
->
Body
.
Length
,
&
len
);
sts
=
gsdml
->
get_datavalue_length
(
datatype
,
di
->
Body
.
Length
,
&
len
);
if
(
EVEN
(
sts
))
printf
(
"GSDML-Error, Datatype %s not yet implemented
\n
"
,
di
->
Body
.
DataType
);
if
(
EVEN
(
sts
))
printf
(
"GSDML-Error, Datatype %s not yet implemented
\n
"
,
di
->
Body
.
DataType
);
ssd
->
io_output_length
+=
len
;
io_output_length
+=
len
;
}
}
if
(
ssd
->
io_output_length
==
0
)
ssd
->
io_output_length
=
io_output_length
;
else
if
(
ssd
->
io_output_length
>
io_output_length
)
ssd
->
io_output_length
=
io_output_length
;
}
}
}
}
}
}
...
@@ -2097,6 +2105,7 @@ ItemPnEnumValueMType::ItemPnEnumValueMType( GsdmlAttrNav *attrnav, const char *i
...
@@ -2097,6 +2105,7 @@ ItemPnEnumValueMType::ItemPnEnumValueMType( GsdmlAttrNav *attrnav, const char *i
type
=
attrnav_eItemType_PnEnumValueMType
;
type
=
attrnav_eItemType_PnEnumValueMType
;
strcpy
(
name
,
item_name
);
strcpy
(
name
,
item_name
);
strcpy
(
number
,
item_number
);
brow_CreateNode
(
attrnav
->
brow
->
ctx
,
item_name
,
attrnav
->
brow
->
nc_enum_mtype
,
brow_CreateNode
(
attrnav
->
brow
->
ctx
,
item_name
,
attrnav
->
brow
->
nc_enum_mtype
,
dest
,
dest_code
,
(
void
*
)
this
,
1
,
&
node
);
dest
,
dest_code
,
(
void
*
)
this
,
1
,
&
node
);
...
@@ -2336,7 +2345,7 @@ int ItemPnSlot::open_children( GsdmlAttrNav *attrnav, double x, double y)
...
@@ -2336,7 +2345,7 @@ int ItemPnSlot::open_children( GsdmlAttrNav *attrnav, double x, double y)
}
}
new
ItemPnSubslot
(
attrnav
,
subslot_name
,
ssd
,
new
ItemPnSubslot
(
attrnav
,
subslot_name
,
ssd
,
mi
->
VirtualSubmoduleList
->
VirtualSubmoduleItem
[
0
],
mi
->
VirtualSubmoduleList
->
VirtualSubmoduleItem
[
0
],
slotdata
->
slot_idx
,
node
,
flow_eDest_IntoLast
);
node
,
flow_eDest_IntoLast
);
}
}
...
@@ -2373,7 +2382,7 @@ int ItemPnSlot::open_children( GsdmlAttrNav *attrnav, double x, double y)
...
@@ -2373,7 +2382,7 @@ int ItemPnSlot::open_children( GsdmlAttrNav *attrnav, double x, double y)
}
}
new
ItemPnSubslot
(
attrnav
,
subslot_name
,
ssd
,
new
ItemPnSubslot
(
attrnav
,
subslot_name
,
ssd
,
mi
->
VirtualSubmoduleList
->
VirtualSubmoduleItem
[
i
],
mi
->
VirtualSubmoduleList
->
VirtualSubmoduleItem
[
i
],
slotdata
->
slot_idx
,
node
,
flow_eDest_IntoLast
);
node
,
flow_eDest_IntoLast
);
subslot_index
++
;
subslot_index
++
;
}
}
...
@@ -2462,7 +2471,7 @@ int ItemPnSlot::open_children( GsdmlAttrNav *attrnav, double x, double y)
...
@@ -2462,7 +2471,7 @@ int ItemPnSlot::open_children( GsdmlAttrNav *attrnav, double x, double y)
}
}
}
}
new
ItemPnSubslot
(
attrnav
,
subslot_name
,
ssd
,
fixed_si
,
new
ItemPnSubslot
(
attrnav
,
subslot_name
,
ssd
,
fixed_si
,
slotdata
->
slot_idx
,
node
,
flow_eDest_IntoLast
);
node
,
flow_eDest_IntoLast
);
subslot_index
++
;
subslot_index
++
;
}
}
...
@@ -2546,9 +2555,9 @@ int ItemPnSlot::scan( GsdmlAttrNav *attrnav, void *p)
...
@@ -2546,9 +2555,9 @@ int ItemPnSlot::scan( GsdmlAttrNav *attrnav, void *p)
ItemPnSubslot
::
ItemPnSubslot
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
ItemPnSubslot
::
ItemPnSubslot
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
GsdmlSubslotData
*
item_subslotdata
,
GsdmlSubslotData
*
item_subslotdata
,
gsdml_VirtualSubmoduleItem
*
item_virtualsubmodule
,
gsdml_VirtualSubmoduleItem
*
item_virtualsubmodule
,
int
item_slot_idx
,
brow_tNode
dest
,
flow_eDest
dest_code
)
:
brow_tNode
dest
,
flow_eDest
dest_code
)
:
subslotdata
(
item_subslotdata
),
virtualsubmodule
(
item_virtualsubmodule
)
subslotdata
(
item_subslotdata
),
virtualsubmodule
(
item_virtualsubmodule
)
,
slot_idx
(
item_slot_idx
)
{
{
type
=
attrnav_eItemType_PnSubslot
;
type
=
attrnav_eItemType_PnSubslot
;
...
@@ -2616,7 +2625,7 @@ int ItemPnSubslot::open_children( GsdmlAttrNav *attrnav, double x, double y)
...
@@ -2616,7 +2625,7 @@ int ItemPnSubslot::open_children( GsdmlAttrNav *attrnav, double x, double y)
}
}
if
(
attrnav
->
viewio
&&
virtualsubmodule
->
IOData
)
{
if
(
attrnav
->
viewio
&&
virtualsubmodule
->
IOData
)
{
new
ItemPnIOData
(
attrnav
,
"IOData"
,
virtualsubmodule
->
IOData
,
new
ItemPnIOData
(
attrnav
,
"IOData"
,
virtualsubmodule
->
IOData
,
subslotdata
->
subslot_idx
,
slot_idx
,
node
,
flow_eDest_IntoLast
);
node
,
flow_eDest_IntoLast
);
}
}
brow_SetOpen
(
node
,
attrnav_mOpen_Children
);
brow_SetOpen
(
node
,
attrnav_mOpen_Children
);
...
@@ -2715,7 +2724,7 @@ int ItemPnSubslotPhys::open_children( GsdmlAttrNav *attrnav, double x, double y)
...
@@ -2715,7 +2724,7 @@ int ItemPnSubslotPhys::open_children( GsdmlAttrNav *attrnav, double x, double y)
}
}
if
(
attrnav
->
viewio
&&
subm
&&
subm
->
IOData
)
{
if
(
attrnav
->
viewio
&&
subm
&&
subm
->
IOData
)
{
new
ItemPnIOData
(
attrnav
,
"IOData"
,
subm
->
IOData
,
new
ItemPnIOData
(
attrnav
,
"IOData"
,
subm
->
IOData
,
subslotdata
->
subslot_idx
,
slot_idx
,
node
,
flow_eDest_IntoLast
);
node
,
flow_eDest_IntoLast
);
}
}
brow_SetOpen
(
node
,
attrnav_mOpen_Children
);
brow_SetOpen
(
node
,
attrnav_mOpen_Children
);
...
@@ -2807,7 +2816,7 @@ int ItemPnDAP::open_children( GsdmlAttrNav *attrnav, double x, double y)
...
@@ -2807,7 +2816,7 @@ int ItemPnDAP::open_children( GsdmlAttrNav *attrnav, double x, double y)
}
}
new
ItemPnSubslot
(
attrnav
,
subslot_name
,
ssd
,
new
ItemPnSubslot
(
attrnav
,
subslot_name
,
ssd
,
mi
->
VirtualSubmoduleList
->
VirtualSubmoduleItem
[
0
],
mi
->
VirtualSubmoduleList
->
VirtualSubmoduleItem
[
0
],
slotdata
->
slot_idx
,
node
,
flow_eDest_IntoLast
);
node
,
flow_eDest_IntoLast
);
subslot_index
++
;
subslot_index
++
;
...
@@ -2844,7 +2853,7 @@ int ItemPnDAP::open_children( GsdmlAttrNav *attrnav, double x, double y)
...
@@ -2844,7 +2853,7 @@ int ItemPnDAP::open_children( GsdmlAttrNav *attrnav, double x, double y)
}
}
new
ItemPnSubslot
(
attrnav
,
subslot_name
,
ssd
,
new
ItemPnSubslot
(
attrnav
,
subslot_name
,
ssd
,
mi
->
VirtualSubmoduleList
->
VirtualSubmoduleItem
[
i
],
mi
->
VirtualSubmoduleList
->
VirtualSubmoduleItem
[
i
],
slotdata
->
slot_idx
,
node
,
flow_eDest_IntoLast
);
node
,
flow_eDest_IntoLast
);
subslot_index
++
;
subslot_index
++
;
}
}
...
@@ -3404,6 +3413,32 @@ ItemPnModuleType::ItemPnModuleType( GsdmlAttrNav *attrnav, const char *item_name
...
@@ -3404,6 +3413,32 @@ ItemPnModuleType::ItemPnModuleType( GsdmlAttrNav *attrnav, const char *item_name
brow_SetTraceAttr
(
node
,
name
,
""
,
flow_eTraceType_User
);
brow_SetTraceAttr
(
node
,
name
,
""
,
flow_eTraceType_User
);
}
}
static
int
gsdml_comp_nodes_name
(
const
void
*
n1
,
const
void
*
n2
)
{
ItemPnEnumValueMType
*
item1
;
ItemPnEnumValueMType
*
item2
;
brow_tObject
o1
=
*
(
brow_tObject
*
)
n1
;
brow_tObject
o2
=
*
(
brow_tObject
*
)
n2
;
brow_GetUserData
(
o1
,
(
void
**
)
&
item1
);
brow_GetUserData
(
o2
,
(
void
**
)
&
item2
);
return
strcmp
(
item1
->
name
,
item2
->
name
);
}
static
int
gsdml_comp_nodes_number
(
const
void
*
n1
,
const
void
*
n2
)
{
ItemPnEnumValueMType
*
item1
;
ItemPnEnumValueMType
*
item2
;
brow_tObject
o1
=
*
(
brow_tObject
*
)
n1
;
brow_tObject
o2
=
*
(
brow_tObject
*
)
n2
;
brow_GetUserData
(
o1
,
(
void
**
)
&
item1
);
brow_GetUserData
(
o2
,
(
void
**
)
&
item2
);
return
strcmp
(
item1
->
number
,
item2
->
number
);
}
int
ItemPnModuleType
::
open_children
(
GsdmlAttrNav
*
attrnav
,
double
x
,
double
y
)
int
ItemPnModuleType
::
open_children
(
GsdmlAttrNav
*
attrnav
,
double
x
,
double
y
)
{
{
double
node_x
,
node_y
;
double
node_x
,
node_y
;
...
@@ -3460,6 +3495,18 @@ int ItemPnModuleType::open_children( GsdmlAttrNav *attrnav, double x, double y)
...
@@ -3460,6 +3495,18 @@ int ItemPnModuleType::open_children( GsdmlAttrNav *attrnav, double x, double y)
}
}
idx
++
;
idx
++
;
}
}
// Sort
switch
(
attrnav
->
order_moduletype
)
{
case
attr_eOrderModuleType_Name
:
brow_SortChildren
(
attrnav
->
brow
->
ctx
,
node
,
1
,
gsdml_comp_nodes_name
);
break
;
case
attr_eOrderModuleType_Number
:
brow_SortChildren
(
attrnav
->
brow
->
ctx
,
node
,
1
,
gsdml_comp_nodes_number
);
break
;
default:
;
}
brow_SetOpen
(
node
,
attrnav_mOpen_Children
);
brow_SetOpen
(
node
,
attrnav_mOpen_Children
);
brow_SetAnnotPixmap
(
node
,
0
,
attrnav
->
brow
->
pixmap_openmap
);
brow_SetAnnotPixmap
(
node
,
0
,
attrnav
->
brow
->
pixmap_openmap
);
brow_ResetNodraw
(
attrnav
->
brow
->
ctx
);
brow_ResetNodraw
(
attrnav
->
brow
->
ctx
);
...
@@ -4334,8 +4381,9 @@ int ItemPnModuleClass::scan( GsdmlAttrNav *attrnav, void *p)
...
@@ -4334,8 +4381,9 @@ int ItemPnModuleClass::scan( GsdmlAttrNav *attrnav, void *p)
ItemPnIOData
::
ItemPnIOData
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
ItemPnIOData
::
ItemPnIOData
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
gsdml_IOData
*
item_iodata
,
gsdml_IOData
*
item_iodata
,
int
item_subslot_idx
,
int
item_slot_idx
,
brow_tNode
dest
,
flow_eDest
dest_code
)
:
brow_tNode
dest
,
flow_eDest
dest_code
)
:
iodata
(
item_iodata
)
iodata
(
item_iodata
)
,
subslot_idx
(
item_subslot_idx
),
slot_idx
(
item_slot_idx
)
{
{
type
=
attrnav_eItemType_PnIOData
;
type
=
attrnav_eItemType_PnIOData
;
...
@@ -4399,6 +4447,21 @@ int ItemPnIOData::open_children( GsdmlAttrNav *attrnav, double x, double y)
...
@@ -4399,6 +4447,21 @@ int ItemPnIOData::open_children( GsdmlAttrNav *attrnav, double x, double y)
node
,
flow_eDest_IntoLast
);
node
,
flow_eDest_IntoLast
);
}
}
GsdmlSubslotData
*
ssd
=
attrnav
->
dev_data
.
slot_data
[
slot_idx
]
->
subslot_data
[
subslot_idx
];
if
(
iodata
->
Input
)
{
void
*
p
=
(
void
*
)
&
ssd
->
io_input_length
;
new
ItemPnBase
(
attrnav
,
"InputLength"
,
"LocalGsdmlAttr"
,
pwr_eType_UInt32
,
sizeof
(
ssd
->
io_input_length
),
0
,
0
,
p
,
0
,
node
,
flow_eDest_IntoLast
);
}
if
(
iodata
->
Output
)
{
void
*
p
=
(
void
*
)
&
ssd
->
io_output_length
;
new
ItemPnBase
(
attrnav
,
"OutputLength"
,
"LocalGsdmlAttr"
,
pwr_eType_UInt32
,
sizeof
(
ssd
->
io_output_length
),
0
,
0
,
p
,
0
,
node
,
flow_eDest_IntoLast
);
}
brow_SetOpen
(
node
,
attrnav_mOpen_Children
);
brow_SetOpen
(
node
,
attrnav_mOpen_Children
);
brow_SetAnnotPixmap
(
node
,
0
,
attrnav
->
brow
->
pixmap_openmap
);
brow_SetAnnotPixmap
(
node
,
0
,
attrnav
->
brow
->
pixmap_openmap
);
brow_ResetNodraw
(
attrnav
->
brow
->
ctx
);
brow_ResetNodraw
(
attrnav
->
brow
->
ctx
);
...
...
profibus/lib/cow/src/cow_pn_gsdml_attrnav.h
View file @
c4978f69
...
@@ -78,41 +78,42 @@ extern "C" {
...
@@ -78,41 +78,42 @@ extern "C" {
#define pn_cModuleClassFile "$pwr_exe/pn_module_classes.dat"
#define pn_cModuleClassFile "$pwr_exe/pn_module_classes.dat"
typedef
enum
{
typedef
enum
{
attrnav_eItemType_PnBase
,
attrnav_eItemType_PnBase
,
attrnav_eItemType_PnEnumValue
,
attrnav_eItemType_PnEnumValue
,
attrnav_eItemType_PnDevice
,
attrnav_eItemType_PnDevice
,
attrnav_eItemType_PnNetwork
,
attrnav_eItemType_PnNetwork
,
attrnav_eItemType_PnDeviceInfo
,
attrnav_eItemType_PnDeviceInfo
,
attrnav_eItemType_PnDAP
,
attrnav_eItemType_PnDAP
,
attrnav_eItemType_PnInterfaceSubmodule
,
attrnav_eItemType_PnInterfaceSubmodule
,
attrnav_eItemType_PnPortSubmodule
,
attrnav_eItemType_PnPortSubmodule
,
attrnav_eItemType_PnSlot
,
attrnav_eItemType_PnSlot
,
attrnav_eItemType_PnSubslot
,
attrnav_eItemType_PnSubslot
,
attrnav_eItemType_PnSubslotPhys
,
attrnav_eItemType_PnSubslotPhys
,
attrnav_eItemType_PnModuleInfo
,
attrnav_eItemType_PnModuleInfo
,
attrnav_eItemType_PnModuleType
,
attrnav_eItemType_PnModuleType
,
attrnav_eItemType_PnSubmoduleType
,
attrnav_eItemType_PnSubmoduleType
,
attrnav_eItemType_PnParRecord
,
attrnav_eItemType_PnParRecord
,
attrnav_eItemType_PnParValue
,
attrnav_eItemType_PnParValue
,
attrnav_eItemType_PnParEnum
,
attrnav_eItemType_PnParEnum
,
attrnav_eItemType_PnParEnumBit
,
attrnav_eItemType_PnParEnumBit
,
attrnav_eItemType_PnModuleClass
,
attrnav_eItemType_PnModuleClass
,
attrnav_eItemType_PnIOData
,
attrnav_eItemType_PnIOData
,
attrnav_eItemType_PnInput
,
attrnav_eItemType_PnInput
,
attrnav_eItemType_PnOutput
,
attrnav_eItemType_PnOutput
,
attrnav_eItemType_PnDataItem
,
attrnav_eItemType_PnDataItem
,
attrnav_eItemType_PnBitDataItem
,
attrnav_eItemType_PnBitDataItem
,
attrnav_eItemType_PnEnumByteOrder
,
attrnav_eItemType_PnEnumByteOrder
,
attrnav_eItemType_PnEnumTimeRatio
,
attrnav_eItemType_PnEnumTimeRatio
,
attrnav_eItemType_PnEnumSendClock
,
attrnav_eItemType_PnEnumSendClock
,
attrnav_eItemType_PnEnumValueMType
,
attrnav_eItemType_PnEnumValueMType
,
}
attrnav_eItemType
;
}
attrnav_eItemType
;
typedef
enum
{
typedef
enum
{
attrnav_mOpen_All
=
~
0
,
attrnav_mOpen_All
=
~
0
,
attrnav_mOpen_Children
=
1
<<
0
,
attrnav_mOpen_Children
=
1
<<
0
,
attrnav_mOpen_Attributes
=
1
<<
1
attrnav_mOpen_Attributes
=
1
<<
1
}
attrnav_mOpen
;
}
attrnav_mOpen
;
class
ItemPn
;
class
ItemPn
;
...
@@ -173,6 +174,7 @@ class GsdmlAttrNav {
...
@@ -173,6 +174,7 @@ class GsdmlAttrNav {
unsigned
int
time_ratio
;
unsigned
int
time_ratio
;
unsigned
int
send_clock
;
unsigned
int
send_clock
;
unsigned
int
phase
;
unsigned
int
phase
;
attr_eOrderModuleType
order_moduletype
;
GsdmlAttrNav
(
GsdmlAttrNav
(
void
*
xn_parent_ctx
,
void
*
xn_parent_ctx
,
...
@@ -206,6 +208,7 @@ class GsdmlAttrNav {
...
@@ -206,6 +208,7 @@ class GsdmlAttrNav {
void
set_viewio
(
int
set
)
{
viewio
=
set
;}
void
set_viewio
(
int
set
)
{
viewio
=
set
;}
int
search_class
(
const
char
*
filename
,
const
char
*
model
,
int
search_class
(
const
char
*
filename
,
const
char
*
model
,
const
char
*
module
,
char
*
mclass
);
const
char
*
module
,
char
*
mclass
);
void
set_order_moduletype
(
attr_eOrderModuleType
type
)
{
order_moduletype
=
type
;}
static
void
trace_scan
(
void
*
data
);
static
void
trace_scan
(
void
*
data
);
static
int
trace_scan_bc
(
brow_tObject
object
,
void
*
p
);
static
int
trace_scan_bc
(
brow_tObject
object
,
void
*
p
);
...
@@ -289,6 +292,7 @@ class ItemPnEnumValueMType : public ItemPn {
...
@@ -289,6 +292,7 @@ class ItemPnEnumValueMType : public ItemPn {
void
*
value_p
;
void
*
value_p
;
int
old_value
;
int
old_value
;
int
first_scan
;
int
first_scan
;
char
number
[
80
];
int
scan
(
GsdmlAttrNav
*
attrnav
,
void
*
p
);
int
scan
(
GsdmlAttrNav
*
attrnav
,
void
*
p
);
};
};
...
@@ -326,12 +330,13 @@ class ItemPnSlot : public ItemPn {
...
@@ -326,12 +330,13 @@ class ItemPnSlot : public ItemPn {
class
ItemPnSubslot
:
public
ItemPn
{
class
ItemPnSubslot
:
public
ItemPn
{
public:
public:
ItemPnSubslot
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
GsdmlSubslotData
*
item_subslotdata
,
ItemPnSubslot
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
GsdmlSubslotData
*
item_subslotdata
,
gsdml_VirtualSubmoduleItem
*
item_virtualsubmodule
,
gsdml_VirtualSubmoduleItem
*
item_virtualsubmodule
,
int
item_slot_idx
,
brow_tNode
dest
,
flow_eDest
dest_code
);
brow_tNode
dest
,
flow_eDest
dest_code
);
virtual
~
ItemPnSubslot
()
{}
virtual
~
ItemPnSubslot
()
{}
GsdmlSubslotData
*
subslotdata
;
GsdmlSubslotData
*
subslotdata
;
gsdml_VirtualSubmoduleItem
*
virtualsubmodule
;
gsdml_VirtualSubmoduleItem
*
virtualsubmodule
;
int
slot_idx
;
int
open_children
(
GsdmlAttrNav
*
attrnav
,
double
x
,
double
y
);
int
open_children
(
GsdmlAttrNav
*
attrnav
,
double
x
,
double
y
);
};
};
...
@@ -553,10 +558,13 @@ class ItemPnParEnumBit : public ItemPn {
...
@@ -553,10 +558,13 @@ class ItemPnParEnumBit : public ItemPn {
class
ItemPnIOData
:
public
ItemPn
{
class
ItemPnIOData
:
public
ItemPn
{
public:
public:
ItemPnIOData
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
gsdml_IOData
*
item_iodata
,
ItemPnIOData
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
gsdml_IOData
*
item_iodata
,
brow_tNode
dest
,
flow_eDest
dest_code
);
int
item_subslot_idx
,
int
item_slot_idx
,
brow_tNode
dest
,
flow_eDest
dest_code
);
virtual
~
ItemPnIOData
()
{}
virtual
~
ItemPnIOData
()
{}
gsdml_IOData
*
iodata
;
gsdml_IOData
*
iodata
;
int
subslot_idx
;
int
slot_idx
;
int
open_children
(
GsdmlAttrNav
*
attrnav
,
double
x
,
double
y
);
int
open_children
(
GsdmlAttrNav
*
attrnav
,
double
x
,
double
y
);
};
};
...
...
xtt/lib/flow/src/flow_array.cpp
View file @
c4978f69
...
@@ -1154,3 +1154,43 @@ int FlowArray::move_down( FlowArrayElem *element)
...
@@ -1154,3 +1154,43 @@ int FlowArray::move_down( FlowArrayElem *element)
}
}
return
FLOW__NOELEM
;
return
FLOW__NOELEM
;
}
}
int
FlowArray
::
sort_children
(
FlowArrayElem
*
element
,
int
offset
,
int
(
*
comp
)(
const
void
*
,
const
void
*
))
{
// Count children
int
i
;
int
idx
;
int
last_idx
;
int
found
;
int
level
;
found
=
0
;
for
(
i
=
0
;
i
<
a_size
;
i
++
)
{
if
(
*
(
a
+
i
)
==
element
)
{
idx
=
i
;
found
=
1
;
break
;
}
}
if
(
!
found
)
return
FLOW__NOELEM
;
if
(
idx
==
a_size
-
1
)
return
FLOW__NOCHILD
;
// Return next element of higher level
level
=
((
FlowNode
*
)
a
[
idx
])
->
get_level
();
found
=
0
;
for
(
i
=
idx
+
1
+
offset
;
i
<
a_size
;
i
++
)
{
if
(((
FlowNode
*
)
a
[
i
])
->
get_level
()
<=
level
)
break
;
found
=
1
;
last_idx
=
i
;
}
if
(
!
found
)
return
FLOW__NOCHILD
;
qsort
(
&
a
[
idx
+
1
+
offset
],
last_idx
-
(
idx
+
1
)
+
1
-
offset
,
sizeof
(
a
[
0
]),
comp
);
return
FLOW__SUCCESS
;
}
xtt/lib/flow/src/flow_array.h
View file @
c4978f69
...
@@ -110,6 +110,7 @@ class FlowArray {
...
@@ -110,6 +110,7 @@ class FlowArray {
int
get_next
(
FlowArrayElem
*
element
,
FlowArrayElem
**
next
);
int
get_next
(
FlowArrayElem
*
element
,
FlowArrayElem
**
next
);
int
move_up
(
FlowArrayElem
*
element
);
int
move_up
(
FlowArrayElem
*
element
);
int
move_down
(
FlowArrayElem
*
element
);
int
move_down
(
FlowArrayElem
*
element
);
int
sort_children
(
FlowArrayElem
*
element
,
int
offset
,
int
(
*
comp
)(
const
void
*
,
const
void
*
));
~
FlowArray
();
~
FlowArray
();
friend
class
FlowNodeClass
;
friend
class
FlowNodeClass
;
friend
class
FlowCtx
;
friend
class
FlowCtx
;
...
...
xtt/lib/flow/src/flow_browapi.cpp
View file @
c4978f69
...
@@ -734,6 +734,12 @@ int brow_MoveDown( brow_tCtx ctx, brow_tObject object)
...
@@ -734,6 +734,12 @@ int brow_MoveDown( brow_tCtx ctx, brow_tObject object)
return
ctx
->
move_down
(
(
FlowArrayElem
*
)
object
);
return
ctx
->
move_down
(
(
FlowArrayElem
*
)
object
);
}
}
int
brow_SortChildren
(
brow_tCtx
ctx
,
brow_tObject
object
,
int
offset
,
int
(
*
comp
)(
const
void
*
,
const
void
*
))
{
return
ctx
->
sort_children
(
(
FlowArrayElem
*
)
object
,
offset
,
comp
);
}
int
brow_IsVisible
(
brow_tCtx
ctx
,
brow_tObject
object
,
flow_eVisible
type
)
int
brow_IsVisible
(
brow_tCtx
ctx
,
brow_tObject
object
,
flow_eVisible
type
)
{
{
return
ctx
->
is_visible
(
(
FlowArrayElem
*
)
object
,
type
);
return
ctx
->
is_visible
(
(
FlowArrayElem
*
)
object
,
type
);
...
...
xtt/lib/flow/src/flow_browapi.h
View file @
c4978f69
...
@@ -244,6 +244,8 @@ int brow_GetPreviousSibling( brow_tCtx ctx, brow_tObject object,
...
@@ -244,6 +244,8 @@ int brow_GetPreviousSibling( brow_tCtx ctx, brow_tObject object,
brow_tObject
*
sibling
);
brow_tObject
*
sibling
);
int
brow_MoveUp
(
brow_tCtx
ctx
,
brow_tObject
object
);
int
brow_MoveUp
(
brow_tCtx
ctx
,
brow_tObject
object
);
int
brow_MoveDown
(
brow_tCtx
ctx
,
brow_tObject
object
);
int
brow_MoveDown
(
brow_tCtx
ctx
,
brow_tObject
object
);
int
brow_SortChildren
(
brow_tCtx
ctx
,
brow_tObject
object
,
int
offset
,
int
(
*
comp
)(
const
void
*
,
const
void
*
));
int
brow_IsVisible
(
brow_tCtx
ctx
,
brow_tObject
object
,
flow_eVisible
type
);
int
brow_IsVisible
(
brow_tCtx
ctx
,
brow_tObject
object
,
flow_eVisible
type
);
int
brow_GetFirstVisible
(
brow_tCtx
ctx
,
brow_tObject
*
object
);
int
brow_GetFirstVisible
(
brow_tCtx
ctx
,
brow_tObject
*
object
);
int
brow_GetLastVisible
(
brow_tCtx
ctx
,
brow_tObject
*
object
);
int
brow_GetLastVisible
(
brow_tCtx
ctx
,
brow_tObject
*
object
);
...
...
xtt/lib/flow/src/flow_browctx.h
View file @
c4978f69
...
@@ -82,6 +82,8 @@ class BrowCtx : public FlowCtx {
...
@@ -82,6 +82,8 @@ class BrowCtx : public FlowCtx {
{
return
a
.
move_up
(
element
);};
{
return
a
.
move_up
(
element
);};
int
move_down
(
FlowArrayElem
*
element
)
int
move_down
(
FlowArrayElem
*
element
)
{
return
a
.
move_down
(
element
);};
{
return
a
.
move_down
(
element
);};
int
sort_children
(
FlowArrayElem
*
element
,
int
offset
,
int
(
*
comp
)(
const
void
*
,
const
void
*
))
{
return
a
.
sort_children
(
element
,
offset
,
comp
);
}
int
is_visible
(
FlowArrayElem
*
element
,
flow_eVisible
type
);
int
is_visible
(
FlowArrayElem
*
element
,
flow_eVisible
type
);
int
get_first_visible
(
FlowArrayElem
**
element
);
int
get_first_visible
(
FlowArrayElem
**
element
);
int
get_last_visible
(
FlowArrayElem
**
element
);
int
get_last_visible
(
FlowArrayElem
**
element
);
...
...
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