|
답변 감사드립니다.
혼자서 정비 프로그램을 짜려고 하니 대는 대로 만들어서 ㅋㅋ..힘드네요 ㅋㅋ.
근대 멀티 쓰래드를 사용해도 기본적으로 이런 "스테이트 머신"으로 하게 되는거 않가요 ?
저는 프로그램 작성할때 단일 쓰래드나 멀티 쓰래드나 그냥 작업 단위로 ( 장비 구역 단위로)
쓰래드를 만들어서 사용하는데 , 혹시 이것도 제가 잘못하게 않인가 해서
모르는 것이 많아서 음냐 ...
그럼 수고하세요...
송신영 님이 쓰신 글 :
: 장비 프로그램을 멀티 쓰래드가 아니라 단일 쓰래드로 작성하실 경우
: 기본적으로 "스테이트 머신" 방식을 사용합니다.
: 별거 아니구요 switch case 구문으로 각각의 동작을 하나의 case 구문에서 작성되고
: 다음 동작을 하는 case로 step을 넘겨주는 방식입니다.
: 그러면 stop 상태일 경우 현재 case 구문만 종료하고 stop한 후에 다시 start하게 되면
: 마지막 case 구문에서 다음 case로 이동할 step을 지정했기 때문에
: 그 case 구문으로 이동하면 되는 방식입니다.
: 예전의 핸드폰 UI 에서도 이런 방식을 사용하며 보통 단일 쓰래드를 사용하는 장비 프로그램의
: 기본 골격입니다.
:
: 바보 님이 쓰신 글 :
: : C++ 빌더 6.0 을 사용해서 장비 제어를 하고 있는데
: :
: : 몇가지 프로그램 구조에 관한 의문이 발생했는데 별루 물어 볼곳도 없고 해서 ㅋㅋ 죄송.
: :
: : 장비가 동작하다 일시 정지 하고 다시 동작하는 기능을 만들고 싶은데 ..
: :
: : 일시정지 버튼 ....... 이것을 만들려구 하니 프로그램 로직에서 일시 정지 하면 GOTO 명령으로 그냥 함수를
: :
: : 나가게 만들었습니다
: :
: : 다시 장비를 가동하려고 하니 로직상 빠져 나간 곳의 위치를
: :
: : 기역했다가 다시 그곳의 한칸 위에서 실행하면 되기는 하겠는데 한개 한개 동작마다 정지하면 빠져 나가도록
: :
: : 만들어서 이련경우 동작마다 어느 부분에서 실행할 것 인지 선택하는 것을 또 만들어야 하는데
: :
: : 이런경우 프로그램이 많이 복잡해 질거 같은데 혹시 이련 경우 간단하게 할수 있는 방법은 없는지
: : 스래드를 멈추고 다시 가동하는 것도 생각해봤는데 이런경우 에도 멈추어진 스텝 위에서 다시 시작해야 하는
: :
: : 것이 필요한거 같은데 ......
: :
: : 혹시 이런 프로그램 작성시 좋은 구조에 관해서 아시는분은 ?
: :
: : 그럼 수고하세요.
|