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

0
points

현재 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를 기다리다가 오면 전송을 해야하거든요...

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

예전 자료.

0
points

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

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

예전에 제가

0
points

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

http://agbird.egloos.com

네... 질문을 더하자면.

0
points

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이 올 때 까지 기다려야 하는데 이 기다리는 부분을 어떤 식으로 처리해야 하는지 모르겠네요.. 도움을 주실분..흑..

상황을 정확히 잘

0
points

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

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

ydongyol의 이미지
2085
points

궂이 CDMA모듈을

0
points

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

http://www.gpsdmb.co.kr/front/php/product.php?product_no=7646&main_cate_...

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

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.