/BlueFire-API-for-Android-Studio

Android API for direct connection to the BlueFire J1939/J1708 Bluetooth Data Adapters

Primary LanguageJava

BlueFire-API-for-Android

Android API for direct connection to the BlueFire J1939/J1708 Bluetooth Data Adapters.

Version 1:

  • Initial version.

Version 2:

  • Code updates.

Version 3:

  • Handles Adapter looping errors.

Version 4:

  • Added Adapter Name and Password retrieval and update.
  • Connects to any adapter that starts with the Adapter Name.
  • Reboots the adapter on receiving adapter errors (firmware version 2.12).
  • Supports Adapter Firmware 2.13.

Version 5:

  • Added Adapter Name update to Main page.
  • Added Truck Make, Model, Serial No, and Unit No to Next Pages.
  • Added App Settings class for BlueFire settings.
  • Added rebooting the adapter when disconnecting.
  • Added LastConnectedId and ConnectToLastAdapter Bluetooth settings.
  • Added Incompatible version check.
    • Adapter Firmware 2.7 and less
    • Adapter Firmware 3.0 and greater

Version 6:

  • Created an API document. Contact BlueFire Support for a copy.
  • Removed exposure to the Comm, J1939, and J1587 classes, and, moved all properties and methods to the Adapter class.
  • Added option to set the Interval on retrieving truck data (default is on change of data). This is useful when the data is coming in too fast (ie. RPM) and you want to slow it down.
  • Added SendPGN method and PGNData property for sending non-API defined PGNs.
  • Added sample code for SendPGN and MonitorPGN.
  • Added commons-codec-1.10.jar to the project libs folder. This is only required for the API Demo App.
  • Added a projects docs folder that contains the commons javadoc files. You must set the Javadoc Location project property to point to this folder.

Version 7:

  • GetVehicleData is now threaded for performance.
  • Compatible with Adapter Firmware 3.x.

Version 8:

  • Fixed retrieving J1939 Component Id (Make, Model, Serial No, Unit No).
  • Added retrieving J1708 VIN, Component Id and Faults.
  • Added additional exception handling.

Version 9:

  • Added additional exception handling.
  • Added additional debug logging to the Demo App (Main).

Version 10:

  • Added J1708 filtering.
  • Truck numerical data is initialized to -1.
  • Demo App (Main) shows NA if truck data is negative (no data).

Version 11:

  • Renamed FWVersion property to FirmwareVersion.
  • Renamed HWVersion property to HardwareVersion.
  • J1587 filtering caters for a 0 value where appropriate.

Version 12:

  • Supports Adapter Firmwares 3.4+.
  • Added User Name and Password authentication.
  • Added updating adapter data (led brightness) while offline to the Demo App (Main).

Version 13:

  • Added Key State to API Demo (Key On/Off).
  • Renamed source folder and apk from "bluefire.apidemo" to "com.bluefire.apidemo".

Version 14:

  • Minor improvements to the Bluetooth Discovery process.
  • Changed SetMaxConnectRetrys default to 10 retries.
  • Changed SetDiscoveryTimeOut default to 30 seconds.

Version 15:

  • Supports Adapter Firmware 3.7.
  • GetVehicleData, GetFuelData, and GetEngineHours retrieves data more accurately (firmware 3.6 and lower work, but better performance with firmware 3.7).

Version 16:

  • When J1939 and J1708 data are retrieved, J1939 data will take precedence over J1708 data.

Version 17:

  • Supports Adapter Firmware 3.8+.
  • Added Get/Set PerformanceMode that will improve the retrieval of PGNs that have an interval of one second.
  • Minor improvement to the retrieval of vehicle data (vin, make, model, serial no).

Version 18:

  • App heartbeat will be sent to the adapter every second.

Version 19:

  • Supports the BLE (Bluetooth Low Energy) adapters (see limitations below).
  • The API will automatically find and select the correct adapter (BLE or BT21 (Bluetooth Classic)).
  • Added properties UseBLE, UseBT21 that will improve connection speed if set.
  • Added properties IsUsingBLE, IsUsingBT21 that will be set according to the type of Bluetooth connected to.
  • Added property MinInterval that defaults to 500 ms for BLE adapters.
  • Supports the new 500K CAN adapter (green Deutsch connector).
  • Removed the Settings class from the Demo App.
  • No longer compatible with Adapter firmware 2.x.
  • Requires Android 4+ for Bluetooth Classic adapter and 5+ for BLE adapter.
  • Supports the Android Studio IDE.

Version 19.1:

  • Patch for discovering an adapter using Bluetooth Classic and Android 6.0+.

Version 20.0:

  • Renamed the Adapter class to the BlueFire class to avoid confusion with the Android Adapter widget.
  • Added an Adapter BT2.1 and a BLE checkbox that will select the appropriate Adapter type. Leaving both unchecked will cause the API to auto select the Adapter type.
  • Added GetTransmissionGears method that will retrieve the current and selected gears from the transmission ECM if the data is available.

Version 20.1:

  • Removed IsUsingBT21 and IsUsingBLE properties in lieu of using properties UseBT21 and UseBLE which if not set will be set automatically by the API.
  • The Demo App's Disconnect button will be shown immediately after connecting to allow for disconnecting while the API is attempting to discover an Adapter.

Version 20.2:

  • The API will only raise Connection State 'Reconnected' when the Adapter is reconnected. Connection State 'AdapterConnected' will only be raised upon initial connection.
  • The Demo App has been modified to reflect the above 'Reconnected' Connection State.
  • Added API method ResetAdapter which will reset the Adapter to factory settings.
  • The Demo App will edit for invalid hex characters in Send PGN Data.
  • Fixed API fatal exception in SendPGN when sending data.

Version 21.0:

  • Added optional Source and MID parameters to the GetVehicleInfo method.
  • Added optional Source and MID parameters to the GetFaults method.
  • Removed property IsFaultDataChanged.
  • Added Truck property IsJ1587Fault.
  • All methods take Source, PGN, and MID as integers.
  • Demo App shows Fault source.

Version 22.0:

  • Added support for Adapter Firmware 3.10 and ELD Recording (see API 22.0 documentation).
  • Changed and renamed many properties and methods. Refer to the API documentation for all the changes.
  • Backward compatible with Adapter Firmware 3.7 to 3.9 (no ELD Recording).
  • No additional functionality except for features in Firmware 3.10 and ELD Recording.
  • Added Adapter Id security.
  • Fixed BLE issues however using the BLE Adapter requires Android 6+.
  • New Demo App that supports ELD Recording.
  • Demo App request location permissions if connecting to a BLE adapter.
  • API and Demo App are compiled with minimum Android version of 23.
  • Demo App no longer references commons-codec-1.10.

Version 22.1:

  • Changed ConnectionStates, SleepModes, and ELD.RecordIds to be exposed outside of the BlueFire class.
  • Internal changes.

Version 22.2:

  • Requires Adapter Firmware Beta 3.10.3 for ELD functionality.
  • Removed duplicate ELD records.
  • Better re-connection while ELD recording.

Version 22.3:

  • Compatible with Adapter Firmware Beta 3.10.5 for ELD functionality.
  • Better time sync with the Adapter.

Version 22.4:

  • Requires Adapter Firmware Beta 3.10.5 for ELD functionality.
  • Added getEngineVIN method.
  • Added synchronization to Truck Data methods.
  • Added retrievalMethod parameter to Truck Data methods.
  • Demo App only retrieves truck data when navigating to the specific data page.
  • API documentation has been updated to reflect the above changes.

Version 22.5:

  • Requires Adapter Firmware Beta 3.10.6 for ELD functionality.
  • Fixed J1708 data retrieval.
  • Added property AndroidVersion.
  • Added property SyncTimeout.
  • Added ConnectionState CANFilterFull.
  • Renamed property DiscoveryTimeOut to DiscoveryTimeout.
  • Renamed property MaxConnectRetrys to MaxConnectAttempts.
  • Added method ELD.SetStreaming.
  • Added property ELD.LocalRecordNo.
  • Added ELD Enum RecordingModes.
  • Added property ELD.RecordingMode and method SetRecordingMode.
  • Added property ELD.IsRecordingLocally.
  • Added property ELD.IsRecordingConnected.
  • Added property ELD.IsRecordingDisconnected.
  • Included the API documentation in the GitHub repository.
  • Added to the API documentation Appendix instructions for manually resetting the Adapter.

Version 22.6:

  • Requires Adapter Firmware Beta 3.10.8 for ELD functionality.
  • Removed VIN from GetVehicleData method.
  • Added Boolean return value to Truck Data methods for synchronized calls.
  • Added synchronized VIN retrieval to Demo App.
  • ELD rules are sent to the Adapter from the API.
  • The Adapter will reboot after ELD StopEngine if the API is not connected.

Version 22.7:

  • Requires Adapter Firmware 3.10 for ELD functionality.
  • Fixed issue with retrieving VIN and Vehicle Data in the Demo App.

Version 22.8:

  • Fixed compatability with Firmware 3.9 and below.
  • API will generate and update the Adapter Serial Number if it is missing. This can occur if the adapter firmware is flashed over the top of an older incompatible firmware.

Version 22.9:

  • Requires Adapter Firmware 3.11. Note, Firmware 3.10 is broken and should be updated to 3.11.
  • Compatable with Firmware 3.9 and below.
  • API method GetEngineVIN automatically sets the sync timeout if RetrievalMethod Synchronized is specified. The default sync timeout is 2 seconds.
  • The call to VIN retrieval SetSyncTimeout in the Demo App has been commented out to allow the API method to set the default.
  • Faults have been moved to their own page in the Demo App in order to allow faults to be retrieved by themselves (recommended).
  • VIN and Truck data (Component Id) retrieval have been improved. It is recommended to retrieve VIN and Truck data before retrieving any other data.

Version 22.10:

  • The API now disconnects properly from the Adapter while ELD is recording.
  • The Demo App disconnectAdapter method WaitForDisconnect parameter is set to false for Adapter Firmware 3.11.

Version 22.11:

  • The SetDiscoveryTimeOut method is renamed to SetDiscoveryTimeout (TimeOut to Timeout).
  • Added SetAdvertisementTimeout method for use in very crowded BLE areas (like trade shows).
  • For BLE adapters, if the ConnectToLastAdapter and SetSecurity(SecureAdapter) are not set, the API will connect to the adapter with the strongest signal.

Version 22.12:

  • Added method GetDistance which is the same as GetOdometer (GetOdometer actually calls GetDistance).
  • Added properties Truck.HiResDistance, LoResDistance, HiResOdometer, and LoResOdometer.
  • Truck.Odometer now returns the OEM distance (previously it returned Engine distance).
  • Truck.Odometer will return -1 if the OEM distance is not available (e.g. Volvo trucks).
  • Truck.Distance and Truck.Odometer returns the hi-resolution value unless it is not available in which case it returns the lo-resolution value.
  • Note that hi-resolution distance is at a 1 second ECM refresh rate while lo-resolution is at a 100 ms ECM refresh rate.
  • Modified the Demo App to reflect the above changes.

Version 22.13:

  • Added a Service class that emulates using the API with an Android service.
  • Added a Start and Stop Service buttons to the Demo App.

Version 23.0:

  • GetVehicleData is renamed to GetEngineId.
  • Added methods GetVIN and GetComponentId for retrieving non-engine ECM data.
  • Added synchronized calling to GetEngineVIN, GetVIN, GetEngineId, and GetComponentId.
  • The SetSyncTimeout method is replaced with the SyncTimeout passed as the Interval parameter along with the Synchronized Retrieval Method parameter.
  • Fixed the OnChange Retrieval Method that caused issues with the Adapter.
  • Added a Notification ConnectionState that will return any API notifications.
  • Added SetHeartbeatOn method that will turn the Adapter heartbeat on/off. Use with caution.
  • Added SetNotificationsOn method that will turn Adapter notifications on/off.
  • Change the Engine VIN/Id page in the Demo App to show using synchronous retrieval.
  • Added a VIN/ComponentId page to the Demo App that shows using asynchronous retrieval.
  • Added a Test All button to the Demo App that retrieves all the data at once to test loading the connection.
  • Improved connection reliability with beta Firmware 3.12.x.

Version 23.1:

  • Added property OptimizeDataRetrieval that optimizes retrieval of data when the same data is available from both J1939 and J1708 ECMs. Recommended.
  • Added a J1708Restarting ConnectionState that will be raised if J1708 data retrieval is restarting (see Demo App).
  • Not selecting a connection type (BLE or BT21) will auto connect properly.
  • The Demo App re-retrieves data when the ConnectionState J1708Restarting is raised.
  • The Demo App shows Key On/Off properly for J1708 vehicles.
  • Better J1708 data retrieval with Firmware 3.12.
  • No longer supports Android 4+ and Android 5+.
  • Compatible with Android 7.1 devices that use Android 6 BLE firmware.

Version 23.2:

  • Added retrieval of transmission temperature (Truck.TransTemp) to method GetTemps.
  • Added retrieval of primary and secondary fuel gauge levels (Truck.PrimaryFuelLevel and SecondaryFuelLevel to GetFuelData.
  • Changed property OptimizeDataRetrieval to OptimizeDataRetrieval() and SetOptimizeDataRetrieval(boolean value).
  • Improved OptimizeDataRetrieval. Note, this update is required if using OptimizeDataRetrieval.
  • The Demo App shows Key Off when disconnected (see checkKeyState and showConnectButton).
  • Critical patch for retrieving Adapter settings (sleep mode, led brightness, ignore databuses, j1708 availability).

Version 23.3:

  • Fixed bug in 23.2 that caused GetEngineVIN and GetEngineId to error.
  • Added methods GetTruckVIN and GetTruckId for retrieving the OEM VIN and Component Id (Make/Model/SerialNo).
  • Added methods StopRetrievingEngineVIN and StopRetrievingEngineId. Call these after Truck.EngineVIN and/or Truck.EngineMake have been retrieved.
  • Added methods StopRetrievingTruckVIN and StopRetrievingTruckId. Call these after Truck.VIN and/or Truck.Make have been retrieved.
  • Removed methods GetVIN and GetComponentId.
  • Specifying OnChange Retrieval Method now works. The previous release changed it internally to OnInterval.
  • Added AdapterMessage ConnectionState that will be raised when there is a message from the Adapter.
  • Further improvements to J1708 data retrieval and connection stability.
  • Improved API and Adapter error reporting.
  • Updated the Demo App and Service to demonstrate the above changes.

Version 23.4:

  • Critical patch to fix BLE connection issues.
  • Fixed J1939 ELD VIN characters being truncated from a 17 character VIN.
  • Better re-connection when the adapter reboots.
  • Added property HardwareType with values HardwareTypes.HW_1_1 (old adapter), HW_6_Pin, and HW_9_Pin.
  • Renamed PerformanceMode to IsPerformanceModeOn.
  • Renamed SetPerformanceMode to SetPerformanceModeOn.
  • Added PerformanceInterval and SetPerformanceInterval.
  • Removed the ELD Waiting RecordId as it is no longer sent by the adapter.
  • Added getTruckInfoThread to Demo App.
  • Disconnecting the adapter in the Demo App no longer stops ELD recording.

Version 23.5:

  • The default interval for GetEngineVIN and GetTruckVIN is changed from 2 seconds to 3 seconds.
  • The default interval for GetEngineId and GetTruckId is changed from 2 seconds to 5 seconds.
  • ELD.Date returns the correct UTC date.
  • Renamed method ELD.Time to ELD.Date.
  • Added ELD.LocalDate that returns the local date of the device the API is running on.
  • Added ELD local date to the Demo App.

Version 23.6:

  • Added ELD.StartUpload and ELD.StopUpload methods that must be called prior to and after uploading ELD records.
  • Slightly faster connection if using SetConnectToLastAdapter especially in crowded Bluetooth areas.
  • Added ConnectionState 'Heartbeat' that will be raised when a heartbeat is received from the adapter.
  • ConnectionState 'DataChanged' is no longer raised when a heartbeat is received from the adapter. It is now only raised when actual data is received from the adapter.
  • The Demo App sets WaitForDisconnect prior to disconnecting. This is highly recommended if re-connection is possible immediately after disconnecting.
  • ConnectionState 'Connected' has been removed from the Demo App. This was confusing as it only appled to the Bluetooth connection and not the adapter connection.
  • The Demo App shows the heartbeat count when the ConnectionState 'Heartbeat' is raised.
  • In the Demo App, showStatus{} is moved from the beginning to the end of the event handler.
  • Added ConnectionState 'Heartbeat' to the Demo App's event handler.
  • Enabled 'LED Brightness' and 'Connect to Last Adapter' in the Demo App so that it can be changed prior to connecting to the adapter.
  • The ELD Upload and Delete buttons are enabled in the Demo App anytime there are ELD records no matter if ELD recording is occurring or not.

Version 23.7:

  • Added Security setting Secure Device which secures the device (phone, tablet, etc) to an adapter. One device can be secured to many adapters (one to many relationship).
  • Security setting Secure Adapter remains unchanged and secures the device to a single adapter and secures the adapter to the one device (one to one relationship).)
  • Security setting UserName and Password secures the device to an adapter. A device can be secured to many adapters and many adapters can be secured to a device (many to many relationship).
  • Security (UserName, Password, Adapter Id, Device Id) are all encrypted with AES encryption.
  • Requires Adapter Firmware 3.14 for all security updates.
  • Fixed Bluetooth Classic (BT21) reconnection issues. Please see the documentation for important information about Bluetooth Classic reconnection.
  • Fixed Bluetooth Classic 'Connect to Last Adapter' not working.
  • The API will automatically reconnect when the IgnoreJ1939 or Ignore1708 are changed.
  • With Firmware 3.14, ELD uploading with only 'Record while Disconnected' set will not perform any connected recording while uploading.
  • Compatible with Adapter Firmware 3.13 and below. For Firmware 3.11 - 3.13 only Secure Adapter is available. For Firmware 3.9 and below, only UserName and Password security is available.
  • Updated the Demo App to reflect the above changes.

Version 23.8:

  • Critical patch for retrieving data after a reconnection.
  • MaxConnectAttempts now works for BLE adapters.
  • The default MaxConnectAttempts is changed from 10 to 5;
  • Added SetBluetoothRecycleAttempt method that will recycle (turn off/on) Bluetooth at the specified connection and reconnection attempt. The default is 2 (second attempt).
  • Updated the Demo App to reflect the above changes.
  • Updated the documentation to reflect the above changes.

Version 23.9:

  • Added method SetIgnoreDatabuses that will update the IgnoreJ1939 and IgnoreJ1708 settings and send them to the adapter.
  • Added ConnectionState ELDConnected that will be raised after the API receives ELD startup data from the adapter.
  • The ConnectionState Authenticated will now be raised after the API receives startup data from the adapter. This data includes PerformanceMode, SleepMode, LEDBrightness, IgnoreJ1939, IgnoreJ1708, HardwareType and any messages.
  • The UseBLE, UseBT21, IgnoreJ1939, and IgnoreJ1708 settings will be set appropriately if the HardwareType is HW_6_Pin.
  • Added CheckKeyState to showHeartbeat in the Demo app to ensure that the key state is checked if the ECMs are powered down.
  • Updated the Demo App to reflect the above changes.
  • Updated the documentation to reflect the above changes.

Version 23.10:

  • Improved adapter connection and reconnection. The last, secured, or previous adapter id will be used to attempt a direct connection to the adapter prior to scanning for an adapter.
  • Added default values MinIntervalDefault, DiscoveryTimeoutDefault, MaxConnectAttemptsDefault, MaxReconnectAttemptsDefault, BluetoothRecycleAttemptDefault, and AdvertisementTimeoutDefault.
  • Added API connection notifications.
  • The SetNotificationsOn method will start/stop API notifications along with Adapter notifications.
  • The Demo app saves settings when they are changed.

Version 23.11:

  • Added BleDisconnectWaitTime property and SetBleDisconnectWaitTime method that will wait for BLE to close the GATT connection. The default is 2000 (2 seconds).
  • Bluetooth is no longer turned off when the the API disconnects from the adapter if Bluetooth was turned on to connect the first time.
  • Added properties ConnectToLastAdapter, MaxConnectAttempts, MaxReconnectAttempts, BluetoothRecycleAttempt.
  • Updated the Demo App to reflect the above changes.

Version 23.12:

  • Added method GetELDData that will only retrieve RPM, Speed, Distance/Odometer, and Total Hours with optimum settings. See the Demo app getTruckData, group 6.
  • Added method GetKeyState that will double check if the ECM is powered up and sending data. See the Demo app function checkKeyState for how to use it properly.
  • Added ConnectionState J1939Started that will be raised when the API is connected and the J1939 CAN bus is available (key is turned on). See the Demo app function setJ1939Starting.
  • Added property CANBusSpeed that will be returned when the ConnectionState J1939Started is raised.
  • Updated the Demo App to reflect the above changes.

Version 23.13:

  • More reliable event handling.
  • Faster BLE re-connection and elimination of the BluetoothGattCallback.onConnectionStateChange exception.
  • The UseBLE, UseBT21 will not be changed if the HardwareType is HW_6_Pin. This is to allow for BT21 and BLE 6-pin adapters. The IgnoreJ1939, and IgnoreJ1708 settings will still be set appropriately.
  • ConnectionState J1939Starting will be raised only after connecting to the adapter, either when the key is turned on or immediately after authentication if the key is already on.
  • Added option for the Demo App to kill itself on exiting (see onBackPressed).

Version 23.14:

  • GetELDData settings are changed to RPM and Speed - OnInterval, one second; Distance/Odometer - OnChange, 5 seconds; Total Hours - OnChange, 10 seconds.
  • Invalid J1587 MIDs are ignored.
  • Internal exception handling.

Version 24.0:

  • Requires Adapter Firmware 3.15 unless otherwise noted.
  • Added OBD2 support.
  • Added property IsOBD2 which will be set when CAN is starting (CANStarting, see below).
  • Added property IgnoreOBD2 which when set to false (connecting to OBD2) will set IgnoreJ1939 and IgnoreJ1708 true.
  • Property IgnoreOBD2 accepts the OBD2.CANSettings parameter. Warning! Changing this from the default may cause ECM faults.
  • Renamed ConnectionState J1939Starting to CANStarting to reflect CAN Starting for either J1939 or OBD2.
  • Removed property SetIgnoreDataBuses because the properties IgnoreJ1939/J1708/OBD2 are required for the Adapter to connect to the correct ECUs.
  • Removed method UpdateSecurity because security parameters must be set prior to connecting to the Adapter.
  • Added property SetDisconnectedReboot that will instruct the Adapter to reboot at a set interval when not connected to the App (Firmware 3.12+). Note with Firmware 3.12+ the interval is fixed at one hour. With Firmware 3.15+ the interval is set with the property.
  • Added properties IsKeyOn and IsKeyOff that will check for key on/off and if off will set RPM, Speed, PctLoad, PctTorque, DrvPctTorque to 0.
  • Added property SendAllPackets that will instruct the Adapter to send all J1939 VIN, Make, Model, etc data packets at one time instead of in a conversational manner. This also applies to the ELD VIN.
  • The Adapter will wait to initiate a CAN connection until all Adapter data has been retrieved by the API. The previous API version initiated the CAN connection when the Adapter is authenticated.
  • The ConnectionState AdapterMessage will always return a complete message.
  • Compatible with Firmware 3.7.
  • The Demo App will show the API Beta version.
  • Updated the Demo App to reflect the above changes.

Version 24.1:

  • Added Property Force500kBus that will instruct the Adapter to connect only to a 500K CAN bus.
  • Fixed SleepMode not being initialized by the App or Service.
  • Internal fixes to potential issues.
  • Fixed Starting Service in the Demo App.

Version 24.2:

  • Properties IgnoreJ1708 and IgnoreOBD2 default to true (ignore both J1708 and OBD2) and IgnoreJ1939 defaults to false (retrieve J1939 data); If you want to retrieve J1708 or OBD2 data you must explicitly set them to false.
  • The API will not allow retrieving J1939/J1708 data along with OBD2 data (see below).
  • Setting IgnoreJ1939 or IgnoreOBD2 to false (retrieve J1939/J1708 data) will set IgnoreOBD2 true (ignore OBD2).
  • Setting IgnoreOBD2 to false (retrieve OBD2 data) will set IgnoreJ1939 and IgnoreJ1708 true (ignore them both).
  • Setting both UseBLE and UseBT21 on will cause the API to auto discover the Adapter (same as if they are both set off).
  • If UseBLE/UseBT21 are changed, or both set, or both not set, the API will reset the Previous Adapter Id, Discovery Timeout, and Advertisement Timeout.
  • Updated the Demo App to reflect the above changes.

Version 24.3:

  • Renamed the MonitorPGN method to StartMonitoringPGN.
  • Added multi-packet (BAM/RTS) PGN retrieval to the StartMonitoringPGN, StopMonitoringPGN, and RequestPGN methods.
  • SendPGN method parameters have changed to (Source, PGN, Priority, PGNData).
  • Updated the Demo App to reflect the above changes.
  • Updated the Demo App to show how to monitor multiple PGNs.

Version 24.4:

  • Fixed retrieving data from a 6-pin adapter.

Version 24.5:

  • Fixed backward compatibility with 3.7 Firmware on a 2.1 (Bluetooth Classic) adapter.

Version 25.0:

  • Changed event handling to be faster, more accurate and more reliable.
    • Uses queues to ensure messages are received.
    • Events are received as soon as they are raised by the API.
    • Connection State and any Messages (if appropriate) are returned with the event.
    • Duplicate events no longer occur.
    • Imperative that events are allowed to be handled without interruption.
    • API will attempt to deliver an event for 2 seconds before ignoring it.
    • See the Demo App for correct implementation.
  • Added ConnectionState AdapterReboot.
  • Removed ConnectionState AdapterConnected.
  • Renamed ConnectionState Authenticated to Connected.
  • Renamed ConnectionState CommTimeout to DataTimeout.
  • Renamed ConnectionState ConnectTimeout to BluetoothTimeout.
  • Added property ConnectAttempt.
  • Added property ReconnectAttempt.
  • Renamed property Message to ConnectionMessage.
  • Removed property ReconnectReason.
  • Removed property NotificationMessage.
  • Removed property NotificationLocation.
  • Removed method ClearMessages.
  • Removed method ClearNotificationMessage.
  • Fixed setting Notifications On/Off.
  • Fixed setting UserName without a Password.
  • Fixed updating security to the Adapter.
  • Fixed AdapterTimeout when connecting to a factory reset Adapter.
  • Added ignoring the Retarder and Exhaust ECMs due to failing to adhere to the J1939 standard and causing undue network traffic.

  • Updated the Demo App to reflect the above changes.

Version 25.1:

  • Added method SetKeepJ1708PortOpen that will cause the Adapter to keep the J1708 Com port open. This can be used for trucks that do not adhere to the J1708 spec and raise a fault when the Adapter is connected.

Version 25.2:

  • Added Interval to Send/Monitoring.
  • Added Send button to Send/Monitoring. Note, sending PGN data will continue based on the interval until either stopped, navigated to Truck/ELD data, or disconnected.

Version 25.3:

  • Fixed retrieving J1708 (6-pin) Distance and Odometer when they are different. Note, this can occur when the engine or cab/body/instrument ECMs are changed and the distance values are not synced between the two.

Version 25.4:

  • API is compiled with Target SDK 26 and Min SDK 22. Previous version was Target SDK 25 and Min SDK 23.
  • The Demo App checks for Min SDK 23 and Location Permission granted by the user.

Version 25.5:

  • API is compiled with Target SDK 28 and Min SDK 22.

Version 26.0:

  • Removed Eclipse support.
  • Renamed "Truck" to "Vehicle".
  • The ResetAdapter method now resets the adapter correctly. See the documentation for the changes.
  • Open sourced Bluetooth communication code Comm, CommBLE, CommBT2. Open source Comm modules use Pascal notation.
  • Added regions to Main, Comm, CommBLE, and CommBT2.
  • Updated documentation to v26.0 (pdf).
  • API is compiled with Target SDK 29 and Min SDK 23 (Android 5-10).

Version 27.0:

  • Android version 6 is not longer suppported.
  • API is compiled with Min SDK 24 and Target SDK 31 (Android 7-12).