protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            timer.Tick += Timer_Tick;
            timer.Start();

            var sensor = e.Parameter as Sensor;

            SG.SetRange(sensor.RangeMin, sensor.RangeMax);
            SG.SetDanger(sensor.DangerLo, sensor.DangerHi);

            switch (sensor.DeviceState)
            {
            case SensorDeviceState.Online:
                SG.ColorDataLines = 0xFF00FF00;
                break;

            case SensorDeviceState.Simulated:
                SG.ColorDataLines = 0xFFFFFF00;
                break;

            case SensorDeviceState.Offline:
                SG.ColorDataLines = 0;
                break;
            }

            var cmdBarItems = new CmdBarItem[]
            {
                new CmdBarItem(Symbol.Repair, "Repair", o => sensorAccess.ClearSensorFaultState(sensor.Id)),
                new CmdBarItem(Symbol.Setting, "Settings", o => Frame.Navigate(typeof(SensorSettingsPage), sensor)),
            };

            DAL.PushNavLink(new NavLinkItem(sensor.Id.ToString(), GetType(), sensor));
            DAL.SetCmdBarItems(cmdBarItems);

            CompositionTarget.Rendering += CompositionTarget_Rendering;

            await viewModel.InitAsync(sensor);
        }