본문 바로가기
코스웨어/15년 스마트컨트롤러

20150714 - 23번 이량경 소켓 1:1 채팅 {server, client} / GoalPosition

by 알 수 없는 사용자 2015. 7. 15.
728x90
반응형
<시스템제어><C++>

<첨부파일>


//수정.

client.c


//수정

makefile


✔ listen 
- return type : int


✔ makefile
- make server 하면 server실행파일 생성으로 착각한다. 
- 그래서 라벨을 변경해야한다.
- server -> ser
- client -> cli




✔ accept
- accept 가 반환하는 것은 새로운 소켓이다. -> 구조체를 재활용한다.


<incomming :: telnet test>
- server에 접속 test할때 telnet으로도 할수있다.
- 텔넷 서버와 텔넷 클라이언트 기능을 사용으로 셋팅되어있어야 된다.



<accecpt 대기상태>


- telnet IP Port번호
- 텔넷으로 접근을 시도하면 서버에 외부 접근을 확인할수 있다.
* bind안되면 Port 7777(헤더 파일에서) 다른 포트로 변경하면 된다.



<소켓구조체 :: client 확인>



<echo server>
- 에코 : 돌아옴. 
- 텔넷으로 보내면 다시 텔넷으로 보낸다. 
- 에코서버, 메아리 서버 라한다.


<문열었으면(클라이언트가 왔다) 서버 소켓은 닫는다>
- server를 여는 다쓴 소켓 껍질 isock는 닫는다. 




<client>
* 클라이언트의 기본 구조는 서버와 거의 동일하다.
- accept와 connect와는 동격이므로 accept를 참고하면 된다.




<기초 회로>

✔ 주요명령 함수화 -> 메인함수 간소화
✔ 각도 회전, 골포지션, 보레이트 변경
✔ 모터 돌리기가 되었으면 자동문설계 할 것.
     - switch ON : 문열림
                 ON 유지시 문열림 유지
                 OFF gn 15초 후 문 닫힘.
     - SW없을시 점퍼선 이용.

3FF(16) = 1023(10)
<motor>

<Mega>


300 의 값이 1023이니 약1이 0.29도다.
- 15도 = 값 52 가 된다.


< 주요기능 함수화 >

- 각도 조절 까지 밖에..

<GoalPosition 설정 함수>
/* Goal값 변경함수 goal는 0(0도) ~ 1023(300도)*/ 
void GoalPosition (volatile unsigned char * inst_data, unsigned int goal1023) //index 6(L),7(H)
{
  *(inst_data +6= goal1023;    //L bit
  *(inst_data +7= goal1023>>8;  //H bit(2^9, 2^10)
}

void Inst_init(void)
{
  check_sum(baudArr,sizeof(baudArr));
  check_sum(baud9600Arr,sizeof(baud9600Arr));

  GoalPosition(inst_set1,511);//datasheet 그림상으로:150도
  check_sum(inst_set1,sizeof(inst_set1));

  GoalPosition(inst_set2,207); //datasheet 그림상으로:60도
  check_sum(inst_set2,sizeof(inst_set2));
}

< Devices Buad rate 변경함수 >
void baud_changeInit(void)
{
  USART0_init(BAUD1M);        //메가 보레이트 1Mbps변경  
  //inst baud
  for(volatile unsigned int i = 0; i< sizeof(baud9600Arr); i++)
  {
    USART0_Tx(baud9600Arr[i]);//모터 보레이트 9600bps변경 
  }
  _delay_ms(1000);

  USART0_init(BAUD9600);      //메가 보레이트 9600bps변경 
  _delay_ms(1000);    

  return;
}





728x90