@@ -7,7 +7,6 @@ import android.content.Intent
7
7
import android.content.pm.PackageManager
8
8
import android.os.Build
9
9
import android.os.Bundle
10
- import android.os.Message
11
10
import android.view.Menu
12
11
import android.view.MenuItem
13
12
import android.widget.Toast
@@ -44,7 +43,7 @@ class MainActivity : AppCompatActivity(), BleRequestCallback {
44
43
setContentView(binding.root)
45
44
qaulId = getDeviceName()
46
45
if (qaulId.length > 18 ) {
47
- qaulId = " HelloThisIsAQaulId "
46
+ qaulId = qaulId.substring( 0 , 17 )
48
47
}
49
48
setSupportActionBar(binding.toolbar)
50
49
bleWrapperClass = BleWrapperClass (context = this )
@@ -72,7 +71,7 @@ class MainActivity : AppCompatActivity(), BleRequestCallback {
72
71
private fun sendInfoRequest () {
73
72
val bleReq: BleOuterClass .Ble .Builder = BleOuterClass .Ble .newBuilder()
74
73
bleReq.infoRequest = BleOuterClass .BleInfoRequest .getDefaultInstance()
75
- bleWrapperClass.receiveRequest(bleReq = bleReq.build(), callback = this )
74
+ bleWrapperClass.receiveRequest(data = bleReq.build().toByteString (), callback = this )
76
75
}
77
76
78
77
/* *
@@ -82,15 +81,15 @@ class MainActivity : AppCompatActivity(), BleRequestCallback {
82
81
private fun sendStartRequest () {
83
82
val bleReq: BleOuterClass .Ble .Builder = BleOuterClass .Ble .newBuilder()
84
83
val startRequest = BleOuterClass .BleStartRequest .newBuilder()
85
- val qaulid = qaulId.toByteArray(Charset .defaultCharset( ))
84
+ val qaulid = qaulId.toByteArray(Charset .forName( " UTF-8 " ))
86
85
// val qaulid = byteArrayOf(
87
86
// 0x48,0x65,0x6c,0x6c,0x6f,0x41,0x6a,0x61,0x79,0x48,0x6f,0x77,0x41,0x72,0x65,0x59,0x6f,0x75,0x48,0x65
88
87
// )
89
88
AppLog .e(TAG , " qaulid : " + qaulid.size)
90
89
startRequest.qaulId = ByteString .copyFrom(qaulid)
91
- startRequest.mode = BleOuterClass .BleMode .low_latency
90
+ startRequest.powerSetting = BleOuterClass .BlePowerSetting .low_latency
92
91
bleReq.startRequest = startRequest.build()
93
- bleWrapperClass.receiveRequest(bleReq = bleReq.build(), callback = this )
92
+ bleWrapperClass.receiveRequest(data = bleReq.build().toByteString (), callback = this )
94
93
}
95
94
96
95
/* *
@@ -99,7 +98,7 @@ class MainActivity : AppCompatActivity(), BleRequestCallback {
99
98
private fun sendStopRequest () {
100
99
val bleReq: BleOuterClass .Ble .Builder = BleOuterClass .Ble .newBuilder()
101
100
bleReq.stopRequest = BleOuterClass .BleStopRequest .getDefaultInstance()
102
- bleWrapperClass.receiveRequest(bleReq = bleReq.build(), callback = this )
101
+ bleWrapperClass.receiveRequest(data = bleReq.build().toByteString (), callback = this )
103
102
}
104
103
105
104
private fun validateData () {
@@ -132,12 +131,14 @@ class MainActivity : AppCompatActivity(), BleRequestCallback {
132
131
private fun sendData (qaulId : String , message : String ) {
133
132
val bleReq: BleOuterClass .Ble .Builder = BleOuterClass .Ble .newBuilder()
134
133
val directSend = BleOuterClass .BleDirectSend .newBuilder()
135
- directSend.data = ByteString .copyFrom(message.toByteArray(Charset .defaultCharset()))
136
- directSend.to = ByteString .copyFrom(qaulId.toByteArray(Charset .defaultCharset()))
137
- directSend.qaulId = ByteString .copyFrom(this .qaulId, Charset .defaultCharset())
138
- directSend.id = System .currentTimeMillis().toString()
134
+ directSend.data = ByteString .copyFrom(message.toByteArray(Charset .forName(" UTF-8" )))
135
+ directSend.receiverId = ByteString .copyFrom(qaulId.toByteArray(Charset .forName(" UTF-8" )))
136
+ directSend.senderId = ByteString .copyFrom(this .qaulId, Charset .defaultCharset())
137
+ directSend.messageId = ByteString .copyFrom(
138
+ System .currentTimeMillis().toString().toByteArray(Charset .forName(" UTF-8" ))
139
+ )
139
140
bleReq.directSend = directSend.build()
140
- bleWrapperClass.receiveRequest(bleReq = bleReq.build(), callback = this )
141
+ bleWrapperClass.receiveRequest(data = bleReq.build().toByteString (), callback = this )
141
142
runOnUiThread {
142
143
Toast .makeText(this , " Connecting..." , Toast .LENGTH_SHORT ).show()
143
144
}
@@ -220,7 +221,8 @@ class MainActivity : AppCompatActivity(), BleRequestCallback {
220
221
/* *
221
222
* This Method Will Be Called When BLEModule Send Response To BLERequests Sent
222
223
*/
223
- override fun bleResponse (ble : BleOuterClass .Ble ) {
224
+ override fun bleResponse (data : ByteString ) {
225
+ val ble: BleOuterClass .Ble = BleOuterClass .Ble .parseFrom(data)
224
226
if (ble.isInitialized) {
225
227
when (ble.messageCase) {
226
228
BleOuterClass .Ble .MessageCase .INFO_RESPONSE -> {
@@ -250,35 +252,32 @@ class MainActivity : AppCompatActivity(), BleRequestCallback {
250
252
Toast .LENGTH_SHORT
251
253
).show()
252
254
}
253
- BleOuterClass .Ble .MessageCase .SCAN_RESULT -> {
254
- val scanResult: BleOuterClass .BleScanResult = ble.scanResult
255
- AppLog .e(" scanResult: " , Gson ().toJson(scanResult) + " " + String (scanResult.qaulId.toByteArray()))
256
- if (scanResult.isInTheRange) {
257
- runOnUiThread {
258
- // Toast.makeText(
259
- // this,
260
- // "Device found: ${scanResult.name} : ${scanResult.mac}",
261
- // Toast.LENGTH_SHORT
262
- // ).show()
263
- if (! scanResult.qaulId.isEmpty) {
264
- binding.etQaulId.setText(String (scanResult.qaulId.toByteArray()))
265
- }
266
- }
267
- } else {
268
- runOnUiThread {
269
- // Toast.makeText(
270
- // this,
271
- // "Device is out of range: ${scanResult.name} : ${scanResult.mac}",
272
- // Toast.LENGTH_SHORT
273
- // ).show()
255
+ BleOuterClass .Ble .MessageCase .DEVICE_DISCOVERED -> {
256
+ val scanResult: BleOuterClass .BleDeviceDiscovered = ble.deviceDiscovered
257
+ AppLog .e(
258
+ " deviceDiscovered: " ,
259
+ Gson ().toJson(scanResult) + " " + String (scanResult.qaulId.toByteArray())
260
+ )
261
+
262
+ runOnUiThread {
263
+ if (! scanResult.qaulId.isEmpty) {
264
+ binding.etQaulId.setText(String (scanResult.qaulId.toByteArray()))
274
265
}
275
266
}
267
+
268
+ }
269
+ BleOuterClass .Ble .MessageCase .DEVICE_UNAVAILABLE -> {
270
+ val scanResult: BleOuterClass .BleDeviceUnavailable = ble.deviceUnavailable
271
+ AppLog .e(
272
+ " deviceUnavailable: " ,
273
+ Gson ().toJson(scanResult) + " " + String (scanResult.qaulId.toByteArray())
274
+ )
276
275
}
277
276
BleOuterClass .Ble .MessageCase .DIRECT_RECEIVED -> {
278
277
val directReceived: BleOuterClass .BleDirectReceived = ble.directReceived
279
278
AppLog .e(" directReceived: " , Gson ().toJson(directReceived))
280
279
val message: String = directReceived.data.toString(Charset .defaultCharset())
281
- val qaulId: String = directReceived.qaulId .toString(Charset .defaultCharset())
280
+ val qaulId: String = directReceived.from .toString(Charset .defaultCharset())
282
281
runOnUiThread {
283
282
binding.tvMessage.text = message
284
283
binding.etQaulId.setText(qaulId)
@@ -288,7 +287,8 @@ class MainActivity : AppCompatActivity(), BleRequestCallback {
288
287
val directSendResult: BleOuterClass .BleDirectSendResult = ble.directSendResult
289
288
AppLog .e(" directSendResult: " , Gson ().toJson(directSendResult))
290
289
runOnUiThread {
291
- Toast .makeText(this , directSendResult.errorMessage, Toast .LENGTH_SHORT ).show()
290
+ Toast .makeText(this , directSendResult.errorMessage, Toast .LENGTH_SHORT )
291
+ .show()
292
292
}
293
293
}
294
294
else -> {
0 commit comments