IT/MIL

[함수] MdigControlFeature 알아보기

SON JO 2025. 1. 24. 16:41

 1.  MdigControlFeature

디지타이저의 특정 기능이나 속성을 설정하거나 제어하는 데 사용됩니다. 이 함수는 디지털 입력 장치의 해상도, 픽셀 포맷, 프레임 속도, 노출 시간 등 다양한 하드웨어 설정을 동적으로 변경할 수 있도록 도와줍니다.


 2.  구조

void MdigControlFeature(
    MIL_ID DigId,			//in
    MIL_INT64 ControlType,		//in
    MIL_CONST_TEXT_PTR FeatureName,	//in
    MIL_INT64 UserVarType,		//in
    const void *UserVarPtr		//in
)

 3.  매개 변수

💡각 매개 변수에 대한 자세한 정보는 MIL Help 문서를 참조하세요.

설명
DigiId 사용할 디지타이저의 ID를 지정하세요.
ControlType 제어 유형을 지정하세요.
FeatureName 제어할 기능의 이름을 지정하세요.
UserVarType 입력할 변수의 자료형을 지정하세요.
*UserVarPtr 입력할 변수의 주소를 지정하세요.

 4.  예제 코드

/** 2초 간격으로 ExposureTime 조절 **/

#include <mil.h>

int MosMain(void)
{
    MIL_ID MilApplication,
           MilSystem,
           MilDisplay,
           MilDigitizer,
           MilImage;

    MappAllocDefault(M_DEFAULT,
                    &MilApplication,
                    &MilSystem,
                    &MilDisplay,
                    &MilDigitizer,
                    &MilImage);
    
    // 노출 시간 변수 선언
    MIL_DOUBLE ExposureTime = 0.0;

    MdigGrabContinuous(MilDigitizer, MilImage);

    // 키 입력이 들어오면 반복 종료
    while (!MosKbhit())
    {
        // ExposureTime을 5000으로 설정
        ExposureTime = 5000.0;
        MdigControlFeature(MilDigitizer,
                           M_FEATURE_VALUE,
                           MIL_TEXT("ExposureTime"),
                           M_TYPE_DOUBLE,
                           &exposureValue);

        MosSleep(1000);

        // ExposureTime을 1000으로 설정
        ExposureTime = 1000.0;
        MdigControlFeature(MilDigitizer,
                           M_FEATURE_VALUE,
                           MIL_TEXT("ExposureTime"),
                           M_TYPE_DOUBLE,
                           &exposureValue);

        MosSleep(1000);
    }

    MosGetch();

    MappFreeDefault(MilApplication,
                    MilSystem,
                    MilDisplay,
                    MilDigitizer,
                    MilImage);

    return 0;
}