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]
-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})
-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})
mSetterFunc = setterFunc;
}
- virtual void setValue(boost::any val)
- {
- mValue = val;
- }
-
- boost::any value() { return mValue; }
-
virtual string signature()
{
return mSignature;
string mPropertyName;
string mSignature;
SetterFunc mSetterFunc;
- boost::any mValue;
Access mAccess;
};
static void
on_bus_acquired (GDBusConnection *connection, const gchar *name, gpointer user_data)
{
- RunningStatusInterface::iface->registerObject(connection);
+ RunningStatusInterface::iface()->registerObject(connection);
}
static void
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;
+
}
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;
};
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);
}
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
#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()