added EngineSpeed and VehiclePowerMode properties
authorKevron Rees <kevron_m_rees@linux.intel.com>
Wed, 13 Jun 2012 00:01:37 +0000 (17:01 -0700)
committerKevron Rees <kevron_m_rees@linux.intel.com>
Wed, 13 Jun 2012 00:01:37 +0000 (17:01 -0700)
docs/runningstatus.txt
lib/CMakeLists.txt
lib/CMakeLists.txt~
lib/abstractproperty.h
lib/dbusinterfacemanager.cpp
lib/runningstatusinterface.cpp
lib/runningstatusinterface.h
lib/vehiclespeed.cpp
lib/vehiclespeed.h
plugins/exampleplugin.cpp

index fac7da3..2637b81 100644 (file)
@@ -41,11 +41,11 @@ Properties  byte VehiclePowerMode [readonly]
                        8th = 8,
                        9th = 9,
                        10th = 10,
-                       Auto = 64,
+                       Drive = 64,
                        Reverse = 128,
-                       Parking = 256
+                       Park = 256
                        
-                       For transmissions with no gear (ie CVT), 'Auto' and 'Reverse' will be used.
+                       For transmissions with no gear (ie CVT), 'Drive' and 'Reverse' will be used.
                        
                struct{bool, uint16} CruiseControlStatus [readonly]
                
index 86a5d9b..f4a0a5c 100644 (file)
@@ -1,5 +1,5 @@
 
-set(amb_sources runningstatusinterface.cpp vehiclespeed.cpp abstractdbusinterface.cpp abstractproperty.cpp dbusinterfacemanager.cpp debugout.cpp)
+set(amb_sources vehiclepowermodeproperty.cpp enginespeedproperty.cpp runningstatusinterface.cpp vehiclespeed.cpp abstractdbusinterface.cpp abstractproperty.cpp dbusinterfacemanager.cpp debugout.cpp)
 set(amb_headers_install abstractproperty.h vehiclespeed.h )
 include_directories( ${include_dirs} )
 add_library(amb SHARED ${amb_sources})
index d4476fe..e4ecdc6 100644 (file)
@@ -1,5 +1,5 @@
 
-set(amb_sources runningstatusinterface.cpp vehiclespeed.cpp abstractdbusinterface.cpp abstractproperty.cpp dbusinterfacemanager.cpp )
+set(amb_sources enginespeedproperty.cpp runningstatusinterface.cpp vehiclespeed.cpp abstractdbusinterface.cpp abstractproperty.cpp dbusinterfacemanager.cpp debugout.cpp)
 set(amb_headers_install abstractproperty.h vehiclespeed.h )
 include_directories( ${include_dirs} )
 add_library(amb SHARED ${amb_sources})
index e50a567..e8c5227 100644 (file)
@@ -47,13 +47,6 @@ public:
                mSetterFunc = setterFunc;
        }
        
-       virtual void setValue(boost::any val)
-       {
-               mValue = val;
-       }
-
-       boost::any value() { return mValue; }
-
        virtual string signature()
        {
                return mSignature;
@@ -76,7 +69,6 @@ protected:
        string mPropertyName;
        string mSignature;
        SetterFunc mSetterFunc;
-       boost::any mValue;
        Access mAccess;
 };
 
index bf8f675..ef7c346 100644 (file)
@@ -26,7 +26,7 @@ using namespace std;
 static void
 on_bus_acquired (GDBusConnection *connection, const gchar *name, gpointer user_data)
 {
-       RunningStatusInterface::iface->registerObject(connection);
+       RunningStatusInterface::iface()->registerObject(connection);
 }
 
 static void
index 4bb9c1c..8107e76 100644 (file)
@@ -23,18 +23,21 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
 using namespace std;
 
-RunningStatusInterface* RunningStatusInterface::iface = nullptr;
+RunningStatusInterface* RunningStatusInterface::mIface = nullptr;
+
+RunningStatusInterface* RunningStatusInterface::iface()
+{
+       if(mIface == nullptr)
+               mIface = new RunningStatusInterface();
+       
+       return mIface;
+}
+
 
 RunningStatusInterface::RunningStatusInterface()
        : AbstractDBusInterface(DBusServiceName".RunningStatus", "/runningStatus")
 {
-       if(iface != nullptr)
-       {
-               cerr<<"only one instance of this class may exist "<<__FUNCTION__<<" "<<__FILE__<<":"<<__LINE__<<endl;
-               throw -1;
-       }
-
-       iface = this;
+       
 }
 
 
index df85017..7617967 100644 (file)
@@ -25,13 +25,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 class RunningStatusInterface : public AbstractDBusInterface
 {
 public:
-       RunningStatusInterface();
-
-       static RunningStatusInterface* iface;
+       static RunningStatusInterface* iface();
        
 protected:
+       RunningStatusInterface();
+       
        virtual GVariant* getProperty(std::string propertyName);
        virtual void setProperty(std::string propertyName, GVariant* value);
+       
+       static RunningStatusInterface* mIface;
 };
 
 
index 8d01115..5253a68 100644 (file)
@@ -24,40 +24,27 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
 VehicleSpeedProperty::VehicleSpeedProperty(): AbstractProperty("VehicleSpeed", "q", AbstractProperty::Read)
 {
-       if(RunningStatusInterface::iface == nullptr)
-       {
-               new RunningStatusInterface();
-       }
+       RunningStatusInterface::iface()->addProperty(this);
+}
 
-       RunningStatusInterface::iface->addProperty(this);
+void VehicleSpeedProperty::setValue(uint16_t val)
+{
+       mValue = val;
+       RunningStatusInterface::iface()->updateValue(this);
 }
 
-void VehicleSpeedProperty::setValue(boost::any val)
+uint16_t VehicleSpeedProperty::value()
 {
-       AbstractProperty::setValue(val);
-       
-       RunningStatusInterface::iface->updateValue(this);
+       return mValue;
 }
 
 GVariant* VehicleSpeedProperty::toGVariant()
 {
-       uint16_t v = 0;
-       try
-       {
-               v = boost::any_cast<uint16_t>(mValue);
-       }
-       catch (...)
-       {
-               cerr<<"Could not cast VehicleSpeedProperty.  Maybe value is not uint16?";
-               throw -1;
-       }
-
-       debugOut("TRACE");
-       
-       return g_variant_new_uint16(v);
+
+       return g_variant_new_uint16(mValue);
 }
 
 void VehicleSpeedProperty::fromGVariant(GVariant *value)
 {
-       mValue = g_variant_get_uint16(value);
+       mValue = (uint16_t)g_variant_get_uint16(value);
 }
index 291b645..5f36c7a 100644 (file)
@@ -26,11 +26,15 @@ class VehicleSpeedProperty : public AbstractProperty
 
 public:
        VehicleSpeedProperty();
-       void setValue(boost::any val);
+       void setValue(uint16_t val);
+       uint16_t value();
        
 
        GVariant* toGVariant();
        void fromGVariant(GVariant *value);
+       
+private: 
+       uint16_t mValue;
 };
 
 #endif // VEHICLESPEED_H
index 5a5fbfc..a5dc1c7 100644 (file)
@@ -18,10 +18,19 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
 #include "exampleplugin.h"
 
+#include "enginespeedproperty.h"
+#include "vehiclepowermodeproperty.h"
+
 ExamplePlugin::ExamplePlugin()
 {
        VehicleSpeedProperty* speed = new VehicleSpeedProperty();
-       speed->setValue((uint16_t)5);
+       speed->setValue(5);
+       
+       EngineSpeedProperty* engineSpeed = new EngineSpeedProperty();
+       engineSpeed->setValue(2000);
+       
+       VehiclePowerModeProperty* vehiclePowerMode = new VehiclePowerModeProperty();
+       vehiclePowerMode->setValue(VehiclePowerModeProperty::Run);
 }
 
 extern "C" void create()