Android Tutorial Android Bluetooth / BluetoothAdmin Tutorial

Status
Not open for further replies.

paolofi

Member
Licensed User
Longtime User
Hi, I have a question for you,
I'll try to connect my Arduino too, with the SerialExample example I able to receive some date before to lost the connection, I believe that would be a timing problem.
With this Bluetooth example source I can not even connect.
From the micro side I connect and start to send data, requires to send some protocol data before?
What kind of micro and B4A software used?

best regards.

 

nicholas99

Member
Licensed User
Longtime User
Mindset EEG problem

Hi Erel, I'm trying to receive data packets from a NeuroSky EEG headset using your example program. I'm not using prefix mode. The only way I can receive data from the device is using ConnectInsecure and then I only receive 9 bytes immediately after the device connects even though packets are transmitted in about one-second intervals.
I assumed that AStream_NewData was triggered continuously, but b4a Bluetooth programming is new to me so I could easily be mistaken.
Can you advise?
 

nicholas99

Member
Licensed User
Longtime User
Thanks for the quick reply. I have read through every tutorial and relevant post about Bluetooth but can't find any hint as to why I only receive a few bytes from the device. It is detected, paired and connected and I know that it is producing data packets (I have a PC app the shows the data being generated). I've tried just about every combination of Connect and Initialize. Can you suggest anything else for me to try or what the problem could be?
 
Last edited:

reddtechnologies

Member
Licensed User
Longtime User
Asyncstreams [Bluetooth Serial Communications] missing first byte

I am continously sending =123456# from my microcontroller to my Android device via Bluetooth but I am always receiving = ahead of the rest of the string (123456#). I have read Asyncstreams documentation but still can't understand why this is happening. Its a single string that I am sending out (not one character at a time) so I expecting everything to arrive at the same time. Any suggestions or recommended reading will be much appreciated.
 

reddtechnologies

Member
Licensed User
Longtime User
Can you post the reading code?

AsyncStreams will never add a '=' character.

Erel, my apologies for not mentioning this before but I was playing around with Bluetooth example with the only difference that I have changed the code to initialize AStream in normal mode (not prefix mode). Here is the code:

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("2")
If AStream.IsInitialized = False Then
AStream.Initialize(Main.serial1.InputStream,Main.serial1.OutputStream, "AStream")
End If
txtLog.Width = 100%x
End Sub


Sub AStream_NewData (Buffer() As Byte)
LogMessage("You", BytesToString(Buffer, 0, Buffer.Length, "UTF8"))
End Sub

Re: '=' character, are you saying that AsyncStreams ignores '=' when it receives it OR is it that it receives and recognizes it but never reports it? If this is correct then what can we do to handle serial data that starts with '=' sign or '=' sign is somewhere in the middle (e.g. "ADC=0xFFFF")?
 
Last edited:

Erel

B4X founder
Staff member
Licensed User
Longtime User
Please use [ code ] [ /code ] tags (without spaces) when posting code.

I previously misread your post. I thought that you are getting a '=' character from nowhere.

When you are not using Prefix mode then the data is sent as is. There is no guarantee that it will arrive at once. It depends on the native network driver.
Prefix mode takes care of it by sending the message length.

In your case the solution should be to append the string to a StringBuilder and then check for = and #. If you found those then you found a complete message. In that case you should remove it from the StringBuilder and continue looking for messages.
 

pjoconn

Member
Licensed User
Longtime User
Getting a java.io.ioexception

:sign0085:Hello, I'm very very new to Android programming so please forgive my novice question. I have a Nexus 7 and a licensed version of B4A. Two day's ago I compiled an ran the Bluetooth example and it worked fine. Today it finds the BT on my PC but when I try to connect I get the following error:
java.io.Ioexception: read error socket might closed read ret -1
I tried rebooting the nexus but I get the same result. Thanks in advance to all that reply.
 

pjoconn

Member
Licensed User
Longtime User
java io error

Erel,
Thanks, re-pairing (forgive the pun) worked. I'm using RealTerm on my PC. Again, thanks for the fast and accurate responce.

Pat
 

kwalter

Member
Licensed User
Longtime User
java.lang.OutOfMemoryError

Hi Erel,

I have a problem with the Bluetooth Asyncstream.
If I want to send or receive something via Bluetooth, the Android program crashes with an error message:

connected: true
** Activity (main) Pause, UserClosed = false **
** Activity (chatactivity) Create, isFirst = true **
** Activity (chatactivity) Resume **
java.lang.OutOfMemoryError
at anywheresoftware.b4a.randomaccessfile.AsyncStreams$AIN.run(AsyncStreams.java:172)
at java.lang.Thread.run(Thread.java:856)
** Activity (chatactivity) Pause, UserClosed = true **
** Activity (main) Resume **

what is wrong?

best regards
kwalter
 

kwalter

Member
Licensed User
Longtime User
AsyncStream Problems

Hi Erel,
Ok, thank you've found the problem.
I'm new to B4A, how can I sort the output of the stream?
I send control commands to a Bluetooth device:

: F1 & Chr (13)
: F2 & Chr (13)
: a1 & Chr (13)
: D1 & Chr (13)
: a2 & Chr (13)
: D2 & Chr (13)

Each control character returns a response, which unfortunately currently not coming to the series but confused?

Greetings
kwalter
 

terwelu

New Member
Licensed User
Longtime User
Connection refused problem

Hi Erel,

I'm new with Android Programming.
I'm now trying to connect my Arduino with my Android.

The connection progress was successful until the step where Android was asking for the pairing code. After I put 0000, I got this message :

"Error connecting java.io.IOException: Connection refused"

Can you give me a clue what is the problem with my connection ?

Thanks in advance !

Regards,
Ricki
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…