コード例 #1
0
        /// <summary>
        /// Process CAPIControl[] and convert to list of MyPair
        /// </summary>
        /// <param name="splitrange">ranges *split* into individual states</param>
        /// <returns></returns>
        public MyPairList MakeVSpsListControl(SplitRangeType splitrange)
        {
            MyPairList pairs = new MyPairList();

            // Doesn't make sense for Control?
            if (splitrange == SplitRangeType.SplitAndNot)
            {
                return(pairs);
            }

            bool b_splitrange = (splitrange == SplitRangeType.Split);

            // CAPIControl[] - Note: ranges *split* into individual states
            if (!capisDict.ContainsKey(b_splitrange))
            {
                capisDict[b_splitrange] = hs.CAPIGetControlEx(deviceId, SingleRangeEntry: !b_splitrange);
            }

            if (b_splitrange)
            {
                valueCAPIDict = new ValueCAPIDict();
            }

            // Get Control pairs
            foreach (CAPI.CAPIControl capi in capisDict[b_splitrange])
            {
                if (capi != null)
                {
                    if (capi.Label != null)
                    {
                        pairs.Add(MakePair(capi));
                    }
                    // Keep CAPIControl in ValueCAPIDict for SmartDevice.Value
                    if (b_splitrange)
                    {
                        valueCAPIDict[capi.ControlValue] = capi;
                    }
                }
            }

            return(pairs);
        }