일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 직무부트캠프
- 라이다
- 카메라
- Python
- LIDAR
- 논문리뷰
- spinnaker
- point grey
- 5월종합소득세
- intrinsic
- 코멘토 후기
- 42seoul #printf
- FLIR
- 객체인식
- miniRT
- ouster
- AOLP
- ft_server
- 코멘토
- superresolution
- 42seoul
- stereo image
- extrinsic
- 의사 라이다
- 편광카메라
- pseudo LiDAR
- 동시취득
- 삼쩜삼
- 3d object recognition
- 머신비전
- Today
- Total
문무겸비
c++을 이용한 serial 통신 본문
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=wlsgk123123&logNo=10114850860
[MFC] GPS 수신 및 시리얼통신
MFC를 이용한 GPS 신호 수신 개발 환경 : Windows 7 (64 bits) / Visual Studio 2010 모델...
blog.naver.com
comm.cpp 코드
https://heroeskdw.tistory.com/entry/WaitCommEvent-%ED%95%A8%EC%88%98
WaitCommEvent 함수
Waits for an event to occur for a specified communications device. The set of events that are monitored by this function is contained in the event mask associated with the device handle. 지정된 통신 장치에서 발생하는 이벤트를 기다린다.
heroeskdw.tistory.com
[C/C++] 시리얼 통신 (Serial Port)
최근 회사에서 GPS 수신을 위해 Serial 통신 관련 개발을 잠깐 하게되어 포스팅 합니다. 어짜피 GPS가 아니더라도 Serial 통신이란게 어짜피 Com Port 를 통해 Read Write 하는 구조는 같고, 이외에도 써먹
mnlt.tistory.com
SerialPort.cpp, 대충 쓴 코드
https://psychoria.tistory.com/97
GetLastError() 함수를 통한 에러 확인
Windows 프로그래밍을 할 때 에러를 확인하기 위해서 GetLastError() 를 사용합니다.GetLastError() 함수의 원형은 다음과 같습니다. DWORD WINAPI GetLastError(VOID) GetLastError()는 가장 최근의 에러의 번호를 리턴
psychoria.tistory.com
시리얼 통신_OVERLAPPED 구조체를 이용하여 비동기 읽기를 해보자
비동기 OVERLAPPED 읽기 수행하기 일단 비동기 read부터 알아보자. 역시나 백문이 불여일견이니 코드부터 보자 DWORD CSerialz::ReadData(BYTE *pBuff, DWORD nToRead) { DWORD dwRead; DWORD dwError; //COMSTAT은 현재 읽기,
goodjian.tistory.com
serial 데이터를 받을 때 아래와 같은 에러가 생긴다.
#define EV_ERR 0x0080 // Line status error occurred
//EV_ERR는 아래 중 하나에 해당한다
#define CE_FRAME 0x0008 // Receive Framing error
#define CE_RXPARITY 0x0004 // Receive Parity Error
#define CE_OVERRUN 0x0002 // Receive Overrun Error

https://m.blog.naver.com/lhk0523/140174410064
SetCommMask 함수 사용간 주의점
세상 살면서 가끔씩은 아프기도 하고 골치아픈 일로 속을 썩이곤 합니다. 이쪽 일을 하면서 너무나 당연시(...
blog.naver.com
SetCommMask, WaitCommEvent
문제해결
SetCommMask(m_hComm, EV_BREAK | EV_CTS |EV_ERR| EV_RING| EV_RLSD| EV_RXFLAG| EV_TXEMPTY |EV_RXCHAR)
위 코드를 아래 코드로 바꾸면 된다.
SetCommMask(m_hComm, EV_RXCHAR)
handler에서 인식할 event를 지정하는 부분이데, RXCHAR는 데이터가 정상적으로 들어왔다는 뜻이고, 나머지는 여러 에러 종류이다. 아래처럼 바꾸게 되면 정상적으로 데이터가 들어올 때만 event가 발생하고, 정상적으로 데이터 출력이 된다.
추천되는 코드 형태는 모든 경우의 수를 포괄하여 경우에 맞게 동작하게 만들면 좋겠는데, 잘 안된다. 아래처럼 바꾸면 아무튼 된다.
'개인공부' 카테고리의 다른 글
센서간 캘리브레이션 개요 (0) | 2024.01.26 |
---|---|
FLIR+LUCID 카메라 취득프로그램 개발기 - with Visual Studio (0) | 2023.02.24 |
PCL (point cloud library) 뜯어보기 (0) | 2023.01.11 |
편광카메라 이미지 분석 (0) | 2022.12.09 |
super reolution 프로젝트 따라하기, Simulation-based Lidar Super-resolution for Ground Vehicles 리뷰 (0) | 2022.05.31 |