2. MIL 소프트웨어 시스템 구조
2.1 MIL/MIL-Lite Modules
- Application , System , Buffer, Display, Digitizer, Graphics context, Threading으로 구성되어 있습니다. MFC에서 new 와 delete가 존재하듯이 각각의 모듈들은 생성 및 소멸 되어야 합니다.
각 모듈에 대해서 간단하게 알아봅시다. ^^
2.1.1 Application 모듈.
- Mapp…() 함수들은 Application환경을 제어합니다.
-> 리소스(Resources) 초기화, 에러 메시지 및 사용자 정의 함수들을 제어할 수 있다.
예) MappAlloc()
2.1.2 System 모듈
- 시스템 모듈의 모든 함수는 Msys…()로 시작합니다.(MsysAlloc, MsysControl, MsysFree, MsysGetHookInfo, MsysHookFunction, MsysInquire).
예를들어, MsysAlloc() 함수들은 통신채널과 하드웨어 리소스들을 개방하며, 데이터전송 수행, 시리얼 인터페이스(UARTs)를 제어합니다.
2.1.3 Buffer 모듈
- Mbuf…()는 버퍼를 설정하기 위한 함수입니다.
예를들어 흑백 및 컬러데이터를 저장하기 위해서는 용도에 맞는 버퍼를 할당 해야 한다.
예) 흑백: MbufAlloc2d() , 컬러: MbufAllocColor()
2.1.4 Display 모듈
- Mdisp…() 함수는 버퍼안에 있는 데이터를 어떤 Display에 보여줄 것인지를 정의 할수있습니다.
-버퍼를 선택할 수 있도록 하는 함수는 MdispSelect() 등이 있다.
2.1.5 Digitizer 모듈
- Mdig…() 함수는 Image 와 Video를 제어합니다. 이 함수는 DCF(Digitizer Configuration Format)이 필요합니다.
- 설정후에는 MdigGrab()함수를 이용해 Grab Image 버퍼에 저장할 수 있습니다.
2.1.6 MIL Graphic Context
- Mgra…() 함수는 MFC에서 DC와 비슷하다고 생각하시면 됩니다. ^^
예) MgraRect(), MgraArc(), MgraRectFill(), MgraText(), MgraArcFill(), MgraLines(), MgraLine(), MgraDot(), MgraDots(), MgraFill(), MgraClear().
2.1.7 MIL Architecture hierarchy
- Alloc()과 Free()는 순서대로 하시면 됩니다.
Alloc은 Application-> System-> Digitizer->Buffer->Display
Free는 Alloc과는 반대로 진행하시면 됩니다. ^^
(최소한, Application, System, Buffer는 할당을 해주셔야 한다는 점은 유의하셔야 합니다.)
모든 모듈에는 M_ 으로 시작합니다. MIL에서 사용하는 변수는 MIL_ID 형식으로 사용할 수있습니다.(MIL_ID == long)
2.1.8 MIL 에서 Default 사용법
MappAllocDefault() 함수는 MilConfig에 설정되어있는, System, Display, Digitizer, Buffer를 이용하여 구성합니다. (변경을 위해서는 MilConfig툴에서 변경하셔야합니다.)
예) MappAllocDefault(ApplicationID, SystemID, DisplayID, DigId, ImageBufId)
"Programming / Image Processing" 분류의 다른 글
| Image Processing - Rotation, Translation (0) | 2010/07/12 |
| Understanding Video and Imaging Equipment (0) | 2010/02/02 |
| Accessing a MIL buffer directly (0) | 2009/08/05 |
| MilImage를 화일로 저장하거나 불러오는 방법 (0) | 2009/07/18 |
| Visual Studio에서 Mil사용을 위한 tip (0) | 2009/07/16 |





