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

📄 u_data.c

📁 ICCP Toolkit 是在 Tru64下开发Tase.2通信协议的开发包
💻 C
📖 第 1 页 / 共 5 页
字号:
  adr.addr_tag = SYM_ADDR; 		  /* select symbolic address	*/  adr.addr.sym_addr = "064";            /* byte offset                  */  strcpy (type.obj_name.vmd_spec,"Integer16");     /* select type       */  if (!ms_add_named_var (dom,"Temperature",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");  else    {    *((ST_INT16 *) (logical_mem + atoi (adr.addr.sym_addr))) = 72;    }  adr.addr.sym_addr = "066";            /* byte offset                  */  strcpy (type.obj_name.vmd_spec,"Integer16");     /* select type       */  if (!ms_add_named_var (dom,"Air_Pressure",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");  else    {    *((ST_INT16 *) (logical_mem + atoi (adr.addr.sym_addr))) = 100;    }  adr.addr.sym_addr = "096";            /* byte offset                  */  strcpy (type.obj_name.vmd_spec,"Integer16");     /* select type       */  if (!ms_add_named_var (dom,"Status",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");  else    {    *((ST_INT16 *) (logical_mem + atoi (adr.addr.sym_addr))) = 72;    }  adr.addr.sym_addr = "104";            /* byte offset                  */  strcpy (type.obj_name.vmd_spec,"GeneralizedTime");     /* select type       */  if (!ms_add_named_var (dom,"ClockGtime",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");  else    {    time (&clock_time);    *((time_t *) (logical_mem + atoi (adr.addr.sym_addr))) = clock_time;    }  milliseconds_today = calc_mill_since_12();  days_since_84 = calc_days_since_1184();  adr.addr.sym_addr = "108";            /* byte offset                  */  strcpy (type.obj_name.vmd_spec,"BinaryTimeOfDay4");     /* select type       */  if (!ms_add_named_var (dom,"ClockBTOD4",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");  else    {    *((ST_INT32 *) (logical_mem + 108)) = milliseconds_today;  /* BTOD4 */    }  adr.addr.sym_addr = "112";            /* byte offset                  */  strcpy (type.obj_name.vmd_spec,"BinaryTimeOfDay6");     /* select type       */  if (!ms_add_named_var (dom,"ClockBTOD6",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");  else    {    *((ST_INT32 *) (logical_mem + 112)) = milliseconds_today;  /* BTOD6 */    *((ST_INT32 *) (logical_mem + 116)) = days_since_84;       /* BTOD6 */    }/* Fri Dec 31 23:59:54 1999 on a PC is 946702794 seconds		*//* Mon Feb 28 23:59:54 1999 on a PC is 951800394 seconds		*/  adr.addr.sym_addr = "120";            /* byte offset                  */  strcpy (type.obj_name.vmd_spec,"GeneralizedTime");     /* select type       */  if (!ms_add_named_var (dom,"Y2K_Gtime",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");  else    {			      *((time_t *) (logical_mem + atoi (adr.addr.sym_addr))) = 946702794;    }  adr.addr.sym_addr = "124";            /* byte offset                  */  strcpy (type.obj_name.vmd_spec,"BinaryTimeOfDay6"); /* select type    */  if (!ms_add_named_var (dom,"Y2K_BTOD6",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");  else    { /* time to get a fresh drink and get ready to shout happy new year*/    *((ST_INT32 *) (logical_mem + atoi (adr.addr.sym_addr)))                                          = 86340000; /* ms for 23:59 	*/    *((ST_INT32 *) (logical_mem + atoi (adr.addr.sym_addr)                    + sizeof(ST_INT32))) = 5843;     /* 12-31-9999	*/    }  adr.addr.sym_addr = "132";            /* byte offset                  */  strcpy (type.obj_name.vmd_spec,"UtcTime");		/* select type  */  if (!ms_add_named_var (dom,"UtcTimeNow",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");  else    {    utc_time_now = (MMS_UTC_TIME *) (logical_mem + atoi (adr.addr.sym_addr));    utc_time_now->secs = time(NULL);    utc_time_now->fraction = 0x00800000;	/* 1/2 second		*/    utc_time_now->qflags= 0x11;    }/* Add a few NamedVariableLists						*/  var_list_ptr = (VARIABLE_LIST *) chk_calloc (3, sizeof (VARIABLE_LIST));  var_list_idx = var_list_ptr;  var_list_idx->var_spec.var_spec_tag = VA_SPEC_NAMED;  var_list_idx->var_spec.vs.name.object_tag = VMD_SPEC;  strcpy (var_list_idx->var_spec.vs.name.obj_name.vmd_spec, "Temperature");  var_list_idx++;  var_list_idx->var_spec.var_spec_tag = VA_SPEC_NAMED;  var_list_idx->var_spec.vs.name.object_tag = VMD_SPEC;  strcpy (var_list_idx->var_spec.vs.name.obj_name.vmd_spec, "Air_Pressure");  var_list_idx++;  var_list_idx->var_spec.var_spec_tag = VA_SPEC_NAMED;  var_list_idx->var_spec.vs.name.object_tag = VMD_SPEC;  strcpy (var_list_idx->var_spec.vs.name.obj_name.vmd_spec, "Status");  var_list_idx++;  if (!ms_add_nvlist (&(m_vmd_select->vmd_wide), "PopularNamedVars",                       3, var_list_ptr))    wait_msg ("PopularNamedVars Variable List ADD FAILURE");  chk_free (var_list_ptr);#ifdef INT64_SUPPORT/* Add huge integers                                                    */  adr.addr.sym_addr = "146";            /* byte offset                  */  strcpy (type.obj_name.vmd_spec,"Integer64"); /* select type    */  if (!ms_add_named_var (dom,"SunTemperature",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");   else    {     *((ST_INT64 *) (logical_mem + atoi (adr.addr.sym_addr)))#if defined(__hpux) || defined(_AIX)                                          = 8589934592LL; /* 2^33         */#else                                          = 8589934592;   /* 2^33         */#endif    }  adr.addr.sym_addr = "154";            /* byte offset                  */  strcpy (type.obj_name.vmd_spec,"Unsigned64"); /* select type    */  if (!ms_add_named_var (dom,"HugeCounter",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");   else    {     *((ST_UINT64 *) (logical_mem + atoi (adr.addr.sym_addr)))#if defined(__hpux) || defined(_AIX)                                          = 1099511627776LL; /* 2^40      */#else                                          = 1099511627776;   /* 2^40      */#endif    }#endif/*** Now add variables to the "Flex_Gage" domain                        *//*** All remaining variables are ST_FLOAT					*/  strcpy (type.obj_name.vmd_spec,"Float");     /* select type         */  if (!(ndom = ms_find_named_dom ("Flex_Gage")))    wait_msg ("Named Domain not found");  else    {    dom = &(ndom->objs);    adr.addr.sym_addr = "072";                   /* byte offset         */    if (!ms_add_named_var (dom,"X_Dimension",&type,&adr,0))      wait_msg ("Local Variable Name ADD FAILURE");    else      *((ST_FLOAT *) (logical_mem + atoi (adr.addr.sym_addr))) = (ST_FLOAT) 1.1;    adr.addr.sym_addr = "076";                   /* byte offset         */    if (!ms_add_named_var (dom,"Y_Dimension",&type,&adr,0))      wait_msg ("Local Variable Name ADD FAILURE");    else      *((ST_FLOAT *) (logical_mem + atoi (adr.addr.sym_addr))) = (ST_FLOAT) 2.2;    adr.addr.sym_addr = "080";                   /* byte offset         */    if (!ms_add_named_var (dom,"Z_Dimension",&type,&adr,0))      wait_msg ("Local Variable Name ADD FAILURE");    else      *((ST_FLOAT *) (logical_mem + atoi (adr.addr.sym_addr))) = (ST_FLOAT) 3.3;    }/*** Now add variables to the "Robot" domain                            */  if (!(ndom = ms_find_named_dom ("Robot")))    wait_msg ("Named Domain not found");  else    {    dom = &(ndom->objs);    adr.addr.sym_addr = "084";                   /* byte offset         */    if (!ms_add_named_var (dom,"X_Axis",&type,&adr,0))      wait_msg ("Local Variable Name ADD FAILURE");    else      *((ST_FLOAT *) (logical_mem + atoi (adr.addr.sym_addr))) = (ST_FLOAT) 4.4;    adr.addr.sym_addr = "088";                   /* byte offset         */    if (!ms_add_named_var (dom,"Y_Axis",&type,&adr,0))      wait_msg ("Local Variable Name ADD FAILURE");    else      *((ST_FLOAT *) (logical_mem + atoi (adr.addr.sym_addr))) = (ST_FLOAT) 5.5;    adr.addr.sym_addr = "092";                   /* byte offset         */    if (!ms_add_named_var (dom,"Z_Axis",&type,&adr,0))      wait_msg ("Local Variable Name ADD FAILURE");    else      *((ST_FLOAT *) (logical_mem + atoi (adr.addr.sym_addr))) = (ST_FLOAT) 6.6;    }/* The mem_chk varaibles						*/  dom = &m_vmd_select->vmd_wide;/* add all as VMD scope 		*/  adr.addr_tag = SYM_ADDR;  sprintf (address_string, "0x%p", (ST_CHAR*)&chk_curr_mem_count);  adr.addr.sym_addr = address_string;  strcpy (type.obj_name.vmd_spec,"Unsigned32");     /* select type       */  if (!ms_add_named_var (dom,"chk_curr_mem_count",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");  else    {    tptr = ms_find_named_type(&m_vmd_select->vmd_wide,"Unsigned32");    ms_add_unnamed_var((ST_UCHAR *)&chk_curr_mem_count,		       tptr,		       NULL);    }  sprintf (address_string, "0x%p", (ST_CHAR*)&chk_max_dyn_mem_ptrs);  adr.addr.sym_addr = address_string;  strcpy (type.obj_name.vmd_spec,"Unsigned32");     /* select type       */  if (!ms_add_named_var (dom,"chk_max_dyn_mem_ptrs",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");  else    {    tptr = ms_find_named_type(&m_vmd_select->vmd_wide,"Unsigned32");    ms_add_unnamed_var((ST_UCHAR *)&chk_max_dyn_mem_ptrs,		       tptr,		       NULL);    }  sprintf (address_string, "0x%p", (ST_CHAR*)&chk_max_mem_allocated);  adr.addr.sym_addr = address_string;  strcpy (type.obj_name.vmd_spec,"Unsigned32");     /* select type       */  if (!ms_add_named_var (dom,"chk_max_mem_allocated",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");  else    {    tptr = ms_find_named_type(&m_vmd_select->vmd_wide,"Unsigned32");    ms_add_unnamed_var((ST_UCHAR *)&chk_max_mem_allocated,		       tptr,		       NULL);    }  sprintf (address_string, "0x%p", (ST_CHAR*)&chk_curr_mem_size);  adr.addr.sym_addr = address_string;  strcpy (type.obj_name.vmd_spec,"Unsigned32");     /* select type       */  if (!ms_add_named_var (dom,"chk_curr_mem_size",&type,&adr,0))     wait_msg ("Local Variable Name ADD FAILURE");  else    {    tptr = ms_find_named_type(&m_vmd_select->vmd_wide,"Unsigned32");    ms_add_unnamed_var((ST_UCHAR *)&chk_curr_mem_size,		       tptr,		       NULL);    }  }/************************************************************************//************************************************************************//* Local Variable and Type Read 					*//* This code reads the demo configuration file 'mmsvar.cfg' and creates	*//* named types and named variables per the contents of that file.	*//* Each variable has a memory buffer allocated for it.			*//************************************************************************/#define VAR_NAME_BUF_LEN 200static ST_CHAR *named_type_name;static ST_CHAR *named_var_name;static ST_CHAR *named_var_list_name;static ST_CHAR *named_domain;static ST_INT num_of_variables;static VARIABLE_LIST *vl_ptr;static ST_INT init_var;static ST_BOOLEAN domain_specific;static ST_VOID cfg_domains_begin (ST_VOID);static ST_VOID cfg_domain_name (ST_VOID);static ST_VOID cfg_capability (ST_VOID);static ST_VOID cfg_domains_end (ST_VOID);static ST_VOID cfg_pis_begin (ST_VOID);static ST_VOID cfg_pi_name (ST_VOID);static ST_VOID cfg_pi_dom (ST_VOID);static ST_VOID cfg_pis_end (ST_VOID);static ST_VOID cfg_types_begin (ST_VOID);static ST_VOID cfg_type_name (ST_VOID);static ST_VOID cfg_type_def (ST_VOID);static ST_VOID cfg_types_end (ST_VOID);static ST_VOID cfg_vars_begin (ST_VOID);static ST_VOID cfg_var_name (ST_VOID);static ST_VOID cfg_var_name_init (ST_VOID);static ST_VOID cfg_var_type_name (ST_VOID);static ST_VOID cfg_vars_end (ST_VOID);static ST_RET read_var_data (ST_CHAR *dest, ST_CHAR *varname, 			     RUNTIME_TYPE *rt_head, ST_INT rt_num);static ST_VOID cfg_var_lists_begin (ST_VOID);static ST_VOID cfg_var_list_name (ST_VOID);static ST_VOID cfg_varlists_end (ST_VOID);static ST_VOID cfg_vlist_nvar (ST_VOID);static ST_VOID cfg_vlist_ndom (ST_VOID);static ST_VOID cfg_vlist_end (ST_VOID);static ST_VOID cfg_journal_begin (ST_VOID);static ST_VOID cfg_jrnl_name (ST_VOID);static ST_VOID cfg_jrnl_ndom (ST_VOID);static ST_VOID cfg_jrnl_file (ST_VOID);static ST_VOID cfg_jrnl_deletable (ST_VOID);static ST_VOID cfg_jrnl_end (ST_VOID);static ST_VOID cfg_var_blocks_begin (ST_VOID);static ST_VOID cfg_var_block_begin (ST_VOID);static ST_VOID cfg_var_blocks_end (ST_VOID);static ST_VOID cfg_block_type_name (ST_VOID);static ST_VOID cfg_block_num_vars (ST_VOID);static ST_VOID cfg_block_base_var_name (ST_VOID);static ST_VOID cfg_block_update_on_read (ST_VOID);static ST_VOID cfg_block_update_on_time	(ST_VOID);static ST_VOID cfg_var_block_end (ST_VOID);/*-----------  Domains, PI's, Named Types and vars keyword tables  -----*/struct cfg_kw_el domains_base_kwtbl[] =  {    {"%TypesBegin", 		cfg_types_begin, NULL },    {"%DomainsBegin", 		cfg_domains_begin, NULL },    {"%PisBegin", 		cfg_pis_begin, NULL },    {"%JournalsBegin",		cfg_journal_begin, NULL},    { NULL, NULL, NULL}  };struct cfg_kw_el domain_name_kwtbl[] =  {    {"DomainName", 		cfg_domain_name, NULL },    {"Capability", 		cfg_capability, NULL },    {"%domainsEnd",             cfg_domains_end, NULL},    { NULL, NULL, NULL}  };struct cfg_kw_el pi_name_kwtbl[] =  {    {"PiName", 			cfg_pi_name, NULL },    {"Domain", 			cfg_pi_dom,  NULL },    {"%pisEnd", 	        cfg_pis_end, NULL},    { NULL, NULL, NULL}  };struct cfg_kw_el jrnl_name_kwtbl[] =  {    {"JournalName", 		cfg_jrnl_name, NULL },    {"Domain", 	        	cfg_jrnl_ndom, NULL },    {"JournalFile", 		cfg_jrnl_file,  NULL },    {"Deletable",		cfg_jrnl_deletable, NULL},    {"%journalsEnd", 	        cfg_jrnl_end, NULL},    { NULL, NULL, NULL}  };struct cfg_kw_el type_name_kwtbl[] =  {    {"TypeName", 		cfg_type_name, NULL },    {"%TypesEnd",               cfg_types_end, NULL},    { NULL, NULL, NULL}  };struct cfg_kw_el type_def_kwtbl[] =  {    {"TypeDef", 		cfg_type_def, NULL },    { NULL, NULL, NULL}  };struct cfg_kw_el var_begin_kwtbl[] =  {    {"%varsBegin",           cfg_vars_begin, NULL },    { NULL, NULL, NULL}  };struct cfg_kw_el var_name_kwtbl[] =  {    {"varName", 		cfg_var_name, NULL },    {"varNameInit", 		cfg_var_name_init, NULL },    {"%varsEnd",             	cfg_vars_end, NULL },    { NULL, NULL, NULL}  };struct cfg_kw_el var_type_name_kwtbl[] =  {    {"TypeName", 		cfg_var_type_name, NULL },    { NULL, NULL, NULL}  };/* Named Variable Lists							*/struct cfg_kw_el var_list_begin_kwtbl[] =  {    {"%VarListsBegin",           cfg_var_lists_begin, NULL },    { NULL, NULL, NULL}  };struct cfg_kw_el named_var_list_kwtbl[] =

⌨️ 快捷键说明

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