D ile seri iletişim köprüsünden mikro denetleyicinin gönderdiği verileri okuyan ufak bir program yazdım.
import std.stdio;
import core.thread;
import serialport;
void main()
{
void[1024*4] veriler = void;
auto iletişim = new SerialPortNonBlk("/dev/ttyACM0", "9600:8N1");
stdout.writeln("Port ayarları: ", iletişim.config);
while (true)
{
void[] okunan;
while (okunan.length == 0)
{
okunan = iletişim.read(veriler);
Thread.sleep(1000.msecs);
}
writeln("-- okunan\n", cast(string)okunan);
writeln();
}
}
Bu verileri daha sonra veritabanına kaydedip sunucu üzerinde göstermek istiyoruz. Ancak ufak bir eksiklik gözüme çarptı. Bazen okunan veriler bölünebiliyor.
https://programlama.tk/static/resim/sicaklikoku.png
Screen programı ile
'$ screen /dev/ttyACM0'
şeklinde test ettiğimde sanırım verileri bölmeden okuyabiliyor.
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]