コード例 #1
0
        public ActionResult <RequestResponse> Exit_POST([FromHeader] string authToken, [FromHeader] string localIp, [FromHeader] string publicIp)
        {
            if (string.IsNullOrEmpty(authToken) || string.IsNullOrEmpty(localIp) || string.IsNullOrEmpty(publicIp))
            {
                return(BadRequest());
            }

            return(Ok(Json(RestCore.GetResponse("assistant_exit", new RequestParameter(authToken, publicIp, localIp)))));
        }
コード例 #2
0
ファイル: GpioController.cs プロジェクト: ArunPrakashG/Luna
        public ActionResult <RequestResponse> Status_GET([FromHeader] string authToken, [FromHeader] string localIp, [FromHeader] string publicIp)
        {
            if (string.IsNullOrEmpty(authToken) || string.IsNullOrEmpty(localIp) || string.IsNullOrEmpty(publicIp))
            {
                return(BadRequest());
            }

            return(Ok(Json(RestCore.GetResponse("gpio_status", new RequestParameter(authToken, publicIp, localIp)))));
        }
コード例 #3
0
        public ActionResult <RequestResponse> SetRemainder_POST(
            [FromHeader] string authToken,
            [FromHeader] string localIp,
            [FromHeader] string publicIp,
            [FromQuery] string remainderUid)
        {
            if (string.IsNullOrEmpty(authToken) || string.IsNullOrEmpty(localIp) || string.IsNullOrEmpty(publicIp) || string.IsNullOrEmpty(remainderUid))
            {
                return(BadRequest());
            }

            return(Ok(Json(RestCore.GetResponse("assistant_remainder_delete", new RequestParameter(authToken, publicIp, localIp, new object[] { remainderUid })))));
        }
コード例 #4
0
        public ActionResult <RequestResponse> SetAlarm_POST(
            [FromHeader] string authToken,
            [FromHeader] string localIp,
            [FromHeader] string publicIp,
            [FromQuery] string alarmText,
            [FromQuery] DateTime alarmAt)
        {
            if (string.IsNullOrEmpty(authToken) || string.IsNullOrEmpty(localIp) || string.IsNullOrEmpty(publicIp) || string.IsNullOrEmpty(alarmText))
            {
                return(BadRequest());
            }

            return(Ok(Json(RestCore.GetResponse("assistant_alarm", new RequestParameter(authToken, publicIp, localIp, new object[] { alarmText, alarmAt })))));
        }
コード例 #5
0
        internal Core(string[] args)
        {
            Console.Title = $"Initializing...";
            Logger        = InternalLogger.GetOrCreateLogger <Core>(this, nameof(Core));
            OS.Init(true);
            RuntimeSpanCounter.Restart();
            File.WriteAllText("version.txt", Constants.Version?.ToString());

            ParseStartupArguments();

            if (File.Exists(Constants.TraceLogFile))
            {
                File.Delete(Constants.TraceLogFile);
            }

            Config = new CoreConfig(this);
            Config.LoadAsync().Wait();
            IsUpdatesAllowed = !NoUpdates && Config.AutoUpdates;
            Config.LocalIP   = Helpers.GetLocalIpAddress()?.ToString() ?? "-Invalid-";
            Config.PublicIP  = Helpers.GetPublicIP()?.ToString() ?? "-Invalid-";

            if (!IsNetworkAvailable)
            {
                Logger.Warn("No Internet connection.");
                Logger.Info($"Starting offline mode...");
            }

            Pins = new PinsWrapper(
                Config.GpioConfiguration.OutputModePins,
                Config.GpioConfiguration.InputModePins,
                Constants.BcmGpioPins,
                Config.GpioConfiguration.RelayPins,
                Config.GpioConfiguration.InfraredSensorPins,
                Config.GpioConfiguration.SoundSensorPins
                );

            Controller   = new GpioCore(Pins, this, Config.GpioConfiguration.GpioSafeMode);
            ModuleLoader = new ModuleLoader();
            RestServer   = new RestCore(Config.RestServerPort, Config.Debug);

            JobManager.AddJob(() => SetConsoleTitle(), (s) => s.WithName("ConsoleUpdater").ToRunEvery(1).Seconds());
            Logger.CustomLog(FiggleFonts.Ogre.Render("LUNA"), ConsoleColor.Green);
            Logger.CustomLog($"---------------- Starting Luna v{Constants.Version} ----------------", ConsoleColor.Blue);
            IsBaseInitiationCompleted = true;
            PostInitiation().Wait();
            InternalConfigWatcher = new ConfigWatcher(this);
            InternalModuleWatcher = new ModuleWatcher(this);
            InitiationCompleted   = true;
        }
コード例 #6
0
ファイル: GpioController.cs プロジェクト: ArunPrakashG/Luna
        public ActionResult <RequestResponse> SetPin_POST(
            [FromHeader] string authToken,
            [FromHeader] string localIp,
            [FromHeader] string publicIp,
            [FromQuery] int gpioPin,
            [FromQuery] RestCore.GpioPinMode pinMode,
            [FromQuery] RestCore.GpioPinState pinState)
        {
            if (string.IsNullOrEmpty(authToken) || string.IsNullOrEmpty(localIp) || string.IsNullOrEmpty(publicIp) || gpioPin <= 0)
            {
                return(BadRequest());
            }

            return(Ok(Json(RestCore.GetResponse("set_gpio", new RequestParameter(authToken, publicIp, localIp, new object[] { gpioPin, pinMode, pinState })))));
        }