Yazılım

Programlama

Aşağıdaki işlemleri yapan çalıştırılabilir bir program oluşturmalısınız:

  • ioperm ile çekirdeği çağırarak, Girdi/Çıktı adres uzayı için izin alınız: örn, operm(BASE, range ,1);
  • Paralel portta 0-5v oluşturmak için dışarı bir istekte bulununuz: örn, outb(1, BASE);
  • Kahve yapılana kadar yeterince bekleyiniz. Bu zaman dilimini komut satırına bakarak geçirmek güzel olabilir.
  • Daha sonra kahve makinasını kapatılacaktır: outb(0 , BASE);
  • Sonlanmadan önce ioperm(BASE, range, 0); ile paralel porta geri dönüş yapılmalıdır.

BASE değerini /dev/lp0 için BASE = 0x3bc olarak, /dev/lp1 için 0x378 ve /dev/lp2 için 0x278 olarak ve bu şekilde 8 farklı durum için düşünerek değiştiriniz.

Programınızı setuid olarak ayarlamanız güzel olurdu, böylece herkes kahve içebilir.

Aygıt sürücüsü

Bir aygıt sürücüsü yazmak için yalnızca http://en.tldp.org/LDP/khg/HyperNews/get/khg.html adresindeki belgeyi (kernel hacker's guide) okuyun, bunu aynı zamanda kullanıcı uzayında da yapabilirsiniz. Lütfen bunu bir modül olarak derleyin ki bizlerde her kernel güncellemesinde, kernel derlemek zorunda kalmayalım. Daha sonra şunu yazın:

# echo cappuccino >/dev/coffee

Ve sonra bir dakika içinde sıcak kahveniz olacaktır! Sadece root'un kahve yapmasını isteyip istememenize göre, /dev/coffee aygıtına uygun erişim yetkilerini veriniz.

Bu yöntemin getirisi, paraler port veya benzeri bir yerden gelen ACK'ı kullanarak kahve makinasından bir geri besleme sağlamasıdır, böylece akıllı kahve makinaları, hazır olduklarında bir kesme gönderebilirler.

Alessandro Rubini ve Jonathan Corbet'in muhteşem Linux Aygıt Sürücüleri'ni okuyup Çapraz Lİnux Referansı'ndaki kodları çalıştıktan sonra bunu kendiniz yapmaya çalışın.

Internet ile bağlantı

Eğer kontrol programını C ile yazdıysanız (yukarıyı inceleyiniz), sadece bir CGI betiği yazarak kahve makinasını AÇIK veya KAPALI konuma getirmeli veya daha karmaşık komutlar göndermelisiniz. Güzel web sayfaları hazırlayarak, nasıl kahve yapılacağını ve apache sunucusuna nasıl konulacağını anlatmalısınız.

LAMP teknolojisi, (Linux, Apache, MySQL, [Perl|Python|PHP]), kullanıcı ayarlı mükemmel bir kahve sisteminin yapılmasında yardımcı olacaktır.

Gelecekte bir gün, programlar daha karmaşık hal aldığında, akış-tabanlı programlamaya (Flow-Based Programming) geçmek istebilirsiniz: http://www.jpaulmorrison.com/fbp/. Büyük bir kahve makinası için ne büyük bir tesadüf!