OMR API 안내 ★ OMR API 를 이용하면 OMR 장비를 100% 활용할 수 있습니다 |
◇ 특징 |
32비트 윈도우즈용 DLL (Dynamic Link Library : Windows 95/98/NT) 뛰어난 호환성 : 제조회사, 모델명, 판독기 사양에 관계없이 동일한 함수 사용 손쉬운 사용법 : 복잡한 명령, 오류코드, Serial 통신에 따른 불편함을 모두 해소 모든 SHEET 규격 지원 : 단면 또는 양면 동시 판독, 12행, 24행, 32행, 40행, 48행 |
◇ 장점 |
현재 사용중인 개발툴에서 OMR 장비를 직접 제어하여 오류 검사 및 서버 DBMS 연동 가능 한 번의 프로그램 작성으로 동일(48행) 규격의 모든 OMR 장비 사용 가능 (제조 회사, 모델명 상관 없음) 가로방향, 세로방향 자료 분석, 한글 조합 기능으로 주소 입력 등 어떤 업무에도 쉽게 적용 |
◇ 지원 가능 개발툴 |
PowerBuilder, Delphi, C++ Builder, Visual Basic, Visual C++ SQL Windows, Oracle Developer, 기타 Win32 API 사용 가능한 개발툴 |
◇ 지원 가능 판독기 |
SPC 전 기종 : MR-180, MR-180H, MR-118, MR-230, MR-240, MR-245, MR-300 |
◇ OMR API 활용 예제 ★ 아래 답안지를 기준으로 C++ 언어에서 활용하는 예제 |
void main(void) { int ret, err, i, j, c ; char err_msg[300] ;
ret = OmrOpen(0, 0, 1, 0, 0) ; // COM1, 9600, E, 7, 1 if (ret < 0) { printf("통신포트(COM1)를 열 수 없습니다") ; return ; } while (1) { ret = OmrRead(29, 0, err_msg) ; // SHEET 읽기 (앞면=29칼럼, 뒷면=없음) if (ret < 0) { // 읽기 오류발생 printf("오류내용 : %s", err_msg) ; break ; } err = 0 ; printf("\n수험번호 : ") ; for (i=1; i<=5; i++) { // 5자리 반복 c = OmrPosLin(1, i, 10, 10, -1) ; // 앞면, 칼럼=1, 라인=10, 마크갯수=10, 이동라인=-1 printf("%c", (c==-2) ? '*' : (c==-1) ? 'B' : c+'0') ; // 중복표기='*' , 공백='B' if (c < 0) err = 1 ; // 하나라도 공백, 중복표기시 에러스태커로 보냄 } for (j=0; j<6; j++) { // 객관식 6개 블록 (1번 ~ 60번) for (i=1; i<=10; i++) { // 10문항 반복 // 앞면, 시작칼럼=6, 시작라인=10, 마크갯수=4, 이동칼럼=1 c = OmrSumCol(1, 6+j*4, 11-i, 4, 1) ; printf("\n객관식 %d번 = %d", j*10 + i, c) ; } } if (err) OmrReject(2) ; // SHEET를 에러스태커로 보냄 else OmrReject(1) ; // SHEET를 정상스태커로 보냄 } OmrClose() ; } |