Skip to content

Commit

Permalink
allow plain bluetooth connection (configurable)
Browse files Browse the repository at this point in the history
  • Loading branch information
fr3ts0n committed Nov 7, 2015
1 parent a749d55 commit f5a466e
Show file tree
Hide file tree
Showing 5 changed files with 123 additions and 39 deletions.
19 changes: 19 additions & 0 deletions res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -121,4 +121,23 @@ Dadurch kann eine Lernphase nötig werden, während welcher der Motor ungleichm
<string name="last_service">letzter OBD service</string>
<string name="last_view_mode">letzter Datenanzeige-Modus</string>
<string name="common_settings_description">Allgemeine Einstellungen zur Programmsteuerung</string>
<string name="BUSERROR">BUS Fehler</string>
<string name="CONNECTED">Verbunden</string>
<string name="CONNECTING">Verbinde…</string>
<string name="DATAERROR">Datenfehler</string>
<string name="DISCONNECTED">Keine Verbindung</string>
<string name="ECU_DETECT">ECU Suche…</string>
<string name="ECU_DETECTED">ECU gefunden</string>
<string name="ERROR">Fehler</string>
<string name="INITIALIZED">Initialisiert</string>
<string name="INITIALIZING">Initialisiere…</string>
<string name="NODATA">Keine Daten</string>
<string name="RXERROR">RX Fehler</string>
<string name="STOPPED">Gestoppt</string>
<string name="UNDEFINED">Undefiniert</string>
<string name="secure_connect">Sichere Verbindung</string>
<string name="secure_connect_description">Benutze verschlüsselte Bluetooth-Verbindung</string>
<string name="elm_options">ELM Einstellungen</string>
<string name="elm_custom_init">ELM Initialisierung</string>
<string name="elm_custom_init_descr">eigene ELM Befehle zur Initialisierung</string>
</resources>
42 changes: 41 additions & 1 deletion res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,47 @@ period of time while the ECU recalibrates itself.
<string name="select_ecu_addr">Select ECU address …</string>
<string name="disconnect">Disconnect</string>
<string name="reset_preselections">Reset last pre-selections</string>
<string name="use_last_settings_description">Use last settings at startup (BT address, ECU address, Display items ...)</string>
<string name="use_last_settings_description">Use last settings at startup (BT address, ECU address, Display items )</string>
<string name="use_last_settings">Use last settings</string>
<string name="common_settings_description">Common settings for app control</string>
<string name="secure_connect">Secure connection</string>
<string name="secure_connect_description">Use encrypted Bluetooth connection</string>
<string name="elm_options">ELM options</string>
<string name="last_none">NONE</string>
<string name="elm_custom_init">ELM custom init</string>
<string name="elm_custom_init_descr">ELM custom initialisation commands</string>

<!-- ELM communication states -->
<string name="UNDEFINED">Undefined</string>
<string name="INITIALIZING">Initializing…</string>
<string name="INITIALIZED">Initialized</string>
<string name="ECU_DETECT">ECU detect…</string>
<string name="ECU_DETECTED">ECU detected</string>
<string name="CONNECTING">Connecting…</string>
<string name="CONNECTED">Connected</string>
<string name="NODATA">No data</string>
<string name="STOPPED">Stopped</string>
<string name="DISCONNECTED">Disconnected</string>
<string name="BUSERROR">BUS error</string>
<string name="DATAERROR">DATA error</string>
<string name="RXERROR">RX error</string>
<string name="ERROR">Error</string>
<!-- the string array corresponding to state enum -->
<string-array name="elmcomm_states" translatable="false">
<item>@string/UNDEFINED</item>
<item>@string/INITIALIZING</item>
<item>@string/INITIALIZED</item>
<item>@string/ECU_DETECT</item>
<item>@string/ECU_DETECTED</item>
<item>@string/CONNECTING</item>
<item>@string/CONNECTED</item>
<item>@string/NODATA</item>
<item>@string/STOPPED</item>
<item>@string/DISCONNECTED</item>
<item>@string/BUSERROR</item>
<item>@string/DATAERROR</item>
<item>@string/RXERROR</item>
<item>@string/ERROR</item>
</string-array>

</resources>
84 changes: 51 additions & 33 deletions res/xml/settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
>
<PreferenceScreen
android:icon="@android:drawable/ic_menu_manage"
android:title="@string/common_settings"
android:summary="@string/common_settings_description">
android:summary="@string/common_settings_description"
android:title="@string/common_settings">

<MultiSelectListPreference
android:defaultValue="@array/empty"
Expand Down Expand Up @@ -45,16 +45,6 @@
android:title="@string/measure_system"
/>

<MultiSelectListPreference
android:defaultValue="@array/empty"
android:dialogTitle="@string/items_for_display"
android:entries="@array/empty"
android:entryValues="@array/empty"
android:key="data_items"
android:summary="@string/items_for_display_descr"
android:title="@string/items_for_display"
/>

</PreferenceScreen>
</PreferenceCategory>

Expand All @@ -66,6 +56,9 @@
android:summary="@string/obd_opt_description"
android:title="@string/obd_options">

<PreferenceCategory
android:title="@string/obd_options">

<ListPreference
android:defaultValue="0"
android:dialogTitle="@string/select_medium"
Expand All @@ -75,6 +68,15 @@
android:title="@string/select_medium"
/>

<CheckBoxPreference
android:defaultValue="false"
android:dependency="comm_medium"
android:key="bt_secure_connection"
android:summary="@string/secure_connect_description"
android:title="@string/secure_connect"
/>


<ListPreference
android:defaultValue="0"
android:dialogTitle="@string/select_protocol"
Expand All @@ -84,31 +86,47 @@
android:title="@string/select_protocol"
/>

<EditTextPreference
android:capitalize="characters"
android:defaultValue=""
android:key="elm_custom_init_cmds"
android:minLines="5"
android:summary="ELM custom initialisation commands"
android:title="ELM custom init"
<MultiSelectListPreference
android:defaultValue="@array/empty"
android:dialogTitle="@string/items_for_display"
android:entries="@array/empty"
android:entryValues="@array/empty"
android:key="data_items"
android:summary="@string/items_for_display_descr"
android:title="@string/items_for_display"
/>

<CheckBoxPreference
android:defaultValue="true"
android:key="elm_adaptive_timing"
android:summary="@string/elm_adaptive_timing_descr"
android:title="@string/elm_adaptive_timing"
/>
</PreferenceCategory>

<EditTextPreference
android:defaultValue="12"
android:dependency="elm_adaptive_timing"
android:key="elm_min_timeout"
android:numeric="integer"
android:summary="@string/elm_timeout_descr"
android:title="@string/min_elm_timeout"
/>
<PreferenceCategory
android:title="@string/elm_options">

<EditTextPreference
android:capitalize="characters"
android:defaultValue=""
android:key="elm_custom_init_cmds"
android:minLines="5"
android:summary="@string/elm_custom_init_descr"
android:title="@string/elm_custom_init"
/>

<CheckBoxPreference
android:defaultValue="true"
android:key="elm_adaptive_timing"
android:summary="@string/elm_adaptive_timing_descr"
android:title="@string/elm_adaptive_timing"
/>

<EditTextPreference
android:defaultValue="12"
android:dependency="elm_adaptive_timing"
android:key="elm_min_timeout"
android:numeric="integer"
android:summary="@string/elm_timeout_descr"
android:title="@string/min_elm_timeout"
/>

</PreferenceCategory>
</PreferenceScreen>
</PreferenceCategory>

Expand Down
2 changes: 1 addition & 1 deletion src/com/fr3ts0n/ecu/gui/androbd/BtCommService.java
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ public BtConnectThread(BluetoothDevice device, boolean secure)
tmp = device.createRfcommSocketToServiceRecord(SPP_UUID);
} else
{
tmp = device.createRfcommSocketToServiceRecord(SPP_UUID);
tmp = device.createInsecureRfcommSocketToServiceRecord(SPP_UUID);
}
} catch (IOException e)
{
Expand Down
15 changes: 11 additions & 4 deletions src/com/fr3ts0n/ecu/gui/androbd/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ public void handleMessage(Message msg)
/* Show ELM status only in ONLINE mode */
if (getMode() != MODE.DEMO)
{
setStatus(String.valueOf(state));
setStatus(getResources().getStringArray(R.array.elmcomm_states)[state.ordinal()]);
}
// if last selection shall be restored ...
if(istRestoreWanted(PRESELECT.LAST_SERVICE))
Expand Down Expand Up @@ -784,13 +784,16 @@ public void setMode(MODE mode)
&& address != null)
{
// ... connect with previously connected device
connectBtDevice(address, true);
connectBtDevice(address, prefs.getBoolean("bt_secure_connection", false));
}
else
{
// ... otherwise launch the BtDeviceListActivity to see devices and do scan
Intent serverIntent = new Intent(this, BtDeviceListActivity.class);
startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE_SECURE);
startActivityForResult(serverIntent,
prefs.getBoolean("bt_secure_connection", false)
? REQUEST_CONNECT_DEVICE_SECURE
: REQUEST_CONNECT_DEVICE_INSECURE );
}
break;

Expand Down Expand Up @@ -1167,10 +1170,14 @@ private void clearPreselections()
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
boolean secureConnection = false;

switch (requestCode)
{
// device is connected
case REQUEST_CONNECT_DEVICE_SECURE:
secureConnection = true;
// no break here ...
case REQUEST_CONNECT_DEVICE_INSECURE:
// When BtDeviceListActivity returns with a device to connect
if (resultCode == Activity.RESULT_OK)
Expand All @@ -1180,7 +1187,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data)
BtDeviceListActivity.EXTRA_DEVICE_ADDRESS);
// save reported address as last setting
prefs.edit().putString(PRESELECT.LAST_DEV_ADDRESS.toString(), address).apply();
connectBtDevice(address, false);
connectBtDevice(address, secureConnection);
} else
{
setMode(MODE.OFFLINE);
Expand Down

0 comments on commit f5a466e

Please sign in to comment.