그래서 코드 문서화 작업중 에 , starUML을 이용해서 와리가리서버 클래스 다이어그램을 그려보았당.
아래가 전체 클래스 다이어그램 .
( 스트리트아이디를 입력받는다던가하는 자질구레한 폼은 뺐다 -_-; )

자세한 설명을 하자면 ,,
이 클래스들은 GPS데이터를 mapping하여 , 웹서비스용 DB에 업데이트하고 , FTP서버에 사진을 업로드하는 부분의 클래스들이다.

CGpsPicture 클래스가 , 매칭된 CPictureFile클래스와 CGps 클래스의 인스턴스들을 포함하며 , DB에 보낼 쿼리를 생성하는 클래스이다.
CGps 클래스와 CPictureFile클래스는 말 그대로 GPS데이터와 , 사진파일의 데이터를 가지고있는 Entity 클래스이다.
frmUploadPicture 클래스는 C#에서의 Winform을 상속받은 클래스로 , 한마디로 폼이다 (응?=_=) . CGps클래스와 CPictureFile클래스 , CGpsPicture파일 클래스들의 리스트를 멤버변수로 가지고 있다가 , 쓰레드를 돌려서 매칭하고 , DB에 데이터를 업데이트하고 , FTP에 사진을 업로드한다.
.
.
.
아래 클래스들은 , 로봇과 TCP/IP 프로토콜을 이용하여 통신하고 역시 TCP/IP프로토콜을 이용하여 사진파일을 받는 부분의 클래스들이다.

CPacket클래스는 , 로봇에서 주는 stream형태로 오는 TCP소켓의 데이터를 byte배열의 형태로 받아 파싱하여 , 어떤 커맨드인지를 자기자신의 멤버변수에 저장하는 역할을 한다. 물론 , 반대역할도 수행한다. 서버에서 로봇에게 주는 명령을 byte배열로 변환하기도 한다.
CPhotoPacket클래스는 , 로봇에서 사진을 전송받을때 , 사진파일 데이터의 헤더를 먼저받아 사진파일명이 무엇인지 , 파일의 크기는 어떻게되는지를 파싱해서 자기자신의 멤버로 저장하는 역할을 한다.
frmMain클래스는 , C#의 Winform을 상속받은 클래스로 폼이다. private멤버로 , 명령을 받는 m_server Socket과 , 사진을 전송받는 m_photoServer Socket이 있고 , 각각의 소켓을 동기식으로 수신하는 m_serverThread , 역시 사진을 동기식 소켓으로 수신하는 m_photoThread 쓰레드 인스턴스가 있다.
.
.
.
.
뭔가 .. =_=
별로 설명이 잘되진 않았지만! 이건 정식문서가 아니므로 패스!!!
기원이형한테 문서화를 배우고나서 다시한번더!! =_=ㅋㅋㅋ
이제 막바지 단계!!!
힘내자!!
.
.
.
.
P.S
이놈이 와리가리 5호!!!
구조가 좀 더 심플해졌고 , 더 튼튼해졌고 ,
거기다가 전의 전륜구동이 아니라 , 후륜구동에 , 앞의 두 바퀴는 조향을 담당하게 되었다.
결론은 , 꽤나 많은 구조변경이 있었다는 이야기 ~ =_=


