아!두이노, 라즈베리, 코딩 노가다

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

아두이노/보드

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

아이스뭐라카노 2021. 11. 20. 15:57
반응형

이제 번외편 마지막이다.

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

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

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

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

 

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

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

 

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