- 2009.05.07 -- 4월 24일 3차 발표 당시 소스
- 2009.04.28 -- 전광일 교수님 주간 진도보고
- 2009.04.23 -- wince mfc 에서 엔터키를 눌렀을때 꺼지지 않게 위한 방법
- 2009.04.23 -- 넓은 화면 새로운 구성
- 2009.04.16 -- 태현이꺼 수정 (SMS SENDER)
- 2009.04.16 -- 태현이형네 cdma 소스
- 2009.04.14 -- 4월 15일, 4월 24일 졸업작품 프로토타입 발표자료
- 2009.04.10 -- 한글점자변환소스
- 2009.04.02 -- 4월 1일 졸작발표
- 2009.03.31 -- 한글과 점자 인터페이스 설계
- 2009.03.24 -- 휴인스에 문의한 키패드 답변
- 2009.03.18 -- 발표용 프로토타입
- 2009.03.18 -- 프로토타입
- 2009.03.18 -- 3월 18일 전광일 교수님 발표
- 2009.03.16 -- 보드에 성공적으로 올림 1
- 2009.03.16 -- 점자 입출력 방안 1
- 2009.03.16 -- 이런 모양은 어때? 1
- 2009.03.12 -- 다이얼로그를 이용한 메뉴구성
- 2009.03.10 -- 점자출력기 분석
- 2009.03.07 -- 점자출력기 DLL
- 2009.03.06 -- 키보드 메시지 강제 발생시키기
- 2009.03.04 -- 한글 + MFC 가능한 Win CE Emulator SDK 3
- 2009.02.27 -- 2/27 발표 자료
- 2009.02.23 -- 데모환결설게서
- 2009.02.22 -- 시험 절차서 1
- 2009.02.19 -- 설계서
- 2009.02.10 -- 유니코드에 관련된 소스
- 2009.02.04 -- 2. 3 전광일 교수님 지도학생 점검 1
- 2009.01.29 -- CE 한글로 기본언어 설정하기
- 2009.01.29 -- Windows Embedded CE 6.0 에서 dll 드라이버 설치하는 법.
wince mfc 에서 엔터키를 눌렀을때 꺼지지 않게 위한 방법
App 클래스에
PreTranslateMessage(MSG* pMsg)
함수를 오버라이드한다.
함수 내용
if(pMsg->message == WM_KEYDOWN)
{
AfxMessageBox( TEXT("KeyDown"), NULL, NULL);
switch( pMsg->wParam )
{
case VK_RETURN:
return TRUE;
break;
}
}
WM_KEYDOWN 일때
엔터키가 눌린경우 true 를 리턴해서 프로그램이 꺼지지 않음
한글점자변환소스
점자변환 인터페이스
extern int JumjaToHangul(CEL jCel, TCHAR *hangul);
extern int HangulToJumja(LPTSTR hangul );
사용하면되여
extern int JumjaToHangul(CEL jCel, TCHAR *hangul);
extern int HangulToJumja(LPTSTR hangul );
사용하면되여
한글과 점자 인터페이스 설계
유니코드 완성형을 초성,중성,종성으로 나누면 각각에 대한 index값을 추출할수 있음.
이 index값을 점자로 매핑시키면됨.
문제될거 있으면 얘기점..
휴인스에 문의한 키패드 답변
해당 제품을 이용해서 개발하고 있는데 운영체제는 wince 5.0 을 사용하고 있습니다.
그중에 키패드 드라이버 소스를 보면 (gpio_sw_drvr.c)
그 중에 키패드가 눌려졌는지 확인하는 함수( IntrThread(PVOID pArg) )
에서 키패드가 눌려졌으면
MessageBox 로 키패드가 눌려졌는지 알 수 있게 해주는데
어느 버튼을 눌러도 이 메세지가 나오게 됩니다.
키패드 버튼을 눌렀을때 어떤 버튼을 눌렀는지 알 수 있는 방법이 있을까요?
[답변]
안녕하세요. 임베디드팀입니다.
인터럽트가 발생하면, FPGA의 값을 읽어서 어떤 키패드가 눌렸는지 확인이 가능합니다. 0x14000004주소의 값을 읽어 보면 됩니다.
그중에 키패드 드라이버 소스를 보면 (gpio_sw_drvr.c)
그 중에 키패드가 눌려졌는지 확인하는 함수( IntrThread(PVOID pArg) )
에서 키패드가 눌려졌으면
MessageBox 로 키패드가 눌려졌는지 알 수 있게 해주는데
어느 버튼을 눌러도 이 메세지가 나오게 됩니다.
키패드 버튼을 눌렀을때 어떤 버튼을 눌렀는지 알 수 있는 방법이 있을까요?
[답변]
안녕하세요. 임베디드팀입니다.
인터럽트가 발생하면, FPGA의 값을 읽어서 어떤 키패드가 눌렸는지 확인이 가능합니다. 0x14000004주소의 값을 읽어 보면 됩니다.
보드에 성공적으로 올림
문제점 : Emulator 의 해상도를 800 X 600 으로 만들었는데, 보드는 800 X 480 임-_-
255는 640 X 480, 따라서 255와 270의 해상도 비율이 다름.
점자 입출력 방안
유니코드들은 모두
각 코드들마다 고유 번호가 붙어 있음
그 각각의 글자에 맞게 점자들을 구성함 1:1로
wince 에는 edb 라는 데이터베이스가 기본적으로 내장되어 있으므로
이 데이터베이스를 사용하여
유니코드 / 점자
가 각각의 코드
나
다
를 사용하여 하나의 커다란 테이블을 만들면
유니코드 <-> 점자의 변환이 쉬울것으로 생각됩니다.
좋은 의견 있으면 남겨주세요~
다이얼로그를 이용한 메뉴구성
아무리 봐도 별로야.
점자출력기 분석
점자출력기 DLL 파일의 헤더파일 중
BOOL SendSyncBrl(char *pattern);
점자출력기에 점자를 보내는 함수임.
여기서 패턴이라 함은 점자출력기에 표현될 패턴인데
이것은 숫자로 나타낼 수 있다.
하나의 셀에는 8개의 점이 있는데
1 8
2 16
4 32
64 128
로 표현되어 지며
예를들어
1, 2, 4 점자를 올리고 싶은 경우
1+2+4 를 더한 값인 7을 해당 첨자에 써 주면 된다.
점자출력기 DLL
사용법은
SyncBrailleDLL.h include 한 다음
함수앞에 DLLEXPORT 를 DLLIMPORT 로 교체
프로젝트 설정에서 Link 탭
SyncBraille.lib 추가
하고 사용하면 됨
키보드 메시지 강제 발생시키기
키보드를 누르지 않아도
키보드가 눌린 것처럼 메세지를 강제로 발생시킬 수 있는 함수가 있습니다.
원형은
VOID keybd_event (BYTE bVk, BYTE bScan, DWORD dwFlags, DWORD dwExtraInfo)
이고 각각의 파라미터를 살펴보자면
bVk
발생할 버추얼 키 값
bScan
발생할 하드웨어 키 값
dwFlags
옵션
KEYEVENTF_SILENT <- 키보드 이벤트 발생
KEYEVENTF_KEYUP <- 키보드에서 손을 뗀 효과
dwExtraInfo
추가 정보
예제
case WM_LBUTTONDOWN:
keybd_event(VK_SHIFT, 0, KEYEVENTF_SILENT, 0);
keybd_event('8', 0, KEYEVENTF_SILENT, 0);
keybd_event('8', 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
이 예제는 마우스 왼쪽 버튼을 눌렀을때 발생하는 메세지인데
shift 키를 누르고 -> '8' 번 키를 누르고 -> '8'번 키를 떼고 -> shift 키를 떼는 동작입니다.
다시 정리하자면 마우스 왼쪽버튼을 누름 -> shift 키를 누른 상태에서 8번 키를 눌렀다가 뗀 것으로 인식됨
한글 + MFC 가능한 Win CE Emulator SDK
이거 받아서 압축 풀고 설치 (나중에 프로그램 추가/삭제로 깔끔하게 지울 수 있음)
-> 내가 완전 고생해서 만든거임
그리고 embedded visual c 에서 아래와 같이 언어를 korean 으로 다 바꾸어 준다.
그러면 다음과 같이 한글 잘 됨.
Windows Embedded CE 6.0 에서 dll 드라이버 설치하는 법.
CE에 특정 디바이스를 추가하기위해서 드라이버를 설치해야 할 때가 있다.
inf 파일과 dll 파일로 제공되는 경우,
1. 해당 회사에서 제공한 레지스트리 코드가 있을 것이다. 이것을 project.reg 에 추가한다.
이 때 자신의 디바이스와 맞게 키를 설정해 줘야하는 경우가 있다.
2. inf 파일과 dll 파일을 wince설치폴더\PLATFORM\해당디바이스\FILES 폴더에 복사한다.
inf 파일내용도 디바이스에 따라서 메모장으로 열어 수정해줘야하는 경우가 있다. (PID,VID를 바꾼다던가 하는 경우)
3. project.bib에 다음내용을 추가한다. 만약 제공된 파일 이름이 ftdi_ser.dll 이라면,
ftdi_ser.dll $(_FLATRELEASEDIR)\ftdi_ser.dll NK SH
FTDIPORT.INF $(_FLATRELEASEDIR)\FTDIPORT.INF NK SH
4. SYSGEN !
혹은 그냥 windows 폴더안에 inf 파일이랑 dll 파일을 넣은 후 부팅시 드라이버 이름을 넣으라고 하면 해당 dll 이름을 넣으면 된다.
아무 메세지가 안뜨면 설치 된 것이다.
혹은 그냥 windows 폴더안에 inf 파일이랑 dll 파일을 넣은 후 부팅시 드라이버 이름을 넣으라고 하면 해당 dll 이름을 넣으면 된다.
아무 메세지가 안뜨면 설치 된 것이다.