[개발 일지] Net Frame Maker

타키탸키·2021년 12월 21일
0

개발 일지

목록 보기
1/11

  • MCS(Motion Control System)
    • 다축 장비 구동을 위한 모션 제어 장치

Net Frame Maker

  • MCS 프로그램의 데이터에 해당하는 Net Frame 제작 프로그램
  • MCS 프로그램과 데이터 송수신을 위한 UDP 통신 기능

세부 일정

  • 12.16
    • 다이어그램 및 초안 작성 완료
  • 12.17
    • 가상 네트워크 프레임의 구성 요소를 위한 함수 개발
      • FrameLen, DataLen, ChangeAddr...
  • 12.20
    • hex 문자열을 Ascii로 변환하는 문제 해결
    • 주소를 int형으로 받기 위해 전체 코드 수정
  • 12.21
    • Net Frame maker 완성
    • UDP 기능 추가 완료
    • GitHub 커밋 완료
  • 12.22
    • make_Net_Frame 함수 오버로딩
      • READ와 WRITE를 isWrite 변수로 구분했는데 GUI 상에서 기능이 명확히 나누어져 굳이 구분할 필요가 없어졌다
      • READ 함수들에서 data 파라미터가 필요없어져 삭제했다
      • frame_Len에서도 isWrite 파라미터를 제거하고 bit로만 구분하도록 변경했다
    • netFrame 배열을 원하는 위치에서 자르기 위해 .Take() 메소드를 사용했는데 코드가 중복되어 적절한 곳으로 위치를 조정했다
    • Receive 기능을 살렸다
      • 이제 manager 프로그램으로부터 값을 받아올 수 있다
      • maker 프로그램에서 받는 데이터 자료형을 변환했다(추후 더 좋은 방법이 있으면 개선 필요)
    • L접점의 read/write function을 수정했다
      • 대리님이 도와주셔서 따로 코드 리뷰하는 시간이 필요할 것 같다
      • 문제가 완벽하게 해결된 것이 아니라서 추후 개선이 필요하다
      • write 후 read할 때 오류가 발생한다
      • send와 receive의 반환값에서 충돌이 일어난 듯 하다
  • 12.23
    • Net Frame Maker 프로그램의 브랜치를 나누었다
      • data와 frame을 동시에 받는 과정에서 발생하는 오류를 해결하지 못했다
      • 브랜치를 나누어 기능을 분할하기로 결정했다
      • main은 UDP 통신을, netFrameMaker는 frame 생성 기능을 맡는다
    • Write 후 Read가 안 되는 문제를 해결했다
      • 대리님께서 알려주신대로 write 함수에서 send 후 receive를 추가하니 버퍼가 초기화 되었다
    • netThread 브랜치 초안 작성
      • Combobox를 통해 고정 주소 값을 입력 받는다
      • 이때, Thread를 통해 data의 값이 실시간으로 갱신 되어야 한다
      • Combobox에서 선택된 주소 값에 따라 데이터를 받아오는 것까지 구현했다
  • 12.24
    • Thread 적용 전 프로그램 설계 구조를 개편했다
      • Form에 작성했던 data decoding 코드를 Frame 클래스에 재정의 했다

🙋‍♀️ 주저리

회사에서 처음으로 개발한 프로그램이다 😂😂😂

네트워크를 다룰 때마다 항상 자료형이 골칫덩이였는데 이번에도 16진수에서 Ascii로, int에서 byte 배열로 등등 형 변환에만 3일 가량을 투자했다.

확실히 혼자 공부할 때보다 개발할 기회가 더 많고 개발하는 프로그램 수준도 더 높다. 취업을 고민하고 있다면 하루빨리 고민을 접고 어디든 들어가서 실무를 경험해 보는 것이 좋을 거 같다.

끙끙 앓다가 결과물 잘 나오니 기뻐하는 거 보면 개발 일이 맞긴 한 것 같다.

profile
There's Only One Thing To Do: Learn All We Can

0개의 댓글