[dss-commits] r8876 - dss/trunk/core

dss-commits at forum.digitalstrom.org dss-commits at forum.digitalstrom.org
Fri Oct 30 09:48:16 CET 2009


Author: mtross
Date: 2009-10-30 09:48:16 +0100 (Fri, 30 Oct 2009)
New Revision: 8876

Modified:
   dss/trunk/core/model.cpp
Log:
Direct commands for groups, avoiding Set optimizations

Closes #200
Closes #201


Modified: dss/trunk/core/model.cpp
===================================================================
--- dss/trunk/core/model.cpp	2009-10-29 09:17:26 UTC (rev 8875)
+++ dss/trunk/core/model.cpp	2009-10-30 08:48:16 UTC (rev 8876)
@@ -2007,39 +2007,43 @@
   } // getDevices
 
   void Group::turnOn() {
-    getDevices().turnOn();
+    callScene(SceneMax);
   } // turnOn
 
   void Group::turnOff() {
-    getDevices().turnOff();
+    callScene(SceneMin);
   } // turnOff
 
   void Group::increaseValue(const int _parameterNr) {
-    getDevices().increaseValue(_parameterNr);
+    DSS::getInstance()->getDS485Interface().sendCommand(cmdIncreaseValue, m_Apartment.getZone(m_ZoneID), m_GroupID, _parameterNr);
   } // increaseValue
 
   void Group::decreaseValue(const int _parameterNr) {
-    getDevices().decreaseValue(_parameterNr);
+    DSS::getInstance()->getDS485Interface().sendCommand(cmdDecreaseValue, m_Apartment.getZone(m_ZoneID), m_GroupID, _parameterNr);
   } // decreaseValue
 
   void Group::enable() {
-    getDevices().enable();
+    DSS::getInstance()->getDS485Interface().sendCommand(cmdEnable, m_Apartment.getZone(m_ZoneID), m_GroupID);
   } // enable
 
   void Group::disable() {
-    getDevices().disable();
+    DSS::getInstance()->getDS485Interface().sendCommand(cmdDisable, m_Apartment.getZone(m_ZoneID), m_GroupID);
   } // disable
 
   void Group::startDim(bool _directionUp, const int _parameterNr)  {
-    getDevices().startDim(_directionUp, _parameterNr);
+    if(_directionUp) {
+      DSS::getInstance()->getDS485Interface().sendCommand(cmdStartDimUp, m_Apartment.getZone(m_ZoneID), m_GroupID, _parameterNr);
+    } else {
+      DSS::getInstance()->getDS485Interface().sendCommand(cmdStartDimDown, m_Apartment.getZone(m_ZoneID), m_GroupID, _parameterNr);
+    }
   } // startDim
 
   void Group::endDim(const int _parameterNr) {
-    getDevices().endDim(_parameterNr);
+    DSS::getInstance()->getDS485Interface().sendCommand(cmdStopDim, m_Apartment.getZone(m_ZoneID), m_GroupID, _parameterNr);
   } // endDim
 
   void Group::setValue(const double _value, int _parameterNr) {
-    getDevices().setValue(_value, _parameterNr);
+    DSS::getInstance()->getDS485Interface().sendCommand(cmdSetValue, m_Apartment.getZone(m_ZoneID), m_GroupID, static_cast<int>(_value));
   } // setValue
 
   Group& Group::operator=(const Group& _other) {
@@ -2056,15 +2060,15 @@
     if(SceneHelper::rememberScene(_sceneNr & 0x00ff)) {
       m_LastCalledScene = _sceneNr & 0x00ff;
     }
-    getDevices().callScene(_sceneNr);
+    DSS::getInstance()->getDS485Interface().sendCommand(cmdCallScene, m_Apartment.getZone(m_ZoneID), m_GroupID, _sceneNr);
   } // callScene
 
   void Group::saveScene(const int _sceneNr) {
-    getDevices().saveScene(_sceneNr);
+    DSS::getInstance()->getDS485Interface().sendCommand(cmdSaveScene, m_Apartment.getZone(m_ZoneID), m_GroupID, _sceneNr);
   } // saveScene
 
   void Group::undoScene(const int _sceneNr) {
-    getDevices().undoScene(_sceneNr);
+    DSS::getInstance()->getDS485Interface().sendCommand(cmdUndoScene, m_Apartment.getZone(m_ZoneID), m_GroupID, _sceneNr);
   } // undoScene
 
   unsigned long Group::getPowerConsumption() {



More information about the dss-commits mailing list