일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 서버리스
- IOT Core
- thread
- 펌웨어
- 라즈베리파이
- 파이썬
- 전기차충전기
- YMODEM
- 완속충전기
- homeassistant
- 디자인패턴
- 안드로이드
- 전기차충전
- 홈어시스턴트
- 플라스크
- esp8266
- OCPP
- 에버온
- Android
- raspberry
- 전기차
- 보안
- STM32
- 급속충전기
- everon
- AWS
- lambda
- flask
- 충전기
- dynamodb
- Today
- Total
Louie NRT Story
[javascript] YMODEM 다운로더 본문
작성일: 21년 4월 7일
Index
1. YMODEM 다운로더 코드
2. 코드 실행
3. 다운로드된 파일 확인
4. 개발자 주저리주저리 - 하루종일 이것만 했네ㅠㅠ
1. YMODEM 다운로더 코드
- javascript로 개발된 YMODEM 코드
github.com/ganioc/ymodem-sender-js
- 테스트 하면서 수정한 내용으로는 Config 파일들과 Receive 쪽의 Timeout들을 길게 해주었음
- 펌웨어에서 데이터를 받고 Receive ACK를 늦게 보내서 Downloader는 Timeout으로 계속 초기화를 하였음.
2. 코드 실행
- 명령어로는 "node index.js" 이지만 argument로 1K와 CRC를 줄 수도 있음 "node index.js 1K CRC"
- 결론적으로는 같은 결과를 초래하지만 1K로 하였을 때 시간이 빨리 진행되었음
3. 다운로드 된 파일
- "zxcvbnm" 이 입력된 파일을 업로드하였음.
4. 개발자 주저리주저리
처음 이 작업을 시작 할때 GUI를 electron으로 사용했기 때문에 javascript 로 만들어진 YMODEM 코드를 찾았다.
쉽게 찾을 수 있었고 아래의 모듈을 이용해서 테스트를 진행하였다. 하지만 6년전에 commit된 코드이고 진행 할수록 오류가 계속 나왔고 이러한 오류들을 하나하나 처리 하였지만 최종적으로 Board와의 통신도 잘 되지 않았다.
github.com/nicodegunst/particle-ymodem
그렇게 계속 코드를 확인해보던 중 이러한 주석을 보고 신뢰도가 확 떨어졌다. 꼭 1K가 아니여도 상관은 없지만 기본적인 프로토콜 상의 데이터가 오고 갈때 Board가 반응이 없었다. 그래서 다른 코드를 찾아서 빠르게 해결 할 수 있었다.
시간낭비 했네 라고 생각할 수 있었지만 계속 발생되는 오류를 수정하면서 YMODEM의 구조를 알게 되었고 Nodejs의 모듈 serialport 모듈을 알게되어 새로운 코드를 보면서 오류들을 더욱 빠르게 잡을 수 있었고 문제를 해결 할 수 있었다.
'전기차충전기' 카테고리의 다른 글
[전기차충전기 플랫폼] Todo (0) | 2021.04.13 |
---|---|
[LTE통신] 한컴텔라딘 소켓 HTTP 연결 (0) | 2021.04.13 |
[electron] 시리얼 통신 - Todo (0) | 2021.04.07 |
[STM32] Ymodem 이용한 파일 다운로드 (0) | 2021.04.06 |
[STM32] Flash Protection 해제 (0) | 2021.04.06 |