Я работаю над школьным проектом, состоящим из 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;
}