App inventor yavaş kalıyor

Başlatan tekosis, 12 Ocak 2017, 16:44:25

tekosis

Selamün aleyküm ustalarım. app inventörde bir program yazdım. sadece ekrana sinüs sinyal çizdirmek istityorum. clock'tan gelen 1msn lik tettiklemelerle bir grafik çiziyorum ama yavaş kalıyor. 100msn sürecek bir çizim süresi 3saniye kadar sürüyor. bunun gecikmenin sebebi inventorun çalışma şeklinden mi yoksa benden mi kaynaklıdır acaba?
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

LukeSkywalker

Yazılımınızı görmeden bir şey demek zor.

tekosis

#2
@LukeSkywalker hocam biraz zaman darlığından dolayı detaylı bilgi veremedim haklısınız.
hocam programda başla butonuna basınca düz çizgi sağdan sola doğru ilerleyecek. her bir msn de bir birim sağa kayacak. bunu yüz defa yapıyorum ve benim hesabıma göre 100msn içinde bu çizginin tamamlanması lazım ama videoda görüldüğü gibi yaklaşık 3 saniye sürüyor. bunu henüz çözemedim. programın çalışma videosu ve kodlarım;

www.youtube.com/watch?v=gcbUlC6Lnvo






İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

sayangku

hocam sizin probleminiz degil  bence App inventor timer  yavaş kalıyor   1000 msn altındayken agır çalısıyor ben daha önce uygulama yapmiştim arduino baglı sensorlerimden  verileri gönderdigimde
gecikmeler hatta yanlış okumalar yapiyordu bende cozumu 1500 msn bi ornekleme alarak çözdüm :) geliştirirler işalahh yada bi yolu oldunu pek sanmiyorum ama bulursanız bize de haber verin

Cemre.

Sayın @tekosis hocam, dün Processing'den bahsetmiştim, ben de orada deneyeyim dedim. Orada millis() fonksiyonu var. Başlangıçtan itibaren geçen süreyi ms cinsinden veriyor. Bunu karşılaştırarak ana döngüde birşeyler yaptım. Sin değerlerini her adımda tek tek hesaplatarak ya da bir look up table'dan okuyarak her adımda minik bir nokta koyan program parçası 200 adımlık sinus eğrisini 200*17ms'de tamamlıyor. Her iki durum için de süre eşit.

Cemre.



52 = ms cinsinden 1920 noktanın tamamı için geçen süre.

float sineWave;
float elapsedTime;
float newTime;
float oldTime;
float[] sineTable = new float[1920];
int i;

void setup() {
  fullScreen();
  frameRate(20);
  background(0);
  noStroke();
  for (i=0; i<1920; i=i+1) {
    sineTable[i] = displayWidth/2*sin(i*TWO_PI/1920)+displayWidth/2;
  }
}

void draw() {
  background(0);
  newTime = millis();
  if (newTime != oldTime) {
    elapsedTime = newTime - oldTime;
    oldTime = newTime;
  }
  drawSineWave();
  textSize(100);
  text(elapsedTime, 300, 300);
  elapsedTime = 0;
}

void drawSineWave() {
  for (i = 0; i < 1920; i++) {
    noStroke();
    fill(255);
    ellipseMode(CENTER);
    ellipse(sineTable[i], i, 5, 5);
  }
}


tekosis

@Cemre. teşekkür ederim. şimdi ben 1920 adet noktayı 52msn de tamamladın şeklinde anladım. yani piksel/nokta başına 27usn gibi bir zamanlama oluşuyor. doğru anlamış mıyım? birde bu programla ilgili kaynaklara kendi help dosyasından mı ulaşıyorsun?
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

Cemre.

Alıntı yapılan: tekosis - 14 Ocak 2017, 12:42:32
@Cemre. teşekkür ederim. şimdi ben 1920 adet noktayı 52msn de tamamladın şeklinde anladım. yani piksel/nokta başına 27usn gibi bir zamanlama oluşuyor. doğru anlamış mıyım? birde bu programla ilgili kaynaklara kendi help dosyasından mı ulaşıyorsun?

Hataya mahal vermemek için kodu da paylaştım. Yani hata yapmadıysam evet.

Processing.org üzerinde Reference sekmesinde bilgiler var. Tutorial ve Example da var yeterince.

Fark ettiğim şey ise doğrudan GUI tasarımı yapmak için diğerlerine göre biraz daha uğraşmak gerekiyor.

tekosis

@Cemre. yanıtlar için teşekkürler. appinventor ile biraz daha uğraştım, bir projede son noktaya geldim ama ne yazık işime yaramadı şu andan itibaren tamamen bırakıyorum. Kısmetse yola precessing for android ile devam edeceğim. artık oradan başını ağrıtırım. :)
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

Cemre.

@tekosis hocam, eğer telefona şu butona basayım şu olsun, şuradan veri çeksin gibi bir uygulama yazılacaksa bu konuda Processing çok iyi bir seçim değil bence. İşlerinizi kütüphanelerle halletmeniz gerekiyor ve bu beni oldukça rahatsız ediyor.

Xamarin'e bakmanızı öneririm.

tekosis

@Cemre. hocam zaten xamarin'i beceremedim ondan dolayı arayıştayım. bu konuda temel düzeyde dahi bilgim yok, kendi kendime çok zorlanıyorum, işi kolay yoldan çözmeye çalışıyorum. yapmak istediğim analog sensörlerden aldığım veriyi mcu ile bluetooth üzerinden sürekli gönderip android ekranında anlık olarak grafiğe çevirmek. bir nevi osilaskop gibi çalışacak. bu iş için processing yeterli bir çözüm olmaz mı? ne dersin?
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

Cemre.

Grafik işlerini yapar. Bluetooth tarafında nasıldır bilmiyorum. Denemeden b*k atmayalım  ;D Elimde bluetooth ile çalışabileceğim bir şey yok ama yardımcı olmaya çalışırım hocam elimden geldiğince. Ben processing ile computer vision üzerinde birşeyler yapmaya çalışıyorum bu ara. Blob detection gibi basit şeyler.

tekosis

basit dediğin şeyler hakkında hiç bir fikrim yok o kadar uzağım :) ilgin için teşekkür ederim. tutoriallere bakıyorum, çalışmaya başladım.
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.