', { cookie_domain: 'auto', cookie_flags: 'max-age=0;domain=.tistory.com', cookie_expires: 7 * 24 * 60 * 60 // 7 days, in seconds }); 뮤직박스 악보 펀처 DXF 파일 포맷 읽어들이기와 디코딩. :: MakerLee's Workspace
728x90

현재 파일을 선택하고 그 파일을 불러들이는 것까지 진행중입니다. 







그런데 파일을 읽어보니 역시나 쉽게 넘어가지는 않는군요. 


왼쪽은 DXF 파일을 에디터에서 직접 읽어들였을 경우이고

오른쪽은 해당 파일을 읽어서 시리얼로 출력한 경우입니다. 

아두이노에서는 인코딩 문제로 사람이 보기 편하게 출력되지는 않는단 얘기죠.






ASCII코드표를 참조해 봅니다. 


DXF 파일의 첫줄이 

  0  -> (공백,공백,0)

두번째 줄이 

SECTION 입니다. 


아스키 코드에서는 첫줄이

32, 32, 48

두번째 줄이

83, 69, 67, 84, 73, 79, 78 이겠군요.


 



시리얼로 들어온 값과 다시 비교해 보겠습니다. 

32, 32, 48 이 있고

그다음 Line Finish 를 뜻하는 10 이 있고

SECTION의 아스키 코드 83 (S), 69(E), 67(C), 84(T), 73(I), 79(O), 78(N) 

이후 다시 Line Finish의 10 이 있습니다. 


다행히 해석 자체는 어렵지 않을 것 같습니다. 

펀칭 데이터는 이전 포스트(링크) 에서 썼듯이

CIRCLE 텍스트만 찾아내면 됩니다. 








CIRCLE 이니까

67 (C), 73 (I), 82 (R), 67 (C), 76 (L), 69 (E) 를 찾아내고 그 이후에

10(LF) 을 4개 지난 후 나오는 데이터들이 X좌표값이고

다시 10(LF)를 2개 지난 후 나오는 데이터들이 Y좌표값이 됩니다. 







확인을 위해 첫번째 CIRCLE을 찾아 데이터를 비교해 보았습니다. 

여기서 X좌표는 9.23413793103 입니다. 



9.23413793103의 데이터를 시리얼로 나온 쪽에서 찾아보니 위와 같습니다. 

57 : 9

46 : .

50 : 2

51 : 3

52 : 4

49 : 1

51 : 3

55 : 7

57 : 9

51 : 3

49 : 1

48 : 0

51 : 3


과 같습니다. 일치하는군요. 

소수점 2자리 이하는 무시할 계획입니다. 





728x90

+ Recent posts