windows programming term project

17
2007 학학학 2 학학 학학학 학학학학학 Windows Programming Term Project 학학학학 : 학학학 학학학 학학학 : 학학학 학학 : 20022997 [email protected] bruceKim.egloos.com Sensor Network Analyze

Upload: thu

Post on 05-Feb-2016

63 views

Category:

Documents


0 download

DESCRIPTION

Sensor Network Analyzer. Windows Programming Term Project. 담당교수 : 이상정 교수님 발표자 : 김인태 학번 : 20022997 [email protected] bruceKim.egloos.com. 목차. Project 개요 소개 개발환경 사용장비 참고문헌 및 웹사이트 설계 동작 순서 TCP/IP 통신으로 데이터 받기 Message 분석및 처리 Class Diagram Graph 그리기 실행화면 결론 및 문제분석. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

Windows Programming Term Project

담당교수 : 이상정 교수님발표자 : 김인태학번 : [email protected]

담당교수 : 이상정 교수님발표자 : 김인태학번 : [email protected]

Sensor Network Analyzer

Page 2: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

1. Project 개요1. 소개2. 개발환경3. 사용장비4. 참고문헌 및 웹사이트

2. 설계1. 동작 순서2. TCP/IP 통신으로 데이터 받기3. Message 분석및 처리4. Class Diagram5. Graph 그리기

3. 실행화면4. 결론 및 문제분석

목차

Page 3: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

1. 소개 Sensor Network 에 대한 자료가 많이 없어서 공부하기가 쉽지 않은데 보다 더 편하게 공부하도록 도움을 주는 프로그램을 개발하고자 하는 생각에 이번 Term Project 의 주제를 Sensor Net-work Analyzer 로 정하였다 . 우선은 Surge application 에 집중하였고 , NesC 로 작성되어진 Surge 에서 RF 통신으로 보내어지는 Surge message 에 데이터가 추가되거나 변경되어도 Analyzer 프로그램에서 설정할 수 가 있어서 , 제대로된 값을 받아 볼 수 있도록 하는 것이 목표이다 . 또한 받은 데이터들을 그래프로 출력하여 시각적으로 분석하는데 도움을 주고자 하였다 .

1. Project 개요

Page 4: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

2. 개발환경• Visual Studio 2005, Visual C# 2005 Express• .Net FrameWork 2.0• TinyOS ver1.1.15

– Surge application

3. 사용장비• Programming Board : Micaz(mpr2400)• Gateway board: mib600• Sensor mts310, mts300

– 조도 , 온도 , 가속 x, y 자력 x, y, 소리 를 센싱할수 있다 .– mts300 은 자기계와 가속계만 없다

Page 5: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

4. 참고문헌 및 웹사이트• 강의 교재 ( 비주얼 C#2005 익스프레스로 배우는 C#2.0 프로그래밍 - 박상현 )• Programming Microsoft Windows with C# - Charles Petzold• TCP/IP 소켓 프로그래밍 C# 버전 – Makofske/Donahoo/Calvert• Mote-kit 를 이용한 무선 센서 네트워크 활용 – 남상협• Hmote 기반 무선 센서네트워크 응용과 실습 – 하이버스㈜• ZigbeX 를 이용한 유비쿼터스 센서 네트워크 시스템 – ㈜한백전자 기술연구소• Mpr2400, mts310, mts300 매뉴얼 (MPR-MIB_Series_Users_Manual_7430-

0021-07_A.pdf)• 2006 년 학사학위 논문 ' 무선 센서 네트워크와 SECS 프로토콜을 이용한

모니터링 시스템의 구현 ' ( 노완호 , 김상균 , 반웅 )

• http://www.tinyos.or.kr 국내 TinyOS Forum• http://www.tinyos.net TinyOS Community Forum• http://cafe.naver.com/bluegio MSP430MCU 임베디드 TinyOS 카페 • http://www.hybus.net Micaz Kit 판매 사이트

Page 6: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

1. 동작 순서

2. 설계

MainForm

• 연결하기

• 종료하기

• 데이터구조 설정

연결(TOSListen)

• 1 바이트씩 읽어와 싱크 비트와 종료 비트를 검사하여 버퍼에 메시지 완성하기

• 로그창에 메시지정보 출력하기

• Listview 에 데이터 출력하기

• 그래프 표현하기

종료

Page 7: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

– Gateway Board 인 MIB600 에 Tcp 서버가 동작 하고 있으므로 , Client 쪽을 설계하여 접속한다 .

– Client 에서 받은 메시지에서 시작 Sync 와 종료 Sync 는 '7E’ 이다 . 또한 수신 되는 메시지 중에서 '7D 5E’ 의 2 바이트는 원래 ‘ 7E’ 인 1 바이트 데이터가 변경된것이고 , ‘7D 5D’ 는 ‘ 7D’ 의 1 바이트 의 데이터가 변경되는 등 RFC1662 문서에 따라 메시지가 들어오게 된다 .

– 그리고 Little-Endian 을 사용하기 때문에 , 2 바이트 이상 해석해야할 경우 주의를 기울여야 한다 .

– Read() 메쏘드로 데이터를 읽어오는데 1 바이트씩 읽어서 , RFC1662 문서에 나온 내용을 참고하여 적절하게 변경한 후 , 버퍼에 집어넣어 사용한다 .

TCP/IP 통신으로 데이터 받기

Page 8: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

– Mts310 센서는 온도 , 조도 , Accelerometer x 축과 y 축 , Magne-tometer x 축과 y 축의 정보를 수집할 수 가 있는데 , TCP/IP 에서 보내주는 데이터는 Row 데이터 이므로 , 적절한 변환 공식을 통하여 변환되어야 한다 .

– 조도 값 같은 경우는 단순히 밝고 어두움만을 센싱하는 포토셀이이고 온도는 섭씨로 출력된다 . 그리고 가속계과 자력계의 단위는 mg 이다 .

– 해당 하는 변환식은 TinyOS 설치 폴더의 tinyos-1.x\contrib\xbow\tools\src\xlisten\xconvert.c 파일을 참고하였다 .

Message 분석및 처리

Page 9: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

Class Diagram

Project 전체 구조

Page 10: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

Class Diagram

수신한 데이터를 저장하는 Class

Page 11: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

Class Diagram

TCP 통신으로 데이터를 받아오는 역할을 하는 Class

Page 12: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

Class Diagram

수신한 데이터를 적절하게 변경하는 Class

Page 13: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

Class Diagram

그 외의 Class 들

메시지 형식을 설정하는 역할을 하는 Class

프로그램 정보를 나타내는 Class

Project 내에서 사용되는 상수나 enum 을 정의해 놓음

Page 14: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

• 7 장 Report 에서 사용한 C2DPushGraph.dll 을 사용하여 그래프를 추가 하였다 .

• 현재 수신되고 받은 node 만큼의 그래프 라인을 생성하여 , 각각 그래프로 출력하여준다 .

• 그래프로 출력시킬 종류는 현재 수집되고 있는 센싱정보를 콤보박스로 만들어 선택할 수 있도록 한다 . 또한 Grid 표시의 선택이 가능하다 .

Graph 그리기

Page 15: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

3. 프로그램 실행 결과

Page 16: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

• 프로젝트 진행 효과– Sensor 에서 처리 되어지는 메시지 형식에 대하여 더 자세하게 알 수 있었고 ,

Surge 를 이용하여 다양한 알고리즘을 ( 에너지 최적화 등 ) 연구하고 , 적용된 모습을 쉽게 알 수 있다 .

• 어려웠던 점– 서로 다른 인스턴스간에 정보를 전달하고 전달 받는 부분이 애매하여 고민을

하였는데 , 이벤트를 통해서 해결하였다 .

• 문제분석– 1 바이트씩 읽어서 싱크비트와 종료비트를 검사하여 하나의 메시지를 만든다음에

데이터를 Tos_msg 형식별로 분류하거나 변환식에 의해 가공되고 리스트뷰에 데이터를 넣는 등 많은 처리를 하게 되는데 , 그렇다면 이러한 일을 처리하는 동안 다음 메시지를 못읽는 상황이 발생하지 않을까하여 더블 버퍼링을 사용하여야 하나 생각 해 보았으나 , Network 수업을 통해 Tcp/ip 는 신뢰성 통신으로서 , TCP 큐에 쌓아져 보관 되고 있으므로 그런 경우까지는 고려하지 않아도 된다는것을 배웠다 .(jitter, delay of delay 등의 이슈로 많은 연구가 이미 이루어져있음 )

4. 결론 및 문제 분석

Page 17: Windows  Programming Term Project

2007 학년도 2 학기 윈도우 프로그래밍

– Mts310 의 온도 센서 같은경우 , INT2 을 사용하여 센싱값을 수집하는데 , INT2 가 다른 것 과 충돌을 일으키는 경우가 빈번하여 온도값을 수집하려고 하면 센서node 에서 데이터 자체를 RF 통신으로 전달하지 못하였다 . 하이버스사에 전화로 문의 하여 INT2 가 충돌을 일으키므로 , PW0 으로 바꿔 주어야 한다는 답을 얻고 문제를 해결하였다 .

• Tinyos-1.x\tos\sensorboards\micasb\sensorboard.h 에서 TOSH_ALIAS_PIN(TEMP_CTL, INT2) 부분을 TOSH_ALIAS_PIN(TEMP_CTL, PW0) 과 같이 고침

• 향후 과제– 수집되는 데이터들을 데이터베이스에 저장하여 , 지난 정보까지 추적할 수 있도록

하는 기능을 구현해야 할 것이다 . 데이터베이스가 연동이 된다면 , 그래프를 더 자세하게 그리고 이전 데이터들을 표현할 수 있을 것이다 .

– 그리고 각 센서노드마다 다른 정보를 수집하여 보내질 수 있으므로 , 센서노드마다 메시지 구조를 다르게 설정하도록 구현하는 기능도 포함되면 좋을 것이다 .

– 마지막으로 이번 프로젝트는 Surge 를 기반으로 작성하였는데 , 다른 application에서 제공하는 메시지 형식 ( 오실로스코프 등 ) 도 받아 볼수 있도록 확장해야 하겠다 .