Сохранение данных из ультразвукового ардуино каждый раз, когда они меняются - PullRequest
0 голосов
/ 24 апреля 2019

Я работаю над школьным проектом, состоящим из Arduino и Android. Я должен измерить расстояние в см, которое получает ультразвук, и с этим значением я должен воспроизвести звук в своем приложении для Android в соответствии с полученным значением.

Проблема в том, что я хочу сохранить значение расстояния от textEdit, которое постоянно меняется, поэтому мне нужно обновлять переменную каждый раз, когда textEdit изменяется. Как я могу сделать это в моем коде? это единственное, что не работает

    function OnStart(){
    //Create a layout with objects vertically centered.
    lay = app.CreateLayout( "linear", "VCenter,FillXY" );
    lay.SetBackground("Img/musica.jpg")
    titulo=app.CreateText("La super nota musical");
    titulo.SetTextColor("white");
    titulo.SetTextSize(35);
    lay.AddChild(titulo)



    //Create a text label and add it to layout.
    btn=app.CreateButton("[fa-plug]Conectar",0.5,0.15,"FontAwesome,Gray");
    btn.SetBackColor("white");
    btn.SetBackground("red");
    btn.SetOnTouch(btn_OnTouch);
    lay.AddChild(btn);

    distancia=app.CreateTextEdit("Distancia");
    distancia.SetTextSize(25);
    distancia.SetTextColor("white")
    lay.AddChild(distancia);


        //bluetooth functions
    BT1=app.CreateBluetoothSerial();
    BT1.SetOnConnect(btn_OnConnect);
    BT1.SetOnReceive(bt_OnReceive); //function that receibe arduno distance
    BT1.SetSplitMode("End","\n");

    btn1=app.CreateButton("[fa-plug]oir",0.5,0.15,"FontAwesome,Gray");
    btn1.SetBackColor("white");
    btn1.SetBackground("red");
    btn1.SetOnTouch(btn1_OnTouch);
    lay.AddChild(btn1);
    player1=app.CreateMediaPlayer();
     player1.SetFile("Snd/grabacion1.mp3")
    app.AddLayout(lay);


    //Part where i need the value of the distnce to play a sound 
    var dista=recoje();

    app.ShowPopup(dista);

        if(dista>10){

          player1.SeekTo(0);
          player1.Play();
        }

        if(dista>20){

        }

        if(dista>30){

        }

        if(dista>40){

        }

        if(dista>50){

        }

        if(dista>60){

        }
    }
function btn_OnTouch() //function that connects android with arduino
{
    BT1.Connect("HC-06");
}
function btn_OnConnect(ok) //function to check connection between arduino and andoid
{
    if(ok) app.ShowPopup("Conexion Exitosa");
    else app.ShowPopup("Error De Conexion");
}

function bt_OnReceive(data) //function that changes the text in the text edit
{
distancia.SetText(data);
}

    function recoje(){ //function i tried but didnt work
    var a=1;

         var dist = distancia.GetText();

 return dist;
}
...