마음 속 하늘은 항상 맑음~!
기상 예보 스테이션 업데이트. 본문
기존의 소스에서 보다 메모리 패닉이 줄어들도록 drawXBM 코드를 개선하고, 시간을 표시하는 부분이 인터넷 연결에 관계없이 계속 동작하도록 변경했다. 아직 와이파이가 끊기는게 없어서 제대로 동작하는지는 확인하지 못했다.
그리고 API로 데어터를 가져오는 부분에 문제가 생겨서 리셋하는 것도 방지했다.
최대로 작동을 안정화시키는데 노력했고 예상 외의 문제가 아니라면 제대로 동작하리라 생각한다.
기존의 방법론도 문제없이 1달 넘게 문제없이 동작했었는데, 이렇게 바꾸게 된 것은 사실 소켓 데이터 연결의 lua 스크립트가 너무 커서 스크립트가 컴파일되지 않는 문제가 생겨서 여러 개의 스크립트로 분리했다.
그리고 동작 스크립트 파일이 계단형 호출이 아닌 하나의 스크립트 안에서 호출되도록 변경했다.
전역 변수 선언을 이용하고, 스크립트 파일의 용량을 분리한게 가장 크게 변화한 부분.
스크립트 실행의 메모리 한계를 극복하려면 모듈화보다는 되도록 인라인으로 기능을 만들고, 하나하나 스크립트 파일의 용량도 줄이는 노력이 필요하다는 nodemcu lua의 동작 특성을 알게 됐다.
이 만큼이 내가 할 수 있는 한계일지도.
메모리 부족으로 리셋이 발생하는걸 잡는게 참 어렵다.
(업데이트) 메모리 부족이 생기는 원인을 다르게 접근. 웹데이터 다운로드가 끝난 후에 화면을 처리하도록 수정하니 메모리 부족이 없이 훨씬 안정해졌다. 그리고 오른쪽 바람 속도가 살짝 잘리는데 그 위치를 조정했다.
(업데이트) 오픈 와이파이 연결 문제를 해결.
'기타' 카테고리의 다른 글
600mA 정전류 회로. (0) | 2020.02.22 |
---|---|
TL431 전원 레귤레이터. (0) | 2020.01.06 |
ARP Ping 0.5 (0) | 2019.12.15 |
555 PWM 업데이트 (0) | 2019.12.10 |
간단한 NCV 디텍터. (0) | 2019.11.24 |