/* If father of ASup has an "ActualValue" attribute, then make this ASup refer to this attribute. */ sts = ldh_ObjidToName(Session, Father, ldh_eName_Hierarchy, Name, sizeof(Name), &size); if (EVEN(sts)) return PWRB__SUCCESS; strcat(Name, ".ActualValue"); sts = ldh_NameToAttrRef(Session, Name, &Attribute); if (EVEN(sts)) return PWRB__SUCCESS; sts = ldh_SetObjectPar(Session, Object, "RtBody", "DataName", (char *)&Attribute, sizeof(Attribute)); if (EVEN(sts)) return PWRB__SUCCESS; return PWRB__SUCCESS; } /*----------------------------------------------------------------------------*\ Every method to be exported to the workbench should be registred here. \*----------------------------------------------------------------------------*/ pwr_dExport pwr_BindMethods(DsFast) = { pwr_BindMethod(PostCreate), pwr_BindMethod(PostMove), pwr_NullMethod };
sts = ldh_ObjidToName ( ip->PointedSession, ip->Pointed.Objid, ldh_eName_Object, name, sizeof(name), &size); if ( EVEN(sts)) return sts; dcli_translate_filename( filename, "$pwr_exe/wb_open_db.sh"); cdh_ToLower( db_id, db_id_p); sprintf( cmd, "%s \"%s\" \"%s\" \"%s\" \"\" \"%s\" &", filename, db_id, CoLogin::username(), CoLogin::ucpassword(), name); free( db_id_p); sts = system( cmd); if ( sts == -1 || sts == 127) { printf("-- Error when creating process.\n"); return sts; } #endif return 1; } /*----------------------------------------------------------------------------*\ Every method to be exported to the workbench should be registred here. \*----------------------------------------------------------------------------*/ pwr_dExport pwr_BindMethods(DbConfig) = { pwr_BindMethod(OpenDb), pwr_NullMethod };
static pwr_tStatus AnteCreate ( ldh_tSesContext Session, pwr_tObjid Father, pwr_tClassId Class ) { // ClassHier should be a top object or under object Class if ( Father.oix != 0) { pwr_tStatus sts; pwr_tOName name; int size; sts = ldh_ObjidToName( Session, Father, ldh_eName_Hierarchy, name, sizeof(name), &size); if ( EVEN(sts)) return sts; if ( strcmp( name, "Class") != 0) return PWRS__POSCLASSHIER; } return PWRS__SUCCESS; } pwr_dExport pwr_BindMethods($ClassHier) = { pwr_BindMethod(AnteCreate), pwr_NullMethod };
} else { msg_GetMsg( sts, msg, sizeof(msg)); ip->wtt->message( 'E', msg); } } return LDH__SUCCESS; } static pwr_tStatus ConnectAttributeFilter( ldh_sMenuCall *ip) { return 1; } pwr_dExport pwr_BindMethods($Object) = { pwr_BindMethod(CreateObject), pwr_BindMethod(CopyObject), pwr_BindMethod(CopyObjectTree), pwr_BindMethod(DeleteObject), pwr_BindMethod(DeleteObjects), pwr_BindMethod(IsOkCopyObject), pwr_BindMethod(IsOkCopyObjectTree), pwr_BindMethod(IsOkCreateObject), pwr_BindMethod(IsOkMoveObject), pwr_BindMethod(MoveObject), pwr_BindMethod(OpenObject), pwr_BindMethod(OpenTemplate), pwr_BindMethod(SetDefaults), pwr_BindMethod(ClassHelp), pwr_BindMethod(HelpClass), pwr_BindMethod(HelpClassFilter),
/* wb_c_chanao.c -- work bench methods of the ChanAo class. */ #include "pwr_baseclasses.h" #include "wb_pwrs.h" #include "wb_pwrb_msg.h" /*----------------------------------------------------------------------------*\ Syntax check. \*----------------------------------------------------------------------------*/ static pwr_tStatus SyntaxCheck( ldh_tSesContext Session, pwr_tAttrRef Object, /* current object */ int* ErrorCount, /* accumulated error count */ int* WarningCount /* accumulated waring count */ ) { // pwr_tStatus sts; // sts = wsx_CheckSigChanCon( Session, Object, ErrorCount, WarningCount); // if (EVEN(sts)) return sts; return PWRB__SUCCESS; } /*----------------------------------------------------------------------------*\ Every method to be exported to the workbench should be registred here. \*----------------------------------------------------------------------------*/ pwr_dExport pwr_BindMethods(ChanAo) = { pwr_BindMethod(SyntaxCheck), pwr_NullMethod };
build.opt = ip->wnav->gbl.build; build.webgraph( ip->Pointed.Objid); if ( build.sts() == PWRB__NOBUILT) ip->wnav->message( 'I', "Nothing to build"); return build.sts(); } /*----------------------------------------------------------------------------*\ Every method to be exported to the workbench should be registred here. \*----------------------------------------------------------------------------*/ pwr_dExport pwr_BindMethods(WebGraph) = { pwr_BindMethod(OpenGraph), pwr_BindMethod(Build), pwr_NullMethod };
&name_p, &len); if ( EVEN(sts)) cdh_ObjidToString( name, aref.Objid, 1); else strcpy( name, name_p); sprintf( msg, "Io connected to: %s", name); ip->wtt->message( 'I', msg); } else { msg_GetMsg( sts, msg, sizeof(msg)); ip->wtt->message( 'E', msg); } return PWRS__SUCCESS; } pwr_dExport pwr_BindMethods($AttrRef) = { pwr_BindMethod(Connect), pwr_BindMethod(IsOkConnect), pwr_BindMethod(IoConnect), pwr_BindMethod(IoConnectFilter), pwr_NullMethod };
Session, Object, ErrorCount, WarningCount, wsx_mCardOption_ErrorLimits); } static pwr_tStatus PostCreate( ldh_tSesContext Session, pwr_tOid Object, pwr_tOid Father, pwr_tCid Class) { pwr_tStatus sts; sts = dbcb_InsertPlcThreadObject(Session, Object); if (EVEN(sts)) return sts; sts = ssab_SetAddress((wb_session*)Session, Object); return sts; } static pwr_tStatus SetAddress(ldh_sMenuCall* ip) { pwr_tStatus sts; sts = ssab_SetAddress((wb_session*)ip->PointedSession, ip->Pointed.Objid); return sts; } // // Every method to be exported to the workbench should be registred here. // pwr_dExport pwr_BindMethods(Ssab_BaseDoCard) = { pwr_BindMethod(SyntaxCheck), pwr_BindMethod(PostCreate), pwr_BindMethod(SetAddress), pwr_NullMethod };
sizeof(toid)); if ( EVEN(sts)) return sts; } return PWRB__SUCCESS; } static pwr_tStatus AnteAdopt ( ldh_tSesContext Session, pwr_tOid Father, pwr_tCid Class ) { // Only allow plc window objects if ( Class != pwr_cClass_windowplc) return PWRB__PLCPGMCHILD; return PWRB__SUCCESS; } /*----------------------------------------------------------------------------*\ Every method to be exported to the workbench should be registred here. \*----------------------------------------------------------------------------*/ pwr_dExport pwr_BindMethods(PlcPgm) = { pwr_BindMethod(OpenProgram), pwr_BindMethod(Build), pwr_BindMethod(SyntaxCheck), pwr_BindMethod(PostCreate), pwr_BindMethod(AnteAdopt), pwr_NullMethod };
static pwr_tStatus Build ( ldh_sMenuCall *ip ) { wb_build build( *(wb_session *)ip->PointedSession, ip->wnav); build.opt = ip->wnav->gbl.build; build.webhandler( ip->Pointed.Objid); if ( build.sts() == PWRB__NOBUILT) ip->wnav->message( 'I', "Nothing to build"); return build.sts(); } static pwr_tStatus PostCreate ( ldh_tSesContext Session, pwr_tOid Object, pwr_tOid Father, pwr_tCid Class ) { // Nothing to do from V4.7.0 ... return PWRB__SUCCESS; } pwr_dExport pwr_BindMethods(WebHandler) = { pwr_BindMethod(Build), pwr_BindMethod(PostCreate), pwr_NullMethod };
// static pwr_tStatus SyntaxCheck( ldh_tSesContext Session, pwr_tAttrRef Object, int *ErrorCount, int *WarningCount) { pwr_tStatus sts; pwr_tCid defgraph_class[] = { pwr_cClass_XttGraph, 0}; pwr_tCid deftrend_class[] = { pwr_cClass_DsTrend, pwr_cClass_DsFast, pwr_cClass_DsFastCurve, pwr_cClass_PlotGroup, 0}; sts = wsx_CheckAttrRef( Session, Object, "DefGraph", defgraph_class, 1, ErrorCount, WarningCount); if ( EVEN(sts)) return sts; sts = wsx_CheckAttrRef( Session, Object, "DefTrend", deftrend_class, 1, ErrorCount, WarningCount); if ( EVEN(sts)) return sts; return PWRS__SUCCESS; } /*----------------------------------------------------------------------------*\ Every method to be exported to the workbench should be registred here. \*----------------------------------------------------------------------------*/ pwr_dExport pwr_BindMethods($PlantHier) = { pwr_BindMethod(Build), pwr_BindMethod(SyntaxCheck), pwr_NullMethod };
#include "co_cdh.h" #include "co_dcli.h" #include "flow.h" #include "flow_browctx.h" #include "flow_browapi.h" #include "wb_wnav.h" #include "wb_build.h" #include "cow_msgwindow.h" #include "ge.h" static pwr_tStatus Build ( ldh_sMenuCall *ip ) { wb_build build( *(wb_session *)ip->PointedSession, ip->wnav); build.opt = ip->wnav->gbl.build; build.application( ip->Pointed.Objid); if ( build.sts() == PWRB__NOBUILT) ip->wnav->message( 'I', "Nothing to build"); return build.sts(); } pwr_dExport pwr_BindMethods(Application) = { pwr_BindMethod(Build), pwr_NullMethod };
return PWRS__POSSECURITY; return PWRS__SUCCESS; } static pwr_tStatus PostCreate ( ldh_tSesContext Session, pwr_tObjid Object, pwr_tObjid Father, pwr_tClassId Class ) { pwr_tStatus sts; // Set name to Security sts = ldh_SetObjectName( Session, Object, "Security"); if ( EVEN(sts)) return sts; return PWRS__SUCCESS; } pwr_dExport pwr_BindMethods($Security) = { pwr_BindMethod(AnteCreate), pwr_BindMethod(AnteMove), pwr_BindMethod(PostCreate), pwr_NullMethod };
wb_attribute ca = sp->attribute(co.oid(), "RtBody", "FileName"); if (!ca) return ca.sts(); ca.value(filename); if ((streq(filename, "index.html")) && idx < 1) idx = 2; else if (sscanf(filename, "index%d.html", &i) != 0) { if (idx <= i) idx = i + 1; } if (idx > 0) { wb_attribute a = sp->attribute(o.oid(), "RtBody", "FileName"); if (!a) return a.sts(); sprintf(filename, "index%d.html", idx); try { sp->writeAttribute(a, filename, sizeof(filename)); } catch (wb_error& e) { return e.sts(); } } } return PWRB__SUCCESS; } pwr_dExport pwr_BindMethods(OpPlaceWeb) = { pwr_BindMethod(Build), pwr_BindMethod(PostCreate), pwr_NullMethod };
pwr_tStatus sts; sts = dbcb_InsertPlcThreadObject( Session, Object); if ( EVEN(sts)) return sts; sts = ssab_SetAddress( (wb_session *)Session, Object); return sts; } static pwr_tStatus SetAddress ( ldh_sMenuCall *ip ) { pwr_tStatus sts; sts = ssab_SetAddress( (wb_session *)ip->PointedSession, ip->Pointed.Objid); return sts; } // // Every method to be exported to the workbench should be registred here. // pwr_dExport pwr_BindMethods(Ssab_CO4uP) = { pwr_BindMethod(SyntaxCheck), pwr_BindMethod(PostCreate), pwr_BindMethod(SetAddress), pwr_NullMethod };
continue; sts = ldh_ReadAttribute(ip->PointedSession, &PattrXref, &SattrXref, sizeof(pwr_sAttrRef)); if (EVEN(sts)) return sts; if (memcmp(&SattrXref, &TattrRef, sizeof(pwr_sAttrRef)) == 0) break; } if (i >= (int)Pdim) { return PWRS__NOTCONN; } else { PattrRef = TattrRef; SattrRef = PattrXref; } memset(&NoRef, 0, sizeof(NoRef)); sts = ldh_WriteAttribute(ip->PointedSession, &SattrRef, &NoRef, sizeof(pwr_sAttrRef)); sts = ldh_WriteAttribute(ip->PointedSession, &PattrRef, &NoRef, sizeof(pwr_sAttrRef)); return sts; } pwr_dExport pwr_BindMethods($AttrXRef) = { pwr_BindMethod(Connect), pwr_BindMethod(IsOkConnect), pwr_BindMethod(Disconnect), pwr_BindMethod(IsOkDisconnect), pwr_NullMethod };
if (ODD(sts)) return PWRS__SECURITYALREX; return PWRS__SUCCESS; } static pwr_tStatus AnteMove(ldh_tSesContext Session, pwr_tObjid Object, pwr_tObjid Father, pwr_tObjid OldFather) { // Check that that the father is the same if (!(Father.oix == OldFather.oix && Father.vid == OldFather.vid)) return PWRS__POSSECURITY; return PWRS__SUCCESS; } static pwr_tStatus PostCreate(ldh_tSesContext Session, pwr_tObjid Object, pwr_tObjid Father, pwr_tClassId Class) { pwr_tStatus sts; // Set name to Security sts = ldh_SetObjectName(Session, Object, "Security"); if (EVEN(sts)) return sts; return PWRS__SUCCESS; } pwr_dExport pwr_BindMethods($Security) = { pwr_BindMethod(AnteCreate), pwr_BindMethod(AnteMove), pwr_BindMethod(PostCreate), pwr_NullMethod };
wb_attribute a = sp->attribute( &Object); if ( !a) return a.sts(); // Check Attribute wb_attribute selectlist_a( a, 0, "EventSelectList"); if (!selectlist_a) return selectlist_a.sts(); selectlist_a.value( selectlist); if ( !selectlist_a) return selectlist_a.sts(); bool empty = true; for ( unsigned int i = 0; i < sizeof(selectlist)/sizeof(selectlist[0]); i++) { if ( strcmp( selectlist[i], "") != 0) { empty = false; break; } } if ( empty) wsx_error_msg_str( Session, "EventSelectList is empty", Object, 'W', ErrorCount, WarningCount); return PWRB__SUCCESS; } pwr_dExport pwr_BindMethods(OpPlace) = { pwr_BindMethod(PostCreate), pwr_BindMethod(SyntaxCheck), pwr_NullMethod };
/*----------------------------------------------------------------------------*\ Syntax check. \*----------------------------------------------------------------------------*/ static pwr_tStatus SyntaxCheck ( ldh_tSesContext Session, pwr_tAttrRef Object, /* current object */ int *ErrorCount, /* accumulated error count */ int *WarningCount /* accumulated waring count */ ) { pwr_tStatus sts; sts = wsx_CheckCard( Session, Object, ErrorCount, WarningCount, wsx_mCardOption_DevName); if (EVEN(sts)) return sts; return PWRB__SUCCESS; } /*----------------------------------------------------------------------------*\ Every method to be exported to the workbench should be registred here. \*----------------------------------------------------------------------------*/ pwr_dExport pwr_BindMethods(Do_HVDO32) = { pwr_BindMethod(AnteAdopt), pwr_BindMethod(PostUnadopt), pwr_BindMethod(PostAdopt), pwr_BindMethod(SyntaxCheck), pwr_NullMethod };
return PWRB__SUCCESS; } /*----------------------------------------------------------------------------*\ Syntax check. \*----------------------------------------------------------------------------*/ static pwr_tStatus SyntaxCheck( ldh_tSesContext Session, pwr_tAttrRef Object, /* current object */ int* ErrorCount, /* accumulated error count */ int* WarningCount /* accumulated waring count */ ) { pwr_tStatus sts; sts = wsx_CheckCard( Session, Object, ErrorCount, WarningCount, wsx_mCardOption_DevName); if (EVEN(sts)) return sts; return PWRB__SUCCESS; } /*----------------------------------------------------------------------------*\ Every method to be exported to the workbench should be registred here. \*----------------------------------------------------------------------------*/ pwr_dExport pwr_BindMethods(Do_HVDO32) = { pwr_BindMethod(AnteAdopt), pwr_BindMethod(PostUnadopt), pwr_BindMethod(PostAdopt), pwr_BindMethod(SyntaxCheck), pwr_NullMethod };
// static pwr_tStatus SyntaxCheck( ldh_tSesContext Session, pwr_tAttrRef Object, int *ErrorCount, int *WarningCount) { wb_session *sp = (wb_session *)Session; pwr_tOid mount_oid; // Check Object attribute wb_attribute a = sp->attribute( Object.Objid, "SysBody", "Object"); if (!a) return a.sts(); a.value( &mount_oid); if ( !a) return a.sts(); if ( cdh_ObjidIsNull( mount_oid)) { wsx_error_msg_str( Session, "Mounted object is missing", Object, 'E', ErrorCount, WarningCount); } return PWRS__SUCCESS; } // // Every method to be exported to the workbench should be registred here. // pwr_dExport pwr_BindMethods($MountObject) = { pwr_BindMethod(SyntaxCheck), pwr_NullMethod };
sts = ldh_SetObjectPar(ip->PointedSession, oid, "SysBody", "ButtonName", str, sizeof(pwr_tString40)); if ( EVEN(sts)) return sts; sts = ldh_SetObjectPar(ip->PointedSession, oid, "SysBody", "RefAttribute", str, sizeof(pwr_tString40)); if ( EVEN(sts)) return sts; } } if ( plctemplate) { sts = ldh_CreateObject( ip->PointedSession, &oid, "Code", pwr_cClass_PlcTemplate, ip->Pointed.Objid, ldh_eDest_IntoLast); } return PWRS__SUCCESS; } pwr_dExport pwr_BindMethods($ClassDef) = { pwr_BindMethod(AnteCreate), pwr_BindMethod(OpenObjectGraph), pwr_BindMethod(ConfigFc), pwr_NullMethod };