임베디드250624 임베디드 - Cortex M 시리즈
지금까지 한 코드도 결합력이 센 편이다
버튼은 처리부가 무엇을 하든 신경 안쓰고 입력만 관리
이 처리부는 출력부가 FND가 될 수도있고 LED가될 수도 있고 모니터가 될 수도 있고..
본인은 누가 될지 모름.
자기는 처리만 할 뿐
입력에서 처리부로 가능 창구가 필요
처리에서 출력으로 가는 창구 필요
Listener, Controller, Presenter는 임의로 정한 이름
Listener는 버튼값에 대해서 확인하고 Controller로 던짐
Controller는 시계값을 보내던지, StopWatch를 보내던지 등
Listerner의 역할 : id : btnMode 와 Data : ACT_RELEASED 를 구조체로 묶어서 Controller에 전달
Controller는 데이터를 받으면 알아서 처리
Presenter도 데이터를 받으면 알아서 처리
각자 자기할일만 하고 나머지가 하는 일은 모름
위 부분을 application에 해당
input을 받을 때 input의 구조(구조체)를 알아야 데이터를 받을 수 있음
(Listener <-> Controller, Controller<->Presenter)
위의 시퀀스 다이어그램을 보고 아래와 같이 Listener 코드 작성
하지만 각각에 대해서 디테일은 우리가 구현해야 함
구현은 사람마다 다름
포인터 복습
Button.h에 구조체를 위와 같이 선언
Button.c에 구조체 변수 위와 같이 선언
구조체를 매개변수로 받음
Listener에 위와 같이 Button을 설정해 줄 수 있음
※주의
위와 같이 포인터로 접근하지 않으면 "값에 의한 호출 (call by value)"이라 복사본이 전달 됨
-> 예를 들면 hBtnMode의 복사본이 전달되고 Button_Init이 실행돼서 원본에는 영향X