public void ExecuteActions(TLHPacket[] temperature, MoisturePacket[] moisture, ManualPacket manual, LimitPacket limits)
        {
            // Process limit changes
            LimitsAnalyzer limitAnalyzer = new LimitsAnalyzer();

            limitAnalyzer.ChangeGreenhouseLimits(limits);
            // Process manual controls
            ManualPacketAnalyzer manualAnalyzer = new ManualPacketAnalyzer();

            manualAnalyzer.SetManualValues(manual);
            // Process sensor data
            AnalyzeData(temperature, moisture);
        }
        /// <summary>
        /// Execute the actions required for proper greenhouse functioning, based on the input data from API calls
        /// </summary>
        /// <param name="sensorData"></param>
        /// <param name="manualControls"></param>
        /// <param name="automationData"></param>
        public void ExecuteActions(SensorPacket[] sensorData, ManualControlPacket manualControls, AutomationPacket automationData)
        {
            // Make sure the Arduino stays awake
            ArduinoControlSender.Instance.CheckArduinoStatus();

            // Process limit changes
            LimitsAnalyzer limitAnalyzer = new LimitsAnalyzer();

            limitAnalyzer.ChangeGreenhouseLimits(automationData);

            // Make sure the Arduino stays awake
            ArduinoControlSender.Instance.CheckArduinoStatus();

            // Process manual data
            ManualPacketAnalyzer manualAnalyzer = new ManualPacketAnalyzer();

            manualAnalyzer.SetManualValues(manualControls);

            // Make sure the Arduino stays awake
            ArduinoControlSender.Instance.CheckArduinoStatus();
            // Process sensor data
            AnalyzeData(sensorData);
        }