Exemple #1
0
        /// <summary>
        /// 功能描述:根据参数获得定值,软压板,装置设置
        /// 参宿中只有IntPtr pItem指向的一个DATA_ITEM类型的结构体数组为输出,其它都是输入参数。
        /// 这些值在文件mmssgcfg.cfg中
        /// </summary>
        /// <param name="sta_name">站名称</param>
        /// <param name="equ_name">装置名称</param>
        /// <param name="menu_path">菜单树路径/param>
        /// <param name="ds_type">在配置文件中的数据集类型,保护定值填1,其他定值填3,默认值是3</param>
        /// <param name="act_sg">表示定值区号,只有保护定值有区号,别的定值没有,填0,默认值是1。具体查看mmssgcfg.cfg</param>
        /// <returns>返回获得的DATA_ITEM_C类型的数据,如果没有得到数据,则返回null</returns>

        public static DATA_ITEM_C GetSetting(string sta_name, string equ_name, string menu_path, int ds_type = 1, int act_sg = 1) {
            DATA_ITEM_C setting_C = new DATA_ITEM_C();
            int iMaxNum = 256;
            int size = Marshal.SizeOf(typeof(DATA_ITEM));
            IntPtr pBuffer = Marshal.AllocHGlobal(size * iMaxNum);

            try {
                int iGet = dse_get_setting(sta_name, equ_name, menu_path, ds_type, act_sg, pBuffer, iMaxNum);
                IntPtr ipC = new IntPtr(pBuffer.ToInt64());
                for (int i = 0; i < iGet; i++) {
                    DATA_ITEM dataItem = (DATA_ITEM)Marshal.PtrToStructure(ipC, typeof(DATA_ITEM));
                    DATA_ITEM_C addData = new DATA_ITEM_C(dataItem);
                    setting_C.Add(addData);
                    ipC += size;
                }
            
            } finally {
                Marshal.FreeHGlobal(pBuffer);
                
            }


            if (setting_C.Count == 0)
                return null;
            else
                return setting_C;
        }
Exemple #2
0
        /// <summary>
        /// 设置某选项的值即DATA_ITEM_C的Val属性值
        /// </summary>
        /// <param name="setting_C">传进来的某设置后的选项值</param>
        /// <param name="nums">setting_C数组的大小</param>
        /// <param name="sta_name">站点名称</param>
        /// <param name="equ_name">装置名称</param>
        /// <param name="menu_path">菜单路径</param>
        /// <param name="ds_type">在配置文件中的数据集类型,保护定值填1,其他定值填3,默认值是3</param>
        /// <param name="act_sg">表示定值区号,只有保护定值有区号,别的定值没有,填0,默认值是1。具体查看mmssgcfg.cfg</param>
        /// <returns>设置成功返回true,否则返回false</returns>
        public static bool SetSetting(DATA_ITEM_C[] setting_C,int nums,string sta_name, string equ_name, string menu_path, int ds_type = 1, int act_sg = 1) {
            int result = -1;
            DATA_ITEM[] dataItems = new DATA_ITEM[nums];

            for(int i=0;i< nums; i++) {
                dataItems[i] = setting_C[i].DataItem;
            }
               result = dse_set_setting(sta_name, equ_name, menu_path, ds_type, act_sg, dataItems, nums);
       
            if (result == 0)
                return true;
            else
                return false;
        }