Durum Makineleri Üzerine

Başlatan volkanunal, 01 Temmuz 2020, 16:35:47

volkanunal

Merhabalar Hocamlar

Uygulamalarınızda (özellikle uptime süresi yüksek olunması gereken yerlerde GSM, Wifili uygulamarınızda) nasıl bir durum makinesi işletiyorsunuz. (Blocking bir yapı olması tercihim değildir)

QP ya da protothreads üzerine çalışmalar yapan var mıdır ? Durumları handle etmek için nasıl bir yapı kullandığınızı merak ediyorum. Cihaz tarafında ayağa kalkma süreci ve sonrasında gelen eventleri işletmek üzerine güzel bir yapı kurmak istiyorum. Bu süreçte var ise deneyimlerinizi dinlemek isterim.

Teşekkür ederim görüşlerini paylaşan herkese.
Primum nil nocere

mustafa_cmbz


mufitsozen

Alıntı yapılan: volkanunal - 01 Temmuz 2020, 16:35:47... Durumları handle etmek için nasıl bir yapı kullandığınızı merak ediyorum. Cihaz tarafında ayağa kalkma süreci ve sonrasında gelen eventleri işletmek üzerine güzel bir yapı kurmak istiyorum. Bu süreçte var ise deneyimlerinizi dinlemek isterim.

Teşekkür ederim görüşlerini paylaşan herkese.


Konu hem cok genis hemde oldukca derin. Forumda soru cevap ogrenmeniz zor olacaktir.

Standard bir yapi yapmayi ogrenmek isterseniz SDL(Specification and Description Language - ITU Z.100) ve bu grupta kullanilan MSC (Message Sequence Chart language) ile sisteminizi modelleyip, Generic Real-Time conceptleri bilerek standard bir RTOS(FreeRTOS gibi) ile uygulamalar yapmaniz gerekecek.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

volkanunal

Alıntı yapılan: mufitsozen - 02 Temmuz 2020, 09:54:04Konu hem cok genis hemde oldukca derin. Forumda soru cevap ogrenmeniz zor olacaktir.

Standard bir yapi yapmayi ogrenmek isterseniz SDL(Specification and Description Language - ITU Z.100) ve bu grupta kullanilan MSC (Message Sequence Chart language) ile sisteminizi modelleyip, Generic Real-Time conceptleri bilerek standard bir RTOS(FreeRTOS gibi) ile uygulamalar yapmaniz gerekecek.

Merhabalar hocam sanırım yanlış anlattım. Şu şekilde özetleyim. Kişisel uygulamalarınız da hiç Quantum Leaps HSM ya da Protothreadlari kullandınız mı ? Ya da yardımcı olarak başka kullandığınız bir frmwrk var mıdır?.

Konunun RTOS ile alakası yok diyebilirim. Bu sistemler için illa OS ihtiyacına maruz kalmak çok mantıklı gelmiyor bana. Siz daha bilgilisinizdir elbet, neden böyle bir düşünceye kapıldınız ?

Primum nil nocere

mufitsozen

#4
Alıntı yapılan: volkanunal - 02 Temmuz 2020, 10:02:28Merhabalar hocam sanırım yanlış anlattım. Şu şekilde özetleyim. Kişisel uygulamalarınız da hiç Quantum Leaps HSM ya da Protothreadlari kullandınız mı ? Ya da yardımcı olarak başka kullandığınız bir frmwrk var mıdır?.

Konunun RTOS ile alakası yok diyebilirim. Bu sistemler için illa OS ihtiyacına maruz kalmak çok mantıklı gelmiyor bana. Siz daha bilgilisinizdir elbet, neden böyle bir düşünceye kapıldınız ?


RTOS olmadan yapacaginiz (uyduracaginiz) bir sistem scalable olmayacaktir ve cok kirilgan (brittle) olacaktir.


Dusunceye kapilmadim. 20 seneye yakin bir sure Telekom ve Datacom sistemlerinde FSM bazli uygulamalar yaptim.

Gordugum kadari ile siz endustri standard bir calisma arayisi icinde degilsiniz, "guzel" bir yapi olusturmak istiyorsunuz (ne demekse??)


Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

volkanunal

Anladım hocam çok teşekkür ederim görüşleriniz için.
Primum nil nocere

Tagli

@volkanunal , konuyu hortlatmış olacağım ama şu sıralarda ben de bu konuyu araştırmaya başladım. Bu adamın (Miro Samek) epey bir eğitim videosu ve bir de kitabı var. Kitabında kendi framework'ünü baya tanıtmış.

Genel olarak, klasik RTOS yaklaşımının bazı sorunları çözerken, yanında kendine özgü bazı yeni sorunları da getirdiğini savunuyor ve buna karşı tamamen state machine tabanlı event driven bir framework öneriyor. Önerdiği (ve de gerçeklediği) yöntem arkada bir RTOS olmadan da çalışabilir ancak kendi sistemi birkaç katmanlı ve istenildiği zaman klasik RTOS ile hibrid kullanılabiliyor.

RTOS'lara özgü sorunları çözmesinin yanı sıra, RTOS'u kaldırmaya gücü yetmeyecek 8-bit işlemciler için de kullanışlı bir çözüm olabilir. Ancak projeyi tamamen farklı bir şekilde düşünmeyi gerektiriyor.

Miro Samek'in Quantum framework'ü çift lisanslı. GPL lisansını ücretsiz olarak kullanabiliyorsunuz ancak yaptığınız ürünle birlikte tüm kodunuzu da vermek zorundasınız. Haliyle ticari projeler için kullanılması pek mümkün değil. Ticari lisans ise ürün cinsi başına $2000 gibi bir fiyattan başlıyor ($15000'e kadar falan gidiyor). Ancak adam kitabında sistemi çok güzel anlatmış. Aynı mantıkla oturup kendi framework'ünüzü de sıfırdan yazıp istediğiniz gibi kullanabilirsiniz.

Bu arada, keşke @mufitsozen hoca da aramızda olsaydı...  :'(
Gökçe Tağlıoğlu