Inheritance: MonoBehaviour
コード例 #1
0
        // GET: Sprinklers/Details/5
        public ActionResult Details(long?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Sprinkler irrigationUnit = db.Sprinklers.Find(id);

            if (irrigationUnit == null)
            {
                return(HttpNotFound());
            }

            SprinklerViewModel vm = new SprinklerViewModel();

            vm.IrrigationUnitId     = irrigationUnit.IrrigationUnitId;
            vm.ShortName            = irrigationUnit.ShortName;
            vm.Name                 = irrigationUnit.Name;
            vm.Bomb                 = new BombViewModel(irrigationUnit.Bomb);
            vm.Farm                 = irrigationUnit.Farm;
            vm.Position             = irrigationUnit.Position;
            vm.Latitude             = irrigationUnit.Position.Latitude;
            vm.Longitude            = irrigationUnit.Position.Longitude;
            vm.IrrigationEfficiency = irrigationUnit.IrrigationEfficiency;
            vm.IrrigationType       = irrigationUnit.IrrigationType;
            vm.PredeterminatedIrrigationQuantity = irrigationUnit.PredeterminatedIrrigationQuantity;
            vm.Surface = irrigationUnit.Surface;
            vm.Show    = irrigationUnit.Show;
            vm.Width   = irrigationUnit.Width;
            vm.Length  = irrigationUnit.Length;

            return(View("~/Views/Irrigation/Sprinklers/Details.cshtml", vm));
        }
コード例 #2
0
        private void button10_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = null;

            foreach (var buf in label)
            {
                if (buf.BackColor != Color.MediumTurquoise)
                {
                    buf.BackColor = Color.MediumTurquoise;
                }
            }
            label10.BackColor = Color.MediumSeaGreen;

            if (label10.BackColor == Color.MediumSeaGreen & flag == true)
            {
                RemoteControl       remoteControl       = new RemoteControl();
                Sprinkler           Sprinkler           = new Sprinkler(richTextBox1);
                SprinklerOnCommand  sprinklerOnCommand  = new SprinklerOnCommand(Sprinkler);
                SprinklerOffCommand sprinklerOffCommand = new SprinklerOffCommand(Sprinkler);

                remoteControl.SetCommand(2, sprinklerOnCommand, sprinklerOffCommand);
                remoteControl.OffButtonWasPushed(2);
                flag = false;
            }

            else
            {
                richTextBox1.Text = null;
                richTextBox1.Text = "Sprinkler is Off\nPress key On Sprinkler";
            }
        }
コード例 #3
0
 public ActionResult Create(IFormCollection collection)
 {
     try
     {
         // Chceck if Number is valid
         var num = Convert.ToInt32(collection[nameof(Sprinkler.Number)]);
         if (num >= _site.MaxSprinklers)
         {
             return(View());
         }
         if (_site.Sprinklers.Where(m => m.Number == num).FirstOrDefault() == null)
         {
             Sprinkler spr = new Sprinkler();
             spr.Number     = num;
             spr.Name       = collection[nameof(Sprinkler.Name)];
             spr.IsInverted = Convert.ToBoolean(collection[nameof(Sprinkler.IsInverted)]);
             _site.Sprinklers.Add(spr);
             _site.SaveConfiguration();
             return(RedirectToAction(nameof(Index)));
         }
     }
     catch
     {
     }
     PrepareViewData();
     return(View());
 }
コード例 #4
0
        public ActionResult DeleteConfirmed(long id)
        {
            Sprinkler sprinkler = db.Sprinklers.Find(id);

            db.Sprinklers.Remove(sprinkler);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #5
0
ファイル: SprinklerEx.cs プロジェクト: pepoluan/NRaas
        public void SetSprinklerAlarm(ISprinkler sprinkler)
        {
            Sprinkler waterThingy = sprinkler as Sprinkler;

            AlarmManager.Global.RemoveAlarm(waterThingy.mAutoWaterAlarm);
            waterThingy.mAutoWaterAlarm = AlarmHandle.kInvalidHandle;

            waterThingy.mAutoWaterAlarm = base.AddAlarmDay(kAutoWaterTimeOfDay, ~DaysOfTheWeek.None, new AlarmTimerCallback(this.TurnOnUpgradedSprinkler), "Auto Water Sprinkler On", AlarmType.NeverPersisted);
        }
コード例 #6
0
        public static void RemoveEAAlarms(ISprinkler sprinkler)
        {
            Sprinkler waterThingy = sprinkler as Sprinkler;

            AlarmManager.Global.RemoveAlarm(waterThingy.mProcessingAlarm);
            waterThingy.mProcessingAlarm = AlarmHandle.kInvalidHandle;

            AlarmManager.Global.RemoveAlarm(waterThingy.mAutoWaterAlarm);
            waterThingy.mAutoWaterAlarm = AlarmHandle.kInvalidHandle;
        }
コード例 #7
0
 public ActionResult Edit([Bind(Include = "IrrigationUnitId,Name,IrrigationType,IrrigationEfficiency,Surface,Width,Length")] Sprinkler sprinkler)
 {
     if (ModelState.IsValid)
     {
         db.Entry(sprinkler).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(sprinkler));
 }
コード例 #8
0
        public ActionResult Create([Bind(Include = "IrrigationUnitId,Name,IrrigationType,IrrigationEfficiency,Surface,Width,Length")] Sprinkler sprinkler)
        {
            if (ModelState.IsValid)
            {
                db.Sprinklers.Add(sprinkler);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(sprinkler));
        }
コード例 #9
0
        // GET: Sprinklers/Delete/5
        public ActionResult Delete(long?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Sprinkler sprinkler = db.Sprinklers.Find(id);

            if (sprinkler == null)
            {
                return(HttpNotFound());
            }
            return(View(sprinkler));
        }
コード例 #10
0
 private void ProcessSprinklersCallback()
 {
     foreach (ISprinkler sprinkler in Sims3.Gameplay.Queries.GetObjects <ISprinkler>())
     {
         Sprinkler sprinkler2 = sprinkler as Sprinkler;
         if (sprinkler2.TurnedOn)
         {
             SpawnPuddles(sprinkler2);
             if (!sprinkler2.ShouldBeOn)
             {
                 sprinkler2.TurnOffSprinkler();
             }
         }
     }
 }
コード例 #11
0
        public static void SpawnPuddles(Sprinkler sprinkler)
        {
            // this calls SetPuddles(true) in the core
            bool        set         = true;
            LotLocation location    = new LotLocation();
            ulong       lotLocation = World.GetLotLocation(sprinkler.PositionOnFloor, ref location);
            int         num2        = (int)(Math.Sqrt(2.0) * Sprinkler.kRangeOfSpray);

            Vector2[] vectorArray = new Vector2[4];
            for (int i = 0; i <= 3; i++)
            {
                vectorArray[i].x = sprinkler.mDiscourageFootprintPoints[i].x;
                vectorArray[i].y = sprinkler.mDiscourageFootprintPoints[i].z;
            }
            Vector2 vector  = new Vector2(vectorArray[1].x - vectorArray[0].x, vectorArray[1].y - vectorArray[0].y);
            Vector2 vector2 = new Vector2(vectorArray[3].x - vectorArray[0].x, vectorArray[3].y - vectorArray[0].y);
            float   num4    = vector.Length();

            vector.Normalize();
            vector2.Normalize();
            Vector3     worldPos       = new Vector3();
            Vector2     vector4        = new Vector2();
            LotLocation location2      = new LotLocation();
            short       startingRoomId = World.GetRoomId(lotLocation, location, eRoomDefinition.LightBlocking);

            for (int j = location.mX - num2; j <= (location.mX + num2); j++)
            {
                for (int k = location.mZ - num2; k <= (location.mZ + num2); k++)
                {
                    location2.mX     = j;
                    location2.mZ     = k;
                    location2.mLevel = location.mLevel;
                    location2.mRoom  = location.mRoom;
                    World.GetWorldPosition(lotLocation, location2, ref worldPos);
                    vector4.x = worldPos.x - vectorArray[0].x;
                    vector4.y = worldPos.z - vectorArray[0].y;
                    float num8 = (float)(vector4 * vector);
                    float num9 = (float)(vector4 * vector2);
                    if (((num8 >= 0f) && (num8 <= num4)) && ((num9 >= 0f) && (num9 <= num4)))
                    {
                        PlacePuddleIfSprayableEx(lotLocation, location2, worldPos, set, startingRoomId);
                    }
                }
            }
        }
コード例 #12
0
ファイル: SprinklerEx.cs プロジェクト: Robobeurre/NRaas
 public static void SpawnPuddles(Sprinkler sprinkler)
 {           
     // this calls SetPuddles(true) in the core
     bool set = true;
     LotLocation location = new LotLocation();
     ulong lotLocation = World.GetLotLocation(sprinkler.PositionOnFloor, ref location);
     int num2 = (int)(Math.Sqrt(2.0) * Sprinkler.kRangeOfSpray);
     Vector2[] vectorArray = new Vector2[4];
     for (int i = 0; i <= 3; i++)
     {
         vectorArray[i].x = sprinkler.mDiscourageFootprintPoints[i].x;
         vectorArray[i].y = sprinkler.mDiscourageFootprintPoints[i].z;
     }
     Vector2 vector = new Vector2(vectorArray[1].x - vectorArray[0].x, vectorArray[1].y - vectorArray[0].y);
     Vector2 vector2 = new Vector2(vectorArray[3].x - vectorArray[0].x, vectorArray[3].y - vectorArray[0].y);
     float num4 = vector.Length();
     vector.Normalize();
     vector2.Normalize();
     Vector3 worldPos = new Vector3();
     Vector2 vector4 = new Vector2();
     LotLocation location2 = new LotLocation();
     short startingRoomId = World.GetRoomId(lotLocation, location, eRoomDefinition.LightBlocking);
     for (int j = location.mX - num2; j <= (location.mX + num2); j++)
     {
         for (int k = location.mZ - num2; k <= (location.mZ + num2); k++)
         {
             location2.mX = j;
             location2.mZ = k;
             location2.mLevel = location.mLevel;
             location2.mRoom = location.mRoom;
             World.GetWorldPosition(lotLocation, location2, ref worldPos);
             vector4.x = worldPos.x - vectorArray[0].x;
             vector4.y = worldPos.z - vectorArray[0].y;
             float num8 = (float)(vector4 * vector);
             float num9 = (float)(vector4 * vector2);
             if (((num8 >= 0f) && (num8 <= num4)) && ((num9 >= 0f) && (num9 <= num4)))
             {
                 PlacePuddleIfSprayableEx(lotLocation, location2, worldPos, set, startingRoomId);
             }
         }
     }
 }
コード例 #13
0
        public ActionResult Create([Bind(Include = "IrrigationUnitId,ShortName,IrrigationType,IrrigationEfficiency,PredeterminatedIrrigationQuantity, Surface,FarmId, BombId, Latitude,Longitude, Show, Width,Length")] SprinklerViewModel sprinklerViewModel)
        {
            if (ModelState.IsValid)
            {
                Sprinkler irrigationUnit = new Sprinkler();

                Farm farm = db.Farms.Find(sprinklerViewModel.FarmId);

                long     positionId = GetPositionId(sprinklerViewModel.Latitude, sprinklerViewModel.Longitude);
                Position positionIU = new Position();
                //Not exist position
                if (positionId == 0)
                {
                    positionIU.Latitude     = sprinklerViewModel.Latitude;
                    positionIU.Longitude    = sprinklerViewModel.Longitude;
                    positionIU.Name         = sprinklerViewModel.Name + " - Unidad de riego";
                    irrigationUnit.Position = positionIU;
                }
                else
                {
                    irrigationUnit.PositionId = positionId;
                }

                irrigationUnit.ShortName            = sprinklerViewModel.ShortName;
                irrigationUnit.Name                 = farm.Name + " - " + sprinklerViewModel.ShortName;
                irrigationUnit.BombId               = sprinklerViewModel.BombId;
                irrigationUnit.FarmId               = sprinklerViewModel.FarmId;
                irrigationUnit.IrrigationEfficiency = sprinklerViewModel.IrrigationEfficiency;
                irrigationUnit.PredeterminatedIrrigationQuantity = sprinklerViewModel.PredeterminatedIrrigationQuantity;
                irrigationUnit.Surface        = sprinklerViewModel.Surface;
                irrigationUnit.Show           = sprinklerViewModel.Show;
                irrigationUnit.Width          = sprinklerViewModel.Width;
                irrigationUnit.Length         = sprinklerViewModel.Length;
                irrigationUnit.IrrigationType = Utils.IrrigationUnitType.Sprinkler;
                db.Sprinklers.Add(irrigationUnit);
                db.SaveChanges();
            }
            return(Redirect("/IrrigationUnit"));
            //var lList = db.IrrigationUnits.Include(f => f.Farm);
            //return View("~/Views/Irrigation/IrrigationUnit/Index.cshtml", lList.ToList());
        }
コード例 #14
0
        private void TurnOnUpgradedSprinklers()
        {
            foreach (ISprinkler sprinkler in Sims3.Gameplay.Queries.GetObjects <ISprinkler>())
            {
                Sprinkler sprinkler2 = sprinkler as Sprinkler;
                if (SeasonsManager.sInstance != null && SeasonsManager.CurrentSeason == Season.Winter && sprinkler.IsOutside)
                {
                    continue;
                }

                if (sprinkler2.Upgradable != null && sprinkler2.Upgradable.AutoWater && !sprinkler2.TurnedOn && !sprinkler2.OnOffChanging)
                {
                    sprinkler2.TurnOnSprinkler();
                    RemoveEAAlarms(sprinkler);
                    if (sprinkler2.TurnedOn)
                    {
                        sprinkler2.AutoTurnedOn = true;
                    }
                }
            }
        }
コード例 #15
0
        public ActionResult Edit([Bind(Include = "IrrigationUnitId,ShortName,IrrigationType,IrrigationEfficiency,PredeterminatedIrrigationQuantity, Surface,FarmId, BombId, Latitude, Longitude, Show, Width,Length")] SprinklerViewModel sprinkleViewModel)
        {
            if (ModelState.IsValid)
            {
                Sprinkler lSprinkler = db.Sprinklers.Find(sprinkleViewModel.IrrigationUnitId);

                long     positionId = GetPositionId(sprinkleViewModel.Latitude, sprinkleViewModel.Longitude);
                Position lPosition  = new Position();
                //Not exist position
                if (positionId == 0)
                {
                    lPosition.Latitude  = sprinkleViewModel.Latitude;
                    lPosition.Longitude = sprinkleViewModel.Longitude;
                    lPosition.Name      = sprinkleViewModel.Farm.Name + " - " + sprinkleViewModel.Name + " - Unidad de riego";
                    lSprinkler.Position = lPosition;
                }
                else
                {
                    lSprinkler.PositionId = positionId;
                }
                lSprinkler.ShortName            = sprinkleViewModel.ShortName;
                lSprinkler.BombId               = sprinkleViewModel.BombId;
                lSprinkler.FarmId               = sprinkleViewModel.FarmId;
                lSprinkler.IrrigationEfficiency = sprinkleViewModel.IrrigationEfficiency;
                lSprinkler.PredeterminatedIrrigationQuantity = sprinkleViewModel.PredeterminatedIrrigationQuantity;
                lSprinkler.Surface = sprinkleViewModel.Surface;
                lSprinkler.Show    = sprinkleViewModel.Show;
                lSprinkler.Width   = sprinkleViewModel.Width;
                lSprinkler.Length  = sprinkleViewModel.Length;
                // lSprinkler.IrrigationType = Utils.IrrigationUnitType.Sprinkler;
                db.Entry(lSprinkler).State = EntityState.Modified;
                db.SaveChanges();
            }
            return(Redirect("/IrrigationUnit"));
            //var lList = db.IrrigationUnits.Include(f => f.Farm);
            //return View("~/Views/Irrigation/IrrigationUnit/Index.cshtml", lList.ToList());
        }
コード例 #16
0
        static public async Task InitParam()
        {
            NUMBER_SPRINKLERS = 3;
            SprDuration       = 20;
            SprinklerPrograms = new ArrayList();

            FileStream fileToRead = null;

            try
            {
                //fileToRead = new FileStream(strDefaultDir + "\\" + strFileProgram, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                fileToRead = new FileStream(await GetFilePathAsync(strFileProgram), FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                long fileLength = fileToRead.Length;

                byte[] buf = new byte[fileLength];
                //string mySetupString = "";

                // Reads the data.
                fileToRead.Read(buf, 0, (int)fileLength);
                //await str.ReadAsync(buf,  )
                // convert the read into a string

                List <Param> Params  = Param.decryptParam(new String(Encoding.UTF8.GetChars(buf)));
                int          mSpr    = -1;
                int          mDur    = -1;
                bool         mReboot = false;
                if (Params != null)
                {
                    MySecurityKey = Param.CheckConvertString(Params, paramSecurityKey);
                    mSpr          = Param.CheckConvertInt32(Params, paramSpr);
                    mDur          = Param.CheckConvertInt32(Params, paramDuration);
                    mReboot       = Param.CheckConvertBool(Params, paramReboot);
                }
                //write the last time a boot has happened and initialize the next reboot
                if (mReboot)
                {
                    //MyRebootManager = new Timer(new TimerCallback(RebootManager), null, (mReboot* 3600000), (mReboot* 3660000));
                }
                if (mDur > 0)
                {
                    SprDuration = mDur;
                }
                securityKey = paramSecurityKey + Param.ParamEqual + MySecurityKey;
                if (mSpr != -1)
                {
                    NUMBER_SPRINKLERS = mSpr;
                    // Initiate Sprinklers (3 by default)
                    Sprinklers = new Sprinkler[NUMBER_SPRINKLERS];
                    for (int i = 0; i < Sprinklers.Length; i++)
                    {
                        bool isinvert = Param.CheckConvertBool(Params, paramInv + i);
                        Sprinklers[i] = new Sprinkler(i, isinvert);
                    }
                    for (int i = 0; i < NUMBER_SPRINKLERS; i++)
                    {
                        Sprinklers[i].Name = Param.CheckConvertString(Params, paramSprName + i);
                    }
                }
            }
            catch (Exception e)
            {
                if (fileToRead != null)
                {
                    fileToRead.Dispose();
                }
            }
            soilHumidity = new SoilHumidity();
            await InitIoTHub();
            await InitPrograms();
            await InitTypicalProgam();
            await InitFuzzyLogic();
            await InitPredictions();

            //initialize the relay output
            var gpio = GpioController.GetDefault();

            EnableOutput = gpio.OpenPin(GPIO_PIN);
            EnableOutput.SetDriveMode(GpioPinDriveMode.Output);
            EnableOutput.Write(GpioPinValue.High);
            //init the timer that will ruin every minute to check when to stop/start
            InitTimer();
            //SendDataToAzure("{\"info\":\"Sprinkler system started\",\"DeviceID\":\""+ DeviceId +"\"}");
            LogToAzure("Sprinkler system started");
            ReceiveDataFromAzure();
        }
コード例 #17
0
 public override bool Test(Sim a, Sprinkler target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback)
 {
     return((!target.TurnedOn && !target.OnOffChanging) && !target.IsBeingUpgraded);
 }
コード例 #18
0
 public override string GetInteractionName(Sim actor, Sprinkler target, InteractionObjectPair iop)
 {
     return(base.GetInteractionName(actor, target, new InteractionObjectPair(sOldSingleton, target)));
 }
コード例 #19
0
ファイル: TurnOnEx.cs プロジェクト: Robobeurre/NRaas
 public override bool Test(Sim a, Sprinkler target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback)
 {
     return ((!target.TurnedOn && !target.OnOffChanging) && !target.IsBeingUpgraded);                
 }            
コード例 #20
0
ファイル: SprinklerViewModel.cs プロジェクト: rodouy/IAdvisor
 public SprinklerViewModel(Sprinkler pSprinkler)
 {
     this.IrrigationUnitId = pSprinkler.IrrigationUnitId;
     this.Width            = pSprinkler.Width;
     this.Length           = pSprinkler.Length;
 }
コード例 #21
0
 public SprinklerOnCommand(Sprinkler Sprinkler)
 {
     this.Sprinkler = Sprinkler;
 }
コード例 #22
0
ファイル: TurnOnEx.cs プロジェクト: Robobeurre/NRaas
 public override string GetInteractionName(Sim actor, Sprinkler target, InteractionObjectPair iop)
 {
     return base.GetInteractionName(actor, target, new InteractionObjectPair(sOldSingleton, target));
 }