Monolith v2 CAN 통신 관련 질문

1. 문제 상황

monolith v2를 통하여 BMS, 모터컨트롤러와 CAN 통신을 시도해보고 있습니다.

CAN ID, Data Range 등의 값은 각각의 장치 매뉴얼에 나온대로 입력했으며, monolith Live Telemetry에서도 원하는 데이터의 숫자들은 잘 뜨는 것으로 확인됩니다.

다만, Live Telemetry 그래프에서 특정 데이터 값들이 CAN Message Decoder에서 입력한 이름과 유닛이 아니라 다른 데이터의 것과 섞여 있어서 문의드렸습니다.

1-1. 데이터

2. 재현 방법

BMS와 모터 컨트롤러에 각각 내장되어 있는 종단저항을 사용 중이며, CAN 통신을 사용하는 기기는 BMS와 모터 컨트롤러, monolith 셋 뿐입니다.

설정을 확인해야 하니 ui configuration 탭에서 export로 내보낸 설정 파일을 첨부해 주세요.

config (1).json (4.0 KB)

ui configuration 설정 파일입니다!

답이 늦어서 죄송합니다. 확인해 보니 UI의 문제는 아니고, 설정하신 decoder가 실제 CAN데이터와 다른 것으로 추정됩니다.

PM100 Temp 의 경우는 Multiplier가 0.1로 설정되어 있는데요, 원래는 0.01 이어서 28.6도라고 하면다면 말이 될 수도 있지 않나 싶네요. 나머지는 byte 나 endian 구성이 실제와 다른 것 같습니다. 장치 매뉴얼을 다시 확인해보셔야 할 것 같아요.

monolith UI Configuration에서 CAN Message Decoder의 순서만 바꿔도 값이 섞입니다.게시글과 댓글에서의 세팅에서 달라진 것은 CAN Decoder의 순서뿐인데,아래 사진을 보면 값이 아예 섞여버렸습니다. Decoder순서를 바꿀 때마다 매번 해당 현상이 생깁니다.

펌웨어가 완전 최신버전인 v2.1.2가 아닌데,이 점이 영향을 끼칠까 궁금합니다.

추가적으로 Device Configuration에서 CANEnabled상태로 설정하고 주행한 후, Data Viewer로 주행 데이터를 확인하려고 하면 Graph에 아무것도 뜨지 않습니다. CAN을 끄고 주행하면 Analog, Gyroscope등이 다 잘 나옵니다.

말씀하신 첫 번째 문제는 프론트엔드 코드를 약간 수정했습니다. 문제가 사라졌는지 확인해주시면 감사드리겠습니다.

브라우저가 이전 소스코드 캐시를 그대로 로드할 수 있으니 Ctrl+Shift+R로 강제 새로고침을 하거나, 아예 다른 브라우저에서 접속해서 확인해 보세요.

이 부분은 원인을 짐작하기가 어려운데요. 일단 기록된 로그 파일을 올려주시고, 그래프에 아무것도 나오지 않을 때 브라우저 개발자 도구를 눌러서 콘솔에 나오는 에러 메시지가 있는지 확인해보셔야 할 것 같습니다. 펌웨어 버전이 낮다고 하셨는데, 그래서일 가능성도 있겠네요.