예제 #1
0
        /// <summary>
        /// Initializes a new instance.
        /// </summary>
        /// <param name="target"></param>
        protected internal ControllerContainer(RnetController target)
            : base(target)
        {
            Contract.Requires<ArgumentNullException>(target != null); 

            Controller.Zones.CollectionChanged += (s, a) => RaiseCollectionChanged(a);
        }
예제 #2
0
파일: Controller.cs 프로젝트: wasabii/rnet
        /// <summary>
        /// Initializes a new instance.
        /// </summary>
        /// <param name="controller"></param>
        /// <param name="zoneCount"></param>
        public Controller(RnetController controller, int zoneCount)
            : base(controller)
        {
            Contract.Requires<ArgumentNullException>(controller != null);
            Contract.Requires<ArgumentOutOfRangeException>(zoneCount >= 1 && zoneCount <= 32);

            // grab references to the supported zones
            zones = Enumerable.Range(0, zoneCount)
                .Select(i => Controller.Zones[i])
                .ToArray();

            modelHandle =
                controller[0, 0];
            firmwareVersionHandle =
                controller[0, 1];
        }
예제 #3
0
        async Task<Driver> GetDriver(RnetController controller)
        {
            Contract.Requires<ArgumentNullException>(controller != null);

            var model = await controller[0, 0].ReadAsciiString();
            if (model == null)
                return null;

            switch (model)
            {
                case "CAM 6.6":
                    return new CAM66(controller);
                case "CAM 6.6 Rev2":
                    return new CAM66(controller);
                case "CAV 6.6":
                    return new CAV66(controller);
            }

            return null;
        }
예제 #4
0
 /// <summary>
 /// Initializes a new instance.
 /// </summary>
 /// <param name="controller"></param>
 protected ControllerBase(RnetController controller)
     : base(controller)
 {
     Contract.Requires<ArgumentNullException>(controller != null);
 }
예제 #5
0
파일: Controller.cs 프로젝트: wasabii/rnet
 /// <summary>
 /// Initializes a new instance.
 /// </summary>
 /// <param name="controller"></param>
 public Controller(RnetController controller)
     : base(controller)
 {
     Contract.Requires<ArgumentNullException>(controller != null); 
 }
예제 #6
0
        /// <summary>
        /// Initializes a new instance.
        /// </summary>
        /// <param name="controller"></param>
        /// <returns></returns>
        internal ControllerContainer(RnetController controller)
            : base(controller)
        {

        }
예제 #7
0
 async Task<ControllerData> FillControllerData(IContext context, RnetController o, ControllerData d)
 {
     await FillDeviceData(context, o, d);
     return d;
 }
예제 #8
0
 /// <summary>
 /// Transforms the given <see cref="RnetController"/> into a <see cref="ControllerData"/> instance.
 /// </summary>
 /// <param name="d"></param>
 /// <returns></returns>
 public async Task<ControllerData> ControllerToData(IContext context, RnetController d)
 {
     return await FillControllerData(context, d, new ControllerData());
 }