Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8384513
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T17:25:23+00:00 2026-06-09T17:25:23+00:00

I am developing one application for reading sensor data from an Android device through

  • 0

I am developing one application for reading sensor data from an Android device through an Arduino. I am able to setup communication and read that data. That data is coming from Arduino in a byte array via a USB cable.

From that array of bytes, I am reading it into a bytes and displaying on an Android device and when I received all data from Arduino I am sending output to the Arduino. It blinks an LED. Between this communication I am getting a one second delay. How do I reduce that delay in communication?

My Code for receiving data from arduino to android is:

    public void run() {
        int ret = 0;
        //byte[] buffer = new byte[16384];
        byte[] buffer = new byte[65536];
        int i;
        i = 0;
        while(i<1){
            try {
                startSendHandshakeDataExecTime = System.currentTimeMillis();
                ret = mInputStream.read(buffer);

                for(int a=0;a<noOfFlowSensors;a++){
                    intListFlowBytes.add((int)buffer[a]);
                }
                for(int b=0;b<noOfAnalogSensors;b++){
                    intListAnalogBytes.add((int)buffer[noOfFlowSensors+b]);
                }
                for(int c=0;c<noOfSwitches;c++){
                    intListSwitchesBytes.add((int)buffer[noOfFlowSensors+noOfAnalogSensors+c]);
                }


                /*for (int n = 0; n <noOfFlowSensors + noOfAnalogSensors + noOfSwitches; n++)
                {*/
                endSendHandshakeDataExecTime  = System.currentTimeMillis();
                 Message m = Message.obtain(mHandlerHandShake);
                    //m.obj = new TelemetryPacket(composeInt(buffer[i + 1],buffer[i + 2]));
                    //m.obj = new ValueMsg('f',ret,buffer[0],composeInt(buffer[1],buffer[2]),buffer[3],composeInt(buffer[4],buffer[5]),buffer[6],composeInt(buffer[7],buffer[8]),buffer[9],composeInt(buffer[10],buffer[11]),buffer[12],buffer[13],buffer[14],buffer[15]);
                //  m.obj = new ValueMsg('f',ret,buffer[0],buffer[1],buffer[2],composeInt(buffer[4],buffer[5]),buffer[6],composeInt(buffer[7],buffer[8]),buffer[9],composeInt(buffer[10],buffer[11]),buffer[12],buffer[13],buffer[14],buffer[15]);
                    m.obj = new ValueMsgHandShake(""+(endSendHandshakeDataExecTime-startSendHandshakeDataExecTime),ret,intListFlowBytes,intListAnalogBytes,intListSwitchesBytes,1);
                    mHandlerHandShake.sendMessage(m);

              // }

                    mInputStream.close();
                break;
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }

        while (true) { // read data
            try {
                startTime = System.currentTimeMillis();
                startReceiveDataExecTime = System.currentTimeMillis();
                ret = mInputStream.read(buffer);


                    for(int p=0;p<noOfFlowSensors;p++){
                        intListFlowValues.add((int)buffer[p]);
                        //intPulseValues = (int)buffer[p];


                    }
                    Message mPulse = Message.obtain(mHandlerPulseSensors);
                    //m.obj = new TelemetryPacket(composeInt(buffer[i + 1],buffer[i + 2]));
                    //m.obj = new ValueMsg('f',ret,buffer[0],composeInt(buffer[1],buffer[2]),buffer[3],composeInt(buffer[4],buffer[5]),buffer[6],composeInt(buffer[7],buffer[8]),buffer[9],composeInt(buffer[10],buffer[11]),buffer[12],buffer[13],buffer[14],buffer[15]);
                //  m.obj = new ValueMsg('f',ret,buffer[0],buffer[1],buffer[2],composeInt(buffer[4],buffer[5]),buffer[6],composeInt(buffer[7],buffer[8]),buffer[9],composeInt(buffer[10],buffer[11]),buffer[12],buffer[13],buffer[14],buffer[15]);
                    mPulse.obj = new ValueMsgPulseSensors("f",ret,intListFlowValues);
                    mHandlerPulseSensors.sendMessage(mPulse);


                    for(int a=0;a<2*noOfAnalogSensors;a=a+2){
                            intListAnalogValues.add((int)(composeInt(buffer[noOfFlowSensors+a],buffer[noOfFlowSensors+a+1])));
                        //  intAnalogValues = (int)buffer[composeInt(buffer[noOfFlowSensors+a],buffer[noOfFlowSensors+a+1])];

                    }
                    Message mAnalog = Message.obtain(mHandlerAnalogSensors);
                    //m.obj = new TelemetryPacket(composeInt(buffer[i + 1],buffer[i + 2]));
                    //m.obj = new ValueMsg('f',ret,buffer[0],composeInt(buffer[1],buffer[2]),buffer[3],composeInt(buffer[4],buffer[5]),buffer[6],composeInt(buffer[7],buffer[8]),buffer[9],composeInt(buffer[10],buffer[11]),buffer[12],buffer[13],buffer[14],buffer[15]);
                //  m.obj = new ValueMsg('f',ret,buffer[0],buffer[1],buffer[2],composeInt(buffer[4],buffer[5]),buffer[6],composeInt(buffer[7],buffer[8]),buffer[9],composeInt(buffer[10],buffer[11]),buffer[12],buffer[13],buffer[14],buffer[15]);
                    mAnalog.obj = new ValueMsgAnalogSensors("f",ret,intListAnalogValues);
                    mHandlerAnalogSensors.sendMessage(mAnalog);

                    for(int l=0;l<noOfSwitches;l++){
                        intListSwitchesValues.add( (int)buffer[noOfFlowSensors+2*noOfAnalogSensors+l]);
                        //intSwitchValues = (int)buffer[noOfFlowSensors*intListFlowBytes.size()+intListAnalogBytes.size()*noOfAnalogSensors+l];

                    }
                    Message mSwitch = Message.obtain(mHandlerSwitchSensors);
                    //m.obj = new TelemetryPacket(composeInt(buffer[i + 1],buffer[i + 2]));
                    //m.obj = new ValueMsg('f',ret,buffer[0],composeInt(buffer[1],buffer[2]),buffer[3],composeInt(buffer[4],buffer[5]),buffer[6],composeInt(buffer[7],buffer[8]),buffer[9],composeInt(buffer[10],buffer[11]),buffer[12],buffer[13],buffer[14],buffer[15]);
                //  m.obj = new ValueMsg('f',ret,buffer[0],buffer[1],buffer[2],composeInt(buffer[4],buffer[5]),buffer[6],composeInt(buffer[7],buffer[8]),buffer[9],composeInt(buffer[10],buffer[11]),buffer[12],buffer[13],buffer[14],buffer[15]);
                    mSwitch.obj = new ValueMsgSwitchSensors("f",ret,intListSwitchesValues);
                    mHandlerSwitchSensors.sendMessage(mSwitch);
            /*      int intEnd=(int)buffer[noOfFlowSensors+noOfAnalogSensors+noOfSwitches+1];
                    for (int n = 0; n <noOfFlowSensors + noOfAnalogSensors + noOfSwitches; n++)
                        {
                         Message m = Message.obtain(mHandler);
                            //m.obj = new TelemetryPacket(composeInt(buffer[i + 1],buffer[i + 2]));
                            //m.obj = new ValueMsg('f',ret,buffer[0],composeInt(buffer[1],buffer[2]),buffer[3],composeInt(buffer[4],buffer[5]),buffer[6],composeInt(buffer[7],buffer[8]),buffer[9],composeInt(buffer[10],buffer[11]),buffer[12],buffer[13],buffer[14],buffer[15]);
                        //  m.obj = new ValueMsg('f',ret,buffer[0],buffer[1],buffer[2],composeInt(buffer[4],buffer[5]),buffer[6],composeInt(buffer[7],buffer[8]),buffer[9],composeInt(buffer[10],buffer[11]),buffer[12],buffer[13],buffer[14],buffer[15]);
                            m.obj = new ValueMsg1('f',ret,intListFlowValues,intListAnalogValues,intListSwitchesValues,intEnd);
                            mHandler.sendMessage(m);

                     //  }
*/                                  
                    i += 1;
                    endReceiveDataExecTime = System.currentTimeMillis();

                    Message mReceivedDataDelay = Message.obtain(mHandlerReceiveDataDelay);
                    mReceivedDataDelay.obj = new ValueMsgReceivedDataDelay(""+ (endReceiveDataExecTime-startReceiveDataExecTime));
                    mHandlerReceiveDataDelay.sendMessage(mReceivedDataDelay);

                    mInputStream.close();
                    OutputDataAfterDataReceived();



            } catch (IOException e) {
                break;
            } 




        }
        //sendOutputData();

    }
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-09T17:25:24+00:00Added an answer on June 9, 2026 at 5:25 pm

    The behavior you are describing appears to be the auto-reset on serial issue described in this post: https://stackoverflow.com/a/10921900/1440715

    The Arduino automatically resets when it receives serial communication from most things other than the Arduino IDE. This is why you can send from the IDE but not from anything else (without special care).

    I have an Uno and put a capacitor between Reset and Ground. Here’s a page with some good info on the subject.
    Good luck. http://arduino.cc/playground/Main/DisablingAutoResetOnSerialConnection

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

iam developing one application.In that i need to get the music files from the
Iam developing one application.In that i take the string from array and replace .xml
So I am developing one application on Android with multiple features. Now I am
I am developing one application that requires records from Addressbook , I need all
I am developing one application it's working fine and fast.But in device it's slow.I
i am developing one application in android ,in this app related to themes. select
Presently I am developing one application in android.I want to implement in app purchase
I've been developing a small in house application in C++ to access data from
Iam developing one application.In that iam placing the radio buttons(uiimageview) on table view and
Iam developing one application.In that iam using one uiimageview.And take another image view and

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.