자동도서대출반납기
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

자동도서대출반납기에 대한 보고서 자료입니다.

목차

1. 개 요

2. 하드웨어 구성

3. 시나리오

4. 프로그램 구조

5. 프로그램소스

6. 고 찰

본문내용

hile(stat==0){
val = get_sensor(TOUCHSEN);
if( val <50)stat =1;
}
}
}
}
/************************************************ JAVA APPLET THREAD ********************************************/
void comuni_thread(void) //java applet을 위한 스레드
{
int server_sockfd,client_sockfd;
int stat_trace;
int server_len,client_len;
struct sockaddr_in server_address;
struct sockaddr_in client_address;
unsigned char *data_in;
unsigned char *data_out;
sleep(0.3);
printf(\"\\nJava GUI : ON\\n\\n\");
data_in=(unsigned char *)malloc(sizeof(unsigned char)*1);
data_out=(unsigned char *)malloc(sizeof(unsigned char)*1);
server_sockfd=socket(AF_INET,SOCK_STREAM,0);
server_address.sin_family=AF_INET;
server_address.sin_addr.s_addr=htonl(INADDR_ANY);
server_address.sin_port=htons(PORTNUMBER);
server_len=sizeof(server_address);
bind(server_sockfd,(struct sockaddr*) &server_address,server_len);
listen(server_sockfd,5);
client_len=sizeof(client_address);
client_sockfd=accept(server_sockfd,(struct sockaddr*) &client_address,&client_len);
while(1)
{
if(stat ==0)
{
read(client_sockfd,data_in,sizeof(unsigned char)*1);
stat =data_in[0];
sleep(0.5);
data_out[0]=book_inf;
//data_out[1]=stat;
write(client_sockfd,data_out,sizeof(unsigned char)*1);
}
}
close(client_sockfd);
free(data_in);
free(data_out);
}
/**************************************************** PROGRAM END *************************************************/
○ JAVA Client program(client.c)
#include
#include
#include
#include
#include
#include
int main(void)
{
int sockfd;
int len;
struct sockaddr_in address;
int result;
char ch=\'A\';
sockfd=socket(AF_INET,SOCK_STREAM,0);
address.sin_family=AF_INET;
address.sin_addr.s_addr=inet_addr(\"127.0.0.1\");
address.sin_port=htons(9000);
len=sizeof(address);
result=connect(sockfd,(struct sockaddr *)&address,len);
if(result == -1){
perror(\"oops:client\");
exit(1);
}
write(sockfd,&ch,1);
read(sockfd,&ch,1);
printf(\"char from server=%c\\n\",ch);
close(sockfd);
exit(0);
}
6. 고 찰
그동안 하드웨어 관련된 수업을 위주로 수강을 하다가 이번에 복학하고 처음으로 하는 소프트웨어 관련수업이라 어려움이 상당히 많았다. 4년전에 C언어를 배운게 전부였는데 그나마도 생각이 안나서 첫실험을 할 때 조금 당황했었다. 첫실험을 마치고 학기초에 남는 시간을 거의 모두 투자해서 C언어를 다시보고 리눅스를 익히고 하면서 몇주가 지나가고 금세 정규수업이 끝났다. 정규수업이 끝나고 마지막 프로젝트를 하면서 조금 거창한 것을 만들어 보고 싶었는데 구현할수 있는 것을 프로젝트로 선정하다 보니 도서대출반납기를 만들게 되었다.
프로젝트를 하면서 광센서와 각도센서가 전체동작에서 가장 중요한 역할을 수행했는데 이 센서들이 안적정인 동작을 하지 않아서 고생을 많이 했다. 광센서를 이용해서 도서코드의 흰색과 검정색을 구별하는데 블록표면의 빛의 반사 때문에 오동작을 하는 경우가 가끔 발생했고 이를 해결하기위해 책으로 쓰는 블록에 종이로 표지를 덮어서 사용해서 오동작을 많이 줄이기는 했는데 그래도 센서동작이 가끔 불안해서 오동작이 나왔다. 그리고 각도 센서의 핸들러를 이용해서 반납할 때 책을 분류하려고 했었는데 여러개의 각도센서 핸들러를 하나의 채널에 동작시킬 경우 처음 하나의 핸드러에 의한 동작만을 반복하게 되어 결국 분류동작에 각도센서를 사용할 수 없어서 시간지연을 이용해서 분류동작을 하게 했다.
여러 가지 문제점들을 발견하고 또 고치면서 하드웨어의 제어와 GUI를 구현해서 마지막 발표를 마치게 되었다. GUI의 구현이 조금 미숙했고 발표할 때 오동작을 해서 조금 아쉬움이 남긴 했지만 그래도 많은 시간과 노력이 들어간 만큼 너무 유익하고 좋은 경험을 많이 할수 있었던 실험이 었던 것 같다.
끝으로 한 학기 동안 실험 수업을 이끌어준 교수님께 감사드리며 특히 마지막 프로젝트를 위해 밤까지 같이 새며 도와주신 조교님들께 다시 한 번 감사의 말씀을 드립니다. 앞으로도 더욱 많은 학생들에게 좋은 경험이 되는 수업이 되었으면 좋겠습니다.

키워드

  • 가격2,000
  • 페이지수14페이지
  • 등록일2011.05.13
  • 저작시기2011.4
  • 파일형식한글(hwp)
  • 자료번호#5238051
본 자료는 최근 2주간 다운받은 회원이 없습니다.
다운로드 장바구니