- 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일 가량을 투자했다.
확실히 혼자 공부할 때보다 개발할 기회가 더 많고 개발하는 프로그램 수준도 더 높다. 취업을 고민하고 있다면 하루빨리 고민을 접고 어디든 들어가서 실무를 경험해 보는 것이 좋을 거 같다.
끙끙 앓다가 결과물 잘 나오니 기뻐하는 거 보면 개발 일이 맞긴 한 것 같다.