Beispiel #1
0
        /// <summary>
        /// Public method to read a zone state.
        /// </summary>
        /// <param name="zoneAddress">Zone Adress, containing device and zone id.</param>
        public void ReadZoneState(Address zoneAddress)
        {
            checkZoneDeviceId(zoneAddress.DeviceId);
            INuvoEssentiaCommand command = new NuvoEssentiaCommand(
                ENuvoEssentiaCommands.GetZoneStatus,
                convertAddressZone2EssentiaZone(zoneAddress));

            sendCommandToDevice(zoneAddress, command);
        }
Beispiel #2
0
        /// <summary>
        /// Public method to set the volume of a zone.
        /// </summary>
        /// <param name="zoneAddress">Zone Adress, containing device and zone id.</param>
        /// <param name="volumeLevel">Volume level.</param>
        public void CommandSetVolume(Address zoneAddress, int volumeLevel)
        {
            checkZoneDeviceId(zoneAddress.DeviceId);
            INuvoEssentiaSingleCommand command = new NuvoEssentiaSingleCommand(
                ENuvoEssentiaCommands.SetVolume,
                convertAddressZone2EssentiaZone(zoneAddress),
                NuvoEssentiaCommand.calcVolume2NuvoEssentia(volumeLevel));

            sendCommandToDevice(zoneAddress, command);
        }
Beispiel #3
0
 /// <summary>
 /// Private method to send notification 'onZoneStatusUpdate'
 /// </summary>
 /// <param name="e">Parameters received from underlying layer.</param>
 private void notifyZoneStatusUpdate(ConreteProtocolEventArgs e)
 {
     if (onZoneStatusUpdate != null)
     {
         try
         {
             ZoneState zoneState = new ZoneState(new Address(e.DeviceId, (int)e.Command.SourceId), (e.Command.PowerStatus == EZonePowerStatus.ZoneStatusON ? true : false),
                                                 NuvoEssentiaCommand.calcVolume2NuvoControl(e.Command.VolumeLevel), ZoneQuality.Online);
             onZoneStatusUpdate(this, new ProtocolZoneUpdatedEventArgs(new Address(e.DeviceId, (int)e.Command.ZoneId), zoneState, e));
         }
         catch (Exception ex)
         {
             _log.Fatal(m => m("Exception occured at forwarding event 'onZoneStatusUpdate' to Device {0} and Zone {1} (Command='{2}')! Exception={3}", e.DeviceId, e.Command.ZoneId, e.Command.ToString(), ex.ToString()));
         }
     }
 }
Beispiel #4
0
 /// <summary>
 /// Public method to set a zone state, according to a zone state object passed in.
 /// </summary>
 /// <param name="zoneAddress">Zone Adress, containing device and zone id.</param>
 /// <param name="zoneState">Zone state, which shall be applied.</param>
 public void SetZoneState(Address zoneAddress, ZoneState zoneState)
 {
     if (zoneState.PowerStatus)
     {
         INuvoEssentiaCommand command = new NuvoEssentiaCommand(
             ENuvoEssentiaCommands.SetZoneStatus,
             convertAddressZone2EssentiaZone(zoneAddress),
             convertAddressSource2EssentiaSource(zoneState.Source),
             NuvoEssentiaCommand.calcVolume2NuvoEssentia(zoneState.Volume));
         sendCommandToDevice(zoneAddress, command);
     }
     else
     {
         INuvoEssentiaSingleCommand command = new NuvoEssentiaSingleCommand(
             ENuvoEssentiaCommands.TurnZoneOFF,
             convertAddressZone2EssentiaZone(zoneAddress));
         sendCommandToDevice(zoneAddress, command);
     }
 }