/// <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); }