Smart bromsljus Proof of Concept (2 / 5 steg)
Steg 2: Använda OpenXC Android biblioteket
Du ställer först vissa lyssnare för specifika data du vill exponera i din app. I exemplet nedan jag fånga fordonets hastighet och broms status. OpenXC dokumentation kommer att berätta hur ofta varje datatyp är intervjuade. Till exempel pekar hastighet data kommer in på 4 Hz eller 4 uppgifter en sekund medan broms data kommer först när det finns en förändring vilket innebär när föraren kliver på eller kliver av bromsarna.
försök {
mVehicleManager.addListener (VehicleSpeed.class, mSpeedListener);
} fånga (VehicleServiceException e) {
e.printStackTrace();
} fånga (UnrecognizedMeasurementTypeException e) {
e.printStackTrace();
}
försök {
mVehicleManager.addListener (BrakePedalStatus.class, mBrakeListener);
} fånga (VehicleServiceException e) {
e.printStackTrace();
} fånga (UnrecognizedMeasurementTypeException e) {
e.printStackTrace();
}
Lägg sedan till din specifika logik i lyssnarna.
VehicleSpeed.Listener mSpeedListener = ny VehicleSpeed.Listener() {
public void får (mätning mätning) {
sista VehicleSpeed _speed = (VehicleSpeed) mätning;
MainActivity.this.runOnUiThread (nya Runnable() {
public void run() {
hastighet = _speed.getValue().doubleValue() * 0.621371; Vi behöver konvertera km/h till mp/h
om (hastighet > 75) {
göra något
}
}
});
}
};
BrakePedalStatus.Listener mBrakeListener = ny BrakePedalStatus.Listener() {
public void får (mätning mätning) {
sista BrakePedalStatus _brakeStatus = (BrakePedalStatus) mätning;
MainActivity.this.runOnUiThread (nya Runnable() {
public void run() {
booleska broms = _brakeStatus.getValue().booleanValue();
om (broms == true) {
göra något
}
}
});
}
};
När det gäller hastigheten är provtagna kontinuerligt 4 gånger per sekund, kom bara ihåg koden kommer att hålla igång det 4 gånger i sekunden när hastigheten är över 75. Så du behöver bara beroende på vad du försöker göra, behöver du bara ange några flaggor eller setup en timer som åtgärden upprepas 4 gånger en andra annars.