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)
"pwr_tPrivMask",
"pwr_tProString40",
"pwr_tDataRef",
"pwr_tConfigStatusEnum",
""};
for ( name = valid_names[0]; strcmp(name,"") != 0;
......
......@@ -597,6 +597,11 @@ struct pwr_s_ParInfo {
*/
typedef pwr_tMask pwr_tPrivMask;
/*_*
@aref configstatusenum ConfigStatusEnum
*/
typedef pwr_tEnum pwr_tConfigStatusEnum;
/* Operating system. */
/*_*
@aref opsys OpSys
......@@ -1015,6 +1020,7 @@ struct pwr_s_PlantHier {
pwr_tURL DataSheet pwr_dAlignW;
pwr_tURL CircuitDiagram pwr_dAlignW;
pwr_tURL Photo pwr_dAlignW;
pwr_tConfigStatusEnum ConfigurationStatus pwr_dAlignW;
};
/* Node defining classes. */
......@@ -1037,7 +1043,7 @@ struct pwr_s_Node {
pwr_tUInt32 Restarts pwr_dAlignW;
pwr_tTime RestartTime pwr_dAlignLW;
pwr_tDeltaTime RestartStallTime pwr_dAlignLW;
pwr_tTime SystemTime pwr_dAlignW;
pwr_tTime SystemTime pwr_dAlignLW;
pwr_tNetStatus SystemStatus pwr_dAlignW;
pwr_tStatus ProcStatus[40] pwr_dAlignW;
pwr_tStatus ProcMsgSeverity[40] pwr_dAlignW;
......@@ -1081,10 +1087,10 @@ struct pwr_s_LibHier {
pwr_tString80 Description;
};
struct pwr_s_NodeHier
{
pwr_tString80 Description;
};
struct pwr_s_NodeHier {
pwr_tString80 Description pwr_dAlignW;
pwr_tConfigStatusEnum ConfigurationStatus pwr_dAlignW;
};
struct pwr_s_RootVolume {
pwr_tString80 Description;
......@@ -1096,6 +1102,7 @@ struct pwr_s_RootVolume {
pwr_tUInt32 RtBodySize pwr_dAlignW;
pwr_mOpSys OperatingSystem pwr_dAlignW;
pwr_tTime Modified pwr_dAlignLW;
pwr_tConfigStatusEnum ConfigurationStatus pwr_dAlignW;
};
struct pwr_s_SubVolume {
......@@ -1108,6 +1115,7 @@ struct pwr_s_SubVolume {
pwr_tUInt32 RtBodySize pwr_dAlignW;
pwr_mOpSys OperatingSystem pwr_dAlignW;
pwr_tTime Modified pwr_dAlignLW;
pwr_tConfigStatusEnum ConfigurationStatus pwr_dAlignW;
};
struct pwr_s_SharedVolume {
......@@ -1119,6 +1127,7 @@ struct pwr_s_SharedVolume {
pwr_tUInt32 RtCardinality pwr_dAlignW;
pwr_tUInt32 RtBodySize pwr_dAlignW;
pwr_tTime Modified pwr_dAlignLW;
pwr_tConfigStatusEnum ConfigurationStatus pwr_dAlignW;
};
struct pwr_s_DynamicVolume {
......@@ -1152,6 +1161,7 @@ struct pwr_s_ClassVolume {
pwr_tObjectIx NextCix pwr_dAlignW; /* Next free class index. */
pwr_tObjectIx NextTix[pwr_cMaxTyg + 1] pwr_dAlignW; /* Next free type index. */
pwr_tUInt32 DvVersion pwr_dAlignW;
pwr_tConfigStatusEnum ConfigurationStatus pwr_dAlignW;
};
struct pwr_s_WorkBenchVolume {
......
......@@ -77,6 +77,20 @@ SObject pwrb:Class
Attr TypeRef = "pwrs:Type-$Objid"
EndBody
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
Object DevBody $ObjBodyDef 2
Object ScanTime $Intern 1
......
......@@ -82,6 +82,20 @@ SObject pwrb:Class
Attr TypeRef = "pwrb:Type-WebTargetEnum"
EndBody
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
Object NavigatorPosnn $Menu
Object Pointed $Menu
......
......@@ -176,6 +176,20 @@ SObject pwrb:Class
Attr Flags = 0
EndBody
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
Object Template XttGraph
Body RtBody
......
......@@ -162,6 +162,20 @@ SObject pwrs:Class
Attr TypeRef = "pwrs:Type-$UInt32"
EndBody
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
Object Template $ClassVolume
Body SysBody
......
......@@ -71,6 +71,20 @@ SObject pwrs:Class
Attr TypeRef = "pwrs:Type-$String80"
EndBody
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
Object NavigatorPosnn $Menu
Object Pointed $Menu
......
......@@ -121,10 +121,23 @@ SObject pwrs:Class
!*/
Object Photo $Attribute 7
Body SysBody
Attr PgmName = "Photo"
Attr TypeRef = "pwrs:Type-$URL"
EndBody
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
Object NavigatorPosnn $Menu
Object Pointed $Menu
......
......@@ -110,6 +110,20 @@ SObject pwrs:Class
Attr Flags |= PWR_MASK_NOEDIT
EndBody
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
Object Template $RootVolume
Body SysBody
......
......@@ -99,6 +99,20 @@ SObject pwrs:Class
Attr Flags |= PWR_MASK_NOEDIT
EndBody
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
Object Template $SharedVolume
Body SysBody
......
......@@ -116,6 +116,20 @@ SObject pwrs:Class
Attr Flags |= PWR_MASK_NOEDIT
EndBody
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
Object Template $SubVolume
Body SysBody
......
......@@ -151,4 +151,6 @@
091209 cs wb ConnectAttribute method added to SevHist.
091218 cs wb Bugfix for next cix and next oix in ced.
091218 cs wb Bugfix in wb_vrepdb:child().
100111 cs wb Mysql classvolume databases.
\ No newline at end of file
100111 cs wb Mysql classvolume databases.
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)
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;
......
......@@ -622,8 +622,8 @@ pwr_tStatus ldh_EvalObject (
pwr_tStatus ldh_GetAttrDef (
ldh_tSession Session,
pwr_tClassId Class,
char *BodyName,
char *AttrName,
const char *BodyName,
const char *AttrName,
ldh_sParDef *AttrDef
);
pwr_tStatus ldh_GetAttrRef (
......
......@@ -1027,6 +1027,120 @@ void WNavBrow::create_nodeclasses()
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
brow_CreateNodeClass( ctx, "NavigatorAttr",
......
......@@ -57,6 +57,9 @@ class WNavBrow {
void *userdata;
brow_tNodeClass nc_object;
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_full;
brow_tNodeClass nc_attr_input;
......
......@@ -72,11 +72,15 @@ WItemObject::WItemObject( WNav *wnav, pwr_tObjid item_objid,
char segname[120];
pwr_tObjid child;
pwr_tClassId classid;
pwr_tEnum *config_status;
char *descr;
char descr_str[200];
int size;
int next_annot, next_pixmap;
ldh_sRefInfo ref_info;
char buf[80];
brow_tNodeClass nc;
pwr_tObjName body;
type = wnav_eItemType_Object;
......@@ -87,8 +91,76 @@ WItemObject::WItemObject( WNav *wnav, pwr_tObjid item_objid,
sts = ldh_GetObjectClass( wnav->ldhses, objid, &classid);
sts = ldh_ObjidToName( wnav->ldhses, objid, ldh_eName_Object,
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
sts = ldh_GetChildMnt( wnav->ldhses, objid, &child);
......@@ -132,9 +204,11 @@ WItemObject::WItemObject( WNav *wnav, pwr_tObjid item_objid,
&descr, &size);
if ( ODD(sts))
{
brow_SetAnnotation( node, next_annot++, descr, strlen(descr));
strcat( descr_str, 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)
{
......
......@@ -522,7 +522,7 @@ int Wtt::attach_volume_cb( void *ctx, pwr_tVolumeId volid, int pop)
// Open ldh session
sts = ldh_AttachVolume( wtt->wbctx, volid, &wtt->volctx);
if ( EVEN(sts)) return sts;
sts = ldh_OpenSession( &wtt->ldhses,
wtt->volctx,
ldh_eAccess_ReadOnly,
......@@ -815,6 +815,55 @@ int Wtt::set_edit()
appl.set_editmode( editmode, ldhses);
if ( utedctx)
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;
}
......@@ -2178,7 +2227,7 @@ Wtt::Wtt(
select_attr(0), select_type(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),
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);
*status = 1;
......
......@@ -184,6 +184,7 @@ class Wtt : public WUtility {
ldh_sMenuCall *mcp;
int disable_w2;
int keep_input_open;
int first_edit_session;
int restore_settings();
int save_settings();
......
......@@ -818,6 +818,13 @@ static int xnav_set_func( void *client_data,
// Command is "SET NORATIO"
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
xnav->message('E',"Syntax error");
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