您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ EVEN函数代码示例

51自学网 2021-06-01 20:34:24
  C++
这篇教程C++ EVEN函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中EVEN函数的典型用法代码示例。如果您正苦于以下问题:C++ EVEN函数的具体用法?C++ EVEN怎么用?C++ EVEN使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了EVEN函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: main

int 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_m15

int 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: main

int 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_build

static 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: testClient

static 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: importUpdateSubClass

bool 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: while

bool 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_0

intG77_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: n

wb_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_GetAddress

pwr_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_dx

static 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_connect

static 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_GetAttrRefTid

int 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: IoRackInit

static 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_PlcThread

static 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: main

int 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: BrowCtxFromWidget

Boolean 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: main

main(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_SubAdd

static 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_Oid

static 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: main

int 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_load

pwr_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函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。