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
0aec4e2a
Commit
0aec4e2a
authored
Jan 26, 2018
by
Claes Sjofors
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master'
parents
9b9e3bcc
1d40dca2
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
200 additions
and
47 deletions
+200
-47
profibus/lib/cow/gtk/cow_pn_gsdml_attr_gtk.cpp
profibus/lib/cow/gtk/cow_pn_gsdml_attr_gtk.cpp
+28
-1
profibus/lib/cow/gtk/cow_pn_gsdml_attr_gtk.h
profibus/lib/cow/gtk/cow_pn_gsdml_attr_gtk.h
+8
-2
profibus/lib/cow/gtk/cow_pn_gsdml_attrnav_gtk.cpp
profibus/lib/cow/gtk/cow_pn_gsdml_attrnav_gtk.cpp
+45
-1
profibus/lib/cow/gtk/cow_pn_gsdml_attrnav_gtk.h
profibus/lib/cow/gtk/cow_pn_gsdml_attrnav_gtk.h
+2
-1
profibus/lib/cow/src/cow_pn_gsdml.cpp
profibus/lib/cow/src/cow_pn_gsdml.cpp
+39
-10
profibus/lib/cow/src/cow_pn_gsdml.h
profibus/lib/cow/src/cow_pn_gsdml.h
+12
-1
profibus/lib/cow/src/cow_pn_gsdml_attr.h
profibus/lib/cow/src/cow_pn_gsdml_attr.h
+2
-1
profibus/lib/cow/src/cow_pn_gsdml_attrnav.cpp
profibus/lib/cow/src/cow_pn_gsdml_attrnav.cpp
+56
-22
profibus/lib/cow/src/cow_pn_gsdml_attrnav.h
profibus/lib/cow/src/cow_pn_gsdml_attrnav.h
+8
-8
No files found.
profibus/lib/cow/gtk/cow_pn_gsdml_attr_gtk.cpp
View file @
0aec4e2a
...
@@ -66,6 +66,14 @@ void GsdmlAttrGtk::message( char severity, const char *message)
...
@@ -66,6 +66,14 @@ void GsdmlAttrGtk::message( char severity, const char *message)
gtk_label_set_text
(
GTK_LABEL
(
msg_label
),
message
);
gtk_label_set_text
(
GTK_LABEL
(
msg_label
),
message
);
}
}
void
GsdmlAttrGtk
::
attr_help_text
(
const
char
*
help_text
)
{
GtkTextBuffer
*
buffer
;
buffer
=
gtk_text_view_get_buffer
(
GTK_TEXT_VIEW
(
this
->
help_text
));
gtk_text_buffer_set_text
(
buffer
,
help_text
,
-
1
);
}
void
GsdmlAttrGtk
::
set_prompt
(
const
char
*
prompt
)
void
GsdmlAttrGtk
::
set_prompt
(
const
char
*
prompt
)
{
{
if
(
strcmp
(
prompt
,
""
)
==
0
)
{
if
(
strcmp
(
prompt
,
""
)
==
0
)
{
...
@@ -486,6 +494,24 @@ GsdmlAttrGtk::GsdmlAttrGtk( GtkWidget *a_parent_wid,
...
@@ -486,6 +494,24 @@ GsdmlAttrGtk::GsdmlAttrGtk( GtkWidget *a_parent_wid,
attrnav
->
message_cb
=
&
GsdmlAttr
::
gsdmlattr_message
;
attrnav
->
message_cb
=
&
GsdmlAttr
::
gsdmlattr_message
;
attrnav
->
change_value_cb
=
&
GsdmlAttr
::
gsdmlattr_change_value_cb
;
attrnav
->
change_value_cb
=
&
GsdmlAttr
::
gsdmlattr_change_value_cb
;
// Attribute Help Text
GtkWidget
*
help_area
=
gtk_hbox_new
(
FALSE
,
0
);
//We want scrollbars to the right in case the help text is very long
GtkWidget
*
scroll_window
=
gtk_scrolled_window_new
(
NULL
,
NULL
);
gtk_scrolled_window_set_policy
(
GTK_SCROLLED_WINDOW
(
scroll_window
),
GTK_POLICY_NEVER
,
GTK_POLICY_AUTOMATIC
);
// Set up the text view
help_text
=
gtk_text_view_new
();
gtk_text_view_set_editable
(
GTK_TEXT_VIEW
(
help_text
),
FALSE
);
gtk_text_view_set_wrap_mode
(
GTK_TEXT_VIEW
(
help_text
),
GTK_WRAP_WORD
);
gtk_widget_set_can_focus
(
help_text
,
FALSE
);
gtk_widget_set_size_request
(
help_text
,
-
1
,
100
);
//Add the text view to the container and pack it in the layout
gtk_container_add
(
GTK_CONTAINER
(
scroll_window
),
help_text
);
gtk_box_pack_start
(
GTK_BOX
(
help_area
),
scroll_window
,
TRUE
,
TRUE
,
0
);
// Status bar and value input
// Status bar and value input
GtkWidget
*
statusbar
=
gtk_hbox_new
(
FALSE
,
0
);
GtkWidget
*
statusbar
=
gtk_hbox_new
(
FALSE
,
0
);
msg_label
=
gtk_label_new
(
""
);
msg_label
=
gtk_label_new
(
""
);
...
@@ -523,6 +549,7 @@ GsdmlAttrGtk::GsdmlAttrGtk( GtkWidget *a_parent_wid,
...
@@ -523,6 +549,7 @@ GsdmlAttrGtk::GsdmlAttrGtk( GtkWidget *a_parent_wid,
gtk_box_pack_start
(
GTK_BOX
(
vbox
),
GTK_WIDGET
(
menu_bar
),
FALSE
,
FALSE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
vbox
),
GTK_WIDGET
(
menu_bar
),
FALSE
,
FALSE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
vbox
),
brow_widget
,
TRUE
,
TRUE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
vbox
),
brow_widget
,
TRUE
,
TRUE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
vbox
),
help_area
,
FALSE
,
FALSE
,
3
);
gtk_box_pack_start
(
GTK_BOX
(
vbox
),
statusbar
,
FALSE
,
FALSE
,
3
);
gtk_box_pack_start
(
GTK_BOX
(
vbox
),
statusbar
,
FALSE
,
FALSE
,
3
);
gtk_box_pack_start
(
GTK_BOX
(
vbox
),
gtk_hseparator_new
(),
FALSE
,
FALSE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
vbox
),
gtk_hseparator_new
(),
FALSE
,
FALSE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
vbox
),
hboxbuttons
,
FALSE
,
FALSE
,
5
);
gtk_box_pack_start
(
GTK_BOX
(
vbox
),
hboxbuttons
,
FALSE
,
FALSE
,
5
);
...
...
profibus/lib/cow/gtk/cow_pn_gsdml_attr_gtk.h
View file @
0aec4e2a
...
@@ -49,9 +49,9 @@ class GsdmlAttrGtk : public GsdmlAttr {
...
@@ -49,9 +49,9 @@ class GsdmlAttrGtk : public GsdmlAttr {
GtkWidget
*
form_widget
;
GtkWidget
*
form_widget
;
GtkWidget
*
toplevel
;
GtkWidget
*
toplevel
;
GtkWidget
*
msg_label
;
GtkWidget
*
msg_label
;
GtkWidget
*
help_text
;
GtkWidget
*
cmd_prompt
;
GtkWidget
*
cmd_prompt
;
GtkWidget
*
cmd_input
;
GtkWidget
*
cmd_input
;
GtkWidget
*
attrnav_form
;
GtkWidget
*
cmd_ok
;
GtkWidget
*
cmd_ok
;
GtkWidget
*
cmd_apply
;
GtkWidget
*
cmd_apply
;
GtkWidget
*
cmd_cancel
;
GtkWidget
*
cmd_cancel
;
...
@@ -74,6 +74,12 @@ class GsdmlAttrGtk : public GsdmlAttr {
...
@@ -74,6 +74,12 @@ class GsdmlAttrGtk : public GsdmlAttr {
~
GsdmlAttrGtk
();
~
GsdmlAttrGtk
();
void
message
(
char
severity
,
const
char
*
message
);
void
message
(
char
severity
,
const
char
*
message
);
/**
* @brief attr_help_text Set the help text area to display a help text
* @param help_text Help text to display
*/
void
attr_help_text
(
const
char
*
help_text
);
void
set_prompt
(
const
char
*
prompt
);
void
set_prompt
(
const
char
*
prompt
);
void
change_value
();
void
change_value
();
...
...
profibus/lib/cow/gtk/cow_pn_gsdml_attrnav_gtk.cpp
View file @
0aec4e2a
...
@@ -100,3 +100,47 @@ void GsdmlAttrNavGtk::set_inputfocus()
...
@@ -100,3 +100,47 @@ void GsdmlAttrNavGtk::set_inputfocus()
{
{
gtk_widget_grab_focus
(
brow_widget
);
gtk_widget_grab_focus
(
brow_widget
);
}
}
void
GsdmlAttrNavGtk
::
display_attr_help_text
()
{
brow_tNode
*
node_list
;
int
node_count
;
ItemPn
*
base_item
;
brow_GetSelectedNodes
(
brow
->
ctx
,
&
node_list
,
&
node_count
);
if
(
!
node_count
)
return
;
brow_GetUserData
(
node_list
[
0
],
(
void
**
)
&
base_item
);
free
(
node_list
);
switch
(
base_item
->
type
)
{
/*
* The following two item types could make use of the same info_text that the the base class does,
* but since they already contained references they were used instead...
*/
case
attrnav_eItemType_PnParValue
:
case
attrnav_eItemType_PnParEnum
:
{
ItemPnParEnum
*
item
=
(
ItemPnParEnum
*
)
base_item
;
gsdml_ValueItem
*
vi
=
0
;
if
(
item
->
value_ref
)
vi
=
(
gsdml_ValueItem
*
)
item
->
value_ref
->
Body
.
ValueItemTarget
.
p
;
//If we do have help available show it
if
(
vi
&&
vi
->
Body
.
Help
.
p
)
((
GsdmlAttrGtk
*
)
parent_ctx
)
->
attr_help_text
((
char
*
)
vi
->
Body
.
Help
.
p
);
else
((
GsdmlAttrGtk
*
)
parent_ctx
)
->
attr_help_text
(
""
);
break
;
}
default:
{
// Do we have an associated info text string to show the user some more info?
if
(
base_item
->
info_text
)
((
GsdmlAttrGtk
*
)
parent_ctx
)
->
attr_help_text
(
base_item
->
info_text
);
else
((
GsdmlAttrGtk
*
)
parent_ctx
)
->
attr_help_text
(
""
);
}
}
}
profibus/lib/cow/gtk/cow_pn_gsdml_attrnav_gtk.h
View file @
0aec4e2a
...
@@ -56,6 +56,7 @@ class GsdmlAttrNavGtk : public GsdmlAttrNav {
...
@@ -56,6 +56,7 @@ class GsdmlAttrNavGtk : public GsdmlAttrNav {
pwr_tStatus
*
status
);
pwr_tStatus
*
status
);
~
GsdmlAttrNavGtk
();
~
GsdmlAttrNavGtk
();
void
set_inputfocus
();
void
set_inputfocus
();
void
display_attr_help_text
();
GtkWidget
*
parent_wid
;
GtkWidget
*
parent_wid
;
GtkWidget
*
brow_widget
;
GtkWidget
*
brow_widget
;
...
...
profibus/lib/cow/src/cow_pn_gsdml.cpp
View file @
0aec4e2a
...
@@ -154,6 +154,8 @@ static gsdml_sTag taglist[] = {
...
@@ -154,6 +154,8 @@ static gsdml_sTag taglist[] = {
{
"RT_Class3TimingProperties"
,
gsdml_eTag_RT_Class3TimingProperties
,
gsdml_eType_
,
0
,
0
,
1
},
{
"RT_Class3TimingProperties"
,
gsdml_eTag_RT_Class3TimingProperties
,
gsdml_eType_
,
0
,
0
,
1
},
{
"MediaRedundancy"
,
gsdml_eTag_MediaRedundancy
,
gsdml_eType_
,
0
,
0
,
1
},
{
"MediaRedundancy"
,
gsdml_eTag_MediaRedundancy
,
gsdml_eType_
,
0
,
0
,
1
},
{
"PortSubmoduleItem"
,
gsdml_eTag_PortSubmoduleItem
,
gsdml_eType_
,
0
,
0
,
1
},
{
"PortSubmoduleItem"
,
gsdml_eTag_PortSubmoduleItem
,
gsdml_eType_
,
0
,
0
,
1
},
{
"MAUTypeList"
,
gsdml_eTag_MAUTypeList
,
gsdml_eType_
,
0
,
0
,
1
},
{
"MAUTypeItem"
,
gsdml_eTag_MAUTypeItem
,
gsdml_eType_
,
0
,
0
,
1
},
{
"UseableSubmodules"
,
gsdml_eTag_UseableSubmodules
,
gsdml_eType_
,
0
,
0
,
1
},
{
"UseableSubmodules"
,
gsdml_eTag_UseableSubmodules
,
gsdml_eType_
,
0
,
0
,
1
},
{
"SubmoduleItemRef"
,
gsdml_eTag_SubmoduleItemRef
,
gsdml_eType_
,
0
,
0
,
1
},
{
"SubmoduleItemRef"
,
gsdml_eTag_SubmoduleItemRef
,
gsdml_eType_
,
0
,
0
,
1
},
{
"SlotList"
,
gsdml_eTag_SlotList
,
gsdml_eType_
,
0
,
0
,
1
},
{
"SlotList"
,
gsdml_eTag_SlotList
,
gsdml_eType_
,
0
,
0
,
1
},
...
@@ -242,6 +244,7 @@ static gsdml_sAttribute attrlist[] = {
...
@@ -242,6 +244,7 @@ static gsdml_sAttribute attrlist[] = {
{
"LLDP_NoD_Supported"
,
gsdml_eTag_DeviceAccessPointItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sDeviceAccessPointItem
,
LLDP_NoD_Supported
),
0
,
"false"
},
{
"LLDP_NoD_Supported"
,
gsdml_eTag_DeviceAccessPointItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sDeviceAccessPointItem
,
LLDP_NoD_Supported
),
0
,
"false"
},
{
"ResetToFactoryModes"
,
gsdml_eTag_DeviceAccessPointItem
,
gsdml_eTag_
,
gsdml_eType_Unsigned32
,
sizeof
(
gsdml_tUnsigned32
),
offsetof
(
gsdml_sDeviceAccessPointItem
,
ResetToFactoryModes
),
0
,
"0"
},
{
"ResetToFactoryModes"
,
gsdml_eTag_DeviceAccessPointItem
,
gsdml_eTag_
,
gsdml_eType_Unsigned32
,
sizeof
(
gsdml_tUnsigned32
),
offsetof
(
gsdml_sDeviceAccessPointItem
,
ResetToFactoryModes
),
0
,
"0"
},
{
"SharedInputSupported"
,
gsdml_eTag_DeviceAccessPointItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sDeviceAccessPointItem
,
SharedInputSupported
),
0
,
"false"
},
{
"SharedInputSupported"
,
gsdml_eTag_DeviceAccessPointItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sDeviceAccessPointItem
,
SharedInputSupported
),
0
,
"false"
},
{
"NumberOfDeviceAccessAR"
,
gsdml_eTag_DeviceAccessPointItem
,
gsdml_eTag_
,
gsdml_eType_Unsigned16
,
sizeof
(
gsdml_tUnsigned16
),
offsetof
(
gsdml_sDeviceAccessPointItem
,
ObjectUUID_LocalIndex
),
0
,
"1"
},
//
//
// ModuleInfo
// ModuleInfo
//
//
...
@@ -291,6 +294,8 @@ static gsdml_sAttribute attrlist[] = {
...
@@ -291,6 +294,8 @@ static gsdml_sAttribute attrlist[] = {
{
"Writeable_IM_Records"
,
gsdml_eTag_VirtualSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_ValueList
,
sizeof
(
gsdml_tValueList
),
offsetof
(
gsdml_sVirtualSubmoduleItem
,
Writeable_IM_Records
),
0
,
"0"
},
{
"Writeable_IM_Records"
,
gsdml_eTag_VirtualSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_ValueList
,
sizeof
(
gsdml_tValueList
),
offsetof
(
gsdml_sVirtualSubmoduleItem
,
Writeable_IM_Records
),
0
,
"0"
},
{
"Max_iParameterSize"
,
gsdml_eTag_VirtualSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Unsigned32
,
sizeof
(
gsdml_tUnsigned32
),
offsetof
(
gsdml_sVirtualSubmoduleItem
,
Max_iParameterSize
),
0
,
"0"
},
{
"Max_iParameterSize"
,
gsdml_eTag_VirtualSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Unsigned32
,
sizeof
(
gsdml_tUnsigned32
),
offsetof
(
gsdml_sVirtualSubmoduleItem
,
Max_iParameterSize
),
0
,
"0"
},
{
"SubsysModuleDirIndex"
,
gsdml_eTag_VirtualSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Unsigned16
,
sizeof
(
gsdml_tUnsigned16
),
offsetof
(
gsdml_sVirtualSubmoduleItem
,
SubsysModuleDirIndex
),
0
,
""
},
{
"SubsysModuleDirIndex"
,
gsdml_eTag_VirtualSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Unsigned16
,
sizeof
(
gsdml_tUnsigned16
),
offsetof
(
gsdml_sVirtualSubmoduleItem
,
SubsysModuleDirIndex
),
0
,
""
},
//Added without doc, check type and default value
{
"MayIssueProcessAlarm"
,
gsdml_eTag_VirtualSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Unsigned16
,
sizeof
(
gsdml_tUnsigned16
),
offsetof
(
gsdml_sVirtualSubmoduleItem
,
MayIssueProcessAlarm
),
0
,
"0"
},
//
//
// IOData
// IOData
//
//
...
@@ -458,6 +463,7 @@ static gsdml_sAttribute attrlist[] = {
...
@@ -458,6 +463,7 @@ static gsdml_sAttribute attrlist[] = {
{
"DCP_HelloSupported"
,
gsdml_eTag_InterfaceSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sInterfaceSubmoduleItem
,
DCP_HelloSupported
),
0
,
"false"
},
{
"DCP_HelloSupported"
,
gsdml_eTag_InterfaceSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sInterfaceSubmoduleItem
,
DCP_HelloSupported
),
0
,
"false"
},
{
"PTP_BoundarySupported"
,
gsdml_eTag_InterfaceSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sInterfaceSubmoduleItem
,
PTP_BoundarySupported
),
0
,
"false"
},
{
"PTP_BoundarySupported"
,
gsdml_eTag_InterfaceSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sInterfaceSubmoduleItem
,
PTP_BoundarySupported
),
0
,
"false"
},
{
"DCP_BoundarySupported"
,
gsdml_eTag_InterfaceSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sInterfaceSubmoduleItem
,
DCP_BoundarySupported
),
0
,
"false"
},
{
"DCP_BoundarySupported"
,
gsdml_eTag_InterfaceSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sInterfaceSubmoduleItem
,
DCP_BoundarySupported
),
0
,
"false"
},
{
"DelayMeasurementSupported"
,
gsdml_eTag_InterfaceSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sInterfaceSubmoduleItem
,
DelayMeasurementSupported
),
0
,
"false"
},
//
//
// DCP_FlashOnceSignalUnit
// DCP_FlashOnceSignalUnit
//
//
...
@@ -535,6 +541,14 @@ static gsdml_sAttribute attrlist[] = {
...
@@ -535,6 +541,14 @@ static gsdml_sAttribute attrlist[] = {
{
"IsDefaultRingport"
,
gsdml_eTag_PortSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sPortSubmoduleItem
,
IsDefaultRingport
),
0
,
"false"
},
{
"IsDefaultRingport"
,
gsdml_eTag_PortSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sPortSubmoduleItem
,
IsDefaultRingport
),
0
,
"false"
},
// Added without doc, TODO check type and default value
// Added without doc, TODO check type and default value
{
"CheckMAUTypeSupported"
,
gsdml_eTag_PortSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sPortSubmoduleItem
,
CheckMAUTypeSupported
),
0
,
"false"
},
{
"CheckMAUTypeSupported"
,
gsdml_eTag_PortSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sPortSubmoduleItem
,
CheckMAUTypeSupported
),
0
,
"false"
},
{
"CheckMAUTypeDifferenceSupported"
,
gsdml_eTag_PortSubmoduleItem
,
gsdml_eTag_
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sPortSubmoduleItem
,
CheckMAUTypeDifferenceSupported
),
0
,
"false"
},
//
// MAUTypeList
//
{
"Value"
,
gsdml_eTag_MAUTypeItem
,
gsdml_eTag_MAUTypeList
,
gsdml_eType_Unsigned16
,
sizeof
(
gsdml_tUnsigned16
),
offsetof
(
gsdml_sMAUTypeItem
,
Value
),
0
,
""
},
{
"AdjustSupported"
,
gsdml_eTag_MAUTypeItem
,
gsdml_eTag_MAUTypeList
,
gsdml_eType_Boolean
,
sizeof
(
gsdml_tBoolean
),
offsetof
(
gsdml_sMAUTypeItem
,
AdjustSupported
),
0
,
"false"
},
//
//
// DeviceAccessPointItem-ApplicationRelations
// DeviceAccessPointItem-ApplicationRelations
//
//
...
@@ -3387,7 +3401,8 @@ void gsdml_DeviceAccessPointItem::print( int ind)
...
@@ -3387,7 +3401,8 @@ void gsdml_DeviceAccessPointItem::print( int ind)
"%s MaxSupportedRecordSize=
\"
%u
\"\n
"
"%s MaxSupportedRecordSize=
\"
%u
\"\n
"
"%s PowerOnToCommReady=
\"
%u
\"\n
"
"%s PowerOnToCommReady=
\"
%u
\"\n
"
"%s ParameterizationSpeedSupported=
\"
%d
\"\n
"
"%s ParameterizationSpeedSupported=
\"
%d
\"\n
"
"%s NameOfStationNotTransferable=
\"
%d
\"
/>
\n
"
,
"%s NameOfStationNotTransferable=
\"
%d
\"\n
"
"%s NumberOfDeviceAccessAR=
\"
%d
\"
/>
\n
"
,
is
,
is
,
is
,
Body
.
ID
,
is
,
Body
.
ID
,
is
,
Body
.
PhysicalSlots
.
str
,
is
,
Body
.
PhysicalSlots
.
str
,
...
@@ -3408,7 +3423,8 @@ void gsdml_DeviceAccessPointItem::print( int ind)
...
@@ -3408,7 +3423,8 @@ void gsdml_DeviceAccessPointItem::print( int ind)
is
,
Body
.
MaxSupportedRecordSize
,
is
,
Body
.
MaxSupportedRecordSize
,
is
,
Body
.
PowerOnToCommReady
,
is
,
Body
.
PowerOnToCommReady
,
is
,
Body
.
ParameterizationSpeedSupported
,
is
,
Body
.
ParameterizationSpeedSupported
,
is
,
Body
.
NameOfStationNotTransferable
);
is
,
Body
.
NameOfStationNotTransferable
,
is
,
Body
.
NumberOfDeviceAccessAR
);
if
(
ModuleInfo
)
if
(
ModuleInfo
)
ModuleInfo
->
print
(
ind
+
2
);
ModuleInfo
->
print
(
ind
+
2
);
...
@@ -3906,7 +3922,8 @@ void gsdml_VirtualSubmoduleItem::print( int ind)
...
@@ -3906,7 +3922,8 @@ void gsdml_VirtualSubmoduleItem::print( int ind)
"%s PROFISafeSupported=
\"
%u
\"\n
"
"%s PROFISafeSupported=
\"
%u
\"\n
"
"%s Writeable_IM_Records=
\"
%s
\"\n
"
"%s Writeable_IM_Records=
\"
%s
\"\n
"
"%s Max_iParameterSize=
\"
%u
\"\n
"
"%s Max_iParameterSize=
\"
%u
\"\n
"
"%s SubsysModuleDirIndex=
\"
%hu
\"
>
\n
"
,
"%s SubsysModuleDirIndex=
\"
%hu
\"\n
"
"%s MayIssueProcessAlarm=
\"
%hu
\"
>
\n
"
,
is
,
is
,
is
,
Body
.
ID
,
is
,
Body
.
ID
,
is
,
Body
.
SubmoduleIdentNumber
,
is
,
Body
.
SubmoduleIdentNumber
,
...
@@ -3915,7 +3932,8 @@ void gsdml_VirtualSubmoduleItem::print( int ind)
...
@@ -3915,7 +3932,8 @@ void gsdml_VirtualSubmoduleItem::print( int ind)
is
,
Body
.
PROFIsafeSupported
,
is
,
Body
.
PROFIsafeSupported
,
is
,
Body
.
Writeable_IM_Records
.
str
,
is
,
Body
.
Writeable_IM_Records
.
str
,
is
,
Body
.
Max_iParameterSize
,
is
,
Body
.
Max_iParameterSize
,
is
,
Body
.
SubsysModuleDirIndex
);
is
,
Body
.
SubsysModuleDirIndex
,
is
,
Body
.
MayIssueProcessAlarm
);
if
(
IOData
)
if
(
IOData
)
IOData
->
print
(
ind
+
2
);
IOData
->
print
(
ind
+
2
);
...
@@ -4086,7 +4104,8 @@ void gsdml_InterfaceSubmoduleItem::print( int ind)
...
@@ -4086,7 +4104,8 @@ void gsdml_InterfaceSubmoduleItem::print( int ind)
"%s NetworkComponentDiagnosisSupported=
\"
%u
\"\n
"
"%s NetworkComponentDiagnosisSupported=
\"
%u
\"\n
"
"%s DCP_HelloSupported=
\"
%u
\"\n
"
"%s DCP_HelloSupported=
\"
%u
\"\n
"
"%s PTP_BoundarySupported=
\"
%u
\"\n
"
"%s PTP_BoundarySupported=
\"
%u
\"\n
"
"%s DCP_BoundarySupported=
\"
%u
\"
>
\n
"
,
"%s DCP_BoundarySupported=
\"
%u
\"\n
"
"%s DelayMeasurementSupported=
\"
%u
\"
>
\n
"
,
is
,
is
,
is
,
Body
.
SubslotNumber
,
is
,
Body
.
SubslotNumber
,
is
,
Body
.
TextId
.
ref
,
is
,
Body
.
TextId
.
ref
,
...
@@ -4100,7 +4119,8 @@ void gsdml_InterfaceSubmoduleItem::print( int ind)
...
@@ -4100,7 +4119,8 @@ void gsdml_InterfaceSubmoduleItem::print( int ind)
is
,
Body
.
NetworkComponentDiagnosisSupported
,
is
,
Body
.
NetworkComponentDiagnosisSupported
,
is
,
Body
.
DCP_HelloSupported
,
is
,
Body
.
DCP_HelloSupported
,
is
,
Body
.
PTP_BoundarySupported
,
is
,
Body
.
PTP_BoundarySupported
,
is
,
Body
.
DCP_BoundarySupported
);
is
,
Body
.
DCP_BoundarySupported
,
is
,
Body
.
DelayMeasurementSupported
);
if
(
General
)
if
(
General
)
General
->
print
(
ind
+
2
);
General
->
print
(
ind
+
2
);
...
@@ -4136,7 +4156,9 @@ void gsdml_PortSubmoduleItem::print( int ind)
...
@@ -4136,7 +4156,9 @@ void gsdml_PortSubmoduleItem::print( int ind)
"%s LinkStateDianosisCapability=
\"
%s
\"\n
"
"%s LinkStateDianosisCapability=
\"
%s
\"\n
"
"%s PowerBudgetControlSupported=
\"
%u
\"\n
"
"%s PowerBudgetControlSupported=
\"
%u
\"\n
"
"%s SupportsRingportConfig=
\"
%u
\"\n
"
"%s SupportsRingportConfig=
\"
%u
\"\n
"
"%s IsDefauleRingport=
\"
%u
\"
>
\n
"
,
"%s IsDefauleRingport=
\"
%u
\"\n
"
"%s CheckMAUTTypeSupported=
\"
%u
\"\n
"
"%s CheckMAUTTypeDifferenceSupported=
\"
%u
\"
>
\n
"
,
is
,
is
,
is
,
Body
.
SubslotNumber
,
is
,
Body
.
SubslotNumber
,
is
,
Body
.
TextId
.
ref
,
is
,
Body
.
TextId
.
ref
,
...
@@ -4150,7 +4172,9 @@ void gsdml_PortSubmoduleItem::print( int ind)
...
@@ -4150,7 +4172,9 @@ void gsdml_PortSubmoduleItem::print( int ind)
is
,
Body
.
LinkStateDiagnosisCapability
,
is
,
Body
.
LinkStateDiagnosisCapability
,
is
,
Body
.
PowerBudgetControlSupported
,
is
,
Body
.
PowerBudgetControlSupported
,
is
,
Body
.
SupportsRingportConfig
,
is
,
Body
.
SupportsRingportConfig
,
is
,
Body
.
IsDefaultRingport
);
is
,
Body
.
IsDefaultRingport
,
is
,
Body
.
CheckMAUTypeSupported
,
is
,
Body
.
CheckMAUTypeDifferenceSupported
);
if
(
RecordDataList
)
if
(
RecordDataList
)
RecordDataList
->
print
(
ind
+
2
);
RecordDataList
->
print
(
ind
+
2
);
...
@@ -5068,6 +5092,11 @@ void gsdml_ValueItem::build()
...
@@ -5068,6 +5092,11 @@ void gsdml_ValueItem::build()
for
(
unsigned
int
i
=
0
;
i
<
Assignments
->
Assign
.
size
();
i
++
)
for
(
unsigned
int
i
=
0
;
i
<
Assignments
->
Assign
.
size
();
i
++
)
Assignments
->
Assign
[
i
]
->
build
();
Assignments
->
Assign
[
i
]
->
build
();
}
}
if
(
strcmp
(
Body
.
Help
.
ref
,
""
)
!=
0
)
{
Body
.
Help
.
p
=
gsdml
->
find_text_ref
(
Body
.
Help
.
ref
);
if
(
Body
.
Help
.
p
==
noref
)
gsdml
->
error_message
(
"Help not found:
\"
%s
\"
"
,
Body
.
Help
.
ref
);
}
}
}
gsdml_ValueItem
::~
gsdml_ValueItem
()
gsdml_ValueItem
::~
gsdml_ValueItem
()
...
...
profibus/lib/cow/src/cow_pn_gsdml.h
View file @
0aec4e2a
...
@@ -202,6 +202,8 @@ typedef enum {
...
@@ -202,6 +202,8 @@ typedef enum {
gsdml_eTag_RT_Class3TimingProperties
,
gsdml_eTag_RT_Class3TimingProperties
,
gsdml_eTag_MediaRedundancy
,
gsdml_eTag_MediaRedundancy
,
gsdml_eTag_PortSubmoduleItem
,
gsdml_eTag_PortSubmoduleItem
,
gsdml_eTag_MAUTypeList
,
gsdml_eTag_MAUTypeItem
,
gsdml_eTag_UseableSubmodules
,
gsdml_eTag_UseableSubmodules
,
gsdml_eTag_SubmoduleItemRef
,
gsdml_eTag_SubmoduleItemRef
,
gsdml_eTag_SlotList
,
gsdml_eTag_SlotList
,
...
@@ -414,6 +416,11 @@ class gsdml_ModuleInfo {
...
@@ -414,6 +416,11 @@ class gsdml_ModuleInfo {
void
print
(
int
ind
);
void
print
(
int
ind
);
};
};
typedef
struct
{
gsdml_tUnsigned16
Value
;
gsdml_tBoolean
AdjustSupported
;
}
gsdml_sMAUTypeItem
;
typedef
struct
{
typedef
struct
{
gsdml_tString
ConformanceClass
;
gsdml_tString
ConformanceClass
;
gsdml_tString
ApplicationClass
;
gsdml_tString
ApplicationClass
;
...
@@ -746,6 +753,7 @@ typedef struct {
...
@@ -746,6 +753,7 @@ typedef struct {
gsdml_tValueList
Writeable_IM_Records
;
gsdml_tValueList
Writeable_IM_Records
;
gsdml_tUnsigned32
Max_iParameterSize
;
gsdml_tUnsigned32
Max_iParameterSize
;
gsdml_tUnsigned16
SubsysModuleDirIndex
;
gsdml_tUnsigned16
SubsysModuleDirIndex
;
gsdml_tUnsigned16
MayIssueProcessAlarm
;
}
gsdml_sVirtualSubmoduleItem
;
}
gsdml_sVirtualSubmoduleItem
;
class
gsdml_VirtualSubmoduleItem
{
class
gsdml_VirtualSubmoduleItem
{
...
@@ -914,6 +922,7 @@ typedef struct {
...
@@ -914,6 +922,7 @@ typedef struct {
gsdml_tBoolean
DCP_HelloSupported
;
gsdml_tBoolean
DCP_HelloSupported
;
gsdml_tBoolean
PTP_BoundarySupported
;
gsdml_tBoolean
PTP_BoundarySupported
;
gsdml_tBoolean
DCP_BoundarySupported
;
gsdml_tBoolean
DCP_BoundarySupported
;
gsdml_tBoolean
DelayMeasurementSupported
;
}
gsdml_sInterfaceSubmoduleItem
;
}
gsdml_sInterfaceSubmoduleItem
;
class
gsdml_InterfaceSubmoduleItem
{
class
gsdml_InterfaceSubmoduleItem
{
...
@@ -950,6 +959,7 @@ typedef struct {
...
@@ -950,6 +959,7 @@ typedef struct {
gsdml_tBoolean
SupportsRingportConfig
;
gsdml_tBoolean
SupportsRingportConfig
;
gsdml_tBoolean
IsDefaultRingport
;
gsdml_tBoolean
IsDefaultRingport
;
gsdml_tBoolean
CheckMAUTypeSupported
;
gsdml_tBoolean
CheckMAUTypeSupported
;
gsdml_tBoolean
CheckMAUTypeDifferenceSupported
;
}
gsdml_sPortSubmoduleItem
;
}
gsdml_sPortSubmoduleItem
;
class
gsdml_PortSubmoduleItem
{
class
gsdml_PortSubmoduleItem
{
...
@@ -979,7 +989,7 @@ typedef struct {
...
@@ -979,7 +989,7 @@ typedef struct {
gsdml_tUnsigned16
AR_BlockVersion
;
gsdml_tUnsigned16
AR_BlockVersion
;
gsdml_tUnsigned16
IOCR_BlockVersion
;
gsdml_tUnsigned16
IOCR_BlockVersion
;
gsdml_tUnsigned16
AlarmCR_BlockVersion
;
gsdml_tUnsigned16
AlarmCR_BlockVersion
;
gsdml_tUnsigned16
SubmoduleDataBlockVersion
;
;
gsdml_tUnsigned16
SubmoduleDataBlockVersion
;
}
gsdml_sDeviceAccessPointItem_ApplicationRelations
;
}
gsdml_sDeviceAccessPointItem_ApplicationRelations
;
class
gsdml_DeviceAccessPointItem_ApplicationRelations
{
class
gsdml_DeviceAccessPointItem_ApplicationRelations
{
...
@@ -1096,6 +1106,7 @@ typedef struct {
...
@@ -1096,6 +1106,7 @@ typedef struct {
gsdml_tBoolean
LLDP_NoD_Supported
;
gsdml_tBoolean
LLDP_NoD_Supported
;
gsdml_tUnsigned32
ResetToFactoryModes
;
gsdml_tUnsigned32
ResetToFactoryModes
;
gsdml_tBoolean
SharedInputSupported
;
gsdml_tBoolean
SharedInputSupported
;
gsdml_tUnsigned16
NumberOfDeviceAccessAR
;
}
gsdml_sDeviceAccessPointItem
;
}
gsdml_sDeviceAccessPointItem
;
class
gsdml_DeviceAccessPointItem
{
class
gsdml_DeviceAccessPointItem
{
...
...
profibus/lib/cow/src/cow_pn_gsdml_attr.h
View file @
0aec4e2a
...
@@ -90,6 +90,7 @@ class GsdmlAttr {
...
@@ -90,6 +90,7 @@ class GsdmlAttr {
virtual
~
GsdmlAttr
();
virtual
~
GsdmlAttr
();
virtual
void
message
(
char
severity
,
const
char
*
message
)
{}
virtual
void
message
(
char
severity
,
const
char
*
message
)
{}
virtual
void
attr_help_text
(
const
char
*
help_text
)
{}
virtual
void
set_prompt
(
const
char
*
prompt
)
{}
virtual
void
set_prompt
(
const
char
*
prompt
)
{}
virtual
void
change_value
()
{}
virtual
void
change_value
()
{}
...
...
profibus/lib/cow/src/cow_pn_gsdml_attrnav.cpp
View file @
0aec4e2a
...
@@ -706,9 +706,11 @@ int GsdmlAttrNav::brow_cb( FlowCtx *ctx, flow_tEvent event)
...
@@ -706,9 +706,11 @@ int GsdmlAttrNav::brow_cb( FlowCtx *ctx, flow_tEvent event)
}
}
}
}
}
}
brow_SelectClear
(
attrnav
->
brow
->
ctx
);
brow_SelectClear
(
attrnav
->
brow
->
ctx
);
brow_SetInverse
(
object
,
1
);
brow_SetInverse
(
object
,
1
);
brow_SelectInsert
(
attrnav
->
brow
->
ctx
,
object
);
brow_SelectInsert
(
attrnav
->
brow
->
ctx
,
object
);
attrnav
->
display_attr_help_text
();
if
(
!
brow_IsVisible
(
attrnav
->
brow
->
ctx
,
object
,
flow_eVisible_Full
))
if
(
!
brow_IsVisible
(
attrnav
->
brow
->
ctx
,
object
,
flow_eVisible_Full
))
brow_CenterObject
(
attrnav
->
brow
->
ctx
,
object
,
0.25
);
brow_CenterObject
(
attrnav
->
brow
->
ctx
,
object
,
0.25
);
if
(
node_count
)
if
(
node_count
)
...
@@ -743,6 +745,7 @@ int GsdmlAttrNav::brow_cb( FlowCtx *ctx, flow_tEvent event)
...
@@ -743,6 +745,7 @@ int GsdmlAttrNav::brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear
(
attrnav
->
brow
->
ctx
);
brow_SelectClear
(
attrnav
->
brow
->
ctx
);
brow_SetInverse
(
object
,
1
);
brow_SetInverse
(
object
,
1
);
brow_SelectInsert
(
attrnav
->
brow
->
ctx
,
object
);
brow_SelectInsert
(
attrnav
->
brow
->
ctx
,
object
);
attrnav
->
display_attr_help_text
();
if
(
!
brow_IsVisible
(
attrnav
->
brow
->
ctx
,
object
,
flow_eVisible_Full
))
if
(
!
brow_IsVisible
(
attrnav
->
brow
->
ctx
,
object
,
flow_eVisible_Full
))
brow_CenterObject
(
attrnav
->
brow
->
ctx
,
object
,
0.75
);
brow_CenterObject
(
attrnav
->
brow
->
ctx
,
object
,
0.75
);
if
(
node_count
)
if
(
node_count
)
...
@@ -780,6 +783,7 @@ int GsdmlAttrNav::brow_cb( FlowCtx *ctx, flow_tEvent event)
...
@@ -780,6 +783,7 @@ int GsdmlAttrNav::brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear
(
attrnav
->
brow
->
ctx
);
brow_SelectClear
(
attrnav
->
brow
->
ctx
);
brow_SetInverse
(
event
->
object
.
object
,
1
);
brow_SetInverse
(
event
->
object
.
object
,
1
);
brow_SelectInsert
(
attrnav
->
brow
->
ctx
,
event
->
object
.
object
);
brow_SelectInsert
(
attrnav
->
brow
->
ctx
,
event
->
object
.
object
);
attrnav
->
display_attr_help_text
();
}
}
break
;
break
;
default:
default:
...
@@ -859,6 +863,7 @@ int GsdmlAttrNav::brow_cb( FlowCtx *ctx, flow_tEvent event)
...
@@ -859,6 +863,7 @@ int GsdmlAttrNav::brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear
(
attrnav
->
brow
->
ctx
);
brow_SelectClear
(
attrnav
->
brow
->
ctx
);
brow_SetInverse
(
object
,
1
);
brow_SetInverse
(
object
,
1
);
brow_SelectInsert
(
attrnav
->
brow
->
ctx
,
object
);
brow_SelectInsert
(
attrnav
->
brow
->
ctx
,
object
);
attrnav
->
display_attr_help_text
();
if
(
!
brow_IsVisible
(
attrnav
->
brow
->
ctx
,
object
,
flow_eVisible_Full
))
if
(
!
brow_IsVisible
(
attrnav
->
brow
->
ctx
,
object
,
flow_eVisible_Full
))
brow_CenterObject
(
attrnav
->
brow
->
ctx
,
object
,
0.25
);
brow_CenterObject
(
attrnav
->
brow
->
ctx
,
object
,
0.25
);
free
(
node_list
);
free
(
node_list
);
...
@@ -2048,7 +2053,7 @@ int ItemPn::close( GsdmlAttrNav *attrnav, double x, double y)
...
@@ -2048,7 +2053,7 @@ int ItemPn::close( GsdmlAttrNav *attrnav, double x, double y)
ItemPnEnumValue
::
ItemPnEnumValue
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
int
item_num
,
ItemPnEnumValue
::
ItemPnEnumValue
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
int
item_num
,
int
item_type_id
,
void
*
attr_value_p
,
int
item_type_id
,
void
*
attr_value_p
,
brow_tNode
dest
,
flow_eDest
dest_code
)
:
brow_tNode
dest
,
flow_eDest
dest_code
,
const
char
*
info_text
)
:
ItemPn
(
info_text
),
num
(
item_num
),
type_id
(
item_type_id
),
value_p
(
attr_value_p
),
first_scan
(
1
)
num
(
item_num
),
type_id
(
item_type_id
),
value_p
(
attr_value_p
),
first_scan
(
1
)
{
{
...
@@ -2090,8 +2095,7 @@ int ItemPnEnumValue::scan( GsdmlAttrNav *attrnav, void *p)
...
@@ -2090,8 +2095,7 @@ int ItemPnEnumValue::scan( GsdmlAttrNav *attrnav, void *p)
ItemPnEnumValueMType
::
ItemPnEnumValueMType
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
ItemPnEnumValueMType
::
ItemPnEnumValueMType
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
const
char
*
item_number
,
int
item_num
,
const
char
*
item_number
,
int
item_num
,
int
item_type_id
,
void
*
attr_value_p
,
int
item_type_id
,
void
*
attr_value_p
,
brow_tNode
dest
,
flow_eDest
dest_code
)
:
brow_tNode
dest
,
flow_eDest
dest_code
,
const
char
*
info_text
)
:
ItemPn
(
info_text
),
num
(
item_num
),
type_id
(
item_type_id
),
value_p
(
attr_value_p
),
first_scan
(
1
)
num
(
item_num
),
type_id
(
item_type_id
),
value_p
(
attr_value_p
),
first_scan
(
1
)
{
{
type
=
attrnav_eItemType_PnEnumValueMType
;
type
=
attrnav_eItemType_PnEnumValueMType
;
...
@@ -2175,10 +2179,11 @@ int ItemPnDevice::open_children( GsdmlAttrNav *attrnav, double x, double y)
...
@@ -2175,10 +2179,11 @@ int ItemPnDevice::open_children( GsdmlAttrNav *attrnav, double x, double y)
&
attrnav
->
device_num
,
node
,
flow_eDest_IntoLast
);
&
attrnav
->
device_num
,
node
,
flow_eDest_IntoLast
);
for
(
unsigned
int
i
=
0
;
i
<
attrnav
->
gsdml
->
ApplicationProcess
->
DeviceAccessPointList
->
DeviceAccessPointItem
.
size
();
i
++
)
{
for
(
unsigned
int
i
=
0
;
i
<
attrnav
->
gsdml
->
ApplicationProcess
->
DeviceAccessPointList
->
DeviceAccessPointItem
.
size
();
i
++
)
{
gsdml_DeviceAccessPointItem
*
item
=
attrnav
->
gsdml
->
ApplicationProcess
->
DeviceAccessPointList
->
DeviceAccessPointItem
[
i
];
char
name
[
80
];
char
name
[
80
];
s
trncpy
(
name
,
(
char
*
)
attrnav
->
gsdml
->
ApplicationProcess
->
DeviceAccessPointList
->
DeviceAccessPointItem
[
i
]
->
ModuleInfo
->
Body
.
Name
.
p
,
sizeof
(
name
)
);
s
nprintf
(
name
,
sizeof
(
name
),
"%s (%s)"
,
(
char
*
)
item
->
ModuleInfo
->
Body
.
Name
.
p
,
item
->
ModuleInfo
->
Body
.
OrderNumber
);
new
ItemPnEnumValue
(
attrnav
,
name
,
idx
++
,
pwr_eType_UInt32
,
new
ItemPnEnumValue
(
attrnav
,
name
,
idx
++
,
pwr_eType_UInt32
,
&
attrnav
->
device_num
,
node
,
flow_eDest_IntoLast
);
&
attrnav
->
device_num
,
node
,
flow_eDest_IntoLast
,
(
char
*
)
item
->
ModuleInfo
->
Body
.
InfoText
.
p
);
}
}
brow_SetOpen
(
node
,
attrnav_mOpen_Children
);
brow_SetOpen
(
node
,
attrnav_mOpen_Children
);
...
@@ -2232,9 +2237,8 @@ int ItemPnDevice::scan( GsdmlAttrNav *attrnav, void *p)
...
@@ -2232,9 +2237,8 @@ int ItemPnDevice::scan( GsdmlAttrNav *attrnav, void *p)
if
(
attrnav
->
device_num
==
0
)
if
(
attrnav
->
device_num
==
0
)
strcpy
(
buf
,
"No"
);
strcpy
(
buf
,
"No"
);
else
{
else
{
strncpy
(
buf
,
(
char
*
)
attrnav
->
gsdml
->
ApplicationProcess
->
DeviceAccessPointList
->
gsdml_DeviceAccessPointItem
*
item
=
attrnav
->
gsdml
->
ApplicationProcess
->
DeviceAccessPointList
->
DeviceAccessPointItem
[
attrnav
->
device_num
-
1
];
DeviceAccessPointItem
[
attrnav
->
device_num
-
1
]
->
ModuleInfo
->
Body
.
Name
.
p
,
snprintf
(
buf
,
sizeof
(
buf
),
"%s (%s)"
,
(
char
*
)
item
->
ModuleInfo
->
Body
.
Name
.
p
,
item
->
ModuleInfo
->
Body
.
OrderNumber
);
sizeof
(
buf
));
}
}
}
}
brow_SetAnnotation
(
node
,
1
,
buf
,
strlen
(
buf
));
brow_SetAnnotation
(
node
,
1
,
buf
,
strlen
(
buf
));
...
@@ -2534,7 +2538,8 @@ int ItemPnSlot::scan( GsdmlAttrNav *attrnav, void *p)
...
@@ -2534,7 +2538,8 @@ int ItemPnSlot::scan( GsdmlAttrNav *attrnav, void *p)
ModuleItemRef
[
slotdata
->
module_enum_number
-
1
]
->
Body
.
ModuleItemTarget
.
p
;
ModuleItemRef
[
slotdata
->
module_enum_number
-
1
]
->
Body
.
ModuleItemTarget
.
p
;
if
(
!
mi
||
!
mi
->
ModuleInfo
->
Body
.
Name
.
p
)
if
(
!
mi
||
!
mi
->
ModuleInfo
->
Body
.
Name
.
p
)
return
1
;
return
1
;
strncpy
(
buf
,
(
char
*
)
mi
->
ModuleInfo
->
Body
.
Name
.
p
,
sizeof
(
buf
));
snprintf
(
buf
,
sizeof
(
buf
),
"%s (%s)"
,
(
char
*
)
mi
->
ModuleInfo
->
Body
.
Name
.
p
,
mi
->
ModuleInfo
->
Body
.
OrderNumber
);
}
}
brow_SetAnnotation
(
node
,
1
,
buf
,
strlen
(
buf
));
brow_SetAnnotation
(
node
,
1
,
buf
,
strlen
(
buf
));
old_value
=
*
(
int
*
)
p
;
old_value
=
*
(
int
*
)
p
;
...
@@ -3179,6 +3184,11 @@ int ItemPnInterfaceSubmodule::open_children( GsdmlAttrNav *attrnav, double x, do
...
@@ -3179,6 +3184,11 @@ int ItemPnInterfaceSubmodule::open_children( GsdmlAttrNav *attrnav, double x, do
pwr_eType_Boolean
,
sizeof
(
pwr_tBoolean
),
0
,
0
,
pwr_eType_Boolean
,
sizeof
(
pwr_tBoolean
),
0
,
0
,
p
,
1
,
node
,
flow_eDest_IntoLast
);
p
,
1
,
node
,
flow_eDest_IntoLast
);
p
=
(
char
*
)
&
ii
->
Body
.
DelayMeasurementSupported
;
new
ItemPnBase
(
attrnav
,
"DelayMeasurementSupported"
,
"LocalGsdmlAttr"
,
pwr_eType_Boolean
,
sizeof
(
pwr_tBoolean
),
0
,
0
,
p
,
1
,
node
,
flow_eDest_IntoLast
);
gsdml_RecordDataList
*
rl
=
ii
->
RecordDataList
;
gsdml_RecordDataList
*
rl
=
ii
->
RecordDataList
;
if
(
rl
)
{
if
(
rl
)
{
unsigned
int
record_index
=
0
;
unsigned
int
record_index
=
0
;
...
@@ -3294,6 +3304,16 @@ int ItemPnPortSubmodule::open_children( GsdmlAttrNav *attrnav, double x, double
...
@@ -3294,6 +3304,16 @@ int ItemPnPortSubmodule::open_children( GsdmlAttrNav *attrnav, double x, double
pwr_eType_Boolean
,
sizeof
(
pwr_tBoolean
),
0
,
0
,
pwr_eType_Boolean
,
sizeof
(
pwr_tBoolean
),
0
,
0
,
p
,
1
,
node
,
flow_eDest_IntoLast
);
p
,
1
,
node
,
flow_eDest_IntoLast
);
p
=
(
char
*
)
&
pi
->
Body
.
CheckMAUTypeSupported
;
new
ItemPnBase
(
attrnav
,
"CheckMAUTypeSupported"
,
"LocalGsdmlAttr"
,
pwr_eType_Boolean
,
sizeof
(
pwr_tBoolean
),
0
,
0
,
p
,
1
,
node
,
flow_eDest_IntoLast
);
p
=
(
char
*
)
&
pi
->
Body
.
CheckMAUTypeDifferenceSupported
;
new
ItemPnBase
(
attrnav
,
"CheckMAUTypeDifferenceSupported"
,
"LocalGsdmlAttr"
,
pwr_eType_Boolean
,
sizeof
(
pwr_tBoolean
),
0
,
0
,
p
,
1
,
node
,
flow_eDest_IntoLast
);
gsdml_RecordDataList
*
rl
=
pi
->
RecordDataList
;
gsdml_RecordDataList
*
rl
=
pi
->
RecordDataList
;
if
(
rl
)
{
if
(
rl
)
{
GsdmlDataRecord
*
dr
;
GsdmlDataRecord
*
dr
;
...
@@ -3474,7 +3494,7 @@ int ItemPnModuleType::open_children( GsdmlAttrNav *attrnav, double x, double y)
...
@@ -3474,7 +3494,7 @@ int ItemPnModuleType::open_children( GsdmlAttrNav *attrnav, double x, double y)
new
ItemPnEnumValueMType
(
attrnav
,
mname
,
mi
->
ModuleInfo
->
Body
.
OrderNumber
,
idx
,
new
ItemPnEnumValueMType
(
attrnav
,
mname
,
mi
->
ModuleInfo
->
Body
.
OrderNumber
,
idx
,
pwr_eType_UInt32
,
pwr_eType_UInt32
,
&
attrnav
->
dev_data
.
slot_data
[
slot_idx
]
->
module_enum_number
,
&
attrnav
->
dev_data
.
slot_data
[
slot_idx
]
->
module_enum_number
,
node
,
flow_eDest_IntoLast
);
node
,
flow_eDest_IntoLast
,
(
char
*
)
mi
->
ModuleInfo
->
Body
.
InfoText
.
p
);
}
}
else
if
(
um
->
ModuleItemRef
[
i
]
->
Body
.
FixedInSlots
.
list
&&
else
if
(
um
->
ModuleItemRef
[
i
]
->
Body
.
FixedInSlots
.
list
&&
um
->
ModuleItemRef
[
i
]
->
Body
.
FixedInSlots
.
list
->
in_list
(
slot_number
))
{
um
->
ModuleItemRef
[
i
]
->
Body
.
FixedInSlots
.
list
->
in_list
(
slot_number
))
{
...
@@ -4151,9 +4171,12 @@ ItemPnParEnum::ItemPnParEnum( GsdmlAttrNav *attrnav, const char *item_name,
...
@@ -4151,9 +4171,12 @@ ItemPnParEnum::ItemPnParEnum( GsdmlAttrNav *attrnav, const char *item_name,
for
(
unsigned
int
i
=
0
;
i
<
vi
->
Assignments
->
Assign
.
size
();
i
++
)
{
for
(
unsigned
int
i
=
0
;
i
<
vi
->
Assignments
->
Assign
.
size
();
i
++
)
{
ParEnumValue
eval
;
ParEnumValue
eval
;
int
num
;
int
num
;
num
=
sscanf
(
vi
->
Assignments
->
Assign
[
i
]
->
Body
.
Content
,
"%u"
,
&
eval
.
value
);
num
=
sscanf
(
vi
->
Assignments
->
Assign
[
i
]
->
Body
.
Content
,
"%u"
,
&
eval
.
value
);
if
(
num
!=
1
)
if
(
num
!=
1
)
continue
;
continue
;
if
(
allowed_values
&&
!
allowed_values
->
in_list
(
eval
.
value
))
if
(
allowed_values
&&
!
allowed_values
->
in_list
(
eval
.
value
))
continue
;
continue
;
...
@@ -4163,6 +4186,20 @@ ItemPnParEnum::ItemPnParEnum( GsdmlAttrNav *attrnav, const char *item_name,
...
@@ -4163,6 +4186,20 @@ ItemPnParEnum::ItemPnParEnum( GsdmlAttrNav *attrnav, const char *item_name,
values
.
push_back
(
eval
);
values
.
push_back
(
eval
);
}
}
}
}
else
if
(
datatype
==
gsdml_eValueDataType_Bit
)
{
ParEnumValue
eval
;
eval
.
value
=
1
;
strncpy
(
eval
.
text
,
"On"
,
sizeof
(
eval
.
text
));
eval
.
value
<<=
bit_offset
;
values
.
push_back
(
eval
);
eval
.
value
=
0
;
strncpy
(
eval
.
text
,
"Off"
,
sizeof
(
eval
.
text
));
values
.
push_back
(
eval
);
}
if
(
allowed_values
)
if
(
allowed_values
)
delete
allowed_values
;
delete
allowed_values
;
...
@@ -4218,15 +4255,12 @@ int ItemPnParEnum::open_children( GsdmlAttrNav *attrnav, double x, double y)
...
@@ -4218,15 +4255,12 @@ int ItemPnParEnum::open_children( GsdmlAttrNav *attrnav, double x, double y)
else
{
else
{
brow_SetNodraw
(
attrnav
->
brow
->
ctx
);
brow_SetNodraw
(
attrnav
->
brow
->
ctx
);
gsdml_ValueItem
*
vi
=
(
gsdml_ValueItem
*
)
value_ref
->
Body
.
ValueItemTarget
.
p
;
if
(
vi
&&
vi
->
Assignments
)
{
for
(
unsigned
int
i
=
0
;
i
<
values
.
size
();
i
++
)
{
for
(
unsigned
int
i
=
0
;
i
<
values
.
size
();
i
++
)
{
new
ItemPnParEnumBit
(
attrnav
,
values
[
i
].
text
,
datatype
,
data
,
new
ItemPnParEnumBit
(
attrnav
,
values
[
i
].
text
,
datatype
,
data
,
byte_offset
,
values
[
i
].
value
,
mask
,
noedit
,
byte_offset
,
values
[
i
].
value
,
mask
,
noedit
,
node
,
flow_eDest_IntoLast
);
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 @
0aec4e2a
...
@@ -120,7 +120,7 @@ class ItemPn;
...
@@ -120,7 +120,7 @@ class ItemPn;
//! Class for handling of brow.
//! Class for handling of brow.
class
GsdmlAttrNavBrow
{
class
GsdmlAttrNavBrow
{
public:
public:
GsdmlAttrNavBrow
(
BrowCtx
*
brow_ctx
,
void
*
xn
)
:
ctx
(
brow_ctx
),
attrnav
(
xn
)
{}
;
GsdmlAttrNavBrow
(
BrowCtx
*
brow_ctx
,
void
*
xn
)
:
ctx
(
brow_ctx
),
attrnav
(
xn
)
{}
~
GsdmlAttrNavBrow
();
~
GsdmlAttrNavBrow
();
BrowCtx
*
ctx
;
BrowCtx
*
ctx
;
...
@@ -184,6 +184,7 @@ class GsdmlAttrNav {
...
@@ -184,6 +184,7 @@ class GsdmlAttrNav {
pwr_tStatus
*
status
);
pwr_tStatus
*
status
);
virtual
~
GsdmlAttrNav
();
virtual
~
GsdmlAttrNav
();
virtual
void
display_attr_help_text
()
{}
virtual
void
set_inputfocus
()
{}
virtual
void
set_inputfocus
()
{}
void
start_trace
(
pwr_tObjid
Objid
,
char
*
object_str
);
void
start_trace
(
pwr_tObjid
Objid
,
char
*
object_str
);
...
@@ -229,11 +230,13 @@ class GsdmlAttrNav {
...
@@ -229,11 +230,13 @@ class GsdmlAttrNav {
class
ItemPn
{
class
ItemPn
{
public:
public:
ItemPn
()
:
parent
(
0
)
{}
ItemPn
()
:
parent
(
0
),
info_text
(
0
)
{}
ItemPn
(
const
char
*
info_text
)
:
parent
(
0
),
info_text
(
info_text
)
{}
attrnav_eItemType
type
;
attrnav_eItemType
type
;
brow_tNode
node
;
brow_tNode
node
;
char
name
[
120
];
char
name
[
120
];
int
parent
;
int
parent
;
const
char
*
info_text
;
virtual
~
ItemPn
()
{}
virtual
~
ItemPn
()
{}
...
@@ -269,8 +272,7 @@ class ItemPnBase : public ItemPn {
...
@@ -269,8 +272,7 @@ class ItemPnBase : public ItemPn {
class
ItemPnEnumValue
:
public
ItemPn
{
class
ItemPnEnumValue
:
public
ItemPn
{
public:
public:
ItemPnEnumValue
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
int
item_num
,
ItemPnEnumValue
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
int
item_num
,
int
item_type_id
,
int
item_type_id
,
void
*
attr_value_p
,
brow_tNode
dest
,
flow_eDest
dest_code
,
const
char
*
info_text
=
0
);
void
*
attr_value_p
,
brow_tNode
dest
,
flow_eDest
dest_code
);
int
num
;
int
num
;
int
type_id
;
int
type_id
;
void
*
value_p
;
void
*
value_p
;
...
@@ -284,9 +286,7 @@ class ItemPnEnumValue : public ItemPn {
...
@@ -284,9 +286,7 @@ class ItemPnEnumValue : public ItemPn {
class
ItemPnEnumValueMType
:
public
ItemPn
{
class
ItemPnEnumValueMType
:
public
ItemPn
{
public:
public:
ItemPnEnumValueMType
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
const
char
*
item_number
,
ItemPnEnumValueMType
(
GsdmlAttrNav
*
attrnav
,
const
char
*
item_name
,
const
char
*
item_number
,
int
item_num
,
int
item_num
,
int
item_type_id
,
void
*
attr_value_p
,
brow_tNode
dest
,
flow_eDest
dest_code
,
const
char
*
info_text
=
0
);
int
item_type_id
,
void
*
attr_value_p
,
brow_tNode
dest
,
flow_eDest
dest_code
);
int
num
;
int
num
;
int
type_id
;
int
type_id
;
void
*
value_p
;
void
*
value_p
;
...
...
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