CDMA모듈을 이용한 SMS/TCP 송/수신 관련 개발 경험이 있으신분 ..

coathanger의 이미지

현재 CDMA관련하여 CDMA AT-Command를 이용하여 tcp 및 sms 서비스 관련 개발을 하고 있습니다.
다름이 아니라..개발 언어는 C 입니다.
TCP를 이용한 데이터 서비스를 하려고 할 때, 아래와 같은 접속 절차를 따르지요.
1. at*tcp*open -> TCP_OPEN
2. at*tcp*con = 123.456.789.11,8181 -> TCP_CONNECT

헌데 제가 궁금한 것은 보낼 데이터가 있어서 서버로 tcp 접속을 시도 시 위 절차의 TCP_CONNECT를 받은 후에 데이터를 보내야 하는데 이 처리를 어떻게 해야하는지 잘 몰라서입니다.

일단 기본적으로 CDMA모듈은 Serial로 연결되어 있어서, 내부적으로 시리얼 통신을 합니다.

1. 보낼 데이터가 있다.
2. 서버 접속 시도
3. TCP_CONNECT를 받으면 데이터 전송.

3번을 어떻게 처리해야 하는지 모르겠습니다.. 참고로 서버 접속을 시도하고 TCP_CONNECT를 받는데 걸리는 시간은 예측을 못합니다. 즉 TCP_CONNECT를 기다리다가 오면 전송을 해야하거든요...

관련 개발자분이 계시면 도움을 받고 싶습니다.

엠브리오의 이미지

아주 옛날 자료인데 혹시나 도움이 될런지 모르겠네요.

http://kelp.or.kr/korweblog/stories.php?story=02/07/10/5881377

gimmesilver의 이미지

예전에 제가 사용하던 방식과 연결 방식이 다르군요...
어쨌든 만약 질문하신 분의 방식대로 TCP 연결이 성공하고 나면 그 다음부터는 그냥 소켓 통신을 하면 됩니다. 내부적으로 PPP 접속이 완료되고 나면 PPP 스택 윗 부분은 일반적인 TCP/IP 스택을 그대로 쓰기 때문에 유선 통신과 차이가 없습니다.

http://agbird.egloos.com

------------------------
http://agbird.egloos.com

coathanger의 이미지

1. at*tcp*open 을 시리얼에 씁니다. 성공 시 -> TCP_OPEN을 뱉습니다.
2. at*tcp*con = 123.456.789.11,8181을 시리얼에 씁니다. -> TCP_CONNECT를 뱉습니다.

그러나 성공 값(TCP_OPEN, TCP_CONNECT)이 바로 출력되는 것이 아니라 약간의 시간차가 있습니다. 또는 접속이 안되면 계속 응답이 없겠지요..

제가 모르는 것은.. at*tcp*open을 날리고 TCP_OPEN이 오면 다음 문장을 실행시켜야 하거든요. 즉 TCP_OPEN이 올 때 까지 기다려야 하는데 이 기다리는 부분을 어떤 식으로 처리해야 하는지 모르겠네요.. 도움을 주실분..흑..

gimmesilver의 이미지

상황을 정확히 잘 모르겠지만 질문하신 분의 실제 문제는 CDMA 통신 방법에 있는게 아니라
시리얼 통신을 non-block 모드로 처리하는 방법에 대한 것 아닌가요?
시리얼 통신 프로그래밍에 대해서 검색을 해보시는 것이 좋을 것 같습니다.

------------------------
http://agbird.egloos.com

------------------------
http://agbird.egloos.com

ydongyol의 이미지

궂이 CDMA모듈을 써야될 이유가 없다면
요즘 서비스 되는 HSDPA 같은걸 써보시는게 어떤가요?
요금도 정액제이고... CDMA모듈은 조금만 써도 전화비가 많이 나오더라구요..
문제는 USB방식이라 일반 마이크로 프로세서랑 붙이기가 불가능하다는...

http://www.gpsdmb.co.kr/front/php/product.php?product_no=7646&main_cate_no=92&display_group=1

--
Linux강국 KOREA
http://ydongyol.tistory.com/

--
Linux강국 KOREA
http://ydongyol.tistory.com/

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.