[{"data":1,"prerenderedAt":294},["ShallowReactive",2],{"project-17255418":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":42,"post_text":44,"what":45,"said":75,"maker_in_thread":158,"shape":168,"grid":173,"attempts":256,"same_week":257,"maker_shows":39,"maker_hidden":286,"reader_version":287,"card":288},"17255418","µFSM","A state chart library for embedded applications","title","Show HN: µFSM – A state chart library for embedded applications","https:\u002F\u002Fgithub.com\u002Fjonpe960\u002Fufsm\u002Ftree\u002Fufsm-0.1.0","github.com","j0p",1528377028,2018,154,32,260,2155,13,"notable","languages","state machine library","library",[24,25,26,27,28],"state machine","statechart","embedded systems","fsm library","scxml","mixed",0.281,{"positive":32,"neutral":33,"mixed":34,"critical":33},10,3,0,16,{"idea":37,"design":40,"pricing":41},{"positive":38,"critical":39},6,1,{"positive":39,"critical":34},{"positive":34,"critical":39},[43,34,34,43,34,34,34,34,34,34,33,43,34,34,43,34,43,43,43,33,39,43,34,34,43,39,34,33,34,43,39,34],5,null,{"problem":46,"audience":58,"pricing":44,"motivation":44,"time_to_build":44,"stack":66,"openness":74,"stage":74,"team_size":74},{"value":47,"source":48,"evidence":49},"Modeling embedded system behavior with state charts instead of switch-case logic","commenter",[50,54],{"id":51,"by":52,"text":53},"17257071","aylons","Very nice! Anything that allows something more sophisticated than switch:case in embedded systems are welcome! Also, state machines are way too often overlooked as a proper model…",{"id":55,"by":56,"text":57},"17259187","elcritch","I second the use of statemachine for embedded systems. They’re particularly ideal for embedded systems. The limited ram in many embedded systems makes a full dynamic language…",{"value":59,"source":48,"evidence":60},"Embedded and firmware developers",[61,62],{"id":51,"by":52,"text":53},{"id":63,"by":64,"text":65},"17257278","0x5345414e","Thanks for sharing! I'm working on a device and I've been searching for a good FSM library in C with no dynamic allocation :)",[67],{"value":68,"source":48,"evidence":69},"C",[70],{"id":71,"by":72,"text":73},"17256277","dljsjr","It's true that embedded software doesn't need to be written in C but if you're distributing a _library_ that's aimed at embedded systems then C is still a terrific choice for a…","unknown",{"praise":76,"objections":93,"requests":109,"questions":120,"alternatives":128},[77,82],{"value":78,"source":48,"evidence":79},"Useful alternative to switch-case state handling in embedded code",[80,81],{"id":51,"by":52,"text":53},{"id":63,"by":64,"text":65},{"value":83,"source":48,"evidence":84},"Interest in using it in embedded projects",[85,89],{"id":86,"by":87,"text":88},"17260718","samatman","I'm impressed by this and like it a lot. If you don't mind a 'drive-by' feature request: it would be fantastic if you were to support the PlantUML state DSL:…",{"id":90,"by":91,"text":92},"17257660","okreallywtf","Same here, I've started 2 or 3 times and not liked any of my own implementations, this might actually be useful to me tonight.",[94,102],{"value":95,"source":48,"evidence":96},"Embedded should not be assumed to mean C; language choice debated",[97,101],{"id":98,"by":99,"text":100},"17255748","speps","Probably worth having a look at this: https:\u002F\u002Fyoutu.be\u002Fc9Xt6Me3mJ4?t=4196 Embedded shouldn't rhyme with \"C\".",{"id":71,"by":72,"text":73},{"value":103,"source":48,"evidence":104},"Requires paid StarUML tool to extract state machines from diagrams",[105],{"id":106,"by":107,"text":108},"17256583","analognoise","It requires a paid tool (Staruml) to extract a fsm from a state chart? Regardless, this looks very cool I will dive in later.",[110,114],{"value":111,"source":48,"evidence":112},"Support PlantUML state diagram DSL",[113],{"id":86,"by":87,"text":88},{"value":115,"source":48,"evidence":116},"Support more diagram editors beyond StarUML",[117],{"id":118,"by":11,"text":119},"17259809","I've only tested with StarUML, but the plan is to support more tools",[121],{"value":122,"source":48,"evidence":123},"Which diagram editor works, such as Papyrus",[124],{"id":125,"by":126,"text":127},"17257887","_pmf_","What do you recommend as editor? Does Papyrus work?",[129,137,144,151],{"value":130,"source":48,"evidence":131},"Quantum Leaps QP\u002FQM framework",[132,133],{"id":51,"by":52,"text":53},{"id":134,"by":135,"text":136},"17262173","anmorgan","Depending on the application, I'll use a Finite State Machine pattern, but if I need something more complex I'll use QM QP\u002FC (which is uses a hierarchical state machine pattern).…",{"value":138,"source":48,"evidence":139},"xstate",[140],{"id":141,"by":142,"text":143},"17256208","slig","A must read for anyone interested https:\u002F\u002Fstatecharts.github.io\u002F Also I highly recommend to check out `xstate` TypeScript library. It's a breeze to work with it.",{"value":145,"source":48,"evidence":146},"Erlang gen_statem",[147],{"id":148,"by":149,"text":150},"17262212","rdtsc","Yes. Erlang has http:\u002F\u002Ferlang.org\u002Fdoc\u002Fman\u002Fgen_statem.html It is part of the Erlang's standard library. SSH and SSL state and connection management has been re-written recently to…",{"value":152,"source":48,"evidence":153},"django-fsm",[154],{"id":155,"by":156,"text":157},"17257084","nsomaru","For Django there's django-fsm[0] and django-viewflow[1]. I've used the former to implement some flow for an ecommerce website. [0] https:\u002F\u002Fgithub.com\u002Fkmmbvnr\u002Fdjango-fsm\u002F [1]…",{"comments":33,"answered":159,"key":160},2,[161,164,167],{"id":162,"text":163},"17266198","Thanks =) I had a quick look att plantuml and it seems to support SCXML export, which I will add in a near future which might be useful for you.",{"id":165,"text":166},"17259821","I've used the evaluation version",{"id":118,"text":119},{"commenters":169,"max_depth":170,"maker_replies":33,"first_comment_mins":171,"lifespan_hours":172},25,4,44,55,[174,176,180,182,183,186,190,192,193,195,198,202,205,208,209,210,212,215,216,217,221,226,231,235,236,239,242,244,247,248,251,254],[51,34,43,175,52,34],"project\u002Fpositive\u002Fidea",[177,34,34,178,179,34],"17257581","other\u002Fneutral\u002Fdocs","childintime",[181,34,34,178,52,34],"17259958",[55,34,43,175,56,34],[184,34,34,185,56,34],"17259236","other\u002Fneutral\u002Fnone",[187,34,34,188,189,34],"17260481","commenter\u002Fneutral\u002Fidea","oldgeezr",[191,34,34,188,56,34],"17260973",[134,34,34,185,135,34],[141,39,34,194,142,34],"other\u002Fpositive\u002Fdocs",[196,39,34,194,197,34],"17260728","sktrdie",[199,39,33,200,201,34],"17262639","maker\u002Fneutral\u002Fnone","davidkpiano",[203,39,43,204,142,34],"17264215","maker\u002Fpositive\u002Fnone",[206,159,34,185,207,34],"17256494","kuwze",[155,33,34,185,156,34],[86,170,43,175,87,34],[162,170,34,211,11,39],"maker\u002Fneutral\u002Fidea",[213,170,43,214,87,34],"17268442","project\u002Fpositive\u002Fdesign",[63,43,43,175,64,34],[90,43,43,175,91,34],[218,38,33,219,220,34],"17264787","project\u002Fneutral\u002Fidea","sitkack",[222,223,39,224,225,34],"17274802",7,"project\u002Fcritical\u002Fidea","solarapex",[227,228,43,229,230,34],"17268251",8,"project\u002Fpositive\u002Fnone","mogsie",[232,233,34,185,234,34],"17260525",9,"elviejo",[148,233,34,185,149,34],[237,32,43,175,238,34],"17255875","rhencke",[106,240,39,241,107,34],11,"project\u002Fcritical\u002Fpricing",[165,240,34,243,11,39],"maker\u002Fneutral\u002Fpricing",[125,245,33,246,126,34],12,"project\u002Fneutral\u002Fnone",[118,245,34,200,11,39],[249,18,43,229,250,34],"17259641","nrclark",[98,252,39,253,99,34],14,"project\u002Fcritical\u002Fnone",[71,252,34,255,72,34],"commenter\u002Fneutral\u002Fnone",[],[258,263,267,272,276,281],{"id":259,"name":260,"points":261,"category":262},"17286770","Ancient Earth",384,"learning_science",{"id":264,"name":265,"points":266,"category":262},"17272516","Scaler (grunfy)",277,{"id":268,"name":269,"points":270,"category":271},"17291269","Dilay",227,"creative",{"id":273,"name":274,"points":275,"category":20},"17294548","Fo",165,{"id":277,"name":278,"points":279,"category":280},"17289801","T2b",117,"dev_tools",{"id":282,"name":283,"points":284,"category":285},"17254212","tor-controller",113,"infrastructure",false,"v2",{"id":289,"name":5,"line":6,"ai":286,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":290,"top":18,"kw":291,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":292,"url":9,"mix":293,"praise":78,"objection":95,"sub":21},17255418,0.28,[24,25,26,27,28],"50050000003500505553150051030510",[32,33,34,33],1794036566724]