Commit ed6416af authored by Claes Sjofors's avatar Claes Sjofors

Functionality to view configuration status added

parent 3a34d908
...@@ -1038,6 +1038,7 @@ int CnvWblToH::check_typename( char *type_volume, char *type_name) ...@@ -1038,6 +1038,7 @@ int CnvWblToH::check_typename( char *type_volume, char *type_name)
"pwr_tPrivMask", "pwr_tPrivMask",
"pwr_tProString40", "pwr_tProString40",
"pwr_tDataRef", "pwr_tDataRef",
"pwr_tConfigStatusEnum",
""}; ""};
for ( name = valid_names[0]; strcmp(name,"") != 0; for ( name = valid_names[0]; strcmp(name,"") != 0;
......
...@@ -597,6 +597,11 @@ struct pwr_s_ParInfo { ...@@ -597,6 +597,11 @@ struct pwr_s_ParInfo {
*/ */
typedef pwr_tMask pwr_tPrivMask; typedef pwr_tMask pwr_tPrivMask;
/*_*
@aref configstatusenum ConfigStatusEnum
*/
typedef pwr_tEnum pwr_tConfigStatusEnum;
/* Operating system. */ /* Operating system. */
/*_* /*_*
@aref opsys OpSys @aref opsys OpSys
...@@ -1015,6 +1020,7 @@ struct pwr_s_PlantHier { ...@@ -1015,6 +1020,7 @@ struct pwr_s_PlantHier {
pwr_tURL DataSheet pwr_dAlignW; pwr_tURL DataSheet pwr_dAlignW;
pwr_tURL CircuitDiagram pwr_dAlignW; pwr_tURL CircuitDiagram pwr_dAlignW;
pwr_tURL Photo pwr_dAlignW; pwr_tURL Photo pwr_dAlignW;
pwr_tConfigStatusEnum ConfigurationStatus pwr_dAlignW;
}; };
/* Node defining classes. */ /* Node defining classes. */
...@@ -1037,7 +1043,7 @@ struct pwr_s_Node { ...@@ -1037,7 +1043,7 @@ struct pwr_s_Node {
pwr_tUInt32 Restarts pwr_dAlignW; pwr_tUInt32 Restarts pwr_dAlignW;
pwr_tTime RestartTime pwr_dAlignLW; pwr_tTime RestartTime pwr_dAlignLW;
pwr_tDeltaTime RestartStallTime pwr_dAlignLW; pwr_tDeltaTime RestartStallTime pwr_dAlignLW;
pwr_tTime SystemTime pwr_dAlignW; pwr_tTime SystemTime pwr_dAlignLW;
pwr_tNetStatus SystemStatus pwr_dAlignW; pwr_tNetStatus SystemStatus pwr_dAlignW;
pwr_tStatus ProcStatus[40] pwr_dAlignW; pwr_tStatus ProcStatus[40] pwr_dAlignW;
pwr_tStatus ProcMsgSeverity[40] pwr_dAlignW; pwr_tStatus ProcMsgSeverity[40] pwr_dAlignW;
...@@ -1081,10 +1087,10 @@ struct pwr_s_LibHier { ...@@ -1081,10 +1087,10 @@ struct pwr_s_LibHier {
pwr_tString80 Description; pwr_tString80 Description;
}; };
struct pwr_s_NodeHier struct pwr_s_NodeHier {
{ pwr_tString80 Description pwr_dAlignW;
pwr_tString80 Description; pwr_tConfigStatusEnum ConfigurationStatus pwr_dAlignW;
}; };
struct pwr_s_RootVolume { struct pwr_s_RootVolume {
pwr_tString80 Description; pwr_tString80 Description;
...@@ -1096,6 +1102,7 @@ struct pwr_s_RootVolume { ...@@ -1096,6 +1102,7 @@ struct pwr_s_RootVolume {
pwr_tUInt32 RtBodySize pwr_dAlignW; pwr_tUInt32 RtBodySize pwr_dAlignW;
pwr_mOpSys OperatingSystem pwr_dAlignW; pwr_mOpSys OperatingSystem pwr_dAlignW;
pwr_tTime Modified pwr_dAlignLW; pwr_tTime Modified pwr_dAlignLW;
pwr_tConfigStatusEnum ConfigurationStatus pwr_dAlignW;
}; };
struct pwr_s_SubVolume { struct pwr_s_SubVolume {
...@@ -1108,6 +1115,7 @@ struct pwr_s_SubVolume { ...@@ -1108,6 +1115,7 @@ struct pwr_s_SubVolume {
pwr_tUInt32 RtBodySize pwr_dAlignW; pwr_tUInt32 RtBodySize pwr_dAlignW;
pwr_mOpSys OperatingSystem pwr_dAlignW; pwr_mOpSys OperatingSystem pwr_dAlignW;
pwr_tTime Modified pwr_dAlignLW; pwr_tTime Modified pwr_dAlignLW;
pwr_tConfigStatusEnum ConfigurationStatus pwr_dAlignW;
}; };
struct pwr_s_SharedVolume { struct pwr_s_SharedVolume {
...@@ -1119,6 +1127,7 @@ struct pwr_s_SharedVolume { ...@@ -1119,6 +1127,7 @@ struct pwr_s_SharedVolume {
pwr_tUInt32 RtCardinality pwr_dAlignW; pwr_tUInt32 RtCardinality pwr_dAlignW;
pwr_tUInt32 RtBodySize pwr_dAlignW; pwr_tUInt32 RtBodySize pwr_dAlignW;
pwr_tTime Modified pwr_dAlignLW; pwr_tTime Modified pwr_dAlignLW;
pwr_tConfigStatusEnum ConfigurationStatus pwr_dAlignW;
}; };
struct pwr_s_DynamicVolume { struct pwr_s_DynamicVolume {
...@@ -1152,6 +1161,7 @@ struct pwr_s_ClassVolume { ...@@ -1152,6 +1161,7 @@ struct pwr_s_ClassVolume {
pwr_tObjectIx NextCix pwr_dAlignW; /* Next free class index. */ pwr_tObjectIx NextCix pwr_dAlignW; /* Next free class index. */
pwr_tObjectIx NextTix[pwr_cMaxTyg + 1] pwr_dAlignW; /* Next free type index. */ pwr_tObjectIx NextTix[pwr_cMaxTyg + 1] pwr_dAlignW; /* Next free type index. */
pwr_tUInt32 DvVersion pwr_dAlignW; pwr_tUInt32 DvVersion pwr_dAlignW;
pwr_tConfigStatusEnum ConfigurationStatus pwr_dAlignW;
}; };
struct pwr_s_WorkBenchVolume { struct pwr_s_WorkBenchVolume {
......
...@@ -77,6 +77,20 @@ SObject pwrb:Class ...@@ -77,6 +77,20 @@ SObject pwrb:Class
Attr TypeRef = "pwrs:Type-$Objid" Attr TypeRef = "pwrs:Type-$Objid"
EndBody EndBody
EndObject EndObject
!/**
! @Summary Configuration status.
! Configuration status.
! Status in the development environment for an hierarchy,
! plcprogram or process graph, set by the designer to indicate
! the current state. If a status is set for an object, it is
! marked red, yellow or green in the configurator. Also the
! status text if viewed surrounded by angel brackets.
!*/
Object ConfigurationStatus $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$ConfigStatusEnum"
EndBody
EndObject
EndObject EndObject
Object DevBody $ObjBodyDef 2 Object DevBody $ObjBodyDef 2
Object ScanTime $Intern 1 Object ScanTime $Intern 1
......
...@@ -82,6 +82,20 @@ SObject pwrb:Class ...@@ -82,6 +82,20 @@ SObject pwrb:Class
Attr TypeRef = "pwrb:Type-WebTargetEnum" Attr TypeRef = "pwrb:Type-WebTargetEnum"
EndBody EndBody
EndObject EndObject
!/**
! @Summary Configuration status.
! Configuration status.
! Status in the development environment for an hierarchy,
! plcprogram or process graph, set by the designer to indicate
! the current state. If a status is set for an object, it is
! marked red, yellow or green in the configurator. Also the
! status text if viewed surrounded by angel brackets.
!*/
Object ConfigurationStatus $Attribute 4
Body SysBody
Attr TypeRef = "pwrs:Type-$ConfigStatusEnum"
EndBody
EndObject
EndObject EndObject
Object NavigatorPosnn $Menu Object NavigatorPosnn $Menu
Object Pointed $Menu Object Pointed $Menu
......
...@@ -176,6 +176,20 @@ SObject pwrb:Class ...@@ -176,6 +176,20 @@ SObject pwrb:Class
Attr Flags = 0 Attr Flags = 0
EndBody EndBody
EndObject EndObject
!/**
! @Summary Configuration status.
! Configuration status.
! Status in the development environment for an hierarchy,
! plcprogram or process graph, set by the designer to indicate
! the current state. If a status is set for an object, it is
! marked red, yellow or green in the configurator. Also the
! status text if viewed surrounded by angel brackets.
!*/
Object ConfigurationStatus $Attribute 14
Body SysBody
Attr TypeRef = "pwrs:Type-$ConfigStatusEnum"
EndBody
EndObject
EndObject EndObject
Object Template XttGraph Object Template XttGraph
Body RtBody Body RtBody
......
...@@ -162,6 +162,20 @@ SObject pwrs:Class ...@@ -162,6 +162,20 @@ SObject pwrs:Class
Attr TypeRef = "pwrs:Type-$UInt32" Attr TypeRef = "pwrs:Type-$UInt32"
EndBody EndBody
EndObject EndObject
!/**
! @Summary Configuration status.
! Configuration status.
! Status in the development environment for an hierarchy,
! plcprogram or process graph, set by the designer to indicate
! the current state. If a status is set for an object, it is
! marked red, yellow or green in the configurator. Also the
! status text if viewed surrounded by angel brackets.
!*/
Object ConfigurationStatus $Attribute 11
Body SysBody
Attr TypeRef = "pwrs:Type-$ConfigStatusEnum"
EndBody
EndObject
EndObject EndObject
Object Template $ClassVolume Object Template $ClassVolume
Body SysBody Body SysBody
......
...@@ -71,6 +71,20 @@ SObject pwrs:Class ...@@ -71,6 +71,20 @@ SObject pwrs:Class
Attr TypeRef = "pwrs:Type-$String80" Attr TypeRef = "pwrs:Type-$String80"
EndBody EndBody
EndObject EndObject
!/**
! @Summary Configuration status.
! Configuration status.
! Status in the development environment for an hierarchy,
! plcprogram or process graph, set by the designer to indicate
! the current state. If a status is set for an object, it is
! marked red, yellow or green in the configurator. Also the
! status text if viewed surrounded by angel brackets.
!*/
Object ConfigurationStatus $Attribute 2
Body SysBody
Attr TypeRef = "pwrs:Type-$ConfigStatusEnum"
EndBody
EndObject
EndObject EndObject
Object NavigatorPosnn $Menu Object NavigatorPosnn $Menu
Object Pointed $Menu Object Pointed $Menu
......
...@@ -121,10 +121,23 @@ SObject pwrs:Class ...@@ -121,10 +121,23 @@ SObject pwrs:Class
!*/ !*/
Object Photo $Attribute 7 Object Photo $Attribute 7
Body SysBody Body SysBody
Attr PgmName = "Photo"
Attr TypeRef = "pwrs:Type-$URL" Attr TypeRef = "pwrs:Type-$URL"
EndBody EndBody
EndObject EndObject
!/**
! @Summary Configuration status.
! Configuration status.
! Status in the development environment for an hierarchy,
! plcprogram or process graph, set by the designer to indicate
! the current state. If a status is set for an object, it is
! marked red, yellow or green in the configurator. Also the
! status text if viewed surrounded by angel brackets.
!*/
Object ConfigurationStatus $Attribute 8
Body SysBody
Attr TypeRef = "pwrs:Type-$ConfigStatusEnum"
EndBody
EndObject
EndObject EndObject
Object NavigatorPosnn $Menu Object NavigatorPosnn $Menu
Object Pointed $Menu Object Pointed $Menu
......
...@@ -110,6 +110,20 @@ SObject pwrs:Class ...@@ -110,6 +110,20 @@ SObject pwrs:Class
Attr Flags |= PWR_MASK_NOEDIT Attr Flags |= PWR_MASK_NOEDIT
EndBody EndBody
EndObject EndObject
!/**
! @Summary Configuration status.
! Configuration status.
! Status in the development environment for an hierarchy,
! plcprogram or process graph, set by the designer to indicate
! the current state. If a status is set for an object, it is
! marked red, yellow or green in the configurator. Also the
! status text if viewed surrounded by angel brackets.
!*/
Object ConfigurationStatus $Attribute 10
Body SysBody
Attr TypeRef = "pwrs:Type-$ConfigStatusEnum"
EndBody
EndObject
EndObject EndObject
Object Template $RootVolume Object Template $RootVolume
Body SysBody Body SysBody
......
...@@ -99,6 +99,20 @@ SObject pwrs:Class ...@@ -99,6 +99,20 @@ SObject pwrs:Class
Attr Flags |= PWR_MASK_NOEDIT Attr Flags |= PWR_MASK_NOEDIT
EndBody EndBody
EndObject EndObject
!/**
! @Summary Configuration status.
! Configuration status.
! Status in the development environment for an hierarchy,
! plcprogram or process graph, set by the designer to indicate
! the current state. If a status is set for an object, it is
! marked red, yellow or green in the configurator. Also the
! status text if viewed surrounded by angel brackets.
!*/
Object ConfigurationStatus $Attribute 9
Body SysBody
Attr TypeRef = "pwrs:Type-$ConfigStatusEnum"
EndBody
EndObject
EndObject EndObject
Object Template $SharedVolume Object Template $SharedVolume
Body SysBody Body SysBody
......
...@@ -116,6 +116,20 @@ SObject pwrs:Class ...@@ -116,6 +116,20 @@ SObject pwrs:Class
Attr Flags |= PWR_MASK_NOEDIT Attr Flags |= PWR_MASK_NOEDIT
EndBody EndBody
EndObject EndObject
!/**
! @Summary Configuration status.
! Configuration status.
! Status in the development environment for an hierarchy,
! plcprogram or process graph, set by the designer to indicate
! the current state. If a status is set for an object, it is
! marked red, yellow or green in the configurator. Also the
! status text if viewed surrounded by angel brackets.
!*/
Object ConfigurationStatus $Attribute 10
Body SysBody
Attr TypeRef = "pwrs:Type-$ConfigStatusEnum"
EndBody
EndObject
EndObject EndObject
Object Template $SubVolume Object Template $SubVolume
Body SysBody Body SysBody
......
...@@ -151,4 +151,6 @@ ...@@ -151,4 +151,6 @@
091209 cs wb ConnectAttribute method added to SevHist. 091209 cs wb ConnectAttribute method added to SevHist.
091218 cs wb Bugfix for next cix and next oix in ced. 091218 cs wb Bugfix for next cix and next oix in ced.
091218 cs wb Bugfix in wb_vrepdb:child(). 091218 cs wb Bugfix in wb_vrepdb:child().
100111 cs wb Mysql classvolume databases. 100111 cs wb Mysql classvolume databases.
\ No newline at end of file 100118 cs plc Toggle button in plc editor for feedback connections.
100120 cs wb Functionality to view configuration status added.
\ No newline at end of file
...@@ -448,7 +448,7 @@ ldh_DeleteObjectTree(ldh_tSession session, pwr_tOid oid, int storeix) ...@@ -448,7 +448,7 @@ ldh_DeleteObjectTree(ldh_tSession session, pwr_tOid oid, int storeix)
pwr_tStatus pwr_tStatus
ldh_GetAttrDef(ldh_tSession session, pwr_tCid cid, char *bname, char *aname, ldh_sParDef *adef) ldh_GetAttrDef(ldh_tSession session, pwr_tCid cid, const char *bname, const char *aname, ldh_sParDef *adef)
{ {
wb_session *sp = (wb_session *)session; wb_session *sp = (wb_session *)session;
......
...@@ -622,8 +622,8 @@ pwr_tStatus ldh_EvalObject ( ...@@ -622,8 +622,8 @@ pwr_tStatus ldh_EvalObject (
pwr_tStatus ldh_GetAttrDef ( pwr_tStatus ldh_GetAttrDef (
ldh_tSession Session, ldh_tSession Session,
pwr_tClassId Class, pwr_tClassId Class,
char *BodyName, const char *BodyName,
char *AttrName, const char *AttrName,
ldh_sParDef *AttrDef ldh_sParDef *AttrDef
); );
pwr_tStatus ldh_GetAttrRef ( pwr_tStatus ldh_GetAttrRef (
......
...@@ -1027,6 +1027,120 @@ void WNavBrow::create_nodeclasses() ...@@ -1027,6 +1027,120 @@ void WNavBrow::create_nodeclasses()
1); 1);
brow_AddFrame( nc_multiobject, 0, 0, 20, 0.83, flow_eDrawType_LineGray, -1, 1); brow_AddFrame( nc_multiobject, 0, 0, 20, 0.83, flow_eDrawType_LineGray, -1, 1);
// Create multi object class with red indication
brow_CreateNodeClass( ctx, "NavigatorObjectRed",
flow_eNodeGroup_Common, &nc_multiobject_red);
brow_AddAnnotPixmap( nc_multiobject_red, 0, 0.2, 0.1, flow_eDrawType_Line, 2, 0);
brow_AddAnnotPixmap( nc_multiobject_red, 1, 1.1, 0.1, flow_eDrawType_Line, 2, 0);
brow_AddFilledRect( nc_multiobject_red, 1.3, 0.15, 0.4, 0.4, flow_eDrawType_LineRed);
brow_AddRect( nc_multiobject_red, 1.3, 0.15, 0.4, 0.4, flow_eDrawType_Line, 0, 0);
brow_AddAnnot( nc_multiobject_red, 2, 0.6, 0,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
0);
brow_AddAnnot( nc_multiobject_red, 7, 0.6, 1,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnot( nc_multiobject_red, 11, 0.6, 2,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnot( nc_multiobject_red, 15, 0.6, 3,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnotPixmap( nc_multiobject_red, 2, 12.2, 0.1, flow_eDrawType_Line, 2, 1);
brow_AddAnnot( nc_multiobject_red, 12.7, 0.6, 4,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnotPixmap( nc_multiobject_red, 3, 14.2, 0.1, flow_eDrawType_Line, 2, 1);
brow_AddAnnot( nc_multiobject_red, 14.7, 0.6, 5,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnotPixmap( nc_multiobject_red, 4, 16.2, 0.1, flow_eDrawType_Line, 2, 1);
brow_AddAnnot( nc_multiobject_red, 16.7, 0.6, 6,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnotPixmap( nc_multiobject_red, 5, 18.2, 0.1, flow_eDrawType_Line, 2, 1);
brow_AddAnnot( nc_multiobject_red, 18.7, 0.6, 7,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddFrame( nc_multiobject_red, 0, 0, 20, 0.83, flow_eDrawType_LineGray, -1, 1);
// Create multi object class with yellow indication
brow_CreateNodeClass( ctx, "NavigatorObjectYellow",
flow_eNodeGroup_Common, &nc_multiobject_yellow);
brow_AddAnnotPixmap( nc_multiobject_yellow, 0, 0.2, 0.1, flow_eDrawType_Line, 2, 0);
brow_AddAnnotPixmap( nc_multiobject_yellow, 1, 1.1, 0.1, flow_eDrawType_Line, 2, 0);
brow_AddFilledRect( nc_multiobject_yellow, 1.3, 0.15, 0.4, 0.4, flow_eDrawType_Yellow);
brow_AddRect( nc_multiobject_yellow, 1.3, 0.15, 0.4, 0.4, flow_eDrawType_Line, 0, 0);
brow_AddAnnot( nc_multiobject_yellow, 2, 0.6, 0,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
0);
brow_AddAnnot( nc_multiobject_yellow, 7, 0.6, 1,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnot( nc_multiobject_yellow, 11, 0.6, 2,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnot( nc_multiobject_yellow, 15, 0.6, 3,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnotPixmap( nc_multiobject_yellow, 2, 12.2, 0.1, flow_eDrawType_Line, 2, 1);
brow_AddAnnot( nc_multiobject_yellow, 12.7, 0.6, 4,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnotPixmap( nc_multiobject_yellow, 3, 14.2, 0.1, flow_eDrawType_Line, 2, 1);
brow_AddAnnot( nc_multiobject_yellow, 14.7, 0.6, 5,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnotPixmap( nc_multiobject_yellow, 4, 16.2, 0.1, flow_eDrawType_Line, 2, 1);
brow_AddAnnot( nc_multiobject_yellow, 16.7, 0.6, 6,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnotPixmap( nc_multiobject_yellow, 5, 18.2, 0.1, flow_eDrawType_Line, 2, 1);
brow_AddAnnot( nc_multiobject_yellow, 18.7, 0.6, 7,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddFrame( nc_multiobject_yellow, 0, 0, 20, 0.83, flow_eDrawType_LineGray, -1, 1);
// Create multi object class with green indication
brow_CreateNodeClass( ctx, "NavigatorObjectGreen",
flow_eNodeGroup_Common, &nc_multiobject_green);
brow_AddAnnotPixmap( nc_multiobject_green, 0, 0.2, 0.1, flow_eDrawType_Line, 2, 0);
brow_AddAnnotPixmap( nc_multiobject_green, 1, 1.1, 0.1, flow_eDrawType_Line, 2, 0);
brow_AddFilledRect( nc_multiobject_green, 1.3, 0.15, 0.4, 0.4, flow_eDrawType_Green);
brow_AddRect( nc_multiobject_green, 1.3, 0.15, 0.4, 0.4, flow_eDrawType_Line, 0, 0);
brow_AddAnnot( nc_multiobject_green, 2, 0.6, 0,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
0);
brow_AddAnnot( nc_multiobject_green, 7, 0.6, 1,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnot( nc_multiobject_green, 11, 0.6, 2,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnot( nc_multiobject_green, 15, 0.6, 3,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnotPixmap( nc_multiobject_green, 2, 12.2, 0.1, flow_eDrawType_Line, 2, 1);
brow_AddAnnot( nc_multiobject_green, 12.7, 0.6, 4,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnotPixmap( nc_multiobject_green, 3, 14.2, 0.1, flow_eDrawType_Line, 2, 1);
brow_AddAnnot( nc_multiobject_green, 14.7, 0.6, 5,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnotPixmap( nc_multiobject_green, 4, 16.2, 0.1, flow_eDrawType_Line, 2, 1);
brow_AddAnnot( nc_multiobject_green, 16.7, 0.6, 6,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddAnnotPixmap( nc_multiobject_green, 5, 18.2, 0.1, flow_eDrawType_Line, 2, 1);
brow_AddAnnot( nc_multiobject_green, 18.7, 0.6, 7,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddFrame( nc_multiobject_green, 0, 0, 20, 0.83, flow_eDrawType_LineGray, -1, 1);
// Create attribute nodeclass // Create attribute nodeclass
brow_CreateNodeClass( ctx, "NavigatorAttr", brow_CreateNodeClass( ctx, "NavigatorAttr",
......
...@@ -57,6 +57,9 @@ class WNavBrow { ...@@ -57,6 +57,9 @@ class WNavBrow {
void *userdata; void *userdata;
brow_tNodeClass nc_object; brow_tNodeClass nc_object;
brow_tNodeClass nc_multiobject; brow_tNodeClass nc_multiobject;
brow_tNodeClass nc_multiobject_red;
brow_tNodeClass nc_multiobject_yellow;
brow_tNodeClass nc_multiobject_green;
brow_tNodeClass nc_attr; brow_tNodeClass nc_attr;
brow_tNodeClass nc_attr_full; brow_tNodeClass nc_attr_full;
brow_tNodeClass nc_attr_input; brow_tNodeClass nc_attr_input;
......
...@@ -72,11 +72,15 @@ WItemObject::WItemObject( WNav *wnav, pwr_tObjid item_objid, ...@@ -72,11 +72,15 @@ WItemObject::WItemObject( WNav *wnav, pwr_tObjid item_objid,
char segname[120]; char segname[120];
pwr_tObjid child; pwr_tObjid child;
pwr_tClassId classid; pwr_tClassId classid;
pwr_tEnum *config_status;
char *descr; char *descr;
char descr_str[200];
int size; int size;
int next_annot, next_pixmap; int next_annot, next_pixmap;
ldh_sRefInfo ref_info; ldh_sRefInfo ref_info;
char buf[80]; char buf[80];
brow_tNodeClass nc;
pwr_tObjName body;
type = wnav_eItemType_Object; type = wnav_eItemType_Object;
...@@ -87,8 +91,76 @@ WItemObject::WItemObject( WNav *wnav, pwr_tObjid item_objid, ...@@ -87,8 +91,76 @@ WItemObject::WItemObject( WNav *wnav, pwr_tObjid item_objid,
sts = ldh_GetObjectClass( wnav->ldhses, objid, &classid); sts = ldh_GetObjectClass( wnav->ldhses, objid, &classid);
sts = ldh_ObjidToName( wnav->ldhses, objid, ldh_eName_Object, sts = ldh_ObjidToName( wnav->ldhses, objid, ldh_eName_Object,
segname, sizeof(segname), &size); segname, sizeof(segname), &size);
brow_CreateNode( wnav->brow->ctx, segname, wnav->brow->nc_multiobject,
dest, dest_code, (void *) this, 1, &node); // Get ConfigStatus
for ( int i = 0; i < 3; i++) {
switch ( i) {
case 0:
strcpy( body, "DevBody");
break;
case 1:
strcpy( body, "SysBody");
break;
case 2:
strcpy( body, "RtBody");
break;
}
sts = ldh_GetObjectPar( wnav->ldhses, objid, body, "ConfigurationStatus",
(char **)&config_status, &size);
if ( ODD(sts)) break;
}
if ( EVEN(sts)) {
nc = wnav->brow->nc_multiobject;
strcpy( descr_str, "");
}
else {
// Evaluate config status
if ( *config_status == 0) {
nc = wnav->brow->nc_multiobject;
strcpy( descr_str, "");
}
else {
// Get enum text
ldh_sParDef adef;
ldh_sValueDef *vd;
int rows;
sts = ldh_GetAttrDef( wnav->ldhses, classid, body, "ConfigurationStatus", &adef);
if ( EVEN(sts)) return;
sts = ldh_GetEnumValueDef( wnav->ldhses, adef.Par->Param.TypeRef, &vd, &rows);
if ( EVEN(sts)) return;
bool found = false;
int i;
for ( i = 0; i < rows; i++) {
if ( vd[i].Value.Value == *config_status) {
found = true;
break;
}
}
if ( found) {
if ( *config_status < 100)
nc = wnav->brow->nc_multiobject_red;
else if ( *config_status < 200)
nc = wnav->brow->nc_multiobject_yellow;
else
nc = wnav->brow->nc_multiobject_green
;
sprintf( descr_str, "<%s> ", vd[i].Value.Text);
}
else {
nc = wnav->brow->nc_multiobject_red;
strcpy( descr_str, "<Unknown status> ");
}
free( (char *)vd);
}
free((char *) config_status);
}
brow_CreateNode( wnav->brow->ctx, segname, nc, dest, dest_code, (void *) this,
1, &node);
// Set pixmap // Set pixmap
sts = ldh_GetChildMnt( wnav->ldhses, objid, &child); sts = ldh_GetChildMnt( wnav->ldhses, objid, &child);
...@@ -132,9 +204,11 @@ WItemObject::WItemObject( WNav *wnav, pwr_tObjid item_objid, ...@@ -132,9 +204,11 @@ WItemObject::WItemObject( WNav *wnav, pwr_tObjid item_objid,
&descr, &size); &descr, &size);
if ( ODD(sts)) if ( ODD(sts))
{ {
brow_SetAnnotation( node, next_annot++, descr, strlen(descr)); strcat( descr_str, descr);
free( descr); free( descr);
} }
if ( strcmp( descr_str, "") != 0)
brow_SetAnnotation( node, next_annot++, descr_str, strlen(descr_str));
} }
if ( wnav->gbl.show_alias && classid == pwr_eClass_Alias) if ( wnav->gbl.show_alias && classid == pwr_eClass_Alias)
{ {
......
...@@ -522,7 +522,7 @@ int Wtt::attach_volume_cb( void *ctx, pwr_tVolumeId volid, int pop) ...@@ -522,7 +522,7 @@ int Wtt::attach_volume_cb( void *ctx, pwr_tVolumeId volid, int pop)
// Open ldh session // Open ldh session
sts = ldh_AttachVolume( wtt->wbctx, volid, &wtt->volctx); sts = ldh_AttachVolume( wtt->wbctx, volid, &wtt->volctx);
if ( EVEN(sts)) return sts; if ( EVEN(sts)) return sts;
sts = ldh_OpenSession( &wtt->ldhses, sts = ldh_OpenSession( &wtt->ldhses,
wtt->volctx, wtt->volctx,
ldh_eAccess_ReadOnly, ldh_eAccess_ReadOnly,
...@@ -815,6 +815,55 @@ int Wtt::set_edit() ...@@ -815,6 +815,55 @@ int Wtt::set_edit()
appl.set_editmode( editmode, ldhses); appl.set_editmode( editmode, ldhses);
if ( utedctx) if ( utedctx)
utedctx->set_editmode( editmode, ldhses); utedctx->set_editmode( editmode, ldhses);
if ( first_edit_session) {
// Check configuration status
pwr_tObjid oid;
oid.vid = volid;
oid.oix = 0;
pwr_tEnum *config_status;
int size;
first_edit_session = 0;
sts = ldh_GetObjectPar( ldhses, oid, "SysBody", "ConfigurationStatus",
(char **)&config_status, &size);
if ( ODD(sts)) {
ldh_sParDef adef;
ldh_sValueDef *vd;
int rows;
pwr_tCid cid;
sts = ldh_GetObjectClass( ldhses, oid, &cid);
if ( EVEN(sts)) return 1;
sts = ldh_GetAttrDef( ldhses, cid, "SysBody", "ConfigurationStatus", &adef);
if ( EVEN(sts)) return 1;
sts = ldh_GetEnumValueDef( ldhses, adef.Par->Param.TypeRef, &vd, &rows);
if ( EVEN(sts)) return 1;
bool found = false;
int i;
for ( i = 0; i < rows; i++) {
if ( vd[i].Value.Value == *config_status) {
found = true;
break;
}
}
if ( found) {
if ( *config_status < 100)
MsgWindow::message( 'E', "Volume Configuration status: ", vd[i].Value.Text);
else if ( *config_status < 200)
MsgWindow::message( 'W', "Volume Configuration status: ", vd[i].Value.Text);
else
MsgWindow::message( 'I', "Volume Configuration status: ", vd[i].Value.Text);
}
free( (char *)config_status);
free( (char *)vd);
}
}
return 1; return 1;
} }
...@@ -2178,7 +2227,7 @@ Wtt::Wtt( ...@@ -2178,7 +2227,7 @@ Wtt::Wtt(
select_attr(0), select_type(0), select_attr(0), select_type(0),
wnav_mapped(0), wnavnode_mapped(0), utedctx(0), wpkg(0), wnav_mapped(0), wnavnode_mapped(0), utedctx(0), wpkg(0),
close_cb(0), open_volume_cb(0), open_project_volume_cb(0), time_to_exit_cb(0), close_cb(0), open_volume_cb(0), open_project_volume_cb(0), time_to_exit_cb(0),
mcp(0), disable_w2(0), keep_input_open(0) mcp(0), disable_w2(0), keep_input_open(0), first_edit_session(1)
{ {
strcpy( name, wt_name); strcpy( name, wt_name);
*status = 1; *status = 1;
......
...@@ -184,6 +184,7 @@ class Wtt : public WUtility { ...@@ -184,6 +184,7 @@ class Wtt : public WUtility {
ldh_sMenuCall *mcp; ldh_sMenuCall *mcp;
int disable_w2; int disable_w2;
int keep_input_open; int keep_input_open;
int first_edit_session;
int restore_settings(); int restore_settings();
int save_settings(); int save_settings();
......
...@@ -818,6 +818,13 @@ static int xnav_set_func( void *client_data, ...@@ -818,6 +818,13 @@ static int xnav_set_func( void *client_data,
// Command is "SET NORATIO" // Command is "SET NORATIO"
xnav->gbl.no_graph_ratio = 1; xnav->gbl.no_graph_ratio = 1;
} }
else if ( cdh_NoCaseStrcmp( arg1_str, "crashtest") == 0)
{
// Command is "SET CRASHTEST"
char *p = 0;
char c;
c = *p;
}
else else
xnav->message('E',"Syntax error"); xnav->message('E',"Syntax error");
return 1; return 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment