- Added disclosure screen for location permission as per google play requirements.
- Fix: Fixed BTLE protobuf issues
- Android 10 support
- Updated multi-frame read support
- Bug fixes
- SonarQube suggested refactors
- Fix: Fixed many system prefs to now read from default application system
- Improvement: dweet endpoint switched from http to https
- New Feature: Populating devices with name openxc-vi only to the bluetooth device list
- Improvement: Updated test Travis build on Xenial
- Fix: Fixed the variantOutputgetAssemble issue
- Improvement: Updated defaultLanguage to Language code
- Improvement: Tracefile playing disable while recording is on and vice versa
- Improvement: Updated the protobuf version
- New Feature: Now supports sending control commands on-demand
- Improvement: Added new command types to CommandType enum
- New Feature: Enabler app to include Dweet.io integration
- New Feature: Now can connect to BLE VIs
- New Feature: Bluetooth Prompt in case bluetooth is switched off and runtime location permission.
- Building with Android API level 27 (8.1)
- Updated dependencies for library and enabler.
- Improvement: App will now pull and display the VI platform.
- Fix: Evented messages will now show on the dashboard in enabler.
- Fix: mKey is stripped from the message before it is written to the tracefile (#253).
- Fix: Allow 2-byte PIDs in diagnostic request screen.
- New Feature: Now supports BugLabs Dweet.io formats
- New Feature: Now can include phone sensor data into OpenXC stream.
- Fix: Add exported=True option to VehicleService so it is accessible from external apps (thanks @arunganesan).
- Fix ProGuard rules so constructors for vehicle interface classes aren't stripped from production builds (#246).
- Fix a few possible crashes when activites and services are shutting down.
- Fix version for Bintray releases.
- Remove invalid default language for Play store listing.
- Fix Bugsnag token uploading Proguard mappings.
- Another attempt at an automated release.
- No code changes
- First attempt at an automatic release through Travis CI to the Play Store and JCenter.
- Convert from a Maven build to Gradle, to be compatible with the officially release Android Studio.
- Fix: Protect against crashes in the activity using a fragment disappears. (#215, #217)
- Update Bugsnag library to latest release.
- Fix: Explicitly specify signing algorithm when building release APK files to fix installation on Android 4.3 and earlier (#210).
- Fix: Use proper initialization of an explicit intent to start and bind to the VehicleService. This fixes data received by third-party OpenXC apps (i.e. everything besides the Enabler, doh!) and also allows the app to run in Android 5.0 (#213).
- Fix: Timestamps in trace files are now respected, so playback is close-ish to the same cadence as the messages happened (#214).
- Fix: Watch out for null pointers in a few places, caught with crash reporting.
- Fix: Properly put service in background/foreground when a trace file restarts playback (#212).
- Improvement: Use an explicit intent to start services to avoid a security hole.
- Fix: Guard against a race condition when querying for an active VI.
- Fix: Gaurd against missing timestamp when rendering diagnostic messages.
- Fix: Fix classpaths in Enabler manifest so it can find the activity class.
- Change Android package namespace from
com.openxc
tocom.openxcplatform
- BREAKING: Refactor RawMeasurement class into more useful message types in the
openxc.messages package, all based on a VehicleMessage. This requires
updates to all code that uses the VehicleManager.
- Renamed
addVehicleInterface
->setVehicleInterface
, only allow 1 VI at a time. getSourceSummaries
andgetSinkSummaries
are removed in favor ofgetActiveVehicleInterface
.
- Renamed
- BREAKING: Classes implemeting
VehicleInterface
must now implement anisConnected()
method. - BREAKING: Increase minimum Android API version from 8 to 9.
- BREAKING: Refactor VehicleManager's API for retrieving the active vehicle interface.
- BREAKING: Limit the VehicleManager (and Enabler) to only 1 active VI at at time, making the API and UI much more clear. Because of this change, the USB VI is no longer enabled by default - it must be explicitly selected.
- BREAKING:
MockedLocationSink
is renamed toVehicleLocationProvider
, and it no longer implementsVehicleDataSink
. It is simply a VehicleMessage receiver and is instantiate explicitly in the VehicleManager. - BREAKING: Message listeners will no longer receive the last known value of the message when they register. The complexity of maintaining this was not worth it since there is a synchronous API you can get to get the current value on startup anyway.
- Feature: Support sending diagnostic requests to a VI.
- Feature: Support receiving diagnostic responses from a VI.
- Feature: Add new KeyMatcher class to support matching multiple types of messages from VI with a single handler.
- Feature: Redesign Enabler UI for clarity and add new swipeable view panels
- Dynamically list all received simple vehicle messages in Enabler
instead of hard-coding a subset. Supports anything being sent by the VI with
a
name
andvalue
. - View a list of all received CAN messages, with timestamp, ID and data.
- Send an arbitrary CAN message.
- Send a diagnostic request.
- View diagnostic responses.
- Dynamically list all received simple vehicle messages in Enabler
instead of hard-coding a subset. Supports anything being sent by the VI with
a
- Improvement: Add full support for receiving and sending protobuf encoded messages to a VI (although the vi-firmware does not yet have full support for receiving commands encoded as protobufs, see vi-firmware#313.
- Improvement: Use Gson for JSON (de)serialization to greatly decrease code complexity in exchange for a small performance hit.
- Improvement: Use message injection instead of trace file playback in test suite for quicker, more reliable tests.
- Improvement: Only attempt to send commands to a VI if it claims to be connected.
- Improvement: Don't display Android's GPS location in Enabler to avoid battery drain.
- Improvement: Use more standard icons to show vehicle interface connectivity in Enabler, and include multiple resolutions for high-DPI displays.
- Improvement: Switch from Crashlytics to Bugsnag for crash reporting as it doesn't require an Eclipse plugin to get going.
- Improvement: If native GPS overwriting is disabled, fully disable the vehicle location provider instead of just leaving it on.
- Improvement: If native GPS injection is enabled, only register for GPS updates from the phone if connected to a vehicle interface. If not connected, don't keep GPS alive to avoid battery drain.
- Improvement: Greatly increase unit test coverage, from 8% to 57%.
- Improvement: Add a callback for VehicleDataSource instances registered with the VehicleManager to be notified when the pipeline is activated or deactivated.
- Fix: Warning displayed properly when remote vehicle service is not running.
- Be less strict about incoming JSON messages (allow whitespace).
- Improve reliability of automatic Bluetooth device detection and decrease the impact on battery life.
- Listen for Bluetooth VIs that initiate a new connection to avoid polling. Uncheck the "use polling" option in the Enabler if you have a new Ford Reference VI with a big "OpenXC" sticker on it, as this version is capable of initiating the Bluetooth connection on wakeup.
- Automatically discover, initiate pairing and connect to Bluetooth-enabled OpenXC vehicle interfaces.
- Support Android API level 19.
- Fix timestamps in trace files - support different locales and restore fractional parts.
- Add option to automatically connect to paired OpenXC-VI-* Bluetooth device.
- Merge Vehicle Dashboard example into Enabler.
- Simplified Enabler view - less debug information.
- Fix display of Android location data in dashboard for comparison.
- Fix lifecycle issues with VehicleService from Enabler app.
- Fix Bluetooth data sources in Android API 10-13 and below (2.3.x).
- Fix selecting a trace file for playback in Android API 10-13 (2.3.x).
- Run OpenXC VehicleService in the foreground (including an Android notification) when connected to a vehicle interface.
- Fix possible concurrency problems with USB, Bluetooth and network vehicle interface sources.
- Fix UI blocking when changing network vehicle interface URL.
- Decode binary output from a vehicle interface (experimental)
- Display app version in an 'About' page in Enabler.
- Re-styled Enabler to better fit on small screens.
- Update a few dependencies, leading lower CPU overhead in normal operation.
- Add OpenXC icon to Enabler
- Don't send timestamps with commands to the vehicle.
- BREAKING CHANGE: Store timestamps as milliseconds in Java code, and as seconds (with fractions) in serialized measurements (#47 at GitHub)
- Building with Android API level 18
- Fix possible deadlock in network data source
- Fix build with Eclipse and the latest version of Maven plugins.
- Increase logging verbosity for debugging VehicleDataSinks.
- Split trips in trace file recorder based on data received, not just time.
- Protect against a race condition in the Bluetooth and Network interfaces.
- Fix a regression for Android 2.3 and 3.0/3.1 devices. Library and Enabler now work without USB support, as they should.
- BREAKING CHANGE: Combine
Odometer
andFineOdometer
into a single high-precision measurement,Odometer
. There is no moreFineOdometer
measurement, butOdometer
is a drop-in replacement. - Bluetooth and file recording now more reliable - will remain running even if you leave the Enabler activity.
- Improved USB throughput by using larger bulk transfer sizes.
- Add support for network-based CAN translator (thanks Ewgenij Sokolovski and Robert Rembold)
- Push core physical vehicle interfaces back into the realm of the remote VehicleService process for performance and to accomodate a new API for writing back to the vehicle.
- Refactor message writing API - VehicleManager.set(RawMeasurement) is now send(RawMeasurement).
- Fix build error in Eclipse, hopefully once and for all.
- Duplicate messages are no longer received from USB data source.
- Infrequent messages are no longer lost by the USB data source.
- Fix build error in Eclipse.
- Raise minimum Android API version to 9 (2.3) to use newer data structures.
- Fix compatibility issue with Android 4.2.
- Bump platform build version to Android SDK version 17 (4.2).
- Significant performance improvements when parsing JSON and communicating between remote and in-app vehicle services.
- Continue to flush records in the UploaderSink even if the vehicle is disconnected.
- Test and verify Bluetooth data source.
- Add an option to the Enabler's settings menu to use a Bluetooth source.
- Change vehicle data trace file format to include timestamps as native JSON.
- Remove Maven support for Eclipse developers; library dependencies are now bundled in the repository.
- Greatly improve USB connection reliability.
- Refactored library internals to allow greater flexibility, including user-defined Measurement types, data sources and data sinks.
- Add OpenXC Enabler application to control VehicleService in a remote process. Starts service at bootup and allows sharing the service between multiple OpenXC applications.
- Measurement API changed, getValue() no longers throws an exception if data is unavailable. Instead, measurement objects will not be returned to the caller unless they have valid data.
- Initial release, USB CAN translator support.