2012-04-05 5 views
1

나는 시리얼 포트에 쓸 수있는 방법을 찾기 위해 몇 시간을 기다렸다. 내가 찾은 모든 방법을 구현할 수 없었습니다. Recvfrom() 함수에 대해 현재 사용하고있는 프로그램에서 미리 머리말을 비활성화해야합니다 (문제인지 여부는 확실하지 않습니다). 그래서 기본적으로 물어 보는 것은 직렬 포트를 통해 변수를 전송하는 방법이 있는지, 그렇다면 가장 쉬운 방법은 무엇입니까?직렬 포트에 쓰기 (C++/Windows)

+0

여기에 약간의 설명이 도움이 될 것이라고 생각합니다. 'recvfrom'은 소켓과 함께 사용됩니다. 직렬 포트 (Windows에서)를 읽으려면 보통'ReadFile' 또는 비슷한 것을 사용합니다. 정말로 네트워크 연결, 직렬 포트 또는 직렬 포트를 통해 소켓 연결을 만드는 SLIP 또는 PPP와 같은 것을 다루고 있습니까? 또한, 제목은 글쓰기를 말하지만, "recvfrom"은 읽기를위한 것입니다. –

+0

[직렬 포트에 대한 기본 지원] (http://www.boost.org/doc/html/)이있는 [Boost.ASIO] (http://www.boost.org/libs/asio/)를 사용하는 것이 좋습니다. boost_asio/overview/serial_ports.html). [Here] (http://dl.dropbox.com/u/10282384/asio_presentation_with_story.pdf)는 ASIO를 어떻게 적절하게 사용해야하는지에 대한 훌륭한 개요를 보여주는 BoostCon 2010 슬라이드입니다. – ildjarn

+0

죄송합니다 Recvfrom 네트워크를 통해 보낸 가상 컴퓨터에서 다른 변수를 받았다. – Linked

답변

3

미리 컴파일 된 헤더는 실제로 문제가되지 않습니다. 라이브러리를 작성하는 대신 다른 코드를 프로젝트에 직접 포함하는 경우 해당 코드에 #include stdaxf.h을 추가해야 할 수도 있고, .h 및 .cpp 파일을 코드 파일에 직접 저장하십시오.

serial port directly in win32으로 이야기하고 싶다면 충분히 쉽습니다. 큰 문제는 스레딩을 처리하고 새로운 데이터가 도착할 때까지 기다리는 것입니다. 그러나 응답을 기다리는 동안 보내고 앉아 그냥하려는 경우 간단합니다.

0

QT와의 직렬 통신을 위해 qextserialport 라이브러리를 사용할 수 있습니다.

0

다음은 msdn 설명서에서 recvfrom() 함수에 대한 링크입니다. 샘플도 포함되어 있습니다. http://msdn.microsoft.com/en-us/library/windows/desktop/ms740120%28v=vs.85%29.aspx VS2010에서 아무 문제없이 컴파일했습니다.

은 그냥 CPP 파일의 첫 번째 라인은

#include "stdafx.h" 

가, 그렇지 않으면 당신은 컴파일러 및 링크 오류가 모든 종류의로 실행됩니다 있는지 확인하십시오. 이전에 작성한 내용을 따르는 경우 미리 컴파일 된 헤더는 문제가되지 않습니다.

희망이 있습니다.

관련 문제