본문 바로가기
아두이노/보드

아두이노 통신 번외편 -#3

by 오징어땅콩2 2021. 11. 20.
반응형

이제 번외편 마지막이다.

이전에 인자만 다르고 동일한 함수를 두개 만들어서 사용했다.

아두이노 메가 처럼 하드웨어시리얼도 많고 소프트웨어 시리얼도 가능하다면 유용한 코드가 될것이다.

그래도 동일한, 유사한 함수가 두개라는것은 좀 그렇다. 

그래서 최종적으로 진화하는 템플릿으로 진화 하는것이다.

 

변수의 타입, 객체의 형태를 정의하지 않는것이다.

정의하지 않는 형태가 바로 템플릿이다.

 

template <class T> void read_serial(Info& _info, T& ss)
{   
    memset(&_info, 0x00, sizeof(Info)); 
    if (ss.available())
    { 
          char  c; 
          char *p;
          
          p = (char*)&_info;
          while( (p -  ((char*)&_info)) < sizeof(Info) )
          {
              if(ss.available()) 
              {
                c = ss.read();
                //*p = c; p++; 
                *(p++) = c;
                *p = '\0';                
                if (c == '\r' || c == '\n') break;
              }
          }
          _info.ver = version;
    }
    
    return ;
}

'아두이노 > 보드' 카테고리의 다른 글

아두이노 통신 UNO TO UNO -#6  (0) 2021.12.04
아두이노 통신 번외편 -#4  (0) 2021.11.20
아두이노 통신 번외편 -#2  (0) 2021.11.20
아두이노 통신 번외편 -#1  (0) 2021.11.20
아두이노 통신 UNO TO UNO -#5  (0) 2021.11.16

댓글