15 Zone.Driver = Zone.Front | Zone.Left;
17 amb.createCustomProperty("BluemonkeySuperProperty", "It's true!");
18 amb.createCustomProperty("AnswerToTheUniverse", 42);
20 dbusConnected = amb.subscribeTo("DBusConnected");
22 dbusConnected.changed.connect(function () {
23 if(dbusConnected.value !== true)
26 amb.exportInterface("Bluemonkey",[{'BluemonkeySuperProperty' : 'SuperProperty'},
27 {'AnswerToTheUniverse' : 'AnswerToTheUniverse'}]);
30 bluemonkey.loadModule("@PLUGIN_INSTALL_PATH@/bluemonkeyDBusModule.so");
32 exportObj = bluemonkey.createQObject();
33 exportObj.foo = function() { return "bar"; }
36 testExport.jsFunc = function() { return "js rules!"; }
42 var dbusIface = dbus.createInterface("org.freedesktop.DBus", "/", "org.freedesktop.DBus", dbus.Session);
44 var reply = dbusIface.GetId();
46 bluemonkey.log("org.freedesktop.DBus.GetId() response: " + reply);
48 var registered = dbus.registerService("org.bluemonkey", dbus.Session)
50 bluemonkey.assertIsTrue(registered, "could not register service: " + dbus.errorMessage(dbus.Session));
52 for(prop in exportObj)
54 bluemonkey.log(prop +"="+ exportObj[prop]);
56 for(prop in testExport)
58 bluemonkey.log(prop +"="+ testExport[prop]);
61 var exported = dbus.exportObject("/one", "org.awesome.interface", dbus.Session, exportObj);
62 bluemonkey.log("exported: " + exported)
64 bluemonkey.assertIsTrue(exported, "Failed to export custom dbus object: " + dbus.errorMessage(dbus.Session));
66 var exported2 = dbus.exportObject("/two", "org.awesome.interface2", dbus.Session, testExport)
67 bluemonkey.log("exported2: " + exported2)
69 bluemonkey.assertIsTrue(exported2, "failed to export testExport: " + dbus.errorMessage());
71 //var exportedIface = dbus.createInterface("org.bluemonkey", "/", "org.awesome.interface", dbus.Session);
73 //bluemonkey.assertIsTrue(exportedIface.foo, "member 'foo' is missing " + dbus.errorMessage());
75 //var reply = exportedIface.foo();
77 //bluemonkey.assertIsTrue(reply === "bar" && exportedIface.bar === true);
81 bluemonkey.log("nasty dbus errors");
85 amb.createCustomProperty("VehicleSpeed", 10);
86 amb.createCustomProperty("EngineSpeed", 5000);
87 amb.createCustomProperty("PowertrainTorque", 324);
88 amb.createCustomProperty("AcceleratorPedalPosition", 50);
89 amb.createCustomProperty("ThrottlePosition", 50);
90 amb.createCustomProperty("TransmissionModeW3C", "park");
91 amb.createCustomProperty("TransmissionGearPosition", 1);
92 amb.createCustomProperty("CruiseControlActive", false);
93 amb.createCustomProperty("CruiseControlSpeed", 10);
96 amb.createCustomProperty("LightHead", false);
97 amb.createCustomProperty("LightRightTurn", false);
98 amb.createCustomProperty("LightLeftTurn", false);
99 amb.createCustomProperty("LightBrake", false);
100 amb.createCustomProperty("LightFog", true);
101 amb.createCustomProperty("LightHazard", false);
102 amb.createCustomProperty("LightParking", false);
103 amb.createCustomProperty("LightHighBeam", false);
104 amb.createCustomProperty("LightAutomatic", true);
105 amb.createCustomProperty("LightDynamicHighBeam", false);
107 amb.createCustomProperty("Horn", false);
108 amb.createCustomProperty("Chime", false);
111 amb.createCustomProperty("FuelLevel", 90);
112 amb.createCustomProperty("FuelRange", 100);
113 amb.createCustomProperty("FuelConsumption", 10);
114 amb.createCustomProperty("FuelEconomy", 10);
115 amb.createCustomProperty("FuelAverageEconomy", 10);
116 amb.createCustomProperty("FuelAverageConsumption", 10);
117 amb.createCustomProperty("FuelConsumptionSinceRestart", 10);
118 amb.createCustomProperty("LightHighBeam", false);
119 amb.createCustomProperty("LightAutomatic", true);
120 amb.createCustomProperty("FuelTimeSinceRestart", 10000);
123 amb.createCustomProperty("EngineOilTemperature", 60);
124 amb.createCustomProperty("EngineOilPressure", 60);
125 amb.createCustomProperty("EngineOilChangeIndicator", false);
126 amb.createCustomProperty("EngineOilLifeRemaining", 30);
128 amb.createCustomProperty("AccelerationX", 0);
129 amb.createCustomProperty("AccelerationY", 0);
130 amb.createCustomProperty("AccelerationZ", 10);
132 amb.createCustomProperty("SteeringWheelAngleW3C", 10);
133 amb.createCustomProperty("WheelTick", 1000);
135 amb.createCustomProperty("EngineCoolantLevel", 100);
136 amb.createCustomProperty("EngineCoolantTemperature", 60);
138 amb.createCustomProperty("IgnitionTimeOn", 5000);
139 amb.createCustomProperty("IgnitionTimeOff", 5000);
141 amb.createCustomProperty("YawRate", 128);
142 amb.createCustomProperty("WheelBrake", false);
144 amb.createCustomProperty("BrakesWorn", false, Zone.Front | Zone.Right)
145 amb.createCustomProperty("BrakeFluidLevel", 100, Zone.Front | Zone.Right)
146 amb.createCustomProperty("BrakeFluidLevelLow", false, Zone.Front | Zone.Right)
147 amb.createCustomProperty("BrakePadWear", 0, Zone.Front | Zone.Right)
149 amb.createCustomProperty("WasherFluidLevel", 100);
150 amb.createCustomProperty("WasherFluidLevelLow", false);
152 amb.createCustomProperty("MalfunctionIndicatorOn", false);
154 amb.createCustomProperty("AccumulatedEngineRuntime", 0);
155 amb.createCustomProperty("DistanceWithMILOn", 0);
156 amb.createCustomProperty("DistanceSinceCodeCleared", 0);
157 amb.createCustomProperty("TimeRunMILOn", 0);
158 amb.createCustomProperty("TimeTroubleCodeClear", 0);
160 amb.createCustomProperty("BatteryVoltage", 13);
161 amb.createCustomProperty("BatteryCurrent", 1);
162 amb.createCustomProperty("BatteryChargeLevel", 100);
164 amb.createCustomProperty("TirePressure", 200, Zone.Front | Zone.Right);
165 amb.createCustomProperty("TirePressureLow", false, Zone.Front | Zone.Right);
166 amb.createCustomProperty("TireTemperature", 20, Zone.Front | Zone.Right);
168 amb.createCustomProperty("TirePressure", 200, Zone.Front | Zone.Left);
169 amb.createCustomProperty("TirePressureLow", false, Zone.Front | Zone.Left);
170 amb.createCustomProperty("TireTemperature", 20, Zone.Front | Zone.Left);
172 amb.createCustomProperty("TirePressure", 200, Zone.Rear| Zone.Right);
173 amb.createCustomProperty("TirePressureLow", false, Zone.Rear | Zone.Right);
174 amb.createCustomProperty("TireTemperature", 20, Zone.Rear | Zone.Right);
176 amb.createCustomProperty("TirePressure", 200, Zone.Rear | Zone.Left);
177 amb.createCustomProperty("TirePressureLow", false, Zone.Rear | Zone.Left);
178 amb.createCustomProperty("TireTemperature", 20, Zone.Rear | Zone.Left);
180 amb.createCustomProperty("ActiveNoiseControlMode", false);
181 amb.createCustomProperty("AvailableSounds", ["LightSpeed", "v8"]);
182 amb.createCustomProperty("EngineSoundEnhancementMode", "");
184 amb.createCustomProperty("SeatPositionBackCushion", 0, Zone.Front | Zone.Right);
185 amb.createCustomProperty("SeatPositionRecline", 0, Zone.Front | Zone.Right);
186 amb.createCustomProperty("SeatPositionSlide", 0, Zone.Front | Zone.Right);
187 amb.createCustomProperty("SeatPositionCushionHeight", 0, Zone.Front | Zone.Right);
188 amb.createCustomProperty("SeatPositionHeadrest", 0, Zone.Front | Zone.Right);
189 amb.createCustomProperty("SeatPositionSideCushion", 0, Zone.Front | Zone.Right);
191 amb.createCustomProperty("SeatPositionBackCushion", 0, Zone.Front | Zone.Left);
192 amb.createCustomProperty("SeatPositionRecline", 0, Zone.Front | Zone.Left);
193 amb.createCustomProperty("SeatPositionSlide", 0, Zone.Front | Zone.Left);
194 amb.createCustomProperty("SeatPositionCushionHeight", 0, Zone.Front | Zone.Left);
195 amb.createCustomProperty("SeatPositionHeadrest", 0, Zone.Front | Zone.Left);
196 amb.createCustomProperty("SeatPositionSideCushion", 0, Zone.Front | Zone.Left);
198 amb.createCustomProperty("VehicleDriveMode", "auto");
200 amb.createCustomProperty("MirrorSettingPan", 0, Zone.Front | Zone.Left);
201 amb.createCustomProperty("MirrorSettingTilt", 0, Zone.Front | Zone.Left);
203 amb.createCustomProperty("MirrorSettingPan", 0, Zone.Front | Zone.Right);
204 amb.createCustomProperty("MirrorSettingTilt", 0, Zone.Front | Zone.Right);
206 amb.createCustomProperty("DashboardIllumination", 5);
208 amb.createCustomProperty("AntilockBreakingSystem", false);
209 amb.createCustomProperty("AntilockBreakingSystemEnabled", true);
211 amb.createCustomProperty("TractionControlSystem", true);
212 amb.createCustomProperty("TractionControlSystemEnabled", true);
214 amb.createCustomProperty("ElectronicStabilityControlEnabled", true);
215 amb.createCustomProperty("ElectronicStabilityControlEngaged", true);
217 amb.createCustomProperty("VehicleTopSpeedLimit", 150);
219 amb.createCustomProperty("AirbagActivated", true, Zone.Front | Zone.Left);
220 amb.createCustomProperty("AirbagDeployed", false, Zone.Front | Zone.Left);
221 amb.createCustomProperty("AirbagActivated", true, Zone.Front | Zone.Right);
222 amb.createCustomProperty("AirbagDeployed", false, Zone.Front | Zone.Right);
224 amb.createCustomProperty("ChildSafetyLock", false, Zone.Rear | Zone.Left);
225 amb.createCustomProperty("ChildSafetyLock", true, Zone.Rear | Zone.Right);
227 amb.createCustomProperty("AntilockBrakingSystem", false);
228 amb.createCustomProperty("AntilockBrakingSystemEnabled", true);
230 amb.createCustomProperty("DoorStatusW3C", "closed", Zone.Front | Zone.Right);
231 amb.createCustomProperty("DoorStatusW3C", "closed", Zone.Front | Zone.Left);
232 amb.createCustomProperty("DoorStatusW3C", "closed", Zone.Rear | Zone.Right);
233 amb.createCustomProperty("DoorStatusW3C", "closed", Zone.Rear | Zone.Left);
234 amb.createCustomProperty("DoorLockStatus", true, Zone.Front | Zone.Right);
235 amb.createCustomProperty("DoorLockStatus", true, Zone.Front | Zone.Left);
236 amb.createCustomProperty("DoorLockStatus", true, Zone.Rear | Zone.Right);
237 amb.createCustomProperty("DoorLockStatus", true, Zone.Rear | Zone.Left);
239 amb.createCustomProperty("OccupantStatusW3C", "adult", Zone.Front | Zone.Left);
240 amb.createCustomProperty("OccupantStatusW3C", "adult", Zone.Front | Zone.Right);
241 amb.createCustomProperty("OccupantStatusW3C", "child", Zone.Rear | Zone.Right);
242 amb.createCustomProperty("OccupantStatusW3C", "child", Zone.Rear | Zone.Left);
243 amb.createCustomProperty("SeatBeltStatus", true, Zone.Front | Zone.Right);
244 amb.createCustomProperty("SeatBeltStatus", true, Zone.Front | Zone.Left);
245 amb.createCustomProperty("SeatBeltStatus", true, Zone.Rear | Zone.Right);
246 amb.createCustomProperty("SeatBeltStatus", true, Zone.Rear | Zone.Left);
247 amb.createCustomProperty("OccupantName", "Kevron", Zone.Front | Zone.Left);
248 amb.createCustomProperty("OccupantName", "Irene", Zone.Front | Zone.Right);
249 amb.createCustomProperty("OccupantName", "Miggie", Zone.Rear | Zone.Right);
250 amb.createCustomProperty("OccupantName", "Emma", Zone.Rear | Zone.Left);
251 amb.createCustomProperty("OccupantIdentificationType", "camera", Zone.Front | Zone.Left);
252 amb.createCustomProperty("OccupantIdentificationType", "Bluetooth", Zone.Front | Zone.Right);
253 amb.createCustomProperty("OccupantIdentificationType", "pin", Zone.Rear | Zone.Right);
254 amb.createCustomProperty("OccupantIdentificationType", "pin", Zone.Rear | Zone.Left);
256 amb.createCustomProperty("TargetTemperature", 20);
257 amb.createCustomProperty("FanSpeed", 1);
258 amb.createCustomProperty("AirConditioning", false);
259 amb.createCustomProperty("Heater", false);
260 amb.createCustomProperty("AirflowDirection", 0);
261 amb.createCustomProperty("AirRecirculation", false);
263 amb.createCustomProperty("TargetTemperature", 20, Zone.Front | Zone.Left);
264 amb.createCustomProperty("AirRecirculation", false, Zone.Front | Zone.Left);
265 amb.createCustomProperty("SteeringWheelHeater", 0, Zone.Front | Zone.Left);
266 amb.createCustomProperty("SeatHeater", 0, Zone.Front | Zone.Left);
267 amb.createCustomProperty("SeatCooler", 0, Zone.Front | Zone.Left);
269 amb.createCustomProperty("AirflowDirection", 0, Zone.Front | Zone.Right);
270 amb.createCustomProperty("TargetTemperature", 25, Zone.Front | Zone.Right);
271 amb.createCustomProperty("SeatHeater", 0, Zone.Front | Zone.Right);
272 amb.createCustomProperty("SeatCooler", 0, Zone.Front | Zone.Right);
274 amb.createCustomProperty("ExteriorTemperature", 30.0);
275 amb.createCustomProperty("InteriorTemperature", 23.0);
277 amb.createCustomProperty("DefrostWindow", false, Zone.Front | Zone.Right);
278 amb.createCustomProperty("DefrostMirrors", false, Zone.Front | Zone.Right);
279 amb.createCustomProperty("DefrostWindow", false, Zone.Front | Zone.Left);
280 amb.createCustomProperty("DefrostMirrors", false, Zone.Front | Zone.Left);
282 amb.createCustomProperty("RainSensor", 0);
284 amb.createCustomProperty("WindsheildWiperSpeed", "off");
285 amb.createCustomProperty("WindsheildWiperSetting", "auto");
287 amb.createCustomProperty("ConvertableRoof", false);
288 amb.createCustomProperty("ConvertableRoofStatus", "closed");
290 amb.createCustomProperty("Sunroof", 0);
291 amb.createCustomProperty("SunroofTilt", 0);
293 amb.createCustomProperty("WindowStatus", 100, Zone.Driver);
294 amb.createCustomProperty("WindowLockStatus", false, Zone.Driver);
295 amb.createCustomProperty("WindowStatus", 100, Zone.Front | Zone.Right);
296 amb.createCustomProperty("WindowLockStatus", false, Zone.Front | Zone.Right);
297 amb.createCustomProperty("WindowStatus", 100, Zone.Rear| Zone.Right);
298 amb.createCustomProperty("WindowLockStatus", true, Zone.Rear | Zone.Right);
299 amb.createCustomProperty("WindowStatus", 100, Zone.Rear| Zone.Left);
300 amb.createCustomProperty("WindowLockStatus", true, Zone.Rear | Zone.Left);
302 amb.createCustomProperty("AtmosphericPressure", 1013);
304 amb.createCustomProperty("LaneDepartureStatus", "running");
305 amb.createCustomProperty("AlarmStatus", "prearmed");
306 amb.createCustomProperty("ParkingBrakeStatusW3C", "inactive");
308 amb.createCustomProperty("Altitude", 200);
309 amb.createCustomProperty("Latitude", 45.541174);
310 amb.createCustomProperty("Longitude", -122.958967);
313 var speedProperty = amb.subscribeTo("VehicleSpeed");
315 var testTimer = bluemonkey.createTimer();
316 testTimer.interval = 3000;
317 testTimer.singleShot = false;
318 testTimer.timeout.connect(function() {
320 speedProperty.value = Math.floor((Math.random() * 100) + 1);