⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_cvar.c

📁 ICCP Toolkit 是在 Tru64下开发Tase.2通信协议的开发包
💻 C
📖 第 1 页 / 共 3 页
字号:
/************************************************************************//* SISCO SOFTWARE MODULE HEADER *****************************************//************************************************************************//*   (c) Copyright Systems Integration Specialists Company, Inc.,	*//*      	  1986 - 2002, All Rights Reserved.		        *//*									*//* MODULE NAME : u_cvar.c						*//* PRODUCT(S)  : MMSEASE						*//*									*//* MODULE DESCRIPTION : 						*//*	This module contains user confirm functions. These functions	*//*	are invoked from 'mms_req_serve' when the response to an        *//*	outstanding request is received. These functions should check	*//*	the resp_err member of the request control structure before	*//*	assuming returned data. 					*//*									*//* NOTES ON REQUEST INFORMATION :					*//*	In the user application, request information structures may be	*//*	committed when the request is made (e.g. for error recovery).	*//*	If so, these information buffers could be freed in the confirm	*//*	functions.  In the sample application, all request information	*//*	structures are automatic or handled when the request is issued. *//*									*//* GLOBAL FUNCTIONS DEFINED IN THIS MODULE :				*//*									*//* MODIFICATION LOG :							*//*  Date     Who   Rev			Comments			*//* --------  ---  ------   -------------------------------------------	*//* 07/03/02  EJV     12    MMS_UTC_TIME: chg name usec to fraction.	*//* 11/15/01  EJV     11    Added support for new MMS type UtcTime:	*//*                         arb_print_ctrl[]: added prtUtc.		*//* 12/17/98  DSF     10    Fixed misplaced return in prtOct ()		*//* 01/28/98  EJV     09    Changed 1 arg to ST_INT32 prtBt4, prtBt6	*//*			   and made appropriate adj in functions.	*//* 12/02/97  DSF     08    Minor INT64 Changes				*//* 11/20/97  RKR     07    printf data type formats                     *//* 09/11/97  MDE     06    MMS ARB user funs now return ST_RET		*//* 09/10/97  MDE     05    Changed BTOD print for new M_ARB_DATA_CTRL	*//* 09/05/97  MDE     04    Btod print, typeless read changes		*//* 07/16/97  RKR     03    64 bit integer support			*//* 06/21/97  RKR     02    worked on print_arb_data			*//* 06/09/97  MDE     01    Changes to RuntimeType handling		*//* 04/15/97  DSF   7.00    MMSEASE 7.0 release. See MODL70.DOC for	*//*			   history.					*//************************************************************************/#include "glbtypes.h"#include "sysincs.h"#include "mms_usr.h"#include "mms_pvar.h"#include "mms_vvar.h"#include "userdefs.h"#include "mmsop_en.h"#include "mem_chk.h"#include "gvaldefs.h"#include "scrndefs.h"#include "fkeydefs.h"/************************************************************************/ST_VOID no_action (MMSREQ_PEND	*req_ptr)  {  }ST_VOID (*sfun)(MMSREQ_PEND *req_ptr) = no_action;/************************************************************************//* For debug version, use a static pointer to avoid duplication of 	*//* __FILE__ strings.							*//************************************************************************/#ifdef DEBUG_SISCOstatic ST_CHAR *thisFileName = __FILE__;#endif/************************************************************************//************************************************************************//*			VARIABLE ACCESS MANAGEMENT			*//************************************************************************/ST_RET prtArrStart (RT_AA_CTRL *rtaa)  {  printf ("\n\tArrayStart");  return (SD_SUCCESS);  }ST_RET prtArrEnd   (RT_AA_CTRL *rtaa)  {  printf ("\n\tArrayEnd");  return (SD_SUCCESS);  }ST_RET prtStrStart (RT_AA_CTRL *rtaa)  {  printf ("\n\tStructureStart");  return (SD_SUCCESS);  }ST_RET prtStrEnd   (RT_AA_CTRL *rtaa)  {  printf ("\n\tStructureEnd");  return (SD_SUCCESS);  }ST_RET prtInt8  (ST_INT8   *data_ptr, RT_AA_CTRL *rtaa)  {ST_UCHAR *ubyteptr;ST_INT int_val;  ubyteptr = (ST_UCHAR *) data_ptr;  int_val = (ST_INT) (*ubyteptr);  printf ("\n\tINTEGER 8 value   : %d",int_val);  return (SD_SUCCESS);  }ST_RET prtInt16 (ST_INT16  *data_ptr, RT_AA_CTRL *rtaa)  {ST_INT i;ST_INT16 *sp;  sp = (ST_INT16 *) data_ptr;  i = *sp;  printf ("\n\tINTEGER 16 value  : %d", (ST_INT) i);  return (SD_SUCCESS);  }ST_RET prtInt32 (ST_INT32   *data_ptr, RT_AA_CTRL *rtaa)  {  printf ("\n\tINTEGER 32 value  : %ld", *((ST_INT32 *) data_ptr));  return (SD_SUCCESS);  }ST_RET prtInt64 (ST_INT64   *data_ptr, RT_AA_CTRL *rtaa)  {#ifdef INT64_SUPPORT#ifdef _WIN32  printf ("\n\tINTEGER 64 value  : %I64d", *((ST_INT64 *) data_ptr));#else  printf ("\n\tINTEGER 64 value  : %ld", *((ST_INT64 *) data_ptr));#endif#endif  return (SD_SUCCESS);  }ST_RET prtUint8 (ST_UINT8  *data_ptr, RT_AA_CTRL *rtaa)  {ST_UCHAR *ubyteptr;ST_INT int_val;  ubyteptr = (ST_UCHAR *) data_ptr;  int_val = (ST_INT) (*ubyteptr);  printf ("\n\tUNSIGNED 8 value   : %d",int_val);  return (SD_SUCCESS);  }ST_RET prtUint16(ST_UINT16 *data_ptr, RT_AA_CTRL *rtaa)  {ST_INT i;ST_INT16 *sp;  sp = (ST_INT16 *) data_ptr;  i = *sp;  printf ("\n\tUNSIGNED 16 value  : %d", (ST_INT) i);  return (SD_SUCCESS);  }ST_RET prtUint32(ST_UINT32  *data_ptr, RT_AA_CTRL *rtaa)  {  printf ("\n\tUNSIGNED 32 value  : %ld", *((ST_INT32 *) data_ptr));  return (SD_SUCCESS);  }ST_RET prtUint64(ST_UINT64  *data_ptr, RT_AA_CTRL *rtaa)  {#ifdef INT64_SUPPORT#ifdef _WIN32  printf ("\n\tUNSIGNED 64 value  : %I64d", *((ST_UINT64 *) data_ptr));#else  printf ("\n\tUNSIGNED 64 value  : %ld", *((ST_UINT64 *) data_ptr));#endif#endif  return (SD_SUCCESS);  }ST_RET prtFlt   (ST_FLOAT  *data_ptr, RT_AA_CTRL *rtaa)  {ST_DOUBLE  d;  d =  (ST_DOUBLE)(*(ST_FLOAT *) data_ptr);  printf ("\n\tST_FLOAT value       : %f", d);  return (SD_SUCCESS);  }ST_RET prtDbl   (ST_DOUBLE *data_ptr, RT_AA_CTRL *rtaa)  {  printf ("\n\tST_DOUBLE value      : %f", *((ST_DOUBLE *) data_ptr));  return (SD_SUCCESS);  }ST_RET prtOct   (ST_UCHAR  *data_ptr, RT_AA_CTRL *rtaa)  {ST_INT i;ST_INT16 *sp;  if (rtaa->rt->u.p.el_len < 0)    {    sp = (ST_INT16 *) data_ptr;    i = *sp;    printf ("\n\tOCTET STRING length: %d", i);    printf ("\n\tOCTET STRING value: ");    list_bytes ((ST_UCHAR *)(data_ptr+2), i);    }  else    {    printf ("\n\tOCTET STRING value: ");    list_bytes ((ST_UCHAR *) data_ptr, abs (rtaa->rt->u.p.el_len));    }  return (SD_SUCCESS);  }ST_RET prtBool  (ST_BOOLEAN  *data_ptr, RT_AA_CTRL *rtaa)  {ST_BOOLEAN *bptr;ST_INT int_val;  bptr = (ST_BOOLEAN *) data_ptr;  int_val = (ST_INT) (*bptr);  printf ("\n\tST_BOOLEAN value     : %d", int_val);  return (SD_SUCCESS);  }ST_RET prtBcd1  (ST_INT8   *data_ptr, RT_AA_CTRL *rtaa)  {ST_UCHAR *ubyteptr;ST_INT int_val;  ubyteptr = (ST_UCHAR *) data_ptr;  int_val = (ST_INT) (*ubyteptr);  printf ("\n\tBCD 8 value       : %d", int_val);  return (SD_SUCCESS);  }ST_RET prtBcd2  (ST_INT16  *data_ptr, RT_AA_CTRL *rtaa)  {ST_INT i;ST_INT16 *sp;  sp = (ST_INT16 *) data_ptr;  i = *sp;  printf ("\n\tBCD 16 value  : %d", (ST_INT) i);  return (SD_SUCCESS);  }ST_RET prtBcd4  (ST_INT32  *data_ptr, RT_AA_CTRL *rtaa)  {  printf ("\n\tBCD 32 value      : %ld", *((ST_INT32 *) data_ptr));  return (SD_SUCCESS);  }ST_RET prtBs    (ST_UCHAR  *data_ptr, RT_AA_CTRL *rtaa)  {ST_INT i;ST_INT abs_len;ST_INT16 *sp;  if (rtaa->rt->u.p.el_len < 0)    {    sp = (ST_INT16 *) data_ptr;    i = *sp;    abs_len = (i+7) / 8;    printf ("\n\tBIT STRING length: %d", i);    printf ("\n\tBIT STRING value: ");    list_bytes ((ST_UCHAR *)(data_ptr+2), abs_len);    }  else    {    printf ("\n\tBIT STRING value  : ");    abs_len = (abs (rtaa->rt->u.p.el_len)+7) / 8;    list_bytes ((ST_UCHAR *) data_ptr, abs_len);    }  return (SD_SUCCESS);  }ST_RET prtVis   (ST_CHAR  *data_ptr, RT_AA_CTRL *rtaa)  {  printf ("\n\tVIS STRING value  : %s", data_ptr);  return (SD_SUCCESS);  }ST_RET prtBt4   (ST_INT32 *data_ptr, RT_AA_CTRL *rtaa)  {  printf ("\n\tBTOD Number ms since midnight: %ld", (ST_LONG) *data_ptr);  printf ("\n\tBTOD Number days since 1/1/1984: Not included");  return (SD_SUCCESS);  }ST_RET prtBt6   (ST_INT32 *data_ptr, RT_AA_CTRL *rtaa)  {  printf ("\n\tBTOD Number ms since midnight: %ld", (ST_LONG) *data_ptr);  printf ("\n\tBTOD Number days since 1/1/1984: %ld", (ST_LONG) *(data_ptr+1));  return (SD_SUCCESS);  }ST_RET prtGt   (time_t *data_ptr, RT_AA_CTRL *rtaa)  {  printf ("\n\tTIME value        : %s", ctime (data_ptr));  return (SD_SUCCESS);  }ST_RET prtUtc   (MMS_UTC_TIME *data_ptr, RT_AA_CTRL *rtaa)  {  printf ("\n\tUTC TIME seconds        : %u (0x%8.8X)", data_ptr->secs, data_ptr->secs);  printf ("\n\t         fraction       : %u (0x%8.8X)", data_ptr->fraction, data_ptr->fraction);  printf ("\n\t         quality flags  : 0x%2.2X", data_ptr->qflags);  return (SD_SUCCESS);  }M_ARB_DATA_CTRL arb_print_ctrl =  {  prtArrStart, /* arrStart 	*/  prtArrEnd, 	 /* arrEnd    	*/  prtStrStart, /* strStart  	*/  prtStrEnd, 	 /* strEnd    	*/  prtInt8,  	/* int8      	*/  prtInt16,	/* int16     	*/  prtInt32, 	/* int32     	*/  prtInt64, 	/* int64     	*/  prtUint8, 	/* uint8     	*/  prtUint16,	/* uint16    	*/  prtUint32,	/* uint32    	*/  prtUint64,	/* uint64    	*/  prtFlt,   	/* flt       	*/  prtDbl,   	/* dbl       	*/  prtOct, 	/* oct       	*/  prtBool, 	/* bool      	*/  prtBcd1, 	/* bcd1      	*/  prtBcd2, 	/* bcd2      	*/  prtBcd4, 	/* bcd4      	*/  prtBs, 	/* bs	       	*/  prtVis, 	/* vis       	*/  prtBt4, 	/* Bin Time    	*/  prtBt6, 	/* Bin Time    	*/  prtGt, 	/* Gen Time    	*/  prtUtc 	/* Utc Time    	*/  };/************************************************************************/ST_VOID print_arb_data (ST_CHAR *src, NAMED_TYPE *type, 		        ST_BOOLEAN alt_acc_pres, ST_BOOLEAN alt_acc_packed,			ALT_ACCESS *alt_acc_ptr)  {#if defined(NEST_RT_TYPES)ST_BOOLEAN		free_rt;#endif  ms_process_arb_data (src, type->rt_head, type->rt_num,   		       alt_acc_pres, alt_acc_packed,     		       alt_acc_ptr, &arb_print_ctrl);#if defined(NEST_RT_TYPES)  if (free_rt)    chk_free (rt_head);#endif  }/************************************************************************//* MV READ								*//************************************************************************//* This user defined function is called when a Virtual Machine read req *//* is complete. The parameter 'req_ptr' is a pointer to the request     *//* control structure that was selected when the request was made. The	*//* structure now contains the results of the operation, and if OK, the	*//* response data (in local representation) is available in the selected *//* buffer/location							*//************************************************************************/#if MMS_MV_READ_EN & REQ_ENST_VOID u_mv_read_conf (MMSREQ_PEND *req_ptr)  {READVARS_REQ_INFO *req;MV_VARDESC        *varlist;READ_RESP_INFO    *rsp_ptr;ACCESS_RESULT     *ar_list;NAMED_TYPE        *type;ST_INT i, ch;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -