コード例 #1
0
 public static DeviceInfo DeserializDeviceInfo(string deviceRes)
 {
     try
     {
         return(JsonConvert.DeserializeObject <DeviceInfo>(deviceRes));
     }
     catch (Exception e)
     {
         NetworkServiceUtil.Log("DeviceDetailsViewModel DeserializDeviceInfo Exception: " + e);
     }
     return(null);
 }
コード例 #2
0
 private DeviceInfo DeserializDeviceInfo(string deviceRes)
 {
     try
     {
         return(JSONHelper.DeserializDeviceInfo(deviceRes));
     }
     catch (Exception e)
     {
         NetworkServiceUtil.Log("DeviceDetailsViewModel DeserializDeviceInfo Exception: " + e);
     }
     return(null);
 }
コード例 #3
0
        /// <summary>
        /// GetInitilizeSprayCount(Input) Will return count from service
        /// </summary>
        public async Task <bool> GetInitilizeSprayCount()
        {
            DeviceInfoRequest deviceInfoRequest = new DeviceInfoRequest();

            deviceInfoRequest.request = "init";
            deviceInfoRequest.info    = "spray";
            var deviceRes = await deviceService.GetDeviceInfo(deviceInfoRequest);

            NetworkServiceUtil.Log("DeviceDetailsViewModel GetInitilizeSprayCount init spray: " + deviceRes);
            InitializeSpray = DeserializDeviceInfo(deviceRes);
            DeviceInfoReceived?.Invoke(InitializeSpray);
            return(true);
        }
コード例 #4
0
        ////////////////////////////////////////////////
        ////////////////////////////////////////////////
        /////////////////Get device values//////////////
        ////////////////////////////////////////////////
        ////////////////////////////////////////////////


        /// <summary>
        /// GetBatteryCount Will return count from service
        /// </summary>
        public async Task <bool> GetBatteryCount()
        {
            DeviceInfoRequest deviceInfoRequest = new DeviceInfoRequest();

            deviceInfoRequest.request = "get";
            deviceInfoRequest.info    = "battery";
            var deviceRes = await deviceService.GetDeviceInfo(deviceInfoRequest);

            NetworkServiceUtil.Log("DeviceDetailsViewModel GetBatteryCount get battery: " + deviceRes);
            //  Battery = DeserializDeviceInfo(deviceRes);
            // DeviceInfoReceived?.Invoke(Battery);
            return(false);
        }
コード例 #5
0
        /// <summary>
        /// GetNextSprayCounterCount Will return count from service
        /// </summary>
        public async Task <bool> GetNextSprayCounterCount()
        {
            DeviceInfoRequest deviceInfoRequest = new DeviceInfoRequest();

            deviceInfoRequest.request = "get";
            deviceInfoRequest.info    = "spray_counter";
            var deviceRes = await deviceService.GetDeviceInfo(deviceInfoRequest);

            NetworkServiceUtil.Log("DeviceDetailsViewModel GetNextSprayCounterCount: " + deviceRes);
            NextSprayCounter = DeserializDeviceInfo(deviceRes);
            DeviceInfoReceived?.Invoke(NextSprayCounter);
            // CalculateRemainingDays();
            return(false);
        }
コード例 #6
0
        private async void LoadData()
        {
            OTAHelper.Instance.DeviceService = DeviceService.Instance;
            var isAlive = await IsDeviceAlive(4);

            if (!isAlive)
            {
                Terra.Core.Utils.Utils.Toast("Heart beat connection lost!");
                await Shell.Current.Navigation.PopAsync();

                return;
            }
            await SetTime();

            Thread.Sleep(sleeptime);

            var rawSchedule = await GetScheduleFromService();

            NetworkServiceUtil.Log("DeviceDetailsViewModel OnInit rawSchedule: " + rawSchedule);
            IsScheduleGetError = DoesHaveErrorCode(rawSchedule);
            if (isScheduleGetError)
            {
                if (!OTAHelper.Instance.IsDeviceConnected())
                {
                    Terra.Core.Utils.Utils.Toast("Device connection lost!");
                    await Shell.Current.Navigation.PopAsync();

                    return;
                }
            }
            Schedulers = DeserializSchedule(rawSchedule);
            Result?.Invoke(Schedulers);
            //  return;
            //  Thread.Sleep(1100);

            //  await GetBatteryCount();
            //Thread.Sleep(sleeptime);
            // await GetInitilizeSprayCount();
            //Thread.Sleep(sleeptime);
            // await GetRemSprayCount();
            //Thread.Sleep(sleeptime);
            // await GetDaysLeftCount();
            //Thread.Sleep(sleeptime);
            //  await GetNextSprayCounterCount();
            await GetSnapshotAPI();

            CheckNewFWUpdateAvailability();
        }
コード例 #7
0
        public async Task <string> DeleteScheduleItem(string index)
        {
            NetworkServiceUtil.Log("DeleteScheduleItem ==> called");
            ScheduleIndex scheduleIndex = new ScheduleIndex();

            scheduleIndex.deleteindex = (Convert.ToInt32(index)).ToString();
            scheduleIndex.request     = "delete";
            scheduleIndex.info        = "scheduler";
            var deviceRes = await deviceService.DeleteScheduleIndex(scheduleIndex);

            var _DaysLeft = DeserializDeviceInfo(deviceRes);

            DaysLeft = _DaysLeft;
            DeviceInfoReceived?.Invoke(DaysLeft);
            return(deviceRes);
        }
コード例 #8
0
        /// <summary>
        /// GetDaysLeftCount Will return count from service
        /// </summary>
        public async Task <bool> GetDaysLeftCount()
        {
            return(false);

            DeviceInfoRequest deviceInfoRequest = new DeviceInfoRequest();

            deviceInfoRequest.request = "get";
            deviceInfoRequest.info    = "days_left";
            var deviceRes = await deviceService.GetDeviceInfo(deviceInfoRequest);

            NetworkServiceUtil.Log("DeviceDetailsViewModel GetDaysLeftCount get spray: " + deviceRes);
            var _DaysLeft = DeserializDeviceInfo(deviceRes);

            DaysLeft = _DaysLeft;
            DeviceInfoReceived?.Invoke(DaysLeft);
            // CalculateRemainingDays();
            return(true);
        }
コード例 #9
0
        /// <summary>
        /// GetSnapshotAPI Will return count from service
        /// </summary>
        public async Task <bool> GetSnapshotAPI()
        {
            DeviceInfoRequest deviceInfoRequest = new DeviceInfoRequest();

            deviceInfoRequest.request = "get";
            deviceInfoRequest.info    = "snapshot";
            var deviceRes = await deviceService.GetDeviceSnapShotInfo(deviceInfoRequest);

            NetworkServiceUtil.Log("DeviceDetailsViewModel GetSnapshotAPI: " + deviceRes);
            Devicesnapshot devicesnapshot = null;

            if (!string.IsNullOrEmpty(deviceRes))
            {
                devicesnapshot = JsonConvert.DeserializeObject <Devicesnapshot>(deviceRes);
                AssignSnapshotObjects(devicesnapshot);
            }
            InvokeDelegate();
            return(false);
        }
コード例 #10
0
ファイル: NetworkViewModel.cs プロジェクト: 007vel/Terra
        private async Task <bool> ConnectNetwork(string ssid, string pwd)
        {
            NetworkServiceUtil.Log("DeviceDetailsViewModel ConfigDevice : " + DeviceName + "    " + pwd);
            bool wifiConnected = false;

            if (!string.IsNullOrEmpty(DeviceName) && !string.IsNullOrEmpty(pwd))
            {
                var Fssid = $"\"{ssid}\"";
                if (DependencyService.Get <IPlatformWifiManager>().GetSsId() == Fssid)
                {
                    wifiConnected = true;
                }

                if (!wifiConnected)
                {
                    if (await wifiAdapter.ConnectToWifi(ssid, pwd))
                    {
                        wifiConnected = true;
                        DependencyService.Get <IPlatformWifiManager>().ForceWifiOverCellular();
                        NetworkServiceUtil.Log("DeviceDetailsViewModel ConfigDevice success: " + DeviceName + "    " + pwd);

                        SelectedWifi.isSelected = true;
                    }
                    else
                    {
                        DeviceConnectStatus     = "Failed to Connect";
                        SelectedWifi.isSelected = false;
                    }
                }
            }
            else
            {
                DeviceConnectStatus     = "Incorrect Password";
                SelectedWifi.isSelected = false;
            }

            if (wifiConnected)
            {
                DeviceConnectStatus = "Connected";
                await Shell.Current.GoToAsync("DeviceDetailsPage");
            }
            return(true);
        }
コード例 #11
0
ファイル: NetworkViewModel.cs プロジェクト: 007vel/Terra
        public async Task <bool> ConfigDevice(String Ssid, String bssid, String Passphrase)
        {
            //  var Ssid = $"\"{_Ssid}\"";
            //  var Passphrase = $"\"{_Passphrase}\"";
            //   string bssid = wifiAdapter.GetBssid();
            smartconfig = DependencyService.Get <ISmartConfigHelper>().CreatePlatformTask();
            //  return true;
            smartconfig.SetSmartConfigTask(Ssid, bssid, Passphrase, false, 60);
            NetworkServiceUtil.Log("DeviceDetailsViewModel ConfigDevice : " + Ssid + "    " + Passphrase);
            string Message = "running configuration";
            await Task.Run(() =>
            {
                var result = smartconfig.executeForResult();
                Message    = Message + "Device address set up: " + result.getInetAddress() + "\r\n";
                NetworkServiceUtil.Log("DeviceDetailsViewModel ConfigDevice : " + Message);
                return(true);
            });

            return(false);
        }
コード例 #12
0
        /// <summary>
        /// HeartBeat health check for device status
        /// </summary>
        public async Task <HeartBeat> GetHeartBeat()
        {
            try
            {
                HeartBeat heartBeat = new HeartBeat();
                heartBeat.type = "check";
                var deviceRes = await deviceService.GetHealthCheck(heartBeat);

                NetworkServiceUtil.Log("DeviceDetailsViewModel GetHeartBeat: " + deviceRes);
                if (!string.IsNullOrEmpty(deviceRes))
                {
                    var health = JsonConvert.DeserializeObject <HeartBeat>(deviceRes);
                    return(health);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex);
                NetworkServiceUtil.Log("DeviceDetailsViewModel GetHeartBeat Exception: " + ex);
            }
            return(null);
        }