Пример #1
0
        public ActionResult <RFSwitchDevice> getSwitch(Enums.ControlledAreas area, string deviceName)
        {
            _logger.LogInformation($"getSwitch() Entered. area: {area} device: {deviceName}");

            RFSwitchDevice sw = rfSwitches.Where(s => s.area == area && s.deviceName.ToLower() == deviceName.ToLower()).FirstOrDefault();

            if (sw != null)
            {
                return(sw);
            }
            return(NotFound());
        }
Пример #2
0
        public ActionResult <RelayDevice> getRelay(Enums.ControlledAreas area, string deviceName)
        {
            _logger.LogInformation($"getRelay() Entered. area: {area} device: {deviceName}");

            RelayDevice relay = relayDevices.Where(s => s.area == area && s.deviceName.ToLower() == deviceName.ToLower()).FirstOrDefault();

            if (relay != null)
            {
                return(relay);
            }
            return(NotFound());
        }
Пример #3
0
        public async Task <ActionResult <RFSwitchDevice> > setSwitch(Enums.ControlledAreas area, string deviceName, int swState)
        {
            RFSwitchDevice sw = rfSwitches.Where(s => s.area == area && s.deviceName.ToLower() == deviceName.ToLower()).FirstOrDefault();

            if (sw == null)
            {
                return(NotFound());
            }
            else
            {
                return(await setSwitch(sw.localDeviceId, swState));
            }
        }
Пример #4
0
        public async Task <ActionResult <RelayDevice> > setRelay(Enums.ControlledAreas area, string deviceName, int swState)
        {
            RelayDevice relay = relayDevices.Where(s => s.area == area && s.deviceName.ToLower() == deviceName.ToLower()).FirstOrDefault();

            if (relay == null)
            {
                return(NotFound());
            }
            else
            {
                return(await setRelay(relay.localDeviceId, swState));
            }
        }
Пример #5
0
        public AreaEvent(Enums.ControlledAreas areaId, string _deviceName, AreaEventType _eventType, string _mcuIPAddress, AreaEventStatus _eventStatus = AreaEventStatus.InProgress)
        {
            this.area       = areaId;
            this.deviceName = _deviceName;
            this._startTick = DateTime.Now.Ticks;

            this.eventType    = _eventType;
            this.mcuIPAddress = _mcuIPAddress;
            this.eventStatus  = _eventStatus;

            this.dataFile = string.Empty;

            if (_eventStatus == AreaEventStatus.Complete)
            {
                _endTick = _startTick;
            }
            else if (_eventStatus == AreaEventStatus.InProgress)
            {
                _endTick = 0;
            }
        }
Пример #6
0
        public ActionResult <List <AreaEvent> > getAreaEvents(AreaEventType eventType, Enums.ControlledAreas area)
        {
            //_logger.LogInformation($"getAreaEvents() Entered.");
            List <AreaEvent> events = EventLogger.getAreaEvents(eventType, area);

            return(events);
        }
Пример #7
0
        /// <summary>
        /// Get Events for a specific Area
        /// </summary>
        /// <param name="area">The Area for which to return events</param>
        /// <param name="eventType">The type of even such as Motion, SwitchOn, SwitchOff, e.g. All Event types are returned for this area when no parameter is passed.</param>
        /// <returns>Events for a specific Area</returns>
        internal static List <AreaEvent> getAreaEvents(AreaEventType eventType = AreaEventType.None, Enums.ControlledAreas area = Enums.ControlledAreas.None)

        {
            List <AreaEvent> retVal = new List <AreaEvent>();

            if (File.Exists(_xmlPath))
            {
                lock (lockObject)
                {
                    using (StreamReader sr = new StreamReader(_xmlPath))
                    {
                        string _typeSearch = eventType.ToString();
                        string _searchArea = area.ToString();
                        while (!sr.EndOfStream)
                        {
                            string line = sr.ReadLine();
                            try
                            {
                                //eventType:area:deviceName:eventStatus:mcuIPAddress:startTick:endTick:cameraHost:dataFile
                                //No parameters specified so add this event
                                if (area == Enums.ControlledAreas.None && eventType == AreaEventType.None)
                                {
                                    retVal.Add(new AreaEvent(line));
                                }
                                else                                 //if (eventType == AreaEventType.None) {
                                {
                                    //Area parameter was passed so only search in second field for Area
                                    int    p1         = line.IndexOf(':');
                                    string _eventType = line.Substring(0, p1);

                                    if (eventType == AreaEventType.None || _typeSearch == _eventType)
                                    {
                                        if (area == Enums.ControlledAreas.None)
                                        {
                                            retVal.Add(new AreaEvent(line));
                                        }
                                        else
                                        {
                                            int p2 = line.IndexOf(':', p1 + 1);

                                            string _area = line.Substring(p1 + 1, p2 - p1 - 1);
                                            if (_area == _searchArea)
                                            {
                                                retVal.Add(new AreaEvent(line));
                                            }
                                        }
                                    }
                                }
                            }
                            finally { }
                        }
                    }
                    //retVal.Add(new AreaEvent(line));
                }
            }
            return(retVal);
        }
Пример #8
0
 public RelayDevice(Enums.ControlledAreas area, string name, bool state, string mcuIpAddress)
     : base(area, name, mcuIpAddress, Enums.EnumDeviceType.Relay)
 {
     this._swState = state ? 1 : 0;
     this.Events   = new List <AreaEvent>();
 }