public EditAlarmDlg(int alarmInstance = -1)
 {
     InitializeComponent();
     mediaPlayer = new MediaPlayer();
     if (alarmInstance > -1)
     {
         alarmSettings = ConfigManager.AlarmsReader.GetAlarmByInstance(alarmInstance);
     }
     else
     {
         alarmSettings = new AlarmSettings()
         {
             Name           = "Road Speed",
             Instance       = -1,
             AlarmCondition = new AlarmCondition()
             {
                 Pid          = 84,
                 TriggerValue = 70,
                 Comparator   = ComparativeOperator.GreaterThan
             },
             SoundSettings = new AudibleSettings()
             {
                 AlarmFrequency = AlarmFrequency.Once,
                 AudioFilePath  = "\\audio\\ahooga.wav",
             },
         };
     }
     AddParameterChoices();
     ApplyBindings();
 }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="packetNumber"></param>
        /// <param name="alarmSetting">Flagged byte: 0x01=Vibrate | 0x02=Audio </param>
        /// <param name="threshold">μSv/h  * 100: Alarm trigger threshold: range .01 to 10.00</param>
        public WriteSettingsRequest(uint packetNumber, AlarmSettings alarmSetting, ushort threshold)
        {
            if (threshold > 1000)
            {
                threshold = 1000;
            }

            Prefix          = 0xff7b;
            Command         = 0x0020;
            ExtensionLength = 28 - 12;
            PacketNumber    = packetNumber;
            CheckSum0       = (ushort)((0xffff - ((
                                                      Prefix +
                                                      Command +
                                                      ExtensionLength +
                                                      ((PacketNumber & 0xffff0000) >> 16) +
                                                      (PacketNumber & 0xffff)
                                                      ) % 65535)) & 0xffff);

            SubCommand = 0x0802;
            Reserved1  = 0x000e;
            Reserved2  = 0x0005;

            Composite0   = 0; // (ushort)((((byte)alarmSetting) & 0x03) | ((threshold & 0xff) << 8));
            Composite1   = 0; // (ushort)((threshold & 0xff00) >> 8);
            AlarmSetting = alarmSetting;
            Threshold    = threshold;

            CheckSum1 = (ushort)((0xffff - ((SubCommand + Reserved1 + Reserved2 + Composite0 + Composite1) % 65535)) & 0xffff);
        }
Ejemplo n.º 3
0
 public Alarm(AlarmSettings settings)
 {
     this.Settings            = settings;
     alarmConditionProcessors = new List <AlarmConditionProcessor>();
     alarmSoundPlayer         = new MediaPlayer();
     AddConditions();
     alarmCheckTimer  = CREATE_TIMER(ProcessConditions, 1000);
     SecondsTriggered = 0;
 }
Ejemplo n.º 4
0
    protected bool TryParse(string min, string max, SensorsType type, out AlarmSettings alarm)
    {
        int  low, high;
        bool lowParse, highParse;

        lowParse  = int.TryParse(min, out low);
        highParse = int.TryParse(max, out high);

        if (!highParse)
        {
            high = int.MaxValue;
        }
        if (!lowParse)
        {
            low = int.MinValue;
        }
        if (lowParse || highParse)
        {
            alarm = new AlarmSettings(type, low, high);
            return(true);
        }
        alarm = null;
        return(false);
    }
Ejemplo n.º 5
0
 public static void AddAlarm(AlarmSettings alarm)
 {
     ConfigurationManager.ConfigManager.AlarmsReader.AddAlarm(alarm);
     LoadAlarms();
 }
Ejemplo n.º 6
0
        private void ShowAlarmSettings(string args)
        {
            if (!string.IsNullOrEmpty(args) && int.TryParse(args, out int position) && position >= 1 && position <= 16)
            {
                AlarmSettings alarmSettings = SomneoApiClient.GetAlarmSettings(position);

                if (alarmSettings == null)
                {
                    Console.WriteLine($"No alarm set for position #{position}.");
                    return;
                }

                string daysState = null;
                if (alarmSettings.RepeatDays.Count > 0)
                {
                    daysState = $"{Environment.NewLine}  Days: {string.Join(",", alarmSettings.RepeatDays.Select(d => string.Concat(d.ToString().Take(3))))}";
                }

                string channelOrPresetState = null;
                switch (alarmSettings.Device)
                {
                case SoundDeviceType.FMRadio:
                    int?fmRadioPreset = alarmSettings.GetFMRadioPreset();
                    if (fmRadioPreset.HasValue)
                    {
                        channelOrPresetState = $"{Environment.NewLine}  FM-radio preset: {fmRadioPreset.Value}";
                    }
                    break;

                case SoundDeviceType.WakeUpSound:
                    WakeUpSound?wakeUpSound = alarmSettings.GetWakeUpSound();
                    if (wakeUpSound.HasValue)
                    {
                        channelOrPresetState = $"{Environment.NewLine}  Wake-up sound: {EnumHelper.GetDescription(wakeUpSound.Value)}";
                    }
                    break;
                }

                string sunriseState = null;
                if (alarmSettings.SunriseType != SunriseType.NoLight)
                {
                    sunriseState = $" (intensity: {alarmSettings.SunriseIntensity}/25, duration: {alarmSettings.SunriseDuration}/40 minutes)";
                }

                string soundVolumeState = null;
                if (alarmSettings.Device != SoundDeviceType.None)
                {
                    soundVolumeState = $" (volume: {alarmSettings.Volume}/25)";
                }

                Console.WriteLine(
                    $@"Alarm #{alarmSettings.Position} settings:
  Enabled: {(alarmSettings.Enabled ? "Yes" : "No")}
  Time: {alarmSettings.Hour:00}:{alarmSettings.Minute:00}{daysState}
  PowerWake: {(alarmSettings.PowerWakeEnabled ? $"{alarmSettings.PowerWakeHour.Value:00}:{alarmSettings.PowerWakeMinute.Value:00}" : "off")}
  Sunrise: {EnumHelper.GetDescription(alarmSettings.SunriseType)}{sunriseState}
  Sound device: {EnumHelper.GetDescription(alarmSettings.Device)}{soundVolumeState}{channelOrPresetState}");

                return;
            }

            Console.WriteLine("Specify a position between 1 and 16.");
        }