State Machine แปลตรงๆ ก็คือสถานะเครื่องจักร ถ้าใครเคยออกแบบวงจร Digital ด้วย Logic gate ที่มีสถานะ อาจจะพอนึกภาพออกมันคือรูปวาดกลมๆ แล้วมีเส้นลากไปลากมา
State Machine เหมาะกับเอามาใช้กับข้อมูลแบบ Stream ที่เรารู้รูปแบบของข้อมูลที่แน่นอนครับ ซึ่ง Serial Port ก็เป็นข้อมูลแบบ Stream ด้วย
โจทย์คือ เราจะรับข้อมูลแบบ stream ในรูปแบบ <XXXXXX> โดยที่
< คือไบต์เริ่มต้น หรือ Header
> คือไบต์สิ้นสุด หรือ Footer
XXXXX คือข้อความ
การเริ่มตอนออกแบบ State Machine เพื่อให้เห็นภาพง่ายๆ ควรเริ่มจากการวาดรูปแผนภาพ