OFFICE/프로그램

Mil시스템 구조

gandus 2011. 7. 12. 14:38
1.  Mil / Mil-Lite Modules
 
 - Application, System, Buffer, Display, Digitizer, Graphics context, Threading 으로 구성되어 있습니다. 
mfc에서 new와 delete가 존재하듯이 각각의 모듈들은 생성 및 소멸되어야 합니다.


각각의 모듈들은 다음과 같다. 간단하게 알아보자.


Application 모듈  :  Application - 어떤 프로그램이든 하나만 존재한다.

 - Mapp..()함수들은  Application환경을 제어합니다.

-> 리소스 초기화, 에러 메시지 및 사용자 정의 함수 들을 제어 할 수 있습니다.
 ex) MappAlloc()



System모듈   :  System - 프레임 그래버를 지칭하며, 이용하는 갯수에 따라 추가가능하다.

- 시스템 모듈의 모든 함수는 Msys..()로 시작한다. (MsysAlloc, MsysControl, MsysFree, MsysGetHookInfo
 MsysHookFunction, MsysInquire)

예를들어 MsysAlloc()함수들은 통신채널과 하드웨어 리소스들을 개방하며, 데이터전송 수행 시리얼
인터페이스(UARTs)를 제어합니다.


Buffer모듈    :  Buffer - 영상 데이터를 저장할 공간이다.

- Mbuf..()는 버퍼를 설정하기 위한 함수입니다.

예를들어 흑백 및 컬러레이터를 저장하기 위해서는 용도에 맞는 버퍼를 할당해야 한다.
 
ex) 흑백 : MbufAlloc2d()    컬러 : MbufAllocColor()



Display모듈   :   Display - 디스플레이 할 인자를 지칭하며, 이용하는 갯수에 따라 추가가능하다.
 
- Mdisp..() 함수는 버퍼안에 있는 데이터를 어떤 Display에 보여줄 것인지를 정의 할 수 있습니다.

- 버퍼를 선택할 수 있도록 하는 함수는 MdispSelecet()  등이 있습니다.


Digitizer모듈  :  Digitizer - 카메라를 지칭하며, 갯수에 따라 늘어날 수 있다.???
                                    내가 생각하기에는 카메라로 부터 받은 데이터를 처리하는 공간같다. 


- Mdig..()  함수는 Image와 Video를 제어합니다. 이 함수는 DCF(Digitizer Configuration Format)이 필요합니다.

- 설정후에는 MdigGrab() 함수를 이용해 Grab Image버퍼에 저장 할 수 있습니다.


Mil Graphics Context

- Mgra..() 함수는 MFC에서 Dc와 비슷하다고 생각하면 편하다.

ex) MgraRect(), MgraArc(), MgraRectFill(), MgraText(), MgraArcFill(), MgraLines(), MgraLine()
MgraDot(), MgraFill(), MgraClear()


Mil Architecture hierarchy

-  Alloc()과  Free()는 순서대로 하시면 된다.

Alloc은  Application-> System-> Digitizer -> Buffer-> Display
Free는 Alloc과는 반대로 진행하면 된다.

 최소한 Application, System, Buffer는 할당을 하여야 한다는 점에 유의해야한다.

모든 모듈에는 M_으로 시작합니다, Mil에서 사용하는 변수는 MIL_ID형식으로 사용할 수 있습니다.
(MIL_ID == long)


Mil에서 Default사용법.

- MappAllocDefault() 함수는 MilConfig에 설정되어있는,  System, Display, Digitizer, Buffer를 이용하여 구성합니다.
 (변경을 위해서는 MilConfig툴에서 변경해야 한다.)

ex) MappAllocDefault( ApplicationID, SystemID, DisplayID, DigId, ImageBufId )