- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
목록2011/04 (6)
드럼치는 프로그래머
Win32API 혹은 MFC를 배우다 보면 HRESULT라는 반환형이 있습니다. 이는 32비트의 signed형 정수이며 COM의 규정에 정의된 것은 아니지만 COM 인터페이스에 소속된 대부분의 함수들은 HRESULT형태의 반환값을 가진다고 합니다. (물론 직접 만들어 사용하셔도 됩니다.) 어떤 함수가 HRESULT 형태를 사용함으로서 이 함수의 상태 정보를 리턴 받을 수 있게 됩니다. 사용방법은 BOOL형의 TRUE/FALSE와 마찬가지로 SUCCEEDED/FAILED를 사용합니다. BOOL형과의 차이점이 있다면 반환형이 HRESULT라고 해서 반드시 값을 리턴받지는 않아도 된다는 겁니다. CreateWindow라는 함수를 예로 들어보겠습니다. if(FAILED(CreateWindow(...)) Mess..
BSTR을 자동화 타입에 사용되는 문자열의 자료형으로써 COM세계에서 문자열은 유니코드로 표현하도록 되어 있다. 12 H E L L O W O R L D \0 -->제일 앞 4 byte는 문자열의 길이가 입력됨 CString의 AllocSysString멤버함수를 사용하면 CString형을 BSTR로 변환 반대로는 LPCWSTR변환 연산자 사용 하면 됨 ex) CString yunju =(LPCWSTR) bstr; BSTR을 만들고 COM 개체 간에 전달할 때는 BSTR에서 사용하는 메모리 처리에 주의하여 메모리 누수를 방지해야 한다 BSTR이 인터페이스 내부에 있을 경우 사용한 메모리는 반드시 해제해야 한다. 그러나 BSTR 이 인터페이스 외부로 전달되는 경우에는 받는 개체에서 메모리를 관리. 다음의 예..
비트맵 파일 읽어들이기 CFileDialog fileDlg (TRUE, "*.*", "*.bmp", OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, "Bitmaps (*.bmp)|*.bmp||", this); if ( fileDlg.DoModal() == IDOK) { ... } 텍스트파일로 저장하기 CFileDialog SaveDlg(FALSE, NULL, "*.txt", OFN_OVERWRITEPROMPT,"TXT (*.txt)|*.txt||", this); if ( SaveDlg.DoModal() == IDOK ) { ... } CFileDialog의 2가지 사용법이에요. explicit CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefEx..
OBD-II 커넥터는 그림과 같은 핀 배열을 갖고 있습니다. 앞서 OBD-II를 위한 통신 방식이 크게 세가지가 있다고 했는데, 통신 방식에 상관없이 커넥터는 모두 동일합니다. 물론 사용하는 핀은 다르죠. 1. NC (-로 표시) 2. 버스의 양극(+) 라인 (SAE-J1850) 3. NC 4. 배터리 접지 (차대접지, 섀시 접지) 5. 신호접지 6. CAN_H (ISO 15765-4 , SAE-J2234) 7. K 시그널 라인 (ISO 9141-2, ISO 14230-4) 8. NC 9. NC 10. 버스의 음극 라인 (SAE-J1850) 11. NC 12. NC 13. NC 14. CAN_L (ISO 15765-4 , SAE-J2234) 15. L 시그널 라인 (ISO 9141-2, ISO 14230..
CAN 프로토콜의 작동 원리 각각의 노드(ECU)가 CAN 버스에 흘러 다니는 데이터를 읽거나 쓰기 위해 액세스(access)할 때 전체 노드를 제어하는 마스터(master)가 없다. 각 노드에서 데이터를 전송할 준비가 되면, 먼저 전송 준비가 되었는지를 버스에 확인하고 그 후 CAN 프레임을 네트워크에 전송하는데, 전송되는 CAN 프레임은 전송이나 수신 노드 중 어느 노드의 주소도 포함하고 있지 않으며, 대신, 고유한 ID를 통해 프레임을 분류하여 데이터를 인식하게 된다. 각 노드들이 동시에 메시지를 CAN 버스로 전송하려는 경우 최우선 순위를 가진 노드 (가장 낮은 중재 ID)가 자동적으로 버스에 액세스된다. CAN 통신을 통해 데이터를 액세스하는 과정을 살펴보면 다음과 같다. ① 먼저 CAN 버스라..
CAN 통신 CAN 프로토콜의 이해 1) CAN 프로토콜의 개요 CAN 프로토콜의 변천과정은 다음과 같다. ① 자동차용 네트워크의 표준이라고 할 수 있는 CAN(Controller Area Network)은 1986년 2월 SAE(Society of Automotive Engineers, 자동차기술자 협회)에서 독일의 로버트 보쉬사가 제안 ② 1991년 CAN 프로토콜 2.0 발표 ③ 1992년 메르세데스 벤츠사가 CAN을 채택한 자동차 출시 ④ 1993년 11월 ISO 국제표준규격으로 "ISO 11898" 공개 ⑤ 1988년 Bosch와 Intel에서 개발된 차량용 네트워크 시스템 CAN 통신은 마이크로컨트롤러들 간의 통신을 위해 설계된 시리얼 네트워크 통신방식으로 여러 개의 CAN 디바이스(devic..