Commit 7fb708ab by onuma

#47941 HW連携 アルコールチェッカーから値を取得する処理を追加中5

parent 26838b37
...@@ -1527,11 +1527,12 @@ ...@@ -1527,11 +1527,12 @@
<string name="msg_pairing_device_no_info">登録されたアルコールチェッカー情報がありません。\n設定画面のアルコールチェッカーHW設定から登録できます。</string> <string name="msg_pairing_device_no_info">登録されたアルコールチェッカー情報がありません。\n設定画面のアルコールチェッカーHW設定から登録できます。</string>
<string name="msg_power_on">登録された機器の電源をオンにしてください。</string> <string name="msg_power_on">登録された機器の電源をオンにしてください。</string>
<string name="msg_press_button">アルコール濃度を測定するため、機器のボタン押してください</string> <string name="msg_press_button">アルコール濃度を測定するため、機器のボタン押してください</string>
<string name="msg_breath_error">正しく呼気が吹き込まれませんでした。ボタンを押して再計測してください。</string>
<string name="msg_break_down_device">機器が故障している可能性があります。購入元へご連絡ください。</string> <string name="msg_break_down_device">機器が故障している可能性があります。購入元へご連絡ください。</string>
<string name="msg_low_battery">バッテリー不足です。機器の電池を交換してください。</string> <string name="msg_low_battery">バッテリー不足です。機器の電池を交換してください。</string>
<string name="msg_over_used">使用回数が上限を超えました。他の機器を使用してください。</string> <string name="msg_over_used">使用回数が上限を超えました。他の機器を使用してください。</string>
<string name="msg_power_off">機器の電源がOFFになりました。電源を入れて再接続してください。</string> <string name="msg_power_off">機器の電源がOFFになりました。電源を入れて再接続してください。</string>
<string name="msg_disconnected_device">アルコールチェッカーと切断されました。</string>
<!-- <!--
<string name="pairing_search_scan">スキャン</string> <string name="pairing_search_scan">スキャン</string>
<string name="pairing_search_scaning">スキャン中..</string> <string name="pairing_search_scaning">スキャン中..</string>
......
...@@ -1531,7 +1531,8 @@ ...@@ -1531,7 +1531,8 @@
<string name="wait_breathe">입김을 불어주십시오. </string> <string name="wait_breathe">입김을 불어주십시오. </string>
<string name="msg_pairing_device_no_info">등록된 기기 정보가 없습니다. 설정화면의 알코올체커설정을 확인해주십시오.</string> <string name="msg_pairing_device_no_info">등록된 기기 정보가 없습니다. 설정화면의 알코올체커설정을 확인해주십시오.</string>
<string name="msg_power_on">등록된 기기의 전원을 켜 주십시오.</string> <string name="msg_power_on">등록된 기기의 전원을 켜 주십시오.</string>
<string name="msg_press_button">올바르게 입김을 불어 넣어주시지 않으셨습니다. 버튼을 눌러 재측정을 하십시오</string> <string name="msg_press_button">알코올 농도를 측정하기 위해 기기의 버튼 누르십시오.</string>
<string name="msg_breath_error">올바르게 입김을 불어 넣어주시지 않으셨습니다. 버튼을 눌러 재측정을 하십시오</string>
<string name="msg_break_down_device">기기가 고장났을 가능성이 있습니다.구입처로 연락해 주십시오</string> <string name="msg_break_down_device">기기가 고장났을 가능성이 있습니다.구입처로 연락해 주십시오</string>
<string name="msg_low_battery">배터리 부족입니다.기기의 베터리를 교환해 주십시오.</string> <string name="msg_low_battery">배터리 부족입니다.기기의 베터리를 교환해 주십시오.</string>
<string name="msg_over_used">사용 횟수가 상한을 넘었습니다.다른 기기를 사용해 주십시오.</string> <string name="msg_over_used">사용 횟수가 상한을 넘었습니다.다른 기기를 사용해 주십시오.</string>
......
...@@ -1529,21 +1529,25 @@ ...@@ -1529,21 +1529,25 @@
<string name="msg_pairing_device_no_info">There is no registered device information. Check the alcohol checker settings on the settings screen.</string> <string name="msg_pairing_device_no_info">There is no registered device information. Check the alcohol checker settings on the settings screen.</string>
<string name="msg_power_on">Please turn on the power of the registered device.</string> <string name="msg_power_on">Please turn on the power of the registered device.</string>
<string name="msg_press_button">Press the button on the device to measure the alcohol concentration.</string> <string name="msg_press_button">Press the button on the device to measure the alcohol concentration.</string>
<string name="msg_breath_error">The breath was not blown correctly. Press the button to remeasure.</string>
<string name="msg_break_down_device">The device may be out of order. Please contact the place of purchase.</string> <string name="msg_break_down_device">The device may be out of order. Please contact the place of purchase.</string>
<string name="msg_low_battery">The battery is low. Replace the battery of the device.</string> <string name="msg_low_battery">The battery is low. Replace the battery of the device.</string>
<string name="msg_over_used">The number of uses has exceeded the upper limit. Please use other device.</string> <string name="msg_over_used">The number of uses has exceeded the upper limit. Please use other device.</string>
<string name="msg_power_off">The power of the device has been turned off. Turn on the power and reconnect.</string> <string name="msg_power_off">The power of the device has been turned off. Turn on the power and reconnect.</string>
<!-- <string name="msg_connection_timeout">デバイスと接続できませんでした</string>
<string name="center_thermometer">中心温度計</string> <string name="msg_disconnected_device">デバイスと切断されました。</string>
<string name="pairing_search_scan">Scan</string>
<string name="pairing_search_scaning">Scaning...</string> <!--
<string name="pairing_search_stop">Stop</string> <string name="center_thermometer">中心温度計</string>
<string name="chino_machine">CHINO機器</string> <string name="pairing_search_scan">Scan</string>
<string name="spp_machine">シリアル通信機器</string> <string name="pairing_search_scaning">Scaning...</string>
<string name="radiation_thermometer">放射温度計</string> <string name="pairing_search_stop">Stop</string>
<string name="start_measurement">測定開始</string> <string name="chino_machine">CHINO機器</string>
<string name="pairing_other_alcohl_checker_searching">アルコールチェッカー(Searching...)</string> <string name="spp_machine">シリアル通信機器</string>
--> <string name="radiation_thermometer">放射温度計</string>
<string name="start_measurement">測定開始</string>
<string name="pairing_other_alcohl_checker_searching">アルコールチェッカー(Searching...)</string>
-->
<string name="pairing_search_scan">Scan</string> <string name="pairing_search_scan">Scan</string>
<string name="pairing_search_stop">Stop</string> <string name="pairing_search_stop">Stop</string>
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
<PreferenceCategory android:title="@string/set_title_pairing" android:key="set_pairing" android:layout="@layout/custom_preference_category"> <PreferenceCategory android:title="@string/set_title_pairing" android:key="set_pairing" android:layout="@layout/custom_preference_category">
<PreferenceScreen <PreferenceScreen
android:key="setAlcPairing" android:key="setAlcPairing"
android:title="@string/alc_checker_setting" android:title="@string/set_title_pairing"
android:layout="@layout/custom_preference_screen"> android:layout="@layout/custom_preference_screen">
</PreferenceScreen> </PreferenceScreen>
</PreferenceCategory> </PreferenceCategory>
......
package jp.agentec.abook.abv.cl.util; package jp.agentec.abook.abv.cl.util;
import android.bluetooth.BluetoothGattCharacteristic;
import android.bluetooth.BluetoothGattDescriptor;
import java.util.TimerTask; import java.util.TimerTask;
import java.util.UUID;
import jp.agentec.abook.abv.bl.common.log.Logger; import jp.agentec.abook.abv.bl.common.log.Logger;
......
package jp.agentec.abook.abv.cl.util; package jp.agentec.abook.abv.cl.util;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCharacteristic;
import java.util.UUID;
public interface AlcoholCheckerUtilListener { public interface AlcoholCheckerUtilListener {
void onFugoAction(String action, UUID CHAR, byte[] data, String MESSAGE, String Type);
void onGetDeviceInfoFailed(int status); void onGetDeviceInfoFailed(int status);
void onConnectionError(int status); // ディバイス接続エラー void onConnectionError(int status); // ディバイス接続エラー
......
...@@ -15,20 +15,16 @@ import android.content.Context; ...@@ -15,20 +15,16 @@ import android.content.Context;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.ByteOrder; import java.nio.ByteOrder;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import jp.agentec.abook.abv.bl.common.Constant;
import jp.agentec.abook.abv.bl.common.log.Logger; import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.launcher.android.R; import jp.agentec.abook.abv.launcher.android.R;
import jp.agentec.adf.util.StringUtil; import jp.agentec.adf.util.StringUtil;
import oz.lottie.animation.content.Content;
import static android.bluetooth.BluetoothDevice.TRANSPORT_LE; import static android.bluetooth.BluetoothDevice.TRANSPORT_LE;
import static org.chromium.base.ThreadUtils.runOnUiThread; import static org.chromium.base.ThreadUtils.runOnUiThread;
...@@ -78,7 +74,8 @@ public class BleManagerUtil { ...@@ -78,7 +74,8 @@ public class BleManagerUtil {
@Override @Override
public void run() { public void run() {
mListener.onConnectionError(status); mListener.onConnectionError(status);
disconnect(true); //disconnect(true);
Logger.e(TAG,"onConnectionStateChange status = " + status);
} }
}); });
return; return;
...@@ -120,19 +117,19 @@ public class BleManagerUtil { ...@@ -120,19 +117,19 @@ public class BleManagerUtil {
return; return;
} }
Logger.d(TAG, "--gattSize : " + gatt.getServices().size()); // Logger.d(TAG, "--gattSize : " + gatt.getServices().size());
if (gatt.getServices().size() == 0) { // if (gatt.getServices().size() == 0) {
// サービスがない場合は、再接続 // // サービスがない場合は、再接続
bleGattReconnect(); // bleGattReconnect();
return; // return;
} // }
mBluetoothGatt.requestConnectionPriority(BluetoothGatt.CONNECTION_PRIORITY_HIGH); mBluetoothGatt.requestConnectionPriority(BluetoothGatt.CONNECTION_PRIORITY_HIGH);
// アルコールチェッカー // アルコールチェッカー
if (mBleConnectDeviceType == Constant.DeviceType.alcoholChecker) { //if (mBleConnectDeviceType == Constant.DeviceType.alcoholChecker) {
mListener.onServicesDiscovered(status); mListener.onServicesDiscovered(status);
return; //return;
} //}
// 発見されたサービスのループ // 発見されたサービスのループ
// for(BluetoothGattService service : gatt.getServices()) { // for(BluetoothGattService service : gatt.getServices()) {
...@@ -168,10 +165,11 @@ public class BleManagerUtil { ...@@ -168,10 +165,11 @@ public class BleManagerUtil {
// キャラクタリスティックが読み込まれたときの処理 // キャラクタリスティックが読み込まれたときの処理
@Override @Override
public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status ) { public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status ) {
Logger.i(TAG,"onCharacteristicChanged"); Logger.i(TAG, "onCharacteristicRead");
if( BluetoothGatt.GATT_SUCCESS != status ) { if (BluetoothGatt.GATT_SUCCESS != status) {
return; return;
} }
}
// if( UUID_CHARACTERISTIC_PRIVATE.equals(characteristic.getUuid())) { // if( UUID_CHARACTERISTIC_PRIVATE.equals(characteristic.getUuid())) {
// final String strTemperature = byteToString(characteristic.getValue()); // final String strTemperature = byteToString(characteristic.getValue());
// runOnUiThread( new Runnable() { // runOnUiThread( new Runnable() {
...@@ -186,16 +184,16 @@ public class BleManagerUtil { ...@@ -186,16 +184,16 @@ public class BleManagerUtil {
// setCharacteristicNotification(UUID_SERVICE_PRIVATE, UUID_CHARACTERISTIC_PRIVATE, true); // setCharacteristicNotification(UUID_SERVICE_PRIVATE, UUID_CHARACTERISTIC_PRIVATE, true);
// return; // return;
// } // }
} // }
// キャラクタリスティック変更が通知されたときの処理 // キャラクタリスティック変更が通知されたときの処理
@Override @Override
public void onCharacteristicChanged( BluetoothGatt gatt, BluetoothGattCharacteristic characteristic ) { public void onCharacteristicChanged( BluetoothGatt gatt, BluetoothGattCharacteristic characteristic ) {
Logger.i(TAG,"onCharacteristicChanged"); Logger.i(TAG,"onCharacteristicChanged");
if (mBleConnectDeviceType == Constant.DeviceType.alcoholChecker) { //if (mBleConnectDeviceType == Constant.DeviceType.alcoholChecker) {
mListener.onCharacteristicChanged(gatt, characteristic); mListener.onCharacteristicChanged(gatt, characteristic);
return; //return;
} //}
// if( UUID_CHARACTERISTIC_PRIVATE.equals( characteristic.getUuid() ) ) { // if( UUID_CHARACTERISTIC_PRIVATE.equals( characteristic.getUuid() ) ) {
// final String strTemperature = byteToString(characteristic.getValue()); // final String strTemperature = byteToString(characteristic.getValue());
// //
...@@ -213,6 +211,11 @@ public class BleManagerUtil { ...@@ -213,6 +211,11 @@ public class BleManagerUtil {
// return; // return;
// } // }
} }
@Override
public void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status){
Logger.i(TAG,"onDescriptorWrite");
mListener.onDescriptorWrite(gatt, descriptor, status);
}
}; };
/** /**
......
...@@ -2,13 +2,14 @@ package jp.agentec.abook.abv.cl.util; ...@@ -2,13 +2,14 @@ package jp.agentec.abook.abv.cl.util;
import android.bluetooth.BluetoothGatt; import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCharacteristic; import android.bluetooth.BluetoothGattCharacteristic;
import android.bluetooth.BluetoothGattDescriptor;
public interface BleManagerUtilListener { public interface BleManagerUtilListener {
// void onGetDeviceInfo(String strTemperature); // ディバイスから渡す情報
void onGetDeviceInfoFailed(int status); // ディバイスと接続失敗時の情報渡す。 void onGetDeviceInfoFailed(int status); // ディバイスと接続失敗時の情報渡す。
void onConnectionState(int status); // ディバイスと接続された時情報渡す。 void onConnectionState(int status); // ディバイスと接続された時情報渡す。
void onDisConnectionState(); // ディバイスと切断時 void onDisConnectionState(); // ディバイスと切断時
void onConnectionError(int status); // ディバイス接続エラー void onConnectionError(int status); // ディバイス接続エラー
void onServicesDiscovered(int status); void onServicesDiscovered(int status);
void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic); void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic);
void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status);
} }
...@@ -111,7 +111,7 @@ public class BlePairingSettingActivity extends ABVUIActivity { ...@@ -111,7 +111,7 @@ public class BlePairingSettingActivity extends ABVUIActivity {
setContentView(R.layout.pairing_setting); setContentView(R.layout.pairing_setting);
TextView deviceTitle = (TextView) findViewById(R.id.device_toolbar_title); TextView deviceTitle = (TextView) findViewById(R.id.device_toolbar_title);
deviceTitle.setText(getString(R.string.alc_checker_setting)); deviceTitle.setText(getString(R.string.set_title_pairing));
// 戻り値の初期化 // 戻り値の初期化
setResult( Activity.RESULT_CANCELED ); setResult( Activity.RESULT_CANCELED );
...@@ -211,7 +211,7 @@ public class BlePairingSettingActivity extends ABVUIActivity { ...@@ -211,7 +211,7 @@ public class BlePairingSettingActivity extends ABVUIActivity {
switch (requestCode) { switch (requestCode) {
case REQUEST_ENABLEBLUETOOTH: // Bluetooth有効化要求 case REQUEST_ENABLEBLUETOOTH: // Bluetooth有効化要求
if( Activity.RESULT_CANCELED == resultCode ) { // 有効にされなかった if( Activity.RESULT_CANCELED == resultCode ) { // 有効にされなかった
ABVToastUtil.showMakeText(getApplicationContext(), String.format(getString(R.string.msg_scan_bluetooth_no_allow), getString(R.string.chino_machine)), Toast.LENGTH_SHORT); //ABVToastUtil.showMakeText(getApplicationContext(), String.format(getString(R.string.msg_scan_bluetooth_no_allow), getString(R.string.chino_machine)), Toast.LENGTH_SHORT);
return; return;
} }
break; break;
...@@ -237,7 +237,7 @@ public class BlePairingSettingActivity extends ABVUIActivity { ...@@ -237,7 +237,7 @@ public class BlePairingSettingActivity extends ABVUIActivity {
//端末側の位置情報許可チェック //端末側の位置情報許可チェック
if (!(gpsEnabled || secureLocationGpsEnabled)) { if (!(gpsEnabled || secureLocationGpsEnabled)) {
showSimpleAlertDialog(R.string.chino_machine, R.string.msg_location_device_no_allow); //showSimpleAlertDialog(R.string.chino_machine, R.string.msg_location_device_no_allow);
return; return;
} }
...@@ -356,21 +356,16 @@ public class BlePairingSettingActivity extends ABVUIActivity { ...@@ -356,21 +356,16 @@ public class BlePairingSettingActivity extends ABVUIActivity {
if (CollectionUtil.isNotEmpty(bluetoothPairingInfoDtoList)) { if (CollectionUtil.isNotEmpty(bluetoothPairingInfoDtoList)) {
for (BluetoothPairingDeviceInfoDto bluetoothPairingDeviceInfoDto : bluetoothPairingInfoDtoList) { for (BluetoothPairingDeviceInfoDto bluetoothPairingDeviceInfoDto : bluetoothPairingInfoDtoList) {
// ペアリング情報が既に保存されてる場合はヘッダー情報を各機器毎に追加する // ペアリング情報が既に保存されてる場合はヘッダー情報を各機器毎に追加する
// if (bluetoothPairingDeviceInfoDto.deviceType.equals(DeviceType.centerThermomete)) {
// sectionList.add(new SectionHeaderData(String.format(getString(R.string.pairing_save_machine), getString(R.string.center_thermometer))));
// } else if (bluetoothPairingDeviceInfoDto.deviceType.equals(DeviceType.radiationThermomete)) {
// sectionList.add(new SectionHeaderData(String.format(getString(R.string.pairing_save_machine), getString(R.string.radiation_thermometer))));
// } else
if (bluetoothPairingDeviceInfoDto.deviceType.equals(DeviceType.alcoholChecker)) { if (bluetoothPairingDeviceInfoDto.deviceType.equals(DeviceType.alcoholChecker)) {
sectionList.add(new SectionHeaderData(String.format(getString(R.string.pairing_save_machine), getString(R.string.alcohl_checker)))); sectionList.add(new SectionHeaderData(String.format(getString(R.string.pairing_save_machine))));
} }
} }
} }
// その他のヘッダー情報追加 // その他のヘッダー情報追加
if (mScanning) { if (mScanning) {
sectionList.add(new SectionHeaderData(String.format(getString(R.string.pairing_other_machine_searching), getString(R.string.alcohl_checker)))); sectionList.add(new SectionHeaderData(String.format(getString(R.string.pairing_other_machine_searching))));
} else { } else {
sectionList.add(new SectionHeaderData(String.format(getString(R.string.alc_checker_setting)))); sectionList.add(new SectionHeaderData(String.format(getString(R.string.set_title_pairing))));
} }
return sectionList; return sectionList;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment