android-bluetooth-serial icon indicating copy to clipboard operation
android-bluetooth-serial copied to clipboard

Newline driven approach

Open stefanlechner opened this issue 5 years ago • 1 comments

After debugging a while, I figured out, that the communication is hard newline driven.

            synchronized(inputStream) {
                try {
                    val receivedString = **reader.readLine()**
                    if (!TextUtils.isEmpty(receivedString)) {
                        emitter.onNext(receivedString)
                    }
                } catch (e: Exception) {
                    if (!emitter.isCancelled && !closed.get()) {
                        emitter.onError(e)
                    }
                }

My communication requries a # or \r\n as delimiter. There are several ways to solve this, the easiest and most flexibility providing solution, seems to me, changing from reader.readLine() to a scanner with a regex. Are you interested in a modification like this ?

stefanlechner avatar Mar 30 '20 12:03 stefanlechner

The problem is that I haven't released the current master branch, which contains a fix for this problem: a method to directly access the OutputStream so you can handle input however you like. I will try to get this release out, I didn't release it as I didn't get enough of a chance to test it...

If you would like to use this now, try using the master branch snapshot release from JitPack

harryjph avatar Apr 04 '20 11:04 harryjph