포트를 통해서 연결된 장비의 직접 제어는 어떻게 해야되나요?

inviolable의 이미지

제가 열량계,유량계 등을 개발하는 제조업 회사를 다녀봤는데요.

그때 포트를 통해서 장비와 연결한다음에 c#으로 그 장비를 제어하는 프로그램을 만들었는데

설계된 프로토콜에 따라서 명령어를 포트로 쏴주고 받아서 처리하고 이런식이었거든요.

예를 들어 캠이나 기타 포트로 연결된 장비도 마찬가지로 제어하리라는 생각이 드는데

근데 문제는 그 장비의 프로토콜을 모른다는게 큰 문제인데

윈도우 운영체제 하에서는 그 장비와 직접 통신하는 것이 아니라 디바이스 드라이버를 통해 통신한다고 들었습니다.

즉, 디바이스 드라이버를 통해 프로그래밍 인터페이스를 제공하면 동일한 기능의 경우에는 동일한 방식의 프로그래밍 인터페이스로 접근해서 사용이 가능한거죠.

그 프로그래밍 인터페이스는 운영체제에 내장되어있는건가요? 그 인터페이스가 일명 opengl, opencl, openal 이라고 불리는 것들이 맞는지요???

shint의 이미지

DLL(라이브러리 파일)에 있는 함수를 사용자설명서 보면서 사용하면 됩니다.
시리얼 통신이 필요하시면 만들어도 되구요. CreateFile() 같은거로 COM1 2 3 해서 열고 닫고. 읽고 씁니다.
소켓 통신도 만들어서 사용해도 되고. 웹 브라우저 같이. 있는거 사용해도 됩니다.

OpenGL - 3D
OpenCV - 2D 영상처리
OpenAL - 오디오

DirectX
DirectShow - 비디오 영상처리
DirectMusic - 음악
DirectSound - 사운드
DirectDraw - 2D
Direct3D - 3D
DirectInput - 입력

WDK. DDK 하드웨어를 제어하는 SDK 입니다.

Windows Media SDK - 윈도우 미디어 SDK
Windows Platform SDK
Windows API - 윈도우 API
WinSock - 윈도우 소켓 ws2_32.lib

CExplorer. CWebBrwser - 웹브라우저
WinHttp. WinInet - 윈도우 인터넷 소켓
CUrl - 소켓 라이브러리
시리얼 통신을 하시리면. MFC Serial 로 검색하시면. 예제소스가 많이 있습니다.

프로토콜을 모르면. 규격을 보시거나. 업체에 문의해보셔야 합니다.

모터 ----- 시리얼 ---- 하드웨어 ----- 인터넷 ----- PC

모터 ----- 시리얼 ---- 하드웨어 ----- 시리얼 ----- PC

유선. 무선이 발달되어서. Wi-Fi로 직접 제어도 가능합니다.

TCP/IP가 된다면. 인터넷으로도 제어가 가능합니다.
Javascript 를 사용한 AJAX 로도 구현이 가능합니다.

Python. Eralng. Basic. C/C++. VC. Perl. Ruby. 등등 거의 대부분이 지원합니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

pchero의 이미지

아마도 시리얼 통신을 말씀하시는 것 같습니다.

대표적인 시리얼 통신 프로그램으로 minicom 이 있습니다.
http://pinocc.tistory.com/156

---------------------------------
제일 왼쪽이 저입니다 :)

Necromancer의 이미지

제어 포트와 프로토콜 알고 있다면 그 포트 접근해서 read/write 하면 되는거고요.
모른다면 제조사에서 제공하는 SDK와 SDK 사용법을 담은 API문서 봐야죠.

이건 가지각색이라 뭐라 말할수 없네요.

Written By the Black Knight of Destruction

inviolable의 이미지

microsoft lifecam hd-3000이라는 제품인데 sdk api설명서를 어떻게 찾아야될지ㅠㅠ 찾아도 잘 안나오네요ㅠㅠ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.