public void On()
 {
     hardwareSolenoid.On();
     dataSolenoid.Value = 1;
     DataService.Proxy.PutSolenoid(dataSolenoid);
     DataService.CreateEvent(EventTypes.IO, string.Format("Solenoid {0} On", dataSolenoid.Name), dataSolenoid.DeviceId);
 }
Beispiel #2
0
        public IrrigationProgram(int id, string name, DateTime start, int duration, int solenoidId, HardwareService hw, DataService data)
        {
            Id         = id;
            Name       = name;
            Start      = start;
            Duration   = duration;
            SolenoidId = solenoidId;

            hardwareService  = hw;
            dataService      = data;
            DataSolenoid     = dataService.Solenoids.AsQueryable <Solenoid>().Where(s => s.Id == solenoidId).First <Solenoid>();
            HardwareSolenoid = hardwareService.Solenoids.AsQueryable <ISolenoid>().Where(s => s.Id == solenoidId).First <ISolenoid>();

            HardwarePumpSolenoid                           = hardwareService.PumpSolenoid;
            DataPumpSolenoid                               = dataService.Solenoids
                                              RequiresPump = DataSolenoid.RequiresPump;


            Data.IrrigationProgram program = new Data.IrrigationProgram()
            {
                Name         = Name,
                Start        = Start,
                Duration     = Duration,
                DeviceId     = data.device.Id,
                SolenoidName = DataSolenoid.Name,
                SolenoidId   = DataSolenoid.Id,
                RequiresPump = DataSolenoid.RequiresPump
            };
            dataService.dataServer.PutIrrigationProgram(program);

            //start irrigating
            HardwareSolenoid.On();
            DataSolenoid.Value = 1;
            dataService.dataServer.PutSolenoid(DataSolenoid);

            if (RequiresPump)
            {
                hardwareService.PumpSolenoid.On();
            }

            //report to the server
            DataSolenoid.Value = 1;
            dataService.dataServer.PutSolenoid(DataSolenoid);
        }