Commit 9e941eb7 by onuma

不要なコメント削除。設問で登録したシリアル番号とTR41のシリアル番号を比較するようにした。

parent 156e9b64
...@@ -326,17 +326,6 @@ public class BleManagerUtil { ...@@ -326,17 +326,6 @@ public class BleManagerUtil {
// 切断 // 切断
public void disconnect(boolean listenerFlg) { public void disconnect(boolean listenerFlg) {
// 接続されていない。検索中の場合はスキャン停止
if (listenerFlg) {
runOnUiThread( new Runnable() {
@Override
public void run() {
// スキャン停止
mHandler.removeCallbacksAndMessages(null);
mBluetoothAdapter.getBluetoothLeScanner().stopScan(mScanCallback);
}
});
}
if(mBluetoothGatt == null) { if(mBluetoothGatt == null) {
return; return;
...@@ -351,7 +340,7 @@ public class BleManagerUtil { ...@@ -351,7 +340,7 @@ public class BleManagerUtil {
mBluetoothGatt.disconnect(); mBluetoothGatt.disconnect();
// mBluetoothGatt.close(); // mBluetoothGatt.close();
mBluetoothGatt = null; mBluetoothGatt = null;
/**
if (listenerFlg) { if (listenerFlg) {
runOnUiThread( new Runnable() { runOnUiThread( new Runnable() {
@Override @Override
...@@ -361,7 +350,6 @@ public class BleManagerUtil { ...@@ -361,7 +350,6 @@ public class BleManagerUtil {
} }
}); });
} }
*/
} }
// キャラクタリスティックの読み込み // キャラクタリスティックの読み込み
......
...@@ -40,6 +40,8 @@ import java.util.TimerTask; ...@@ -40,6 +40,8 @@ import java.util.TimerTask;
import jp.agentec.abook.abv.bl.common.log.Logger; import jp.agentec.abook.abv.bl.common.log.Logger;
import static android.bluetooth.le.ScanSettings.CALLBACK_TYPE_ALL_MATCHES;
import static android.bluetooth.le.ScanSettings.MATCH_MODE_AGGRESSIVE;
import static android.bluetooth.le.ScanSettings.SCAN_MODE_LOW_LATENCY; import static android.bluetooth.le.ScanSettings.SCAN_MODE_LOW_LATENCY;
import static org.chromium.base.ThreadUtils.runOnUiThread; import static org.chromium.base.ThreadUtils.runOnUiThread;
...@@ -57,17 +59,14 @@ public class TR41BluetoothUtil { ...@@ -57,17 +59,14 @@ public class TR41BluetoothUtil {
private boolean mIsScaning; private boolean mIsScaning;
private static final long SCAN_PERIOD = 60000; // スキャン時間。単位はミリ秒 private static final long SCAN_PERIOD = (20 * 1000); // スキャン時間。単位はミリ秒
/** /**
* *
*
*/ */
public interface TR41BluetoothUtilLeScanner { public interface TR41BluetoothUtilLeScanner {
//void onBatchScanResults(List<ScanResult> results);
void onScanFailed(int errorCode); void onScanFailed(int errorCode);
//void onScanResult(int callbackType, ScanResult result); void onScanResult(String serialNo, String strTemperature); // デバイスから温度を渡す
void onScanResult(String strTemperature); // デバイスから温度を渡す
void onScanStop(); // スキャンを停止した void onScanStop(); // スキャンを停止した
} }
...@@ -93,7 +92,7 @@ public class TR41BluetoothUtil { ...@@ -93,7 +92,7 @@ public class TR41BluetoothUtil {
} }
boolean btEnable = mBluetoothAdapter.isEnabled() ; boolean btEnable = mBluetoothAdapter.isEnabled() ;
if(btEnable == true) { if(btEnable) {
// Bluetoothアダプタ作成 // Bluetoothアダプタ作成
mBluetoothManager = (BluetoothManager) mContext.getSystemService( Context.BLUETOOTH_SERVICE ); mBluetoothManager = (BluetoothManager) mContext.getSystemService( Context.BLUETOOTH_SERVICE );
mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner() ; mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner() ;
...@@ -112,20 +111,40 @@ public class TR41BluetoothUtil { ...@@ -112,20 +111,40 @@ public class TR41BluetoothUtil {
// スキャンフィルタの作成 // スキャンフィルタの作成
List<ScanFilter> mScanFilters = new ArrayList<>() ; List<ScanFilter> mScanFilters = new ArrayList<>() ;
// スキャンモードの作成 // スキャンモードの作成
ScanSettings.Builder mScanSettingBuiler = new ScanSettings.Builder() ; ScanSettings.Builder mScanSettingBuiler = new ScanSettings.Builder();
/*
* CALLBACK_TYPE_ALL_MATCHES
* 検出されたすべてのBluetoothアドバタイズのコールバックをトリガーし、フィルター基準に一致します。
* アクティブなフィルターがない場合、すべてのアドバタイズパケットが報告されます。
*
* MATCH_MODE_AGGRESSIVE
* アグレッシブモードでは、信号強度が弱く、継続時間中に目撃/一致がほとんどない場合でも、
* ハードウェアは一致をより早く判断します。
*/
mScanSettingBuiler.setMatchMode(CALLBACK_TYPE_ALL_MATCHES);
/*
* SCAN_MODE_LOW_LATENCY
* 最高のデューティサイクルを使用してスキャンします。 アプリケーションがフォアグラウンドで実行されている場合にのみ、このモードを使用することをお勧めします。
*/
mScanSettingBuiler.setScanMode(SCAN_MODE_LOW_LATENCY) ; mScanSettingBuiler.setScanMode(SCAN_MODE_LOW_LATENCY) ;
ScanSettings mScanSettings = mScanSettingBuiler.build() ; ScanSettings mScanSettings = mScanSettingBuiler.build() ;
// 作成したスキャンフィルタとモードでスキャン開始 // 作成したスキャンフィルタとモードでスキャン開始
mBluetoothLeScanner.startScan(mScanFilters, mScanSettings, mScanCallback) ; mBluetoothLeScanner.startScan(mScanFilters, mScanSettings, mScanCallback) ;
mHandler.postDelayed( new Runnable() { mHandler.postDelayed( new Runnable() {
@Override @Override
public void run() { public void run() {
// SCAN_PERIOD 秒後に呼ばれた時はスキャンで端末を取得できなかったと見做す。 // SCAN_PERIOD 秒後に呼ばれた時にスキャン中であれば端末を取得できなかったとみなす。
mListener.onScanStop(); if (mIsScaning) {
Sb_StopScan(); Sb_StopScan();
mListener.onScanFailed(-390831);
Logger.d(TAG, "scan in 20 sec"); Logger.d(TAG, "scan in 20 sec");
} }
}
}, SCAN_PERIOD ); }, SCAN_PERIOD );
mIsScaning = true; mIsScaning = true;
...@@ -133,8 +152,13 @@ public class TR41BluetoothUtil { ...@@ -133,8 +152,13 @@ public class TR41BluetoothUtil {
public void Sb_StopScan() public void Sb_StopScan()
{ {
try {
mIsScaning = false; mIsScaning = false;
mBluetoothLeScanner.stopScan(mScanCallback) ; mHandler.removeCallbacksAndMessages(null);
mBluetoothLeScanner.stopScan(mScanCallback);
} catch (Exception e){
Logger.e(TAG,e.toString());
}
} }
private ScanCallback mScanCallback = new ScanCallback() private ScanCallback mScanCallback = new ScanCallback()
...@@ -143,17 +167,10 @@ public class TR41BluetoothUtil { ...@@ -143,17 +167,10 @@ public class TR41BluetoothUtil {
protected Object clone() throws CloneNotSupportedException { protected Object clone() throws CloneNotSupportedException {
return super.clone(); return super.clone();
} }
@Override @Override
public void onBatchScanResults(final List<ScanResult> results) { public void onBatchScanResults(final List<ScanResult> results) {
Logger.d(TAG, "onBatchScanResults"); Logger.d(TAG, "onBatchScanResults");
/**
runOnUiThread( new Runnable() {
@Override
public void run() {
mListener.onBatchScanResults(results);
}
});
*/
}; };
@Override @Override
...@@ -169,14 +186,12 @@ public class TR41BluetoothUtil { ...@@ -169,14 +186,12 @@ public class TR41BluetoothUtil {
@Override @Override
public void onScanResult(int callbackType, ScanResult result) { public void onScanResult(int callbackType, ScanResult result) {
if(!mIsScaning){ if(!mIsScaning){
Logger.d(TAG, "mIsScaning == false"); Logger.d(TAG, "mIsScaning is false");
return; return;
} }
BluetoothDevice device = result.getDevice() ; BluetoothDevice device = result.getDevice() ;
byte[] scanRecord = result.getScanRecord().getBytes() ; byte[] scanRecord = result.getScanRecord().getBytes();
if (device.getBondState() != BluetoothDevice.BOND_BONDED) { if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
long serial[] = new long[1] ; long serial[] = new long[1] ;
...@@ -189,33 +204,38 @@ public class TR41BluetoothUtil { ...@@ -189,33 +204,38 @@ public class TR41BluetoothUtil {
String devName = device.getName() ; String devName = device.getName() ;
if(devName == null) { if(devName == null) {
Logger.d("","deviceName is null"); Logger.d(TAG,"deviceName is null");
return; return;
} }
// 近くにあるTR4だけを検索したい場合( getRssiは、電波強度を返す。dBm マイナスが小さいほど電波が強い) // 検索範囲を調整したい場合は、rssiの閾値を調整する( getRssiは、電波強度を返す。dBm マイナスが小さいほど電波が強い)
//if(result.getRssi() < -50) //if(result.getRssi() < -50)
// return ; // return ;
Logger.d(TAG,"getRssi = " + result.getRssi());
rtn = Sb_Parse_ScanRecord(scanRecord, serial, localName, security, ch1Data, ch2Data, batLevel) ; rtn = Sb_Parse_ScanRecord(scanRecord, serial, localName, security, ch1Data, ch2Data, batLevel) ;
if(rtn == 0) { if(rtn == 0) {
devName = localName.toString().trim() ;
final String serialStr = String.format("%X", (int)(serial[0]));
final String ch1Str ; final String ch1Str ;
if(ch1Data[0] == 0xEEEE) if(ch1Data[0] == 0xEEEE) {
ch1Str = "----" ; //ch1Str = "----";
else if(ch1Data[0] == 0xEEE0) return;
ch1Str = "" ; } else if(ch1Data[0] == 0xEEE0) {
else //ch1Str = "";
ch1Str = String.format("%.1f", (double)(ch1Data[0]-1000)/10.0) ; return;
} else {
ch1Str = String.format("%.1f", (double) (ch1Data[0] - 1000) / 10.0);
}
runOnUiThread( new Runnable() { runOnUiThread( new Runnable() {
@Override @Override
public void run() { public void run() {
mListener.onScanResult(ch1Str); // 値が取得できたので、コールバックで通知
mListener.onScanResult(serialStr, ch1Str);
} }
}); });
//mBluetoothLeScanner.stopScan(mScanCallback) ;
} }
} }
}; };
...@@ -253,7 +273,7 @@ public class TR41BluetoothUtil { ...@@ -253,7 +273,7 @@ public class TR41BluetoothUtil {
pt += 2 ; pt += 2 ;
companyCode = Sb_Conv2ByteToInt(scanRecord[pt], scanRecord[pt+1]) ; companyCode = Sb_Conv2ByteToInt(scanRecord[pt], scanRecord[pt+1]) ;
if(companyCode != 0x0392) { if(companyCode != 0x0392) {
Logger.d("","CompanyCode Error"); //Logger.d(TAG,"CompanyCode Error");
return -1; return -1;
} }
...@@ -262,7 +282,7 @@ public class TR41BluetoothUtil { ...@@ -262,7 +282,7 @@ public class TR41BluetoothUtil {
serialNo[0] = Sb_Conv4ByteToLong(scanRecord[pt], scanRecord[pt+1], scanRecord[pt+2], scanRecord[pt+3]) ; serialNo[0] = Sb_Conv4ByteToLong(scanRecord[pt], scanRecord[pt+1], scanRecord[pt+2], scanRecord[pt+3]) ;
int devType = Sb_Get_DeviceType(serialNo[0]) ; int devType = Sb_Get_DeviceType(serialNo[0]) ;
if(devType != 0x16 && devType != 0x17 && devType != 0x18) { if(devType != 0x16 && devType != 0x17 && devType != 0x18) {
Logger.d("","serialNo Error"); //Logger.d(TAG,"serialNo Error");
return -1; return -1;
} }
...@@ -274,7 +294,7 @@ public class TR41BluetoothUtil { ...@@ -274,7 +294,7 @@ public class TR41BluetoothUtil {
pt += 1 ; pt += 1 ;
formatCode = (int)scanRecord[pt] ; formatCode = (int)scanRecord[pt] ;
if(formatCode != 1) { if(formatCode != 1) {
Logger.d("","formatCode Error"); //Logger.d(TAG,"formatCode Error");
return -1; return -1;
} }
...@@ -296,7 +316,7 @@ public class TR41BluetoothUtil { ...@@ -296,7 +316,7 @@ public class TR41BluetoothUtil {
return 0 ; return 0 ;
} }
catch (Exception e) { catch (Exception e) {
Logger.d("","" + e.getMessage()); Logger.d(TAG,"" + e.getMessage());
return -1 ; return -1 ;
} }
......
...@@ -358,12 +358,8 @@ public class ABVCheckContentViewActivity extends ABVContentViewActivity { ...@@ -358,12 +358,8 @@ public class ABVCheckContentViewActivity extends ABVContentViewActivity {
Logger.e(TAG, "onScanFailed : " + errorCode); Logger.e(TAG, "onScanFailed : " + errorCode);
Logger.d(TAG,"-------------------------------------------------"); Logger.d(TAG,"-------------------------------------------------");
String errorMessage = errorAfterAbookCheckAip(String.format(getString(R.string.msg_tr41_scan_error), getString(R.string.tr41_thermometer)));
errorMessage = String.format(getString(R.string.msg_bluetooth_connect_error), getString(R.string.center_thermometer));
//if (StringUtil.isNullOrEmpty(errorMessage)) {
// errorAfterAbookCheckAip(errorMessage);
//}
// TR41スキャン停止 // TR41スキャン停止
stopTR41BeaconScan(); stopTR41BeaconScan();
...@@ -372,21 +368,30 @@ public class ABVCheckContentViewActivity extends ABVContentViewActivity { ...@@ -372,21 +368,30 @@ public class ABVCheckContentViewActivity extends ABVContentViewActivity {
} }
@Override @Override
public void onScanResult(String strTemperature) { public void onScanResult(String serialNo, String strTemperature) {
Logger.d(TAG,"-------------------------------------------------"); Logger.d(TAG,"-------------------------------------------------");
Logger.d(TAG, "onScanResult temperature [%s]", strTemperature); Logger.d(TAG, "onScanResult temperature [%s]", strTemperature);
Logger.d(TAG, "onScanResult serialNo [%s]", serialNo);
Logger.d(TAG, "onScanResult mTR41SerialNo [%s]", mTR41SerialNo);
Logger.d(TAG,"-------------------------------------------------"); Logger.d(TAG,"-------------------------------------------------");
if (!serialNo.equals(mTR41SerialNo)){
return;
}
// 値取得待ちのダイアログ表示中のみ値を取得、設定する // 値取得待ちのダイアログ表示中のみ値を取得、設定する
if (mWaitingDialog != null) { if (mWaitingDialog != null) {
// TR41スキャン停止
stopTR41BeaconScan();
//setThermometerData(strTemperature); //setThermometerData(strTemperature);
// まだ、項目がないので、NFCとしてデータを返す // まだ、項目がないので、NFCとしてデータを返す。音もならす
setNfcData(strTemperature); setNfcData(strTemperature);
// 取得できたら、ダイアログ消す。 // 取得できたら、ダイアログ消す。
dismissWaitngDialog(); dismissWaitngDialog();
// TR41スキャン停止 // サウンド
stopTR41BeaconScan(); audioPlay();
} }
} }
@Override @Override
public void onScanStop() { public void onScanStop() {
Logger.d(TAG,"-------------------------------------------------"); Logger.d(TAG,"-------------------------------------------------");
...@@ -576,7 +581,7 @@ public class ABVCheckContentViewActivity extends ABVContentViewActivity { ...@@ -576,7 +581,7 @@ public class ABVCheckContentViewActivity extends ABVContentViewActivity {
} }
/** /**
* ABVContentViewActivityからの呼ばれるメッソドで各種デバイスとの連携 * ABVContentViewActivity::commonShouldOverrideUrlLoading()からの呼ばれるメッソドで各種デバイスとの連携
* @param abookCheckParam HTML側からのパラメーター情報 * @param abookCheckParam HTML側からのパラメーター情報
*/ */
@Override @Override
...@@ -1232,10 +1237,10 @@ public class ABVCheckContentViewActivity extends ABVContentViewActivity { ...@@ -1232,10 +1237,10 @@ public class ABVCheckContentViewActivity extends ABVContentViewActivity {
stopTR41BeaconScan(); stopTR41BeaconScan();
disConnectSppBluetooth(); disConnectSppBluetooth();
try {
try {
//Beacon受信停止
unregisterReceiver(mReceiver); unregisterReceiver(mReceiver);
} catch (Exception e){ } catch (Exception e){
// 重量計・放射温度計を切断後に実行したところ // 重量計・放射温度計を切断後に実行したところ
// IllegalArgumentException // IllegalArgumentException
......
...@@ -989,9 +989,9 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity { ...@@ -989,9 +989,9 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
operationDto.reportType, finishCallback, taskReportLevel); operationDto.reportType, finishCallback, taskReportLevel);
if (StringUtil.equalsAny(mCmd,ABookKeys.CMD_INSERT_TASK_REPORT, ABookKeys.CMD_UPDATE_TASK_REPORT, if (StringUtil.equalsAny(mCmd,ABookKeys.CMD_INSERT_TASK_REPORT, ABookKeys.CMD_UPDATE_TASK_REPORT,
ABookKeys.CMD_DELETE_TASK_REPORT , ABookKeys.CMD_CANCEL_TASK_REPORT) ABookKeys.CMD_DELETE_TASK_REPORT , ABookKeys.CMD_CANCEL_TASK_REPORT, ABookKeys.CMD_LOCAL_SAVE_TASK_REPORT)
){ ){
// 作業一覧に戻る時 // 作業一覧に戻る時,bluetoothを切断する。
disconnectBluetoothDevice(); disconnectBluetoothDevice();
} }
......
...@@ -97,9 +97,6 @@ public class ABookCheckWebViewHelper extends ABookHelper { ...@@ -97,9 +97,6 @@ public class ABookCheckWebViewHelper extends ABookHelper {
sendTaskData(context, operationId, taskKey, taskReportLevel); sendTaskData(context, operationId, taskKey, taskReportLevel);
break; break;
case ABookKeys.CMD_LOCAL_SAVE_TASK_REPORT: // 一時保存 case ABookKeys.CMD_LOCAL_SAVE_TASK_REPORT: // 一時保存
Logger.d("-------------------------------------------------");
Logger.d("一時保存");
Logger.d("-------------------------------------------------");
insertOrUpdateTaskReport(taskKey, enableReportHistory, operationId, contentId, param, contentPath, reportType, taskReportLevel, true); insertOrUpdateTaskReport(taskKey, enableReportHistory, operationId, contentId, param, contentPath, reportType, taskReportLevel, true);
copyTaskAttachedMovie(operationId, contentId, taskKey, taskReportLevel); copyTaskAttachedMovie(operationId, contentId, taskKey, taskReportLevel);
ABVToastUtil.showMakeText(context, R.string.msg_temp_save_result, Toast.LENGTH_SHORT); ABVToastUtil.showMakeText(context, R.string.msg_temp_save_result, Toast.LENGTH_SHORT);
......
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