这篇教程C++ EVEN函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中EVEN函数的典型用法代码示例。如果您正苦于以下问题:C++ EVEN函数的具体用法?C++ EVEN怎么用?C++ EVEN使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了EVEN函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: mainint main(int argc, char *argv[]){ pwr_tStatus sts; char remote_address[40]; char remote_host_name[40]; rpvd_sMsg *msg; rpvd_sMsgAny umsg; rpvd_sMsgAny *rmsg; int udp_port; /* Read arguments */ if ( argc < 3) { usage(); exit(0); } strcpy( remote_address, argv[1]); strcpy( remote_host_name, argv[2]); if ( argc >= 4) { sts = sscanf( argv[3], "%d", &udp_port); if ( sts != 1) { usage(); exit(0); } } else udp_port = 3051; sts = udp_Init( remote_address, remote_host_name, udp_port); if ( EVEN(sts)) { exit(0); } sts = gdh_Init( "remote_pvd_pwrsrv"); if ( EVEN(sts)) return sts; umsg.Type = rpvd_eMsg_NodeUp; umsg.Id = 0; sts = udp_Request( (char *)&umsg, sizeof(umsg), (char **)&rmsg); if ( ODD(sts) && sts != REM__TIMEOUT && ODD(rmsg->Status)) printf( "Link up/n"); for (;;) { sts = udp_Receive( (char **)&msg, 5000); if ( sts == REM__TIMEOUT) { printf( "Alive/n"); } else if ( ODD(sts)) { switch ( msg->Any.Type) { case rpvd_eMsg_Oid: pwrsrv_Oid( &msg->Oid); break; case rpvd_eMsg_ObjectName: pwrsrv_ObjectName( &msg->ObjectName); break; case rpvd_eMsg_ReadAttribute: pwrsrv_ReadAttribute( &msg->ReadAttribute); break; case rpvd_eMsg_WriteAttribute: pwrsrv_WriteAttribute( &msg->WriteAttribute); break; case rpvd_eMsg_SubAdd: pwrsrv_SubAdd( &msg->SubAdd); break; case rpvd_eMsg_SubRemove: pwrsrv_SubRemove( &msg->SubRemove); break; case rpvd_eMsg_SubRequest: pwrsrv_SubSend( &msg->Any); break; case rpvd_eMsg_NodeUp: pwrsrv_NodeUp( &msg->Any); break; } } }}
开发者ID:jordibrus,项目名称:proview,代码行数:77,
示例2: goen_create_nodetype_m15int goen_create_nodetype_m15( pwr_sGraphPlcNode *graphbody, pwr_tClassId cid, ldh_tSesContext ldhses, flow_tCtx ctx, unsigned int *mask, unsigned long subwindowmark, unsigned long node_width, flow_tNodeClass *node_class, vldh_t_node node){ int i; int inputpoints, outputpoints; unsigned long pointmask; unsigned int *inmask_pointer; unsigned int *outmask_pointer; unsigned int *invertmask_pointer; int inputs; int interns; int outputs; int sts, size; int first_input, second_input; ldh_sParDef *bodydef; int rows; int inputcount; char annot_str[3][80]; int annot_nr[3]; int annot_count; double annot_width[3]; double annot_height; float f_width_left; float annot2_width; float annot3_width; char annot3_found; flow_tNodeClass nc_pid; char name[80]; int conpoint_nr; int annot_rows; static int idx = 0; flow_tObject cp; sts = ldh_ClassIdToName(ldhses, cid, name, sizeof(name), &size); if ( EVEN(sts) ) return sts; sprintf( &name[strlen(name)], "%d", idx++); /* Get the runtime paramteers for this class */ sts = ldh_GetObjectBodyDef(ldhses, cid, "RtBody", 1, &bodydef, &rows); if ( EVEN(sts) ) return sts; /* Get number of annotations and the width of the annotations */ sts = WGre::get_annotations( node, (char *)annot_str, annot_nr, &annot_count, sizeof( annot_str)/sizeof(annot_str[0]), sizeof( annot_str[0])); if ( EVEN(sts)) return sts; if ( annot_count > 0) { flow_MeasureAnnotText( ctx, annot_str[0], flow_eDrawType_TextHelvetica, GOEN_F_TEXTSIZE, flow_eAnnotType_OneLine, &annot_width[0], &annot_height, &annot_rows); } if ( annot_count > 1) { flow_MeasureAnnotText( ctx, annot_str[1], flow_eDrawType_TextHelvetica, GOEN_F_TEXTSIZE, flow_eAnnotType_OneLine, &annot_width[1], &annot_height, &annot_rows); } if ( annot_count > 2) { flow_MeasureAnnotText( ctx, annot_str[2], flow_eDrawType_TextHelvetica, GOEN_F_TEXTSIZE, flow_eAnnotType_OneLine, &annot_width[2], &annot_height, &annot_rows); } /* Find the widths for annotation 2 and 3 */ annot3_found = 0; annot2_width = 0; for ( i = 1; i < annot_count; i++) { if ( annot_nr[i] == 2) annot2_width = annot_width[i]; if ( annot_nr[i] == 3) { annot3_width = annot_width[i]; annot3_found = 1; } } /* Get how many parameters there are */ inputs = graphbody->parameters[PAR_INPUT]; interns = graphbody->parameters[PAR_INTERN]; outputs = graphbody->parameters[PAR_OUTPUT]; inmask_pointer = mask++; outmask_pointer = mask++; invertmask_pointer = mask; /* Check if first input in mask (first bit) */ pointmask = 1;//.........这里部分代码省略.........
开发者ID:Strongc,项目名称:proview,代码行数:101,
示例3: DecodePreviews//.........这里部分代码省略......... title->rate = vid_info.rate; title->rate_base = vid_info.rate_base; if( vid_info.rate_base == 900900 ) { if( npreviews >= 4 && pulldown_count >= npreviews / 4 ) { title->rate_base = 1126125; hb_deep_log( 2, "Pulldown detected, setting fps to 23.976" ); } if( npreviews >= 2 && progressive_count >= npreviews / 2 ) { // We've already deduced that the frame rate is 23.976, // so set it back again. title->rate_base = 1126125; hb_deep_log( 2, "Title's mostly NTSC Film, setting fps to 23.976" ); } } if( npreviews >= 2 && doubled_frame_count >= 3 * npreviews / 4 ) { // We've detected that a significant number of the frames // have been doubled in duration by repeat flags. title->rate_base = 2 * vid_info.rate_base; hb_deep_log( 2, "Repeat frames detected, setting fps to %.3f", (float)title->rate / title->rate_base ); } } title->video_bitrate = vid_info.bitrate; if( vid_info.pixel_aspect_width && vid_info.pixel_aspect_height ) { title->pixel_aspect_width = vid_info.pixel_aspect_width; title->pixel_aspect_height = vid_info.pixel_aspect_height; } title->color_prim = vid_info.color_prim; title->color_transfer = vid_info.color_transfer; title->color_matrix = vid_info.color_matrix; title->video_decode_support = vid_info.video_decode_support; // TODO: check video dimensions title->opencl_support = !!hb_opencl_available(); // compute the aspect ratio based on the storage dimensions and the // pixel aspect ratio (if supplied) or just storage dimensions if no PAR. title->aspect = (double)title->width / (double)title->height; title->aspect *= (double)title->pixel_aspect_width / (double)title->pixel_aspect_height; // For unknown reasons some French PAL DVDs put the original // content's aspect ratio into the mpeg PAR even though it's // the wrong PAR for the DVD. Apparently they rely on the fact // that DVD players ignore the content PAR and just use the // aspect ratio from the DVD metadata. So, if the aspect computed // from the PAR is different from the container's aspect we use // the container's aspect & recompute the PAR from it. if( title->container_aspect && (int)(title->aspect * 9) != (int)(title->container_aspect * 9) ) { hb_log("scan: content PAR gives wrong aspect %.2f; " "using container aspect %.2f", title->aspect, title->container_aspect ); title->aspect = title->container_aspect; hb_reduce( &title->pixel_aspect_width, &title->pixel_aspect_height, (int)(title->aspect * title->height + 0.5), title->width ); } // don't try to crop unless we got at least 3 previews if ( crops->n > 2 ) { sort_crops( crops ); // The next line selects median cropping - at least // 50% of the frames will have their borders removed. // Other possible choices are loose cropping (i = 0) where // no non-black pixels will be cropped from any frame and a // tight cropping (i = crops->n - (crops->n >> 2)) where at // least 75% of the frames will have their borders removed. i = crops->n >> 1; title->crop[0] = EVEN( crops->t[i] ); title->crop[1] = EVEN( crops->b[i] ); title->crop[2] = EVEN( crops->l[i] ); title->crop[3] = EVEN( crops->r[i] ); } hb_log( "scan: %d previews, %dx%d, %.3f fps, autocrop = %d/%d/%d/%d, " "aspect %s, PAR %d:%d", npreviews, title->width, title->height, (float) title->rate / (float) title->rate_base, title->crop[0], title->crop[1], title->crop[2], title->crop[3], aspect_to_string( title->aspect ), title->pixel_aspect_width, title->pixel_aspect_height ); if( interlaced_preview_count >= ( npreviews / 2 ) ) { hb_log("Title is likely interlaced or telecined (%i out of %i previews). You should do something about that.", interlaced_preview_count, npreviews); title->detected_interlacing = 1; } else { title->detected_interlacing = 0; } }
开发者ID:Vanganesha,项目名称:HandBrake,代码行数:101,
示例4: mainint main (){ pwr_tStatus sts; pwr_tObjid oid; qcom_sQid my_q = qcom_cNQid; qcom_sGet get; pwr_tBoolean firstTime = TRUE; pwr_tUInt32 nrOfEvents = 0; pwr_tUInt32 nrOfKeys = 0; errh_Init("pwr_elog", errh_eAnix_elog); errh_SetStatus( PWR__SRVSTARTUP); memset(&lHelCB, 0, sizeof(lHelCB)); /* Declare process */ sts = gdh_Init("pwr_elog"); If_Error_Log_Exit(sts, "gdh_Init"); Init(); /* Create queue for receival of events */ if (!qcom_CreateQ(&sts, &my_q, NULL, "events")) { errh_Fatal("qcom_CreateQ, %m", sts); errh_SetStatus( PWR__APPLTERM); exit(sts); } if (!qcom_Bind(&sts, &my_q, &qcom_cQini)) { errh_Fatal("qcom_Bind(Qini), %m", sts); errh_SetStatus( PWR__APPLTERM); exit(-1); } oid.vid = lHelCB.Nid; oid.oix = pwr_cNVolumeId; sts = mh_OutunitConnect( oid, mh_eOutunitType_Logger, mh_mOutunitFlags_ReadWait, (mh_cbOutunitAck)Insert, (mh_cbOutunitAlarm)Insert, (mh_cbOutunitBlock)Insert, (mh_cbOutunitCancel)Insert, NULL, NULL, (mh_cbOutunitInfo)Insert, (mh_cbOutunitReturn)Insert, NULL ); If_Error_Log_Exit(sts, "mh_OutunitConnect"); sts = mh_OutunitSetTimeout(lHelCB.ScanTime); errh_SetStatus( PWR__SRUN); for (;;) { sts = mh_OutunitReceive(); if (EVEN(sts) && sts != MH__TMO) Log_Error(sts, "mh_OutunitReceive"); Store(&firstTime, &nrOfEvents, &nrOfKeys); get.data = NULL; qcom_Get(&sts, &my_q, &get, 0); if (sts != QCOM__TMO && sts != QCOM__QEMPTY) { if (get.type.b == qcom_eBtype_event) { qcom_sEvent *ep = (qcom_sEvent*) get.data; ini_mEvent new_event; if (get.type.s == qcom_cIini) { new_event.m = ep->mask; if (new_event.b.terminate) { errh_SetStatus( PWR__APPLTERM); exit(0); } } } qcom_Free(&sts, get.data); } aproc_TimeStamp( lHelCB.ScanTime/1000, 5.0); }}
开发者ID:ManfredHerrmann,项目名称:proview,代码行数:85,
示例5: graph_object_collect_buildstatic int graph_object_collect_build( Graph *graph, pwr_sAttrRef *attrref){ pwr_sAttrRef *alist, *ap; int *is_attrp, *is_attr; int sts; char name[120]; double x1, y1; grow_sAttrInfo *grow_info, *grow_info_p; int grow_info_cnt; int i; grow_tObject scantime_button; grow_tObject hold_button; grow_tObject t1, l1; double z_width, z_height, z_descent; double name_width = 0; double trend_width = 48; double trend_height = 1.2; double y0 = 2.2; double x0 = 2; pwr_tTypeId attr_type; unsigned int attr_size, attr_offset, attr_dimension; GeDyn *dyn; char attr_name[120]; grow_sAttributes grow_attr; unsigned long mask; int trend_cnt = 0; if ( ! graph->get_current_objects_cb) return 0; sts = (graph->get_current_objects_cb) (graph->parent_ctx, &alist, &is_attr); if ( EVEN(sts)) return sts; if ( cdh_ObjidIsNull( alist->Objid)) return 0; graph->graph_object_data = 0; graph->graph_object_close = 0; grow_SetPath( graph->grow->ctx, 1, "pwr_exe:"); // Set graph attributes // Default color theme mask = grow_eAttr_color_theme; strcpy( grow_attr.color_theme, "$default"); grow_SetAttributes( graph->grow->ctx, &grow_attr, mask); grow_ReadCustomColorFile( graph->grow->ctx, 0); grow_SetBackgroundColor( graph->grow->ctx, glow_eDrawType_CustomColor1); // Scantime input field graph->create_node( NULL, "pwrct_valueinputsmallbg", x0, y0 - 1.3, 4, y0 - 1.3 + 1.2, &scantime_button); dyn = new GeDyn( graph); grow_SetUserData( scantime_button, (void *)dyn); dyn->set_dyn( ge_mDynType1_Value, ge_mDynType2_No, ge_mActionType1_ValueInput, ge_mActionType2_No); dyn->update_elements(); dyn->set_access( (glow_mAccess) 65535); dyn->set_attribute( scantime_button, "$local.ScanTime##Float32", 0); dyn->set_value_input( "%3.0f", 2, 10000000); // Hold button graph->create_node( "TrendHold", "pwrct_buttonsmalltoggle", x0 + trend_width/2 - 3./2, y0 - 1.4 , x0 + trend_width/2 + 3./2, y0 - 1.4 + 1.2, &hold_button); grow_SetAnnotation( hold_button, 1, "Hold", 4); dyn = new GeDyn( graph); grow_SetUserData( hold_button, (void *)dyn); dyn->set_access( (glow_mAccess) 65535); dyn->set_attribute( hold_button, "$local.TrendHold##Boolean", 0); // Zero text grow_CreateGrowText( graph->grow->ctx, "", "0", x0 + trend_width - 0.2, y0 - 0.3, glow_eDrawType_TextHelvetica, glow_eDrawType_CustomColor5, 3, glow_eFont_LucidaSans, glow_mDisplayLevel_1, NULL, &t1); ap = alist; is_attrp = is_attr; x1 = x0; y1 = y0; while( cdh_ObjidIsNotNull( ap->Objid)) { if ( *is_attrp) { sts = gdh_AttrrefToName( ap, name, sizeof(name), cdh_mNName); if ( EVEN(sts)) return sts; sts = gdh_GetAttributeCharacteristics( name, &attr_type, &attr_size, &attr_offset, &attr_dimension); if ( EVEN(sts)) return sts; switch ( attr_type) { case pwr_eType_Boolean: { grow_tObject trend;//.........这里部分代码省略.........
开发者ID:siamect,项目名称:proview,代码行数:101,
示例6: testClientstatic gdb_sNode *testClient ( pwr_tStatus *sts, sub_sClient *cp){ pwr_tStatus lsts = GDH__SUCCESS; pwr_tSubid sid = cp->sid; cdh_sParseName parseName; cdh_sParseName *pn; gdb_sObject *op = NULL; sub_sClient *rcp; gdb_sVolume *vp; gdb_sNode *np = NULL; mvol_sAttribute attribute; mvol_sAttribute *ap; pwr_sAttrRef *arp; pwr_sAttrRef *rarp; gdb_sCclass *ccp; gdb_sCclass *ccpLocked; pool_tRef ccr; pwr_tUInt32 ridx; pwr_tBoolean equal; pwr_tBoolean fetched; gdb_AssumeLocked; do { if (cp->sub_by_name) { /* Lookup by name. */ pn = cdh_ParseName(&lsts, &parseName, pwr_cNObjid, cp->name, 0); if (pn == NULL) break; do { ap = vol_NameToAttribute(&lsts, &attribute, pn, gdb_mLo_global, vol_mTrans_all); if (ap == NULL) break; rcp = hash_Search(sts, gdbroot->subc_ht, &sid); if (rcp != cp) break; /* Subscription client no longer exists! */ arp = mvol_AttributeToAref(&lsts, ap, &cp->aref); if (arp == NULL) break; op = ap->op; /* */ vp = pool_Address(NULL, gdbroot->pool, op->l.vr); np = hash_Search(&lsts, gdbroot->nid_ht, &vp->g.nid); if (np == NULL) { op = NULL; break; } ccp = NULL; equal = 1; /* Get cached class if needed */ if (!op->u.c.flags.b.classChecked || !op->u.c.flags.b.classEqual) { ccp = cmvolc_GetCachedClass(&lsts, np, vp, ap, &equal, &fetched, NULL); if (EVEN(lsts)) { np = NULL; op = NULL; break; } if (fetched) { rcp = hash_Search(sts, gdbroot->subc_ht, &sid); if (rcp != cp) break; /* Subscription client no longer exists! */ } if (equal) { if (cp->cclass != pool_cNRef) { ccp = pool_Address(NULL, gdbroot->pool, cp->cclass); if (ccp == NULL) errh_Bugcheck(GDH__WEIRD, "cached class address"); cmvolc_UnlockClass(NULL, ccp); cp->cclass = pool_cNRef; } ccp = NULL; } else { ccr = pool_ItemReference(NULL, gdbroot->pool, ccp); if (ccr == pool_cNRef) errh_Bugcheck(GDH__WEIRD, "cache class address to reference"); if (ccr != cp->cclass) { if (cp->cclass != pool_cNRef) { gdb_sCclass *cc2p = pool_Address(NULL, gdbroot->pool, cp->cclass); cmvolc_UnlockClass(NULL, cc2p); } cmvolc_LockClass(NULL, ccp); cp->cclass = ccr; } } /* If gdb has been unlocked, refresh pointers */ /** @todo Check if we can do it more efficient, eg. vol_ArefToAttribute */ if (fetched) { np = NULL; op = NULL;//.........这里部分代码省略.........
开发者ID:hfuhuang,项目名称:proview,代码行数:101,
示例7: importUpdateSubClassbool wb_treeimport::importUpdateSubClass( wb_adrep *subattr, char *body, wb_vrep *vrep, bool *modified){ pwr_tStatus sts; pwr_tOix oix; pwr_tCid cid = subattr->subClass(); wb_cdrep *cdrep = vrep->merep()->cdrep( &sts, cid); if ( EVEN(sts)) throw wb_error(sts); wb_bdrep *bdrep = cdrep->bdrep( &sts, pwr_eBix_rt); if ( EVEN(sts)) throw wb_error(sts); int subattr_elements = subattr->isArray() ? subattr->nElement() : 1; for ( int i = 0; i < subattr_elements; i++) { wb_adrep *adrep = bdrep->adrep( &sts); while ( ODD(sts)) { int elements = adrep->isArray() ? adrep->nElement() : 1; if ( adrep->isClass()) { importUpdateSubClass( adrep, body + i * subattr->size() / subattr_elements + adrep->offset(), vrep, modified); } else { switch ( adrep->type()) { case pwr_eType_Objid: { pwr_tOid *oidp = (pwr_tOid *)(body + i * subattr->size() / subattr_elements + adrep->offset()); for ( int j = 0; j < elements; j++) { if ( oidp->vid == m_import_source_vid && (oix = importTranslate( oidp->oix))) { oidp->vid = vrep->vid(); oidp->oix = oix; *modified = true; } else if ( ldh_isSymbolicVid( oidp->vid) && (oix = importTranslateCid(oidp->oix))) { oidp->oix = oix; *modified = true; } oidp++; } break; } case pwr_eType_AttrRef: { pwr_sAttrRef *arp = (pwr_sAttrRef *)(body + i * subattr->size() / subattr_elements + adrep->offset()); for ( int j = 0; j < elements; j++) { if ( arp->Objid.vid == m_import_source_vid && (oix = importTranslate( arp->Objid.oix))) { arp->Objid.vid = vrep->vid(); arp->Objid.oix = oix; *modified = true; } else if ( ldh_isSymbolicVid( arp->Objid.vid) && (oix = importTranslateCid(arp->Objid.oix))) { arp->Objid.oix = oix; *modified = true; } arp++; } break; } case pwr_eType_DataRef: { pwr_tDataRef *drp = (pwr_tDataRef *)(body + i * subattr->size() / subattr_elements + adrep->offset()); for ( int j = 0; j < elements; j++) { if ( drp->Aref.Objid.vid == m_import_source_vid && (oix = importTranslate( drp->Aref.Objid.oix))) { drp->Aref.Objid.vid = vrep->vid(); drp->Aref.Objid.oix = oix; *modified = true; } drp++; } break; } default: ; } } wb_adrep *prev = adrep; adrep = adrep->next( &sts); delete prev; } } delete bdrep; delete cdrep; return true;}
开发者ID:ManfredHerrmann,项目名称:proview,代码行数:87,
示例8: whilebool wb_treeimport::importUpdateObject( wb_orep *o, wb_vrep *vrep){ pwr_tOix oix; pwr_tStatus sts; wb_cdrep *cdrep = vrep->merep()->cdrep( &sts, o->cid()); if ( EVEN(sts)) throw wb_error(sts); pwr_mClassDef flags = cdrep->flags(); for ( int i = 0; i < 2; i++) { pwr_eBix bix = i ? pwr_eBix_rt : pwr_eBix_dev; wb_bdrep *bdrep = cdrep->bdrep( &sts, bix); if ( EVEN(sts)) continue; int size = bdrep->size(); char *body = (char *)malloc( bdrep->size()); vrep->readBody( &sts, o, bix, body); if ( EVEN(sts)) throw wb_error(sts); bool modified = false; wb_adrep *adrep = bdrep->adrep( &sts); while ( ODD(sts)) { int elements = adrep->isArray() ? adrep->nElement() : 1; if (adrep->offset() < 0 || ((int)(adrep->offset() + adrep->size()) > size)) printf("(adrep->offset() < 0 || (adrep->offset() + adrep->size() > size))/n"); if ( adrep->isClass()) { importUpdateSubClass( adrep, body + adrep->offset(), vrep, &modified); } else { switch ( adrep->type()) { case pwr_eType_Objid: { pwr_tOid *oidp = (pwr_tOid *)(body + adrep->offset()); for ( int j = 0; j < elements; j++) { if ( oidp->vid == m_import_source_vid && (oix = importTranslate( oidp->oix))) { oidp->vid = vrep->vid(); oidp->oix = oix; modified = true; } else if ( ldh_isSymbolicVid( oidp->vid) && (oix = importTranslateCid(oidp->oix))) { oidp->oix = oix; modified = true; } oidp++; } break; } case pwr_eType_AttrRef: { pwr_sAttrRef *arp = (pwr_sAttrRef *)(body + adrep->offset()); for ( int j = 0; j < elements; j++) { if ( arp->Objid.vid == m_import_source_vid && (oix = importTranslate( arp->Objid.oix))) { arp->Objid.vid = vrep->vid(); arp->Objid.oix = oix; modified = true; } else if ( ldh_isSymbolicVid( arp->Objid.vid) && (oix = importTranslateCid(arp->Objid.oix))) { arp->Objid.oix = oix; modified = true; } arp++; } break; } case pwr_eType_DataRef: { pwr_tDataRef *drp = (pwr_tDataRef *)(body + adrep->offset()); for ( int j = 0; j < elements; j++) { if ( drp->Aref.Objid.vid == m_import_source_vid && (oix = importTranslate( drp->Aref.Objid.oix))) { drp->Aref.Objid.vid = vrep->vid(); drp->Aref.Objid.oix = oix; modified = true; } drp++; } break; } default: ; } } wb_adrep *prev = adrep; adrep = adrep->next( &sts); delete prev; } if ( modified) { vrep->writeBody( &sts, o, bix, body); if ( EVEN(sts)) throw wb_error(sts); } free( body); delete bdrep; } delete cdrep; return true;}
开发者ID:ManfredHerrmann,项目名称:proview,代码行数:99,
示例9: G77_ef1asc_0intG77_ef1asc_0 (ftnint * a, ftnlen * la, ftnint * b, ftnlen * lb){ s_copy ((char *) a, (char *) b, EVEN (*la), *lb); return 0; /* ignored return value */}
开发者ID:VargMon,项目名称:dd-wrt,代码行数:6,
示例10: nwb_adrep *wb_bdrep::adrep( pwr_tStatus *sts, const char *aname){#if 0 wb_attrname n(aname); if ( n.evenSts()) { *sts = n.sts(); return 0; } char fullname[120]; wb_bdrep *bd = this; wb_adrep *adrep = 0; int offset; for ( int i = 0; i < n.attributes(); i++) { wb_name an(n.attribute(i)); wb_orep *orep = bd->m_orep->vrep()->child( sts, bd->m_orep, an); if ( EVEN(*sts)) return 0; if ( adrep) delete adrep; adrep = new wb_adrep( *orep); if ( i == 0) { offset = adrep->offset(); strcpy( fullname, adrep->name()); } else { offset += adrep->offset(); strcat( fullname, "."); strcat( fullname, adrep->name()); } if ( n.hasAttrIndex(i)) { sprintf( &fullname[strlen(fullname)], "[%d]", n.attrIndex(i)); if ( n.attrIndex(i) >= adrep->nElement() || n.attrIndex(i) < 0) { *sts = LDH__ATTRINDEX; return 0; } offset += n.attrIndex(i) * adrep->size() / adrep->nElement(); } if ( (i != n.attributes() - 1) && adrep->isClass()) { wb_cdrep *cd = m_orep->vrep()->merep()->cdrep( sts, adrep->subClass()); if ( EVEN(*sts)) return 0; if ( bd != this) delete bd; bd = cd->bdrep( sts, pwr_eBix_rt); if ( EVEN(*sts)) { delete cd; return 0;} delete cd; } } adrep->setSubattr( offset, fullname);#endif wb_attrname n(aname); if ( n.evenSts()) { *sts = n.sts(); return 0; } wb_bdrep *bd = this; wb_adrep *adrep = 0; wb_adrep *old = 0; for ( int i = 0; i < n.attributes(); i++) { bool next_attr = false; wb_name an(n.attribute(i)); wb_orep *orep = bd->m_orep->vrep()->child( sts, bd->m_orep, an); while ( EVEN(*sts)) { // Try Super attribute orep = bd->m_orep->vrep()->first( sts, bd->m_orep); if ( EVEN(*sts)) { if ( bd != this) delete bd; if ( adrep) delete adrep; return 0; } if ( cdh_NoCaseStrcmp( orep->name(), "Super") == 0) { if ( adrep) old = adrep; adrep = new wb_adrep( *orep); if ( old) adrep->add( old); delete old; wb_cdrep *cd = m_orep->vrep()->merep()->cdrep( sts, adrep->subClass()); if ( EVEN(*sts)) return 0; if ( bd != this) delete bd; bd = cd->bdrep( sts, pwr_eBix_rt); if ( EVEN(*sts)) { delete cd; return 0;} delete cd; orep = bd->m_orep->vrep()->child( sts, bd->m_orep, an);//.........这里部分代码省略.........
开发者ID:Strongc,项目名称:proview,代码行数:101,
示例11: brow_GetUserData//// Callbacks from brow//int CoLogWNav::brow_cb( FlowCtx *ctx, flow_tEvent event){ CoLogWNav *logwnav; ItemLog *item; if ( event->event == flow_eEvent_ObjectDeleted) { brow_GetUserData( event->object.object, (void **)&item); delete item; return 1; } brow_GetCtxUserData( (BrowCtx *)ctx, (void **) &logwnav); switch ( event->event) { case flow_eEvent_Key_Up: { brow_tNode *node_list; int node_count; brow_tObject object; int sts; brow_GetSelectedNodes( logwnav->brow->ctx, &node_list, &node_count); if ( !node_count) { sts = brow_GetLastVisible( logwnav->brow->ctx, &object); if ( EVEN(sts)) return 1; } else { if ( !brow_IsVisible( logwnav->brow->ctx, node_list[0], flow_eVisible_Partial)) { sts = brow_GetLastVisible( logwnav->brow->ctx, &object); if ( EVEN(sts)) return 1; } else { sts = brow_GetPrevious( logwnav->brow->ctx, node_list[0], &object); if ( EVEN(sts)) { if ( node_count) free( node_list); return 1; } } } brow_SelectClear( logwnav->brow->ctx); brow_SetInverse( object, 1); brow_SelectInsert( logwnav->brow->ctx, object); if ( !brow_IsVisible( logwnav->brow->ctx, object, flow_eVisible_Full)) brow_CenterObject( logwnav->brow->ctx, object, 0.25); if ( node_count) free( node_list); break; } case flow_eEvent_Key_Down: { brow_tNode *node_list; int node_count; brow_tObject object; int sts; brow_GetSelectedNodes( logwnav->brow->ctx, &node_list, &node_count); if ( !node_count) { sts = brow_GetFirstVisible( logwnav->brow->ctx, &object); if ( EVEN(sts)) return 1; } else { if ( !brow_IsVisible( logwnav->brow->ctx, node_list[0], flow_eVisible_Partial)) { sts = brow_GetFirstVisible( logwnav->brow->ctx, &object); if ( EVEN(sts)) return 1; } else { sts = brow_GetNext( logwnav->brow->ctx, node_list[0], &object); if ( EVEN(sts)) { if ( node_count) free( node_list); return 1; } } } brow_SelectClear( logwnav->brow->ctx); brow_SetInverse( object, 1); brow_SelectInsert( logwnav->brow->ctx, object); if ( !brow_IsVisible( logwnav->brow->ctx, object, flow_eVisible_Full)) brow_CenterObject( logwnav->brow->ctx, object, 0.75); if ( node_count) free( node_list); break; } case flow_eEvent_SelectClear: brow_ResetSelectInverse( logwnav->brow->ctx); break; case flow_eEvent_MB1Click: // Select double ll_x, ll_y, ur_x, ur_y; int sts; switch ( event->object.object_type) { case flow_eObjectType_Node: brow_MeasureNode( event->object.object, &ll_x, &ll_y,//.........这里部分代码省略.........
开发者ID:Strongc,项目名称:proview,代码行数:101,
示例12: vipc616_GetAddresspwr_tStatus vipc616_GetAddress( pwr_tObjid ipObjid, /* Objid of IP-module */ pwr_tUInt32 slot, char **ioAddress, char **idAddress, char **memoryAddress){ pwr_tStatus sts; pwr_tObjid parent; pwr_tClassId cid; pwr_sClass_VIPC616* vipc; unsigned int memSize; int slotNo; unsigned int ioAdrs; unsigned int memAdrs; sts = gdh_GetParent(ipObjid, &parent); if (EVEN(sts)) return IO__NOTIPCARRIER; sts = gdh_GetObjectClass(parent, &cid); if (EVEN(sts)) return IO__NOTIPCARRIER; if (pwr_cClass_VIPC616 != cid) return IO__NOTIPCARRIER; sts = gdh_ObjidToPointer(parent, (pwr_tAddress *)&vipc); if (EVEN(sts)) return IO__NOTIPCARRIER; switch (toupper(slot)) { case 'A': case 'B': case 'C': case 'D': slotNo = toupper(slot) - 'A'; break; default: return IO__INVIPSLOT; break; } if (vipc->MemoryBase == 32) memSize = 0x800000; /* 8 MB */ else if (vipc->MemorySlotSize <= 128) memSize = 0x20000; /* 128 kB */ else if (vipc->MemorySlotSize <= 256) memSize = 0x40000; /* 256 kB */ else if (vipc->MemorySlotSize <= 512) memSize = 0x80000; /* 512 kB */ else if (vipc->MemorySlotSize <= 1024) memSize = 0x100000; /* 1 MB */ else memSize = 0x200000; /* 2 MB */ ioAdrs = io_GetShortIoAddress(); /* Each slot have 128 bytes IO space */ if (ioAddress != NULL) *ioAddress = (char *) (ioAdrs + vipc->IoAddress + (unsigned int)(slotNo * 0x100)); /* After the IO space each slot have 128 ID bytes */ if (idAddress != NULL) *idAddress = (char *) (ioAdrs + vipc->IoAddress + (unsigned int) 0x80 + (unsigned int)(slotNo * 0x100)); if (memoryAddress != NULL) { if (vipc->MemoryBase == 32) memAdrs = io_GetA32D16Address(); else memAdrs = io_GetA24Address(); *memoryAddress = (char *)(memAdrs + (unsigned int)(slotNo * memSize) + vipc->MemoryAddress); } return IO__SUCCESS; }
开发者ID:hfuhuang,项目名称:proview,代码行数:81,
示例13: message//// Callbackfunctions from menu entries//void WPkg::activate_distribute(){ WItemPkg **itemlist; int item_count; int sts; message( ' ', ""); sts = wpkgnav->get_select( &itemlist, &item_count); if ( EVEN(sts)) { message( 'E', "Select a node or package"); return; } if ( item_count > 1) { for ( int i = 0; i < item_count; i++) { if ( typeid( *itemlist[i]) != typeid( WItemPkgNode)) { message( 'E', "All selected items are not nodes"); free( itemlist); return; } } set_clock_cursor(); for ( int i = 0; i < item_count; i++) { try { wb_pkg *pkg = new wb_pkg( ((WItemPkgNode *)itemlist[i])->nodename); delete pkg; } catch ( wb_error &e) { message(' ', (char *)e.what().c_str()); reset_cursor(); free( itemlist); return; } wpkgnav->refresh_node( itemlist[i]); char msg[80]; sprintf( msg, "Distribution successful to %s", ((WItemPkgNode *)itemlist[i])->nodename); message('I', msg); flush(); } reset_cursor(); free( itemlist); } else { // One is selected if ( typeid( *itemlist[0]) == typeid( WItemPkgNode)) { set_clock_cursor(); try { wb_pkg *pkg = new wb_pkg( ((WItemPkgNode *)itemlist[0])->nodename); delete pkg; } catch ( wb_error &e) { message(' ', (char *)e.what().c_str()); } wpkgnav->refresh_node( itemlist[0]); char msg[80]; sprintf( msg, "Distribution successful to %s", ((WItemPkgNode *)itemlist[0])->nodename); message('I', msg); reset_cursor(); } else if ( typeid( *itemlist[0]) == typeid( WItemPkgPackage)) { set_clock_cursor(); wb_pkg::copyPackage( ((WItemPkgPackage *)itemlist[0])->packagename); char msg[80]; sprintf( msg, "Distribution successful of %s", ((WItemPkgPackage *)itemlist[0])->packagename); message('I', msg); reset_cursor(); } else { message( 'E', "Select a node or package"); } }}
开发者ID:ManfredHerrmann,项目名称:proview,代码行数:79,
示例14: graph_object_dxstatic int graph_object_dx( Graph *graph, pwr_sAttrRef *arp){ int sts; graph_sObjectDx *od; pwr_tAttrRef aref, chanaref; pwr_tAName aname; pwr_tCid card_cid; od = (graph_sObjectDx *) calloc( 1, sizeof(graph_sObjectDx)); graph->graph_object_data = (void *) od; graph->graph_object_close = graph_object_dx_close; sts = gdh_GetAttrRefTid( arp, &od->cid); if ( EVEN(sts)) return sts; // Get channel object sts = gdh_ArefANameToAref( arp, "SigChanCon", &aref); if ( EVEN(sts)) { // Dv object, register scan function and return with success graph->graph_object_scan = graph_object_dx_scan; return 1; } sts = gdh_GetObjectInfoAttrref( &aref, &chanaref, sizeof(chanaref)); if ( EVEN(sts)) return sts; od->local_conv_p = (pwr_tBoolean *) graph->localdb_ref_or_create( "ConversionOn", pwr_eType_Boolean); od->local_inv_p = (pwr_tBoolean *) graph->localdb_ref_or_create( "InvertOn", pwr_eType_Boolean); od->local_test_p = (pwr_tBoolean *) graph->localdb_ref_or_create( "TestOn", pwr_eType_Boolean); // Get card object if ( chanaref.Flags.b.ObjectAttr) { sts = gdh_GetObjectClass( chanaref.Objid, &card_cid); if ( EVEN(sts)) return sts; } else card_cid = 0; switch ( card_cid) { case pwr_cClass_Ssab_DI32D: { pwr_tAName card_name; unsigned int chan_idx = (chanaref.Offset - pwr_AlignLW(sizeof(pwr_sClass_Ssab_BaseDiCard))) / pwr_AlignLW(sizeof(pwr_sClass_ChanDi)); sts = gdh_ObjidToName( chanaref.Objid, card_name, sizeof(card_name), cdh_mNName); if ( EVEN(sts)) return sts; if ( chan_idx < 16) { strcpy( aname, card_name); strcat( aname, ".ConvMask1"); graph->ref_object_info( glow_eCycle_Slow, aname, (void **)&od->conv_p, &od->conv_subid, sizeof(pwr_tBoolean), 0, true); strcpy( aname, card_name); strcat( aname, ".InvMask1"); graph->ref_object_info( glow_eCycle_Slow, aname, (void **)&od->inv_p, &od->inv_subid, sizeof(pwr_tBoolean), 0, true); od->mask = 1 << chan_idx; } else if ( chan_idx < 32) { strcpy( aname, card_name); strcat( aname, ".ConvMask2"); graph->ref_object_info( glow_eCycle_Slow, aname, (void **)&od->conv_p, &od->conv_subid, sizeof(pwr_tBoolean), 0, true); strcpy( aname, card_name); strcat( aname, ".InvMask2"); graph->ref_object_info( glow_eCycle_Slow, aname, (void **)&od->inv_p, &od->inv_subid, sizeof(pwr_tBoolean), 0, true); od->mask = 1 << (chan_idx - 16); } else return 0; break; } case pwr_cClass_Ssab_DO32DKS: case pwr_cClass_Ssab_DO32DKS_Stall: { pwr_tAName card_name; unsigned int chan_idx = (chanaref.Offset - pwr_AlignLW(sizeof(pwr_sClass_Ssab_BaseDoCard))) / pwr_AlignLW(sizeof(pwr_sClass_ChanDo)); sts = gdh_ObjidToName( chanaref.Objid, card_name, sizeof(card_name), cdh_mNName); if ( EVEN(sts)) return sts; if ( chan_idx < 16) { strcpy( aname, card_name); strcat( aname, ".TestMask1"); graph->ref_object_info( glow_eCycle_Slow, aname, (void **)&od->test_p, &od->test_subid, sizeof(pwr_tBoolean), 0, true); strcpy( aname, card_name);//.........这里部分代码省略.........
开发者ID:siamect,项目名称:proview,代码行数:101,
示例15: mb_connectstatic void* mb_connect(void* arg){ io_sRack* rp = (io_sRack*)arg; io_sServerLocal* local = rp->Local; int sts; pwr_sClass_Modbus_TCP_Server* op; struct sockaddr_in r_addr; socklen_t r_addr_len; int c_socket; mb_sCondata* condata; int idx; int found; int i; op = (pwr_sClass_Modbus_TCP_Server*)rp->op; while (1) { /* Wait for client connect request */ r_addr_len = sizeof(r_addr); c_socket = accept(local->s, (struct sockaddr*)&r_addr, &r_addr_len); if (c_socket < 0) { errh_Error( "Error accept IO modbus tcp server %s, %d", rp->Name, local->s); continue; } if (op->DisableServer) continue; errh_Info("Connection accepted for IO modbus tcp server %s, %d", rp->Name, c_socket); /* Close other connections to this address */ for (i = 0; i < MB_MAX_CONNECTIONS; i++) { if (local->connections[i].occupied && r_addr_len == local->connections[i].addrlen && r_addr.sin_family == local->connections[i].addr.sin_family && memcmp(&r_addr.sin_addr, &local->connections[i].addr.sin_addr, sizeof(r_addr.sin_addr)) == 0) { mb_close_connection(rp, i); } } /* Find next empty in connection list */ found = 0; for (i = 0; i < MB_MAX_CONNECTIONS; i++) { if (!local->connections[i].occupied) { found = 1; idx = i; break; } } if (!found) { /* Remove the oldest connection */ int oldest_idx = 0; for (i = 1; i < MB_MAX_CONNECTIONS; i++) { if (time_Acomp(&local->connections[i].last_req_time, &local->connections[oldest_idx].last_req_time) < 0) oldest_idx = i; } mb_close_connection(rp, oldest_idx); errh_Info( "Connection closed, IO modbus tcp server %s, %d", rp->Name, local->s); idx = oldest_idx; } local->connections[idx].c_socket = c_socket; local->connections[idx].occupied = 1; time_GetTime(&local->connections[idx].last_req_time); local->connections[idx].addrlen = r_addr_len; memcpy(&local->connections[idx].addr, &r_addr, r_addr_len); /* Create a thread for this connection */ condata = (mb_sCondata*)malloc(sizeof(mb_sCondata)); condata->rp = rp; condata->idx = idx; sts = thread_Create( &local->connections[idx].t, 0, mb_receive, (void*)condata); if (EVEN(sts)) { local->connections[idx].occupied = 0; errh_Error("Error creating thread IO modbus tcp server %s, %d", rp->Name, local->s); free(condata); continue; } } return 0;}
开发者ID:siamect,项目名称:proview,代码行数:93,
示例16: gdh_GetAttrRefTidint Graph::trend_init( graph_sObjectTrend *td, pwr_sAttrRef *arp){ pwr_tClassId classid; pwr_tFloat32 max_limit = 100; pwr_tFloat32 min_limit = 0; int sts; pwr_sAttrRef attrref; grow_tObject object; int presminlimit_found = 0; int presmaxlimit_found = 0; double scan_time; if ( arp && cdh_ObjidIsNotNull( arp->Objid)) { sts = gdh_GetAttrRefTid( arp, &classid); if ( EVEN(sts)) return sts; // Try to find attributes PresMaxLimit and PresMinLimit sts = gdh_ArefANameToAref( arp, "PresMaxLimit", &attrref); if ( ODD(sts)) { sts = gdh_GetObjectInfoAttrref( &attrref, (void *)&max_limit, sizeof(max_limit)); if ( EVEN(sts)) return sts; presmaxlimit_found = 1; } sts = gdh_ArefANameToAref( arp, "PresMinLimit", &attrref); if ( ODD(sts)) { sts = gdh_GetObjectInfoAttrref( &attrref, (void *)&min_limit, sizeof(min_limit)); if ( EVEN(sts)) return sts; presminlimit_found = 1; } } td->pres_max_limit_old = max_limit; td->pres_min_limit_old = min_limit; // Configure bar sts = grow_FindObjectByName( grow->ctx, "ActualValueBar", &td->bar_object); if ( ODD(sts)) { if ( min_limit != max_limit) grow_SetBarRange( td->bar_object, double(min_limit), double(max_limit)); } // Get pointers to max and min value sts = grow_FindObjectByName( grow->ctx, "PresMaxLimit", &object); if ( ODD(sts)) { GeDyn *dyn; grow_GetUserData( object, (void **)&dyn); td->pres_max_limit_p = (pwr_tFloat32 *) dyn->get_p(); if ( !presmaxlimit_found) // PresMaxLimit in local database, set value *td->pres_max_limit_p = max_limit; } sts = grow_FindObjectByName( grow->ctx, "PresMinLimit", &object); if ( ODD(sts)) { GeDyn *dyn; grow_GetUserData( object, (void **)&dyn); td->pres_min_limit_p = (pwr_tFloat32 *) dyn->get_p(); if ( !presminlimit_found) // PresMinLimit in local database, set value *td->pres_min_limit_p = min_limit; } // Configure trend sts = grow_FindObjectByName( grow->ctx, "ActualValueTrend", &td->trend_object); if ( EVEN(sts)) return sts; if ( td->pres_min_limit_p && td->pres_max_limit_p) { if ( min_limit != max_limit) grow_SetTrendRangeY( td->trend_object, 0, double(min_limit), double(max_limit)); } // Configure slider sts = grow_FindObjectByName( grow->ctx, "ActualValueSlider", &td->slider_object); if ( ODD(sts)) { if ( td->pres_min_limit_p && td->pres_max_limit_p) { if ( min_limit != max_limit) grow_SetSliderRange( td->slider_object, double(min_limit), double(max_limit)); } GeDyn *dyn; grow_GetUserData( td->slider_object, (void **)&dyn); td->slider_disable_p = dyn->ref_slider_disabled(); if ( td->slider_disable_p) *td->slider_disable_p = 1; } // Set scantime variable in local database grow_GetTrendScanTime( td->trend_object, &scan_time); td->scan_time_p = (float *) localdb_ref_or_create( "ScanTime", pwr_eType_Float32);//.........这里部分代码省略.........
开发者ID:siamect,项目名称:proview,代码行数:101,
示例17: IoRackInitstatic pwr_tStatus IoRackInit(io_tCtx ctx, io_sAgent* ap, io_sRack* rp){ io_sServerLocal* local; pthread_t thread; pwr_tOName name; pwr_tStatus sts; pwr_sClass_Modbus_TCP_Server* op; int i; unsigned short port; op = (pwr_sClass_Modbus_TCP_Server*)rp->op; op->Connections = 0; port = op->Port == 0 ? 502 : op->Port; sts = gdh_ObjidToName(rp->Objid, (char*)&name, sizeof(name), cdh_mNName); errh_Info("Init of Modbus TCP Server %s", name); rp->Local = calloc(1, sizeof(io_sServerLocal)); local = rp->Local; if (op->DisableServer) return IO__SUCCESS; /* Create socket, store in local struct */ uid_t ruid; ruid = getuid(); printf("ruid: %d/n", ruid); local->s = socket(AF_INET, SOCK_STREAM, 0); if (local->s < 0) { errh_Error("Error creating socket for IO modbus tcp server %s, %d", rp->Name, local->s); return 0; } local->loc_addr.sin_family = AF_INET; local->loc_addr.sin_port = htons(port); for (i = 0; i < 10; i++) { sts = bind( local->s, (struct sockaddr*)&local->loc_addr, sizeof(local->loc_addr)); if (sts == 0) break; perror("Modbus TCP Bind socket failure, retrying... "); sleep(10); } if (sts != 0) { printf("Modbus TCP Bind socket failure, exiting"); errh_Error("Error bind socket to port for IO modbus tcp server %s, %d", rp->Name, local->s); return 0; } errh_Info("Modbus TCP Sever bind to port %d, %s", port, name); sts = listen(local->s, 16); sts = thread_MutexInit(&local->mutex); if (EVEN(sts)) return sts; /* Create a thread that listens for connections */ sts = pthread_create(&thread, NULL, mb_connect, (void*)rp); if (sts != 0) return sts; sts = mb_init_channels(ctx, ap, rp); if (EVEN(sts)) return sts; op->Status = MB__NORMAL; return IO__SUCCESS;}
开发者ID:siamect,项目名称:proview,代码行数:74,
示例18: graph_object_PlcThreadstatic int graph_object_PlcThread( Graph *graph, pwr_sAttrRef *arp){ pwr_sAttrRef attrref; int sts; graph_sObjectPlcThread *od; pwr_tClassId classid; pwr_tFloat32 max_limit = 1; pwr_tFloat32 min_limit = 0; pwr_tObjid objid = arp->Objid; od = (graph_sObjectPlcThread *) calloc( 1, sizeof(graph_sObjectPlcThread)); graph->graph_object_data = (void *) od; graph->graph_object_close = graph_object_PlcThread_close; sts = gdh_GetObjectClass( objid, &classid); if ( EVEN(sts)) return sts; // Get value for ScanTime sts = gdh_ClassAttrToAttrref( classid, ".ScanTime", &attrref); if ( EVEN(sts)) return sts; attrref.Objid = objid; sts = gdh_GetObjectInfoAttrref( &attrref, (void *)&max_limit, sizeof(max_limit)); if ( EVEN(sts)) return sts; max_limit = max_limit * 2; od->set_max_show_old = max_limit; od->set_min_show_old = min_limit; // Configure ProcVal and SetVal bar sts = grow_FindObjectByName( graph->grow->ctx, "ActualScanTimeBar", &od->set_bar_object); if ( EVEN(sts)) return sts; if ( min_limit != max_limit) grow_SetBarRange( od->set_bar_object, double(min_limit), double(max_limit)); // Get pointers to max and min value od->set_max_show_p = (float *) graph->localdb_ref_or_create( "MaxShow", pwr_eType_Float32); *od->set_max_show_p = od->set_max_show_old; od->set_min_show_p = (float *) graph->localdb_ref_or_create( "MinShow", pwr_eType_Float32); *od->set_min_show_p = od->set_min_show_old; // Configure SetVal trend sts = grow_FindObjectByName( graph->grow->ctx, "ActualScanTimeTrend", &od->set_trend_object); if ( EVEN(sts)) return sts; if ( min_limit != max_limit) { grow_SetTrendRangeY( od->set_trend_object, 0, double(min_limit), double(max_limit)); grow_SetTrendRangeY( od->set_trend_object, 1, double(min_limit), double(max_limit)); } // Register scan function graph->graph_object_scan = graph_object_PlcThread_scan; return 1;}
开发者ID:siamect,项目名称:proview,代码行数:62,
示例19: rtt_view//.........这里部分代码省略......... redraw = 1; break; case RTT_K_PF3: rtt_message('E', "Function not defined"); break; case RTT_K_PF4: if ( type == RTT_VIEWTYPE_FILE) fclose( ctx->infile); free( ctx->buff); free( ctx->buffrow); free( ctx); rtt_ctx_pop(); return RTT__SUCCESS; case RTT_K_FAST_1: case RTT_K_FAST_2: case RTT_K_FAST_3: case RTT_K_FAST_4: case RTT_K_FAST_5: case RTT_K_FAST_6: case RTT_K_FAST_7: case RTT_K_FAST_8: case RTT_K_FAST_9: case RTT_K_FAST_10: case RTT_K_FAST_11: case RTT_K_FAST_12: case RTT_K_FAST_13: case RTT_K_FAST_14: case RTT_K_FAST_15: rtt_fastkey = terminator - RTT_K_FAST; sts = rtt_get_fastkey_type(); if ( sts == RTT__NOPICTURE) { sts = rtt_get_fastkey_picture( (menu_ctx) ctx); if ( EVEN(sts)) return sts; break; } case RTT_K_CTRLZ: if ( type == RTT_VIEWTYPE_FILE) fclose( ctx->infile); free( ctx->buff); free( ctx->buffrow); free( ctx); rtt_ctx_pop(); return RTT__FASTBACK; case RTT_K_CTRLW: redraw = 1; break; case RTT_K_CTRLK: /* Acknowledge last alarm */ sts = rtt_alarm_ack_last(); break; case RTT_K_CTRLL: /* Change description mode */ if ( !rtt_description_on) sts = rtt_cli( rtt_command_table, "SET DESCRIPTION", (void *) ctx, 0); else sts = rtt_cli( rtt_command_table, "SET NODESCRIPTION", (void *) ctx, 0); break; case RTT_K_CTRLV: break; case RTT_K_CTRLN: break; case RTT_K_DELETE: break; case RTT_K_COMMAND: sts = rtt_get_command( (menu_ctx) ctx, (char *) &rtt_chn,
开发者ID:ManfredHerrmann,项目名称:proview,代码行数:67,
示例20: mainint main(int argc, char* argv[]){ remtrans_item* remtrans; unsigned char id[32]; unsigned char pname[32]; pwr_tStatus sts; int i; float time_since_scan = 0.0; /* Read arg number 2, should be id for this instance and id is our queue * number */ if (argc >= 2) strcpy((char*)id, argv[1]); else strcpy((char*)id, "0"); /* Build process name with id */ sprintf((char*)pname, "rs_remrabbitmq_%s", id); /* Init of errh */ errh_Init((char*)pname, errh_eAnix_remote); errh_SetStatus(PWR__SRVSTARTUP); /* Init of gdh */ if (debug) printf("Before gdh_init/n"); sts = gdh_Init((char*)pname); if (EVEN(sts)) { errh_Fatal("gdh_Init, %m", sts); errh_SetStatus(PWR__SRVTERM); exit(sts); } /* Arg number 3 should be my remnodes objid in string representation, read it, convert to real objid and store in remnode_item */ sts = 0; if (argc >= 3) sts = cdh_StringToObjid(argv[2], &rn.objid); if (EVEN(sts)) { errh_Fatal("cdh_StringToObjid, %m", sts); errh_SetStatus(PWR__SRVTERM); exit(sts); } /* Get pointer to RemnodeRabbitMQ object and store locally */ sts = gdh_ObjidToPointer(rn.objid, (pwr_tAddress*)&rn_rmq); if (EVEN(sts)) { errh_Fatal("cdh_ObjidToPointer, %m", sts); errh_SetStatus(PWR__SRVTERM); exit(sts); } if (streq(rn_rmq->ReceiveQueue, "") && streq(rn_rmq->SendQueue, "")) { errh_Fatal( "Process terminated, neither send or receive queue configured, %s", id); errh_SetStatus(PWR__SRVTERM); exit(sts); } /* Create context */ ctx = calloc(1, sizeof(*ctx)); ctx->op = rn_rmq; if (!streq(rn_rmq->ReceiveQueue, "")) ctx->is_consumer = 1; if (!streq(rn_rmq->SendQueue, "")) ctx->is_producer = 1; /* Initialize some internal data and make standard remtrans init */ rn.next = NULL; rn.local = NULL; // We dont use local structure since we only have one remnode rn_rmq->ErrCount = 0; if (debug) printf("Before remtrans_init/n"); sts = RemTrans_Init(&rn); if (EVEN(sts)) { errh_Fatal("RemTrans_Init, %m", sts); errh_SetStatus(PWR__SRVTERM); exit(sts); } /* Store remtrans objects objid in remnode_qcom object */ remtrans = rn.remtrans; i = 0; while (remtrans) { rn_rmq->RemTransObjects[i++] = remtrans->objid; if (i >= (int)(sizeof(rn_rmq->RemTransObjects) / sizeof(rn_rmq->RemTransObjects[0]))) break; remtrans = (remtrans_item*)remtrans->next; } /* Connect to rabbitmq broker *///.........这里部分代码省略.........
开发者ID:siamect,项目名称:proview,代码行数:101,
示例21: attrvalue_to_string//.........这里部分代码省略......... { if ( !format) *len = sprintf( str, "%d", *(unsigned int *)value_ptr); else *len = sprintf( str, format, *(unsigned int *)value_ptr); break; } case pwr_eType_UInt64: { if ( !format) *len = sprintf( str, pwr_dFormatUInt64, *(pwr_tUInt64 *)value_ptr); else *len = sprintf( str, format, *(pwr_tUInt64 *)value_ptr); break; } case pwr_eType_String: { strncpy( str, (char *)value_ptr, size); str[size-1] = 0; *len = strlen(str); break; } case pwr_eType_Objid: { pwr_tOName hiername; objid = *(pwr_tObjid *)value_ptr; if ( !objid.oix) sts = gdh_ObjidToName ( objid, hiername, sizeof(hiername), cdh_mName_volumeStrict); else sts = gdh_ObjidToName ( objid, hiername, sizeof(hiername), cdh_mNName); if (EVEN(sts)) { strcpy( str, ""); *len = 0; break; } *len = sprintf( str, "%s", hiername); break; } case pwr_eType_AttrRef: { pwr_tAName hiername; attrref = (pwr_sAttrRef *) value_ptr; sts = gdh_AttrrefToName ( attrref, hiername, sizeof(hiername), cdh_mNName); if (EVEN(sts)) { strcpy( str, ""); *len = 0; break; } *len = sprintf( str, "%s", hiername); break; } case pwr_eType_Time: { sts = time_AtoAscii( (pwr_tTime *) value_ptr, time_eFormat_DateAndTime, timstr, sizeof(timstr)); if ( EVEN(sts)) strcpy( timstr, "-"); *len = sprintf( str, "%s", timstr); break; }
开发者ID:ManfredHerrmann,项目名称:proview,代码行数:67,
示例22: BrowCtxFromWidgetBoolean WNavMotif::sel_convert_cb( Widget w, Atom *selection, Atom *target, Atom *type_return, XtPointer *value_return, unsigned long *length_return, int *format_return){ WNavMotif *wnav; brow_tCtx browctx; int sts; int size; WItem *item; pwr_tAName attr_str; pwr_sAttrRef attrref; char name[200]; char *buffp; BrowCtxFromWidget( w, (void **) &browctx); brow_GetCtxUserData( browctx, (void **) &wnav); if (*target == XA_TARGETS(flow_Display(wnav->brow_widget))) { Atom *targetP; Atom *std_targets; unsigned long std_length; XSelectionRequestEvent *req = XtGetSelectionRequest( w, *selection, (XtRequestId)NULL); XmuConvertStandardSelection( w, req->time, selection, target, type_return, (caddr_t *)&std_targets, &std_length, format_return); *value_return = XtMalloc( sizeof(Atom) * (std_length + 2)); targetP = *(Atom **) value_return; *targetP++ = XA_STRING; *targetP++ = XA_TEXT(flow_Display(wnav->brow_widget)); *length_return = std_length + (targetP - (*(Atom **) value_return)); bcopy((char *)std_targets, (char *)targetP, sizeof(Atom) * std_length); XtFree( (char *)std_targets); *type_return = XA_ATOM; *format_return = 32; return True; } if (*target == XA_STRING || *target == XA_TEXT(flow_Display(wnav->brow_widget)) || *target == XA_COMPOUND_TEXT(flow_Display(wnav->brow_widget)) || *target == wnav->graph_atom || *target == wnav->objid_atom || *target == wnav->attrref_atom) { brow_tNode *node_list; int node_count; wnav_eSelectionFormat format; if ( *target == wnav->graph_atom) format = wnav_eSelectionFormat_Graph; else if ( *target == wnav->objid_atom) format = wnav_eSelectionFormat_Objid; else if ( *target == wnav->attrref_atom) format = wnav_eSelectionFormat_Attrref; else format = wnav_eSelectionFormat_User; brow_GetSelectedNodes( wnav->brow->ctx, &node_list, &node_count); if ( !node_count) return FALSE; brow_GetUserData( node_list[0], (void **)&item); switch( item->type) { case wnav_eItemType_Attr: case wnav_eItemType_AttrInput: case wnav_eItemType_AttrInputInv: case wnav_eItemType_AttrInputF: case wnav_eItemType_AttrOutput: case wnav_eItemType_AttrArray: case wnav_eItemType_AttrArrayOutput: case wnav_eItemType_AttrArrayElem: case wnav_eItemType_AttrObject: { WItemBaseAttr *aitem = (WItemBaseAttr *)item; sts = ldh_ObjidToName( wnav->ldhses, item->objid, ldh_eName_Hierarchy, attr_str, sizeof(attr_str), &size); if ( EVEN(sts)) return FALSE; strcat( attr_str, "."); strcat( attr_str, aitem->name); sts = ldh_NameToAttrRef( wnav->ldhses, attr_str, &attrref); if ( EVEN(sts)) return FALSE; sts = (wnav->format_selection_cb)( wnav->parent_ctx, attrref, &buffp, 0, 1, format); *value_return = XtNewString(buffp); *length_return = strlen(buffp) + 1; if ( !sts) return FALSE; break; } case wnav_eItemType_Object: memset( &attrref, 0, sizeof(attrref));//.........这里部分代码省略.........
开发者ID:Strongc,项目名称:proview,代码行数:101,
示例23: mainmain(int argc, char *argv[]){ int sts; char *ssts; int size; char object_var[] = "Z800022"; char newstr[1000000]; char str[1000000]; FILE *infile; FILE *outfile; char error_line[80]; int error_num; char filename[80]; int pos; char line[400]; int arg_classdef_idx; int outsize; FILE *idxfile; if ( argc >= 2 ) strcpy( filename, argv[1]); else { printf("/n"); printf("Usage:/n"); printf(" Argument 1: filename of wb_load-file./n"); printf(" Argument 2: Start index for $ClassDef objekts or/n"); printf(" if /"storedidx/" fetch from classdef_idx.dat/n"); printf(" Argument 3: if /"replace/" old index will be replaced/n"); printf("/n"); exit(0); } if ( argc >= 3 ) { if ( !strcmp( argv[2], "storedidx")) { idxfile = fopen( "classdef_idx.dat", "r"); if ( idxfile == 0) { printf( "-- Index file not found/n"); arg_classdef_idx = 1; } fscanf( idxfile, "%d", &arg_classdef_idx); fclose( idxfile); } else if ( sscanf( argv[2], "%d", &arg_classdef_idx) != 1) { printf("** WbloadConvert Error, Syntax error in argument 2/n"); exit(0); } } else arg_classdef_idx = 1; classdef_idx = arg_classdef_idx; noclassdef = 0; replace_idx = 1; if ( argc >= 4 ) { if ( !strcmp( argv[3], "noreplace")) replace_idx = 0; else if ( !strcmp( argv[3], "NOREPLACE")) replace_idx = 0; else if ( !strcmp( argv[3], "noclassdef")) noclassdef = 1; else if ( !strcmp( argv[3], "NOCLASSDEF")) noclassdef = 1; else { printf("** WbloadConvert Error, Syntax error in argument 3/n"); exit(0); } } printf("-- Processing %s Startindex $ClassDef: %d/n", filename, arg_classdef_idx); str[0] = 0; pos = 0; infile = fopen( filename, "r"); ssts = fgets( line, sizeof(line), infile); while ( ssts != NULL) { strcpy( str + pos, line); pos += strlen(line); ssts = fgets( line, sizeof(line), infile); } fclose( infile); size = sizeof(error_line); sts = convwbl_convert( str, newstr, object_var, sizeof(newstr), error_line, &size, &error_num, &outsize); if (EVEN(sts)) { printf( "Error in line %d,/n %s/n", error_num, error_line); printf( "sts : %d/n", sts); exit( 0); } if ( idx_count)//.........这里部分代码省略.........
开发者ID:jordibrus,项目名称:proview,代码行数:101,
示例24: pwrsrv_SubAddstatic void pwrsrv_SubAdd( rpvd_sMsgSubAdd *msg){ rpvd_sMsgAny rmsg; pwr_tAName name; pwr_tUInt32 asize, aoffs, aelem; pwr_tTypeId atid; pwr_tStatus sts; pwrsrv_sSubItem *si; void *p; pwr_tRefId dlid; rmsg.Type = rpvd_eMsg_Status; rmsg.Id = msg->Id; /* Check that this rix doesn't exist */ for ( si = pwrsrv_sublist; si; si = si->next) { if ( si->rix == msg->Rix) { return; } } sts = gdh_ObjidToName( msg->Oid, name, sizeof(name), cdh_mName_volumeStrict); if ( EVEN(sts)) { rmsg.Status = sts; udp_Send( (char *)&rmsg, sizeof(rmsg)); return; } if ( strcmp( msg->Attribute, "") != 0) { strcat( name, "."); strcat( name, msg->Attribute); sts = gdh_GetAttributeCharacteristics( name, &atid, &asize, &aoffs, &aelem); if ( EVEN(sts)) { rmsg.Status = sts; udp_Send( (char *)&rmsg, sizeof(rmsg)); return; } } else { sts = gdh_GetObjectSize( msg->Oid, &asize); if ( EVEN(sts)) { rmsg.Status = sts; udp_Send( (char *)&rmsg, sizeof(rmsg)); return; } } /* Direct link to atttribute */ sts = gdh_RefObjectInfo( name, &p, &dlid, asize); if ( EVEN(sts)) { rmsg.Status = sts; udp_Send( (char *)&rmsg, sizeof(rmsg)); return; } /* Insert first in sublist */ si = (pwrsrv_sSubItem *) calloc( 1, sizeof(pwrsrv_sSubItem)); si->oid = msg->Oid; strcpy( si->attribute, msg->Attribute); si->size = asize; si->rix = msg->Rix; si->p = p; si->dlid = dlid; si->next = pwrsrv_sublist; if ( si->next) si->next->prev = si; pwrsrv_sublist = si; printf( "SubAdd: %d %s/n", msg->Rix, name); rmsg.Status = GDH__SUCCESS; udp_Send( (char *)&rmsg, sizeof(rmsg));}
开发者ID:jordibrus,项目名称:proview,代码行数:76,
示例25: convwbl_convert/*************************************************************************** Name: convwbl_convert** Type int** Type Parameter IOGF Description* char *str I buffer to convert.* char *newstr I converted code.* char *object I name of object pointer.* char *bufsize I size of newstr.** Description:* Convert a wb_load text.***************************************************************************/pwr_tStatus convwbl_convert ( char *str, char *newstr, char *object, int bufsize, char *error_line, int *error_line_size, int *error_line_num, int *outsize){ char line[200]; char *p; convwbl_t_item *item_ptr; pwr_tStatus sts; char *t; char *delim_p; int hit, delim_hit; char tmpstr[160]; char *write_from; int first_line; int end_of_text; int len; convwbl_ctx convwblctx; int pos; int incr; char *l; sts = convwbl_create_ctx( &convwblctx); if ( EVEN(sts)) return sts; idx_count = 0; pos = 0; *newstr = 0; first_line = 1; while( 1) { end_of_text = convwbl_get_next_line( str, &p, line, sizeof(line), first_line); convwblctx->line_count++; first_line = 0; item_ptr = convwblctx->items; while( item_ptr->item[0] != 0) { item_ptr->hit = 0; item_ptr->hit_count = 0; item_ptr++; } hit = 0; for ( l = line; *l != 0; l++) { if ( !(*l == ' ' || *l == ' ')) break; } if ( *l == '!') { sprintf( newstr+pos, "%s", line); pos += strlen(line); } else { t = line; write_from = t; item_ptr = convwblctx->items; while( item_ptr->item[0] != 0) { if ( item_ptr->hit == 0) { /* Check front delimiter */ delim_p = &item_ptr->delim_front[0]; while( *delim_p != 0) { if ( *delim_p == 'A' || *delim_p == 'X') { item_ptr->hit = 1; item_ptr->hit_count = 1; } delim_p++; } } item_ptr++; }//.........这里部分代码省略.........
开发者ID:jordibrus,项目名称:proview,代码行数:101,
示例26: pwrsrv_Oidstatic void pwrsrv_Oid( rpvd_sMsgOid *msg){ rpvd_sMsgObject rmsg; pwr_tOid fth; pwr_tOid fch; pwr_tOid lch; pwr_tOid bws; pwr_tOid fws; pwr_tCid cid; pwr_tObjName name; pwr_tOid o; pwr_tStatus sts; pwr_tOid plist[200]; int psize = 0; int i, j; char *s; rmsg.Type = rpvd_eMsg_Object; rmsg.Id = msg->Id; rmsg.Status = 1; rmsg.Oid = msg->Oid; sts = gdh_GetObjectClass( msg->Oid, &cid); if ( EVEN(sts)) { rmsg.Status = sts; udp_Send( (char *)&rmsg, sizeof(rmsg)); return; } plist[psize++] = msg->Oid; for ( sts = gdh_GetParent( plist[psize-1], &o); ODD(sts); sts = gdh_GetParent( plist[psize-1], &o)) { plist[psize++] = o; } /* Add volume object */ plist[psize].oix = 0; plist[psize++].vid = msg->Oid.vid; for ( j = 0; j < psize; j++) { i = psize - j - 1; sts = gdh_GetObjectClass( plist[i], &cid); if ( i == psize - 1) { /* Volume object */ fth.oix = 0; sts = gdh_GetRootList( &fch); if ( EVEN(sts)) { fch.oix = 0; lch.oix = 0; } else { sts = 1; for ( lch = fch; ODD(sts); sts = gdh_GetNextSibling( lch, &o)) { lch = o; } } fws.oix = 0; bws.oix = 0; sts = gdh_ObjidToName( plist[i], name, sizeof(name), cdh_mName_volume); if ( (s = strrchr( name, ':'))) *s = 0; } else { sts = gdh_GetParent( plist[i], &fth); if ( EVEN(sts)) fth.oix = 0; sts = gdh_GetChild( plist[i], &fch); if ( EVEN(sts)) { fch.oix = 0; lch.oix = 0; } else { lch = fch; for ( sts = gdh_GetNextSibling( lch, &o); ODD(sts); sts = gdh_GetNextSibling( lch, &o)) { lch = o; } } sts = gdh_GetNextSibling( plist[i], &fws); if ( EVEN(sts)) fws.oix = rmsg.o[j-1].fchoix; sts = gdh_GetPreviousSibling( plist[i], &bws); if ( EVEN(sts)) bws.oix = rmsg.o[j-1].lchoix; sts = gdh_ObjidToName( plist[i], name, sizeof(name), cdh_mName_object); } rmsg.o[j].oix = plist[i].oix; rmsg.o[j].fthoix = fth.oix; rmsg.o[j].fchoix = fch.oix; rmsg.o[j].lchoix = lch.oix; rmsg.o[j].fwsoix = fws.oix; rmsg.o[j].bwsoix = bws.oix; rmsg.o[j].cid = cid; strcpy( rmsg.o[j].name, name); }//.........这里部分代码省略.........
开发者ID:jordibrus,项目名称:proview,代码行数:101,
示例27: mainint main(int argc, char** argv){ pwr_tStatus sts; io_tCtx io_ctx; float ctime = 1; pwr_sClass_EplHandler* plhp; pwr_tOid oid; int tmo; char mp[2000]; qcom_sGet get; qcom_sQattr qAttr; qcom_sQid qini; qcom_sQid qid = qcom_cNQid; if (argc > 1) { if (streq(argv[1], "-m")) { io_methods_print(); exit(0); } if (streq(argv[1], "-h")) { usage(); exit(0); } } // Make connection to error handler errh_Init("pwr_powerlink", errh_eAnix_powerlink); errh_SetStatus(PWR__SRVSTARTUP); if (!qcom_Init(&sts, 0, "pwr_powerlink")) { errh_Fatal("qcom_Init, %m", sts); exit(sts); } qAttr.type = qcom_eQtype_private; qAttr.quota = 100; if (!qcom_CreateQ(&sts, &qid, &qAttr, "events")) { errh_Fatal("qcom_CreateQ, %m", sts); exit(sts); } qini = qcom_cQini; if (!qcom_Bind(&sts, &qid, &qini)) { errh_Fatal("qcom_Bind(Qini), %m", sts); exit(-1); } // Make connection to realtime database sts = gdh_Init("rt_powerlink"); if (EVEN(sts)) { errh_Fatal("rt_powerlink aborted, gdh_Init failed/n%m", sts); errh_SetStatus(PWR__SRVTERM); exit(sts); } sts = gdh_GetClassList(pwr_cClass_Epl_CNServer, &oid); if (ODD(sts)) { system("rt_powerlink_cn &"); exit(0); } // Get Powerlink handler object sts = io_get_plhandler_object(&plhp, &oid); if (EVEN(sts)) { errh_SetStatus(0); errh_Info("rt_powerlink terminated, no EplHandler object found"); exit(sts); } // Create context and call init functions of all agent, // rack and cardobjects sts = io_init(io_mProcess_Powerlink, pwr_cNObjid, &io_ctx, 1, ctime); if (EVEN(sts)) { errh_SetStatus(PWR__SRVTERM); errh_Fatal("rt_powerlink aborted, io_init() failed/n%m", sts); exit(sts); } tmo = (plhp->CycleTime) * 1000; aproc_TimeStamp(plhp->CycleTime, 5.0); errh_SetStatus(PWR__SRUN); aproc_RegisterObject(oid); // Call IoAgentRead() IoAgentWrite() IoCardRead() IoCardWrite() // IoModuleRead() IoModuleWrite() forever for (;;) { get.maxSize = sizeof(mp); get.data = mp; qcom_Get(&sts, &qid, &get, tmo); if (sts == QCOM__TMO || sts == QCOM__QEMPTY) { sts = io_read(io_ctx); sts = io_write(io_ctx); aproc_TimeStamp(plhp->CycleTime, 5.0); } else { ini_mEvent new_event; qcom_sEvent* ep = (qcom_sEvent*)get.data;//.........这里部分代码省略.........
开发者ID:siamect,项目名称:proview,代码行数:101,
示例28: lfu_volumelist_loadpwr_tStatus WVsel::check_volumelist( int quiet, int *display_window){ pwr_tVolumeId volume; pwr_tClassId classid; char name[80]; int size; pwr_tStatus sts; int i; lfu_t_volumelist *volumelist; lfu_t_volumelist *volumelist_ptr; int volumecount; int class_error; char volname_conf[80]; char volname_db[80]; int volume_found; int error_count; int errlen=0; int errlen_old = 0; char errstr[800]; error_count = 0; *display_window = 0; if ( !(CoLogin::privilege() & pwr_mPrv_DevConfig )) // No privileges for edit, don't check the volumes return 1; // Load the configured volume list sts = lfu_volumelist_load( pwr_cNameVolumeList, &volumelist, &volumecount); if (sts == FOE__NOFILE) { if ( !quiet) { printf( "** Error, project is not configured/n"); BEEP; *display_window = 1; } return 1; } else if (EVEN(sts)) return 1; sts = ldh_GetVolumeList( wbctx, &volume); while ( ODD(sts) ) { sts = ldh_GetVolumeClass( wbctx, volume, &classid); if (EVEN(sts)) return sts; sts = ldh_VolumeIdToName( wbctx, volume, name, sizeof(name), &size); if (EVEN(sts)) return sts; if ( classid == pwr_eClass_RootVolume || classid == pwr_eClass_SubVolume || (classid == pwr_eClass_SharedVolume && volume != ldh_cRtVolume) || (cdh_isClassVolumeClass(classid) && (cdh_cUserClassVolMin <= volume && volume <= cdh_cUserClassVolMax))) { // This volume should be configured volume_found = 0; volumelist_ptr = volumelist; for ( i = 0; i < volumecount; i++) { if ( volumelist_ptr->volume_id == volume) { // Mark that volume is found volume_found = 1; strcpy( volumelist_ptr->p3, "Found"); // Check volume name utl_toupper( volname_conf, volumelist_ptr->volume_name); utl_toupper( volname_db, name); if ( strcmp( volname_db, volname_conf)) { // Volume name differs if ( !quiet && errlen < (int)(sizeof(errstr)-100)) { errlen += sprintf( &errstr[errlen], "** Error, Volume %s is configured with another name '%s'/n", name, volumelist_ptr->volume_name); MsgWindow::message( 'E', &errstr[errlen_old], msgw_ePop_No); errlen_old = errlen; BEEP; } error_count++; } class_error = 0; switch( classid) { case pwr_eClass_RootVolume : if ( strcmp( volumelist_ptr->p1, "RootVolume")) class_error = 1; break; case pwr_eClass_SubVolume : if ( strcmp( volumelist_ptr->p1, "SubVolume")) class_error = 1; break; case pwr_eClass_ClassVolume : if ( strcmp( volumelist_ptr->p1, "ClassVolume")) class_error = 1; break; case pwr_eClass_DetachedClassVolume : if ( strcmp( volumelist_ptr->p1, "DetachedClassVolume")) class_error = 1; break;//.........这里部分代码省略.........
开发者ID:ManfredHerrmann,项目名称:proview,代码行数:101,
注:本文中的EVEN函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ EVENT函数代码示例 C++ EVBUFFER_LENGTH函数代码示例 |