충전기에 화면과 카드 리더를 붙이다 — sc6-hmi(DWIN 모니터)와 sc6-rfid(카드 리더)
DWIN 모니터를 EVerest 충전 상태에 맞춰 움직이는 sc6-hmi, 카드 리더를 EVerest 인증에 붙이는 sc6-rfid를 만들었다. 꽂자마자 ‘충전 중’ 화면이 뜬 이유는 거래 시작과 충전 시작을 같은 것으로 본 데 있었다. 하룻밤 사이 빌드 PC 주소가 바뀌어 서버 ...
DWIN 모니터를 EVerest 충전 상태에 맞춰 움직이는 sc6-hmi, 카드 리더를 EVerest 인증에 붙이는 sc6-rfid를 만들었다. 꽂자마자 ‘충전 중’ 화면이 뜬 이유는 거래 시작과 충전 시작을 같은 것으로 본 데 있었다. 하룻밤 사이 빌드 PC 주소가 바뀌어 서버 ...
손으로 실행하던 충전기 소프트웨어를 systemd 서비스로 바꿨다. 그리고 충전 중에 프로그램을 하나씩 죽여 봤다. kill -9 한 번에 릴레이가 붙은 채 남았고, EVerest를 다시 시작하자 승인 없이 릴레이가 1초 붙었다. EVerest가 ‘충전 멈추는 중’에서 영원히 맴돈...
코드 읽기 1편에서 BSP(sc6-bsp.c)를 봤다. 2편에서는 전력량계 프로그램 sc6-meter, EVerest 안쪽의 충전 상태 머신 EvseManager, 그리고 사건이 OCPP 메시지가 되어 서버로 가는 길을 따라갔다.
기능을 더 붙이기 전에 지금 돌아가는 코드를 이해하는 날로 정했다. 프로그램이 뜨는 순서, EVerest 구성 YAML, EVerest와 우리 프로그램이 MQTT로 주고받는 것, 그리고 BSP(sc6-bsp.c)의 구조·CP 판정·명령 처리를 정리했다.
OCPP 거래의 meterStop이 늘 0이었다. 보드의 전력량계 JSY-MK-163T를 EVerest에 연결하려 했는데, EVerest의 범용 전력량계 모듈은 레지스터 값을 무조건 실수(float)로 해석했다. 정수로 값을 주는 JSY는 읽을 수 없었다. sc6-bsp와 같은 방...
지금까지 충전기는 평문 WebSocket으로 서버에 붙어 있었다. 시험용 인증서를 만들고 SteVe를 HTTPS로 바꾼 뒤, 보드를 OCPP 보안 프로파일 2(TLS + Basic 인증)로 접속시켰다. 틀린 비밀번호와 평문 접속이 거절되는 것까지 확인했다.
충전기와 서버 사이의 네트워크가 끊기면 어떻게 되는지 보려 했다. 그런데 시험을 시작하기도 전에, 서버에 접속은 했지만 등록되지 않는 문제가 나타났다. 원인은 EVerest OCPP 라이브러리의 경쟁 조건이었다. 4줄 패치로 고친 뒤 끊김 시험 네 가지를 모두 통과했다.
충전기 보드의 시계가 서버보다 5초 빨랐다. WiFi로 인터넷도 되고 DNS도 되는데 timesyncd는 시간 서버에 요청을 한 번도 보내지 않았다. 원인은 networkd의 온라인 판단에 케이블 없는 유선 포트 하나만 들어 있던 것이었다. 설정 한 줄로 고쳤다.
어제 만든 BSP를 이번에는 실제 EVerest에 붙였다. 첫 실행에서 BSP가 EVerest의 기대와 다르게 동작하는 버그를 하나 고친 뒤, 저항 지그만으로 차량 연결부터 충전, 일시 중지, 종료까지 두 번 돌렸다. 그 전에 레이어와 작업 기록을 펌웨어를 뺀 채 GitHub 비공...
BSP에 비상정지(EM_INT)와 누전(RCD_INT) 입력을 넣었다. 충전 중 비상정지를 걸자 감지한 같은 밀리초에 주 릴레이가 떨어졌다. 다만 비상정지를 풀면 EVerest가 아무 조작 없이 충전을 다시 시작했다. 이건 코드가 아니라 제품 요구사항으로 정할 문제였다.
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
이미지에 든 EVerest를 보드에서 처음 실행해 CPU와 메모리를 재고, 오프라인 부팅 때 충전이 2분 늦어지는 원인을 고쳤다. 저항 지그로 CP 상태별 ADC 값을 측정하고, C로 첫 BSP를 짜서 CP 상태에 따라 주 릴레이가 붙고 떨어지는 것까지 확인했다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
이미지가 완성됐으니 다음은 그 안에 든 EVerest를 실제로 돌릴 차례다. M7의 목표, 하지 않을 것, 일정, 그리고 시작 전에 정해야 할 것을 정리했다.
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
MYiR 모듈을 쓴 우리 보드(SC6_0)를 ST OpenSTLinux v6(Scarthgap)로 옮기는 작업을 시작했다. 아침에는 시리얼에 PANIC 두 줄만 나왔고, 저녁에는 커널 6.6에 로그인했다. 그 사이에 패치 전 소스, 사라진 dd, HSE 바이패스, GPT 6칸 제한...
EVerest를 쓰려면 BSP부터 갈아엎어야 하는데, 그 전에 이 칩으로 될지부터 알고 싶었다. WSL에 EVerest를 설치해 가상 차량으로 충전을 돌리고, 메모리를 재고, 차와 충전기가 주고받는 ISO 15118 메시지를 패킷으로 잡았다.
하드웨어 브링업이 어느 정도 끝나서, 그 위에 올릴 충전기 소프트웨어를 골랐다. C++과 Rust, 완성된 스택과 부품 세트를 비교한 끝에 EVerest로 기울었는데, 정작 걸린 건 언어가 아니라 2020년산 BSP였다.
충전기가 차에 전기를 주는 마지막 관문은 릴레이다. 회로도를 따라 어떤 핀이 어떤 릴레이를 움직이는지 찾고, AC 없이 딸깍 소리와 LED로 확인했다. 디지털 출력 네 개도 같이 끝냈다.
VREFBUF 판별 명령이 조용해서 2.5V 기준전압이 정상이라고 믿었다. 그런데 ADC가 아예 없었다. 에러 한 줄 없이 무한 대기하던 ADC를 찾아내고, 기준전압이 실제로는 3.3V라는 걸 확인하기까지.
WiFi는 접속까지 됐는데 ping이 안 나갔고, 블루투스는 첫 명령부터 대답이 없었다. 같은 모듈인데 문제는 전혀 달랐다.
DTS 파일을 새로 만들었는데 make가 거부했다. Makefile에 이름 한 줄을 넣으니 됐다. 그 한 줄이 어떻게 동작하는지 들여다봤다.
펌웨어가 올라가고 eth1에 UP RUNNING이 떴다. PLC가 열렸다고 생각하기 쉽지만, RUNNING이 보여주는 범위는 생각보다 좁다.
모듈을 올렸는데 사용 카운트가 0이었다. 드라이버가 안 붙은 줄 알았는데, 실제로는 칩이 펌웨어를 기다리고 있었다.
커널은 고쳤는데 부팅 순간에 잠깐 불이 켜진다. 그 짧은 구간은 커널이 아니라 부트로더 소관이었다.
재부팅하면 LED가 켜지고, 값을 한 번 읽으면 꺼진다. 입력으로 설정한 핀에서는 일어날 수 없는 일이었다.
보드가 새 디바이스 트리로 떴다. 이제 무엇이 살아있는지 세어볼 차례인데, 기대값을 모르면 숫자를 봐도 판단이 안 된다.
직접 쓴 디바이스 트리를 실물 보드에 올렸다. SD 부팅으로 되돌릴 길을 먼저 만들고, 문서에 없던 것들을 하나씩 지나간 기록.
SoM 벤더가 준 평가보드용 리눅스를 자체 캐리어보드에서 돌리기까지, 디바이스 트리를 실제로 어떤 순서로 짜고 무엇을 확인했는지.
요약 구성 가능한 함수를 정의합니다. 컴포지션으로 레이아웃을 만듭니다. Button 컴포저블을 사용하여 버튼을 만듭니다. drawable 리소스를 가져옵니다. Image 컴포저블을 사용하여 이미지를 표시합니다. 컴포저블을 사용하여 대화형 UI를 만듭니다. ...
학습 내용 OOP의 개요 클래스의 정의 생성자, 함수, 속성으로 클래스를 정의하는 방법 객체를 인스턴스화하는 방법 상속의 정의 IS-A 관계와 HAS-A 관계의 차이점 속성 및 함수를 재정의하는 방법 공개 상태 수정자의 정의 위임의 정의 및 by ...
조건문 작성하기 if 문 예시 기본 예시
NULL 기본 문법 NULL을 변수에 사용할려면 명시적 변수 선언 뒤에 ? 를 추가해야한다
출처 https://developer.android.com/courses/android-basics-compose/course?hl=ko
UI (User Interface) : 사용자 인터페이스
코틀린 프레인 그라운드 https://play.kotlinlang.org/
학습 목표 레이아웃 배치를 살펴보고 레이아웃 파일을 생성하는 방법을 알아보자
문법 사용하기 위해서는
안드로이드 안드로이드의 장점은 오픈소스이다.
copilot 에게 dtoverlay 설명 요청
활동 내역 소스코드 다운로드 받아서 샘플 프로그램 그대로 활용하여 테스트 진행 해보면된다
cuda tool kit 설정
개요 이미지 영역 설정하여 해당영역 비트 마스크 비교용 영역 만드는 코드
python 폴더 내 이미지 읽기
requirements.txt 이용하여 정리
라즈베리파이 카메라 _UI 샘플 코드
HDR 기능을 활용하여 화질 개선해보자
python 폴더 내 이미지 읽기
FastAPI 사용하기 uvicorn web_OCPP201:app –reload –host 주소–port 8000
최초 작성일 : 2022-12-11
Pyhton을 통해 얼굴인식 해보자 여기서 핵심은 의 이해가 필요하다 net = cv2.dnn.readNetFromCaffe(“deploy.prototxt”, “res10_300x300_ssd_iter_140000_fp16....
기본적인 Yolo 사용해보기
Creating Panoramas using OpenCV Satya Mallick, LearnOpenCV.com
Image Alignment Satya Mallick, LearnOpenCV.com
요약 앱에서 동시에 작업하기 위해 Kotlin 코루틴
요약 구성 가능한 함수를 정의합니다. 컴포지션으로 레이아웃을 만듭니다. Button 컴포저블을 사용하여 버튼을 만듭니다. drawable 리소스를 가져옵니다. Image 컴포저블을 사용하여 이미지를 표시합니다. 컴포저블을 사용하여 대화형 UI를 만듭니다. ...
학습 내용 OOP의 개요 클래스의 정의 생성자, 함수, 속성으로 클래스를 정의하는 방법 객체를 인스턴스화하는 방법 상속의 정의 IS-A 관계와 HAS-A 관계의 차이점 속성 및 함수를 재정의하는 방법 공개 상태 수정자의 정의 위임의 정의 및 by ...
조건문 작성하기 if 문 예시 기본 예시
NULL 기본 문법 NULL을 변수에 사용할려면 명시적 변수 선언 뒤에 ? 를 추가해야한다
출처 https://developer.android.com/courses/android-basics-compose/course?hl=ko
UI (User Interface) : 사용자 인터페이스
코틀린 프레인 그라운드 https://play.kotlinlang.org/
학습 목표 레이아웃 배치를 살펴보고 레이아웃 파일을 생성하는 방법을 알아보자
문법 사용하기 위해서는
안드로이드 안드로이드의 장점은 오픈소스이다.
DWIN 모니터를 EVerest 충전 상태에 맞춰 움직이는 sc6-hmi, 카드 리더를 EVerest 인증에 붙이는 sc6-rfid를 만들었다. 꽂자마자 ‘충전 중’ 화면이 뜬 이유는 거래 시작과 충전 시작을 같은 것으로 본 데 있었다. 하룻밤 사이 빌드 PC 주소가 바뀌어 서버 ...
손으로 실행하던 충전기 소프트웨어를 systemd 서비스로 바꿨다. 그리고 충전 중에 프로그램을 하나씩 죽여 봤다. kill -9 한 번에 릴레이가 붙은 채 남았고, EVerest를 다시 시작하자 승인 없이 릴레이가 1초 붙었다. EVerest가 ‘충전 멈추는 중’에서 영원히 맴돈...
코드 읽기 1편에서 BSP(sc6-bsp.c)를 봤다. 2편에서는 전력량계 프로그램 sc6-meter, EVerest 안쪽의 충전 상태 머신 EvseManager, 그리고 사건이 OCPP 메시지가 되어 서버로 가는 길을 따라갔다.
기능을 더 붙이기 전에 지금 돌아가는 코드를 이해하는 날로 정했다. 프로그램이 뜨는 순서, EVerest 구성 YAML, EVerest와 우리 프로그램이 MQTT로 주고받는 것, 그리고 BSP(sc6-bsp.c)의 구조·CP 판정·명령 처리를 정리했다.
OCPP 거래의 meterStop이 늘 0이었다. 보드의 전력량계 JSY-MK-163T를 EVerest에 연결하려 했는데, EVerest의 범용 전력량계 모듈은 레지스터 값을 무조건 실수(float)로 해석했다. 정수로 값을 주는 JSY는 읽을 수 없었다. sc6-bsp와 같은 방...
지금까지 충전기는 평문 WebSocket으로 서버에 붙어 있었다. 시험용 인증서를 만들고 SteVe를 HTTPS로 바꾼 뒤, 보드를 OCPP 보안 프로파일 2(TLS + Basic 인증)로 접속시켰다. 틀린 비밀번호와 평문 접속이 거절되는 것까지 확인했다.
충전기와 서버 사이의 네트워크가 끊기면 어떻게 되는지 보려 했다. 그런데 시험을 시작하기도 전에, 서버에 접속은 했지만 등록되지 않는 문제가 나타났다. 원인은 EVerest OCPP 라이브러리의 경쟁 조건이었다. 4줄 패치로 고친 뒤 끊김 시험 네 가지를 모두 통과했다.
어제 만든 BSP를 이번에는 실제 EVerest에 붙였다. 첫 실행에서 BSP가 EVerest의 기대와 다르게 동작하는 버그를 하나 고친 뒤, 저항 지그만으로 차량 연결부터 충전, 일시 중지, 종료까지 두 번 돌렸다. 그 전에 레이어와 작업 기록을 펌웨어를 뺀 채 GitHub 비공...
BSP에 비상정지(EM_INT)와 누전(RCD_INT) 입력을 넣었다. 충전 중 비상정지를 걸자 감지한 같은 밀리초에 주 릴레이가 떨어졌다. 다만 비상정지를 풀면 EVerest가 아무 조작 없이 충전을 다시 시작했다. 이건 코드가 아니라 제품 요구사항으로 정할 문제였다.
이미지에 든 EVerest를 보드에서 처음 실행해 CPU와 메모리를 재고, 오프라인 부팅 때 충전이 2분 늦어지는 원인을 고쳤다. 저항 지그로 CP 상태별 ADC 값을 측정하고, C로 첫 BSP를 짜서 CP 상태에 따라 주 릴레이가 붙고 떨어지는 것까지 확인했다.
이미지가 완성됐으니 다음은 그 안에 든 EVerest를 실제로 돌릴 차례다. M7의 목표, 하지 않을 것, 일정, 그리고 시작 전에 정해야 할 것을 정리했다.
EVerest를 쓰려면 BSP부터 갈아엎어야 하는데, 그 전에 이 칩으로 될지부터 알고 싶었다. WSL에 EVerest를 설치해 가상 차량으로 충전을 돌리고, 메모리를 재고, 차와 충전기가 주고받는 ISO 15118 메시지를 패킷으로 잡았다.
하드웨어 브링업이 어느 정도 끝나서, 그 위에 올릴 충전기 소프트웨어를 골랐다. C++과 Rust, 완성된 스택과 부품 세트를 비교한 끝에 EVerest로 기울었는데, 정작 걸린 건 언어가 아니라 2020년산 BSP였다.
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
MYiR 모듈을 쓴 우리 보드(SC6_0)를 ST OpenSTLinux v6(Scarthgap)로 옮기는 작업을 시작했다. 아침에는 시리얼에 PANIC 두 줄만 나왔고, 저녁에는 커널 6.6에 로그인했다. 그 사이에 패치 전 소스, 사라진 dd, HSE 바이패스, GPT 6칸 제한...
충전기가 차에 전기를 주는 마지막 관문은 릴레이다. 회로도를 따라 어떤 핀이 어떤 릴레이를 움직이는지 찾고, AC 없이 딸깍 소리와 LED로 확인했다. 디지털 출력 네 개도 같이 끝냈다.
VREFBUF 판별 명령이 조용해서 2.5V 기준전압이 정상이라고 믿었다. 그런데 ADC가 아예 없었다. 에러 한 줄 없이 무한 대기하던 ADC를 찾아내고, 기준전압이 실제로는 3.3V라는 걸 확인하기까지.
DTS 파일을 새로 만들었는데 make가 거부했다. Makefile에 이름 한 줄을 넣으니 됐다. 그 한 줄이 어떻게 동작하는지 들여다봤다.
커널은 고쳤는데 부팅 순간에 잠깐 불이 켜진다. 그 짧은 구간은 커널이 아니라 부트로더 소관이었다.
재부팅하면 LED가 켜지고, 값을 한 번 읽으면 꺼진다. 입력으로 설정한 핀에서는 일어날 수 없는 일이었다.
보드가 새 디바이스 트리로 떴다. 이제 무엇이 살아있는지 세어볼 차례인데, 기대값을 모르면 숫자를 봐도 판단이 안 된다.
직접 쓴 디바이스 트리를 실물 보드에 올렸다. SD 부팅으로 되돌릴 길을 먼저 만들고, 문서에 없던 것들을 하나씩 지나간 기록.
SoM 벤더가 준 평가보드용 리눅스를 자체 캐리어보드에서 돌리기까지, 디바이스 트리를 실제로 어떤 순서로 짜고 무엇을 확인했는지.
활동 내역 소스코드 다운로드 받아서 샘플 프로그램 그대로 활용하여 테스트 진행 해보면된다
목표 wapPerspective_demo 코드 분석 해보자
사전 준비 CUDA 와 cuDNN 설치 Cmake 이용하여 OpenCV 만들기 Visual studio 이용하여 OpenCV build 하기 검증하기
OpenCV 공부 내역
OpenCV 설치 스크립트
CPP 예시
openCV 리눅스 컴파일 심플 예제
MFC 쓰레드 활용 헤더파일 설정
최초 작성일 : 2022-11-30
WSL2 설치
공부 목표 신규 프로젝트 관련 기술 확인
공부 목표 주식 및 경제 공부하여 세상을 알아보자 슈카월드 경제 공부를 보는데 자주 개념을 까먹어서 메모해서 활용하고자 만들었습니다. 슈카월드 경제 영상을 보다 자주 까먹는데 영상으로 찾기 어려워서 글로 만들어 개인 블로그에 올려 찾기 편하게 보기위해
공부 목표
공부 목표
목차 가상환경 만들기 샘플 영상 다운로드 샘플 동영상 명명하기 yoloV7 전처리 만들기 YoloV7 학습하기 학습된 내용 확이낳기
해당 목표 개요
개발 환경 목록
개발 환경 목록
목표 파이썬 기반으로 동작하는 마이크로 컨트롤러 사용 해보자
Python 활용 코드
SDIO(Secure Digital Input Output)는 SD 카드 슬롯을 통해 단순한 데이터 저장뿐 아니라 무선 LAN, GPS, 블루투스 같은 다양한 주변기기와 통신할 수 있게 해주는 인터페이스입니다. 임베디드 시스템에서 특히 많이 활용되며, 드라이버 설치와 초기 설정이 ...
개념정리 CAN 통신 Controller Area Network (CAN)
개념정리 SPI *Serial Peripheral Interface 직렬 주변기기 인터페이스 버스
개념정리 I2C 통신(Inter-Integrated Circuit) 상호통합회로
개념정리 ADC
학습 목표 LED 및 스위치 회로 설명 CubeMX로 RCC 및 GPIO 입출력 설정 CubeMX로 TrueSTUDIO 프로젝트 및 코드 생성 TrueSTUDIO 자동생성된 프로젝트 및 코드 설명 HAL드라이버 함수를 이용한 GPIO 출력 (LED출력) HA...
0. 기본 환경 세팅
손으로 실행하던 충전기 소프트웨어를 systemd 서비스로 바꿨다. 그리고 충전 중에 프로그램을 하나씩 죽여 봤다. kill -9 한 번에 릴레이가 붙은 채 남았고, EVerest를 다시 시작하자 승인 없이 릴레이가 1초 붙었다. EVerest가 ‘충전 멈추는 중’에서 영원히 맴돈...
OCPP 거래의 meterStop이 늘 0이었다. 보드의 전력량계 JSY-MK-163T를 EVerest에 연결하려 했는데, EVerest의 범용 전력량계 모듈은 레지스터 값을 무조건 실수(float)로 해석했다. 정수로 값을 주는 JSY는 읽을 수 없었다. sc6-bsp와 같은 방...
충전기와 서버 사이의 네트워크가 끊기면 어떻게 되는지 보려 했다. 그런데 시험을 시작하기도 전에, 서버에 접속은 했지만 등록되지 않는 문제가 나타났다. 원인은 EVerest OCPP 라이브러리의 경쟁 조건이었다. 4줄 패치로 고친 뒤 끊김 시험 네 가지를 모두 통과했다.
충전기 보드의 시계가 서버보다 5초 빨랐다. WiFi로 인터넷도 되고 DNS도 되는데 timesyncd는 시간 서버에 요청을 한 번도 보내지 않았다. 원인은 networkd의 온라인 판단에 케이블 없는 유선 포트 하나만 들어 있던 것이었다. 설정 한 줄로 고쳤다.
어제 만든 BSP를 이번에는 실제 EVerest에 붙였다. 첫 실행에서 BSP가 EVerest의 기대와 다르게 동작하는 버그를 하나 고친 뒤, 저항 지그만으로 차량 연결부터 충전, 일시 중지, 종료까지 두 번 돌렸다. 그 전에 레이어와 작업 기록을 펌웨어를 뺀 채 GitHub 비공...
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
이미지에 든 EVerest를 보드에서 처음 실행해 CPU와 메모리를 재고, 오프라인 부팅 때 충전이 2분 늦어지는 원인을 고쳤다. 저항 지그로 CP 상태별 ADC 값을 측정하고, C로 첫 BSP를 짜서 CP 상태에 따라 주 릴레이가 붙고 떨어지는 것까지 확인했다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
이미지가 완성됐으니 다음은 그 안에 든 EVerest를 실제로 돌릴 차례다. M7의 목표, 하지 않을 것, 일정, 그리고 시작 전에 정해야 할 것을 정리했다.
MYiR 모듈을 쓴 우리 보드(SC6_0)를 ST OpenSTLinux v6(Scarthgap)로 옮기는 작업을 시작했다. 아침에는 시리얼에 PANIC 두 줄만 나왔고, 저녁에는 커널 6.6에 로그인했다. 그 사이에 패치 전 소스, 사라진 dd, HSE 바이패스, GPT 6칸 제한...
하드웨어 브링업이 어느 정도 끝나서, 그 위에 올릴 충전기 소프트웨어를 골랐다. C++과 Rust, 완성된 스택과 부품 세트를 비교한 끝에 EVerest로 기울었는데, 정작 걸린 건 언어가 아니라 2020년산 BSP였다.
시간 차이 구하기 SYSTEMTIME tm; SYSTEMTIME tm_diff; GetLocalTime(&tm); clock_t start_test = 0, end_test = 0; CString fname = NULL; fname.Format("현재 시간 ...
목표 wapPerspective_demo 코드 분석 해보자
코드 ```cpp #include #include
코드 ```cpp #include
목표
Dialog 전체화면 만들기 ShowWindow(SW_SHOWMAXIMIZED);
CString cStr = L"String"; CT2CA convertedString(cStr); std::string str = std::string(convertedString); 또는
MFC 폴더 선택 폴더 선택
MFC 쓰레드 활용 헤더파일 설정
DWIN 모니터를 EVerest 충전 상태에 맞춰 움직이는 sc6-hmi, 카드 리더를 EVerest 인증에 붙이는 sc6-rfid를 만들었다. 꽂자마자 ‘충전 중’ 화면이 뜬 이유는 거래 시작과 충전 시작을 같은 것으로 본 데 있었다. 하룻밤 사이 빌드 PC 주소가 바뀌어 서버 ...
손으로 실행하던 충전기 소프트웨어를 systemd 서비스로 바꿨다. 그리고 충전 중에 프로그램을 하나씩 죽여 봤다. kill -9 한 번에 릴레이가 붙은 채 남았고, EVerest를 다시 시작하자 승인 없이 릴레이가 1초 붙었다. EVerest가 ‘충전 멈추는 중’에서 영원히 맴돈...
코드 읽기 1편에서 BSP(sc6-bsp.c)를 봤다. 2편에서는 전력량계 프로그램 sc6-meter, EVerest 안쪽의 충전 상태 머신 EvseManager, 그리고 사건이 OCPP 메시지가 되어 서버로 가는 길을 따라갔다.
OCPP 거래의 meterStop이 늘 0이었다. 보드의 전력량계 JSY-MK-163T를 EVerest에 연결하려 했는데, EVerest의 범용 전력량계 모듈은 레지스터 값을 무조건 실수(float)로 해석했다. 정수로 값을 주는 JSY는 읽을 수 없었다. sc6-bsp와 같은 방...
지금까지 충전기는 평문 WebSocket으로 서버에 붙어 있었다. 시험용 인증서를 만들고 SteVe를 HTTPS로 바꾼 뒤, 보드를 OCPP 보안 프로파일 2(TLS + Basic 인증)로 접속시켰다. 틀린 비밀번호와 평문 접속이 거절되는 것까지 확인했다.
충전기와 서버 사이의 네트워크가 끊기면 어떻게 되는지 보려 했다. 그런데 시험을 시작하기도 전에, 서버에 접속은 했지만 등록되지 않는 문제가 나타났다. 원인은 EVerest OCPP 라이브러리의 경쟁 조건이었다. 4줄 패치로 고친 뒤 끊김 시험 네 가지를 모두 통과했다.
충전기 보드의 시계가 서버보다 5초 빨랐다. WiFi로 인터넷도 되고 DNS도 되는데 timesyncd는 시간 서버에 요청을 한 번도 보내지 않았다. 원인은 networkd의 온라인 판단에 케이블 없는 유선 포트 하나만 들어 있던 것이었다. 설정 한 줄로 고쳤다.
EVerest를 쓰려면 BSP부터 갈아엎어야 하는데, 그 전에 이 칩으로 될지부터 알고 싶었다. WSL에 EVerest를 설치해 가상 차량으로 충전을 돌리고, 메모리를 재고, 차와 충전기가 주고받는 ISO 15118 메시지를 패킷으로 잡았다.
하드웨어 브링업이 어느 정도 끝나서, 그 위에 올릴 충전기 소프트웨어를 골랐다. C++과 Rust, 완성된 스택과 부품 세트를 비교한 끝에 EVerest로 기울었는데, 정작 걸린 건 언어가 아니라 2020년산 BSP였다.
cuda tool kit 설정
개요 이미지 영역 설정하여 해당영역 비트 마스크 비교용 영역 만드는 코드
python 폴더 내 이미지 읽기
HDR 기능을 활용하여 화질 개선해보자
Pyhton을 통해 얼굴인식 해보자 여기서 핵심은 의 이해가 필요하다 net = cv2.dnn.readNetFromCaffe(“deploy.prototxt”, “res10_300x300_ssd_iter_140000_fp16....
기본적인 Yolo 사용해보기
Creating Panoramas using OpenCV Satya Mallick, LearnOpenCV.com
Image Alignment Satya Mallick, LearnOpenCV.com
자료 링크 개인링크 https://github.com/Leejeunghun/MFCMODBUS
목표
1. 이벤트 함수 만들기
Dialog 전체화면 만들기 ShowWindow(SW_SHOWMAXIMIZED);
CString cStr = L"String"; CT2CA convertedString(cStr); std::string str = std::string(convertedString); 또는
MFC 폴더 선택 폴더 선택
MFC 쓰레드 활용 헤더파일 설정
최초 작성일 : 2022-11-30
WiFi는 접속까지 됐는데 ping이 안 나갔고, 블루투스는 첫 명령부터 대답이 없었다. 같은 모듈인데 문제는 전혀 달랐다.
모듈을 올렸는데 사용 카운트가 0이었다. 드라이버가 안 붙은 줄 알았는데, 실제로는 칩이 펌웨어를 기다리고 있었다.
커널은 고쳤는데 부팅 순간에 잠깐 불이 켜진다. 그 짧은 구간은 커널이 아니라 부트로더 소관이었다.
재부팅하면 LED가 켜지고, 값을 한 번 읽으면 꺼진다. 입력으로 설정한 핀에서는 일어날 수 없는 일이었다.
보드가 새 디바이스 트리로 떴다. 이제 무엇이 살아있는지 세어볼 차례인데, 기대값을 모르면 숫자를 봐도 판단이 안 된다.
직접 쓴 디바이스 트리를 실물 보드에 올렸다. SD 부팅으로 되돌릴 길을 먼저 만들고, 문서에 없던 것들을 하나씩 지나간 기록.
SoM 벤더가 준 평가보드용 리눅스를 자체 캐리어보드에서 돌리기까지, 디바이스 트리를 실제로 어떤 순서로 짜고 무엇을 확인했는지.
개요 큰비젼 황태현 이사 교육 내용
개요 OpenCV 샘플 프로그램 인데 정리하기 귀찮아서 간단하게 무슨 기능이 있는지 적는 나만의 짬통
개요 travelsalesman 최단거리 머신러닝 계산하기 하다 세일즈맨의 최단 거리 계산하는 것을 머신러닝을 이용해보자
개요 큰비젼 황태현 이사 교육 내용
개요 큰비젼 황태현 이사 교육 내용
Getting Started with Images This notebook will help you take your first steps in learning Image Processing and Computer Vision using OpenCV. You will learn s...
공부 목표 신규 프로젝트 관련 기술 확인
공부 목표 주식 및 경제 공부하여 세상을 알아보자 슈카월드 경제 공부를 보는데 자주 개념을 까먹어서 메모해서 활용하고자 만들었습니다. 슈카월드 경제 영상을 보다 자주 까먹는데 영상으로 찾기 어려워서 글로 만들어 개인 블로그에 올려 찾기 편하게 보기위해
핵심 단어 PER (Price Earnings Ratio) PBR (Price to Book value ) ROE (Return on Equity)
핵심 단어 연말정산 세금
핵심 단어 ELS CMA-RP형 ETF
핵심 단어 기초자산 파생 금융삼품 (Zero sum)
어제 만든 BSP를 이번에는 실제 EVerest에 붙였다. 첫 실행에서 BSP가 EVerest의 기대와 다르게 동작하는 버그를 하나 고친 뒤, 저항 지그만으로 차량 연결부터 충전, 일시 중지, 종료까지 두 번 돌렸다. 그 전에 레이어와 작업 기록을 펌웨어를 뺀 채 GitHub 비공...
BSP에 비상정지(EM_INT)와 누전(RCD_INT) 입력을 넣었다. 충전 중 비상정지를 걸자 감지한 같은 밀리초에 주 릴레이가 떨어졌다. 다만 비상정지를 풀면 EVerest가 아무 조작 없이 충전을 다시 시작했다. 이건 코드가 아니라 제품 요구사항으로 정할 문제였다.
이미지에 든 EVerest를 보드에서 처음 실행해 CPU와 메모리를 재고, 오프라인 부팅 때 충전이 2분 늦어지는 원인을 고쳤다. 저항 지그로 CP 상태별 ADC 값을 측정하고, C로 첫 BSP를 짜서 CP 상태에 따라 주 릴레이가 붙고 떨어지는 것까지 확인했다.
이미지가 완성됐으니 다음은 그 안에 든 EVerest를 실제로 돌릴 차례다. M7의 목표, 하지 않을 것, 일정, 그리고 시작 전에 정해야 할 것을 정리했다.
하드웨어 브링업이 어느 정도 끝나서, 그 위에 올릴 충전기 소프트웨어를 골랐다. C++과 Rust, 완성된 스택과 부품 세트를 비교한 끝에 EVerest로 기울었는데, 정작 걸린 건 언어가 아니라 2020년산 BSP였다.
SoM 벤더가 준 평가보드용 리눅스를 자체 캐리어보드에서 돌리기까지, 디바이스 트리를 실제로 어떤 순서로 짜고 무엇을 확인했는지.
DWIN 모니터를 EVerest 충전 상태에 맞춰 움직이는 sc6-hmi, 카드 리더를 EVerest 인증에 붙이는 sc6-rfid를 만들었다. 꽂자마자 ‘충전 중’ 화면이 뜬 이유는 거래 시작과 충전 시작을 같은 것으로 본 데 있었다. 하룻밤 사이 빌드 PC 주소가 바뀌어 서버 ...
기능을 더 붙이기 전에 지금 돌아가는 코드를 이해하는 날로 정했다. 프로그램이 뜨는 순서, EVerest 구성 YAML, EVerest와 우리 프로그램이 MQTT로 주고받는 것, 그리고 BSP(sc6-bsp.c)의 구조·CP 판정·명령 처리를 정리했다.
OCPP 거래의 meterStop이 늘 0이었다. 보드의 전력량계 JSY-MK-163T를 EVerest에 연결하려 했는데, EVerest의 범용 전력량계 모듈은 레지스터 값을 무조건 실수(float)로 해석했다. 정수로 값을 주는 JSY는 읽을 수 없었다. sc6-bsp와 같은 방...
어제 만든 BSP를 이번에는 실제 EVerest에 붙였다. 첫 실행에서 BSP가 EVerest의 기대와 다르게 동작하는 버그를 하나 고친 뒤, 저항 지그만으로 차량 연결부터 충전, 일시 중지, 종료까지 두 번 돌렸다. 그 전에 레이어와 작업 기록을 펌웨어를 뺀 채 GitHub 비공...
이미지에 든 EVerest를 보드에서 처음 실행해 CPU와 메모리를 재고, 오프라인 부팅 때 충전이 2분 늦어지는 원인을 고쳤다. 저항 지그로 CP 상태별 ADC 값을 측정하고, C로 첫 BSP를 짜서 CP 상태에 따라 주 릴레이가 붙고 떨어지는 것까지 확인했다.
이미지가 완성됐으니 다음은 그 안에 든 EVerest를 실제로 돌릴 차례다. M7의 목표, 하지 않을 것, 일정, 그리고 시작 전에 정해야 할 것을 정리했다.
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
펌웨어가 올라가고 eth1에 UP RUNNING이 떴다. PLC가 열렸다고 생각하기 쉽지만, RUNNING이 보여주는 범위는 생각보다 좁다.
모듈을 올렸는데 사용 카운트가 0이었다. 드라이버가 안 붙은 줄 알았는데, 실제로는 칩이 펌웨어를 기다리고 있었다.
손으로 실행하던 충전기 소프트웨어를 systemd 서비스로 바꿨다. 그리고 충전 중에 프로그램을 하나씩 죽여 봤다. kill -9 한 번에 릴레이가 붙은 채 남았고, EVerest를 다시 시작하자 승인 없이 릴레이가 1초 붙었다. EVerest가 ‘충전 멈추는 중’에서 영원히 맴돈...
충전기 보드의 시계가 서버보다 5초 빨랐다. WiFi로 인터넷도 되고 DNS도 되는데 timesyncd는 시간 서버에 요청을 한 번도 보내지 않았다. 원인은 networkd의 온라인 판단에 케이블 없는 유선 포트 하나만 들어 있던 것이었다. 설정 한 줄로 고쳤다.
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
이미지에 든 EVerest를 보드에서 처음 실행해 CPU와 메모리를 재고, 오프라인 부팅 때 충전이 2분 늦어지는 원인을 고쳤다. 저항 지그로 CP 상태별 ADC 값을 측정하고, C로 첫 BSP를 짜서 CP 상태에 따라 주 릴레이가 붙고 떨어지는 것까지 확인했다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
최초 작성일 : 2022-12-15
최초 작성일 : 2022-11-21
WSL2 설치
최초 작성일 : 2022-11-15
1. 라즈비안 OS 설치된 SD 카드 열기 2. 라즈비안 파일 wpa_supplicant.conf 파일 넣기 wpa_supplicant.conf 안에 내용 country=GB ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev...
라즈베리파이 카메라 _UI 샘플 코드
최초 작성일 : 2022-12-15
최초 작성일 : 2022-11-15
개발 환경 설치
안되고 있음
Pytorch 튜토리얼
Pytorch 튜토리얼
DWIN 환경설정
업무내용 DWIN 모니터에 UI 작업을 진행했습니다. 해당 작업을 통해 전기차 충전기 UI 개발을 진행했습니다.
DWIN 모니터 시리얼 업데이트 방법 원하는 변경 파일을 생성한다 (42.icl(이미지) ) 업데이트 32Kbyte 블록으로 나눠서 업데이트를 진행한다. 1.UltraEdit 프로그램으로 이미지 파일 열어준 2.모든 데이터를 선택 후 복사...
1. 설치 사이트로 들어가서 드라이버와 설치 프로그램 설치 https://www.dwin-global.com/tool-page/
WebUI Ai 그림 그리기 목록
결론 원래는 게임 메이플 스토리 케릭터 학습해보고 싶었는데 메이플 케릭터 정보들이 데이터 파싱이 어려워보여 영상 내용으로 대체함
사전 준비 모델 다운받기 오렌지믹스 + 바실믹스
서론 2022년에 인터넷 게시글 중 하나가 AI 그림이 화제가 되었다. 글을 입력하면 원하는 그림을 그려주는 AI이다. 필자는 기존의 다양한 AI 관련 이론을 공부해 보았다. 예를 들어 고양이와 개를 구별하는 AI 프로그램등이 있다. 물론 대학교 4학년 및 회사 지원을 받아 공부...
WebUI Ai 그림 그리기 목록
결론 원래는 게임 메이플 스토리 케릭터 학습해보고 싶었는데 메이플 케릭터 정보들이 데이터 파싱이 어려워보여 영상 내용으로 대체함
사전 준비 모델 다운받기 오렌지믹스 + 바실믹스
서론 2022년에 인터넷 게시글 중 하나가 AI 그림이 화제가 되었다. 글을 입력하면 원하는 그림을 그려주는 AI이다. 필자는 기존의 다양한 AI 관련 이론을 공부해 보았다. 예를 들어 고양이와 개를 구별하는 AI 프로그램등이 있다. 물론 대학교 4학년 및 회사 지원을 받아 공부...
MYD-YA157C 보드 블루투스 테스트 기록
RTL8723BU USB WiFi 동글을 위한 커널 드라이버 직접 빌드기
MYD-YA157C 보드로 전기차 충전기 개발 환경 구축기 MYD-YA157C 보드 네트워크/주변장치 테스트 기록
MYD-YA157C 보드로 전기차 충전기 개발 환경 구축기
MYiR 모듈을 쓴 우리 보드(SC6_0)를 ST OpenSTLinux v6(Scarthgap)로 옮기는 작업을 시작했다. 아침에는 시리얼에 PANIC 두 줄만 나왔고, 저녁에는 커널 6.6에 로그인했다. 그 사이에 패치 전 소스, 사라진 dd, HSE 바이패스, GPT 6칸 제한...
커널은 고쳤는데 부팅 순간에 잠깐 불이 켜진다. 그 짧은 구간은 커널이 아니라 부트로더 소관이었다.
재부팅하면 LED가 켜지고, 값을 한 번 읽으면 꺼진다. 입력으로 설정한 핀에서는 일어날 수 없는 일이었다.
직접 쓴 디바이스 트리를 실물 보드에 올렸다. SD 부팅으로 되돌릴 길을 먼저 만들고, 문서에 없던 것들을 하나씩 지나간 기록.
EVerest를 쓰려면 BSP부터 갈아엎어야 하는데, 그 전에 이 칩으로 될지부터 알고 싶었다. WSL에 EVerest를 설치해 가상 차량으로 충전을 돌리고, 메모리를 재고, 차와 충전기가 주고받는 ISO 15118 메시지를 패킷으로 잡았다.
하드웨어 브링업이 어느 정도 끝나서, 그 위에 올릴 충전기 소프트웨어를 골랐다. C++과 Rust, 완성된 스택과 부품 세트를 비교한 끝에 EVerest로 기울었는데, 정작 걸린 건 언어가 아니라 2020년산 BSP였다.
펌웨어가 올라가고 eth1에 UP RUNNING이 떴다. PLC가 열렸다고 생각하기 쉽지만, RUNNING이 보여주는 범위는 생각보다 좁다.
모듈을 올렸는데 사용 카운트가 0이었다. 드라이버가 안 붙은 줄 알았는데, 실제로는 칩이 펌웨어를 기다리고 있었다.
어제 만든 BSP를 이번에는 실제 EVerest에 붙였다. 첫 실행에서 BSP가 EVerest의 기대와 다르게 동작하는 버그를 하나 고친 뒤, 저항 지그만으로 차량 연결부터 충전, 일시 중지, 종료까지 두 번 돌렸다. 그 전에 레이어와 작업 기록을 펌웨어를 뺀 채 GitHub 비공...
이미지에 든 EVerest를 보드에서 처음 실행해 CPU와 메모리를 재고, 오프라인 부팅 때 충전이 2분 늦어지는 원인을 고쳤다. 저항 지그로 CP 상태별 ADC 값을 측정하고, C로 첫 BSP를 짜서 CP 상태에 따라 주 릴레이가 붙고 떨어지는 것까지 확인했다.
이미지가 완성됐으니 다음은 그 안에 든 EVerest를 실제로 돌릴 차례다. M7의 목표, 하지 않을 것, 일정, 그리고 시작 전에 정해야 할 것을 정리했다.
VREFBUF 판별 명령이 조용해서 2.5V 기준전압이 정상이라고 믿었다. 그런데 ADC가 아예 없었다. 에러 한 줄 없이 무한 대기하던 ADC를 찾아내고, 기준전압이 실제로는 3.3V라는 걸 확인하기까지.
EVerest를 쓰려면 BSP부터 갈아엎어야 하는데, 그 전에 이 칩으로 될지부터 알고 싶었다. WSL에 EVerest를 설치해 가상 차량으로 충전을 돌리고, 메모리를 재고, 차와 충전기가 주고받는 ISO 15118 메시지를 패킷으로 잡았다.
하드웨어 브링업이 어느 정도 끝나서, 그 위에 올릴 충전기 소프트웨어를 골랐다. C++과 Rust, 완성된 스택과 부품 세트를 비교한 끝에 EVerest로 기울었는데, 정작 걸린 건 언어가 아니라 2020년산 BSP였다.
충전기가 차에 전기를 주는 마지막 관문은 릴레이다. 회로도를 따라 어떤 핀이 어떤 릴레이를 움직이는지 찾고, AC 없이 딸깍 소리와 LED로 확인했다. 디지털 출력 네 개도 같이 끝냈다.
VREFBUF 판별 명령이 조용해서 2.5V 기준전압이 정상이라고 믿었다. 그런데 ADC가 아예 없었다. 에러 한 줄 없이 무한 대기하던 ADC를 찾아내고, 기준전압이 실제로는 3.3V라는 걸 확인하기까지.
어제 만든 BSP를 이번에는 실제 EVerest에 붙였다. 첫 실행에서 BSP가 EVerest의 기대와 다르게 동작하는 버그를 하나 고친 뒤, 저항 지그만으로 차량 연결부터 충전, 일시 중지, 종료까지 두 번 돌렸다. 그 전에 레이어와 작업 기록을 펌웨어를 뺀 채 GitHub 비공...
BSP에 비상정지(EM_INT)와 누전(RCD_INT) 입력을 넣었다. 충전 중 비상정지를 걸자 감지한 같은 밀리초에 주 릴레이가 떨어졌다. 다만 비상정지를 풀면 EVerest가 아무 조작 없이 충전을 다시 시작했다. 이건 코드가 아니라 제품 요구사항으로 정할 문제였다.
이미지에 든 EVerest를 보드에서 처음 실행해 CPU와 메모리를 재고, 오프라인 부팅 때 충전이 2분 늦어지는 원인을 고쳤다. 저항 지그로 CP 상태별 ADC 값을 측정하고, C로 첫 BSP를 짜서 CP 상태에 따라 주 릴레이가 붙고 떨어지는 것까지 확인했다.
이미지가 완성됐으니 다음은 그 안에 든 EVerest를 실제로 돌릴 차례다. M7의 목표, 하지 않을 것, 일정, 그리고 시작 전에 정해야 할 것을 정리했다.
FastAPI 사용하기 uvicorn web_OCPP201:app –reload –host 주소–port 8000
최초 작성일 : 2022-12-11
주별 몸무게 변화 기록
1분기 목표 딥러닝 및 AI 관련 토이프로젝트 만들기 안드로이드 앱 만들기 몸무게 90KG 이하
1분기 목표 딥러닝 및 AI 관련 토이프로젝트 만들기 웹 관련 공부하기 몸관리 하기 (90KG 이하 ) ADSP 자격증따기 (1)
목차 [기본 환경 세팅] [Pose 데이터 활용해보기]
YoloV8 문서를 보면
목차 가상환경 만들기 샘플 영상 다운로드 샘플 동영상 명명하기 YoloV8 학습하기 학습된 내용 ...
목적 React와 자바 스크립트를 이용하여 좋은 프로젝트를 만들기위해
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
WiFi는 접속까지 됐는데 ping이 안 나갔고, 블루투스는 첫 명령부터 대답이 없었다. 같은 모듈인데 문제는 전혀 달랐다.
보드가 새 디바이스 트리로 떴다. 이제 무엇이 살아있는지 세어볼 차례인데, 기대값을 모르면 숫자를 봐도 판단이 안 된다.
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
펌웨어가 올라가고 eth1에 UP RUNNING이 떴다. PLC가 열렸다고 생각하기 쉽지만, RUNNING이 보여주는 범위는 생각보다 좁다.
모듈을 올렸는데 사용 카운트가 0이었다. 드라이버가 안 붙은 줄 알았는데, 실제로는 칩이 펌웨어를 기다리고 있었다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
펌웨어가 올라가고 eth1에 UP RUNNING이 떴다. PLC가 열렸다고 생각하기 쉽지만, RUNNING이 보여주는 범위는 생각보다 좁다.
모듈을 올렸는데 사용 카운트가 0이었다. 드라이버가 안 붙은 줄 알았는데, 실제로는 칩이 펌웨어를 기다리고 있었다.
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
WiFi는 접속까지 됐는데 ping이 안 나갔고, 블루투스는 첫 명령부터 대답이 없었다. 같은 모듈인데 문제는 전혀 달랐다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
WiFi는 접속까지 됐는데 ping이 안 나갔고, 블루투스는 첫 명령부터 대답이 없었다. 같은 모듈인데 문제는 전혀 달랐다.
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
충전기가 차에 전기를 주는 마지막 관문은 릴레이다. 회로도를 따라 어떤 핀이 어떤 릴레이를 움직이는지 찾고, AC 없이 딸깍 소리와 LED로 확인했다. 디지털 출력 네 개도 같이 끝냈다.
VREFBUF 판별 명령이 조용해서 2.5V 기준전압이 정상이라고 믿었다. 그런데 ADC가 아예 없었다. 에러 한 줄 없이 무한 대기하던 ADC를 찾아내고, 기준전압이 실제로는 3.3V라는 걸 확인하기까지.
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
하드웨어 브링업이 어느 정도 끝나서, 그 위에 올릴 충전기 소프트웨어를 골랐다. C++과 Rust, 완성된 스택과 부품 세트를 비교한 끝에 EVerest로 기울었는데, 정작 걸린 건 언어가 아니라 2020년산 BSP였다.
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
MYiR 모듈을 쓴 우리 보드(SC6_0)를 ST OpenSTLinux v6(Scarthgap)로 옮기는 작업을 시작했다. 아침에는 시리얼에 PANIC 두 줄만 나왔고, 저녁에는 커널 6.6에 로그인했다. 그 사이에 패치 전 소스, 사라진 dd, HSE 바이패스, GPT 6칸 제한...
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
MYiR 모듈을 쓴 우리 보드(SC6_0)를 ST OpenSTLinux v6(Scarthgap)로 옮기는 작업을 시작했다. 아침에는 시리얼에 PANIC 두 줄만 나왔고, 저녁에는 커널 6.6에 로그인했다. 그 사이에 패치 전 소스, 사라진 dd, HSE 바이패스, GPT 6칸 제한...
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
MYiR 모듈을 쓴 우리 보드(SC6_0)를 ST OpenSTLinux v6(Scarthgap)로 옮기는 작업을 시작했다. 아침에는 시리얼에 PANIC 두 줄만 나왔고, 저녁에는 커널 6.6에 로그인했다. 그 사이에 패치 전 소스, 사라진 dd, HSE 바이패스, GPT 6칸 제한...
코드 읽기 1편에서 BSP(sc6-bsp.c)를 봤다. 2편에서는 전력량계 프로그램 sc6-meter, EVerest 안쪽의 충전 상태 머신 EvseManager, 그리고 사건이 OCPP 메시지가 되어 서버로 가는 길을 따라갔다.
OCPP 거래의 meterStop이 늘 0이었다. 보드의 전력량계 JSY-MK-163T를 EVerest에 연결하려 했는데, EVerest의 범용 전력량계 모듈은 레지스터 값을 무조건 실수(float)로 해석했다. 정수로 값을 주는 JSY는 읽을 수 없었다. sc6-bsp와 같은 방...
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
BSP에 비상정지(EM_INT)와 누전(RCD_INT) 입력을 넣었다. 충전 중 비상정지를 걸자 감지한 같은 밀리초에 주 릴레이가 떨어졌다. 다만 비상정지를 풀면 EVerest가 아무 조작 없이 충전을 다시 시작했다. 이건 코드가 아니라 제품 요구사항으로 정할 문제였다.
이미지에 든 EVerest를 보드에서 처음 실행해 CPU와 메모리를 재고, 오프라인 부팅 때 충전이 2분 늦어지는 원인을 고쳤다. 저항 지그로 CP 상태별 ADC 값을 측정하고, C로 첫 BSP를 짜서 CP 상태에 따라 주 릴레이가 붙고 떨어지는 것까지 확인했다.
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
코드 읽기 1편에서 BSP(sc6-bsp.c)를 봤다. 2편에서는 전력량계 프로그램 sc6-meter, EVerest 안쪽의 충전 상태 머신 EvseManager, 그리고 사건이 OCPP 메시지가 되어 서버로 가는 길을 따라갔다.
지금까지 충전기는 평문 WebSocket으로 서버에 붙어 있었다. 시험용 인증서를 만들고 SteVe를 HTTPS로 바꾼 뒤, 보드를 OCPP 보안 프로파일 2(TLS + Basic 인증)로 접속시켰다. 틀린 비밀번호와 평문 접속이 거절되는 것까지 확인했다.
충전기와 서버 사이의 네트워크가 끊기면 어떻게 되는지 보려 했다. 그런데 시험을 시작하기도 전에, 서버에 접속은 했지만 등록되지 않는 문제가 나타났다. 원인은 EVerest OCPP 라이브러리의 경쟁 조건이었다. 4줄 패치로 고친 뒤 끊김 시험 네 가지를 모두 통과했다.
코드 읽기 1편에서 BSP(sc6-bsp.c)를 봤다. 2편에서는 전력량계 프로그램 sc6-meter, EVerest 안쪽의 충전 상태 머신 EvseManager, 그리고 사건이 OCPP 메시지가 되어 서버로 가는 길을 따라갔다.
지금까지 충전기는 평문 WebSocket으로 서버에 붙어 있었다. 시험용 인증서를 만들고 SteVe를 HTTPS로 바꾼 뒤, 보드를 OCPP 보안 프로파일 2(TLS + Basic 인증)로 접속시켰다. 틀린 비밀번호와 평문 접속이 거절되는 것까지 확인했다.
충전기와 서버 사이의 네트워크가 끊기면 어떻게 되는지 보려 했다. 그런데 시험을 시작하기도 전에, 서버에 접속은 했지만 등록되지 않는 문제가 나타났다. 원인은 EVerest OCPP 라이브러리의 경쟁 조건이었다. 4줄 패치로 고친 뒤 끊김 시험 네 가지를 모두 통과했다.
DWIN 모니터를 EVerest 충전 상태에 맞춰 움직이는 sc6-hmi, 카드 리더를 EVerest 인증에 붙이는 sc6-rfid를 만들었다. 꽂자마자 ‘충전 중’ 화면이 뜬 이유는 거래 시작과 충전 시작을 같은 것으로 본 데 있었다. 하룻밤 사이 빌드 PC 주소가 바뀌어 서버 ...
지금까지 충전기는 평문 WebSocket으로 서버에 붙어 있었다. 시험용 인증서를 만들고 SteVe를 HTTPS로 바꾼 뒤, 보드를 OCPP 보안 프로파일 2(TLS + Basic 인증)로 접속시켰다. 틀린 비밀번호와 평문 접속이 거절되는 것까지 확인했다.
충전기와 서버 사이의 네트워크가 끊기면 어떻게 되는지 보려 했다. 그런데 시험을 시작하기도 전에, 서버에 접속은 했지만 등록되지 않는 문제가 나타났다. 원인은 EVerest OCPP 라이브러리의 경쟁 조건이었다. 4줄 패치로 고친 뒤 끊김 시험 네 가지를 모두 통과했다.
1단계 파일구조
Getting Started with Images This notebook will help you take your first steps in learning Image Processing and Computer Vision using OpenCV. You will learn s...
최초 작성일 : 2022-12-11
최초 작성일 : 2022-11-30
steve Docker db 정보 파일 내부에 docker-compose.yml 파일에 저장되어 있습니다
최초 작성일 : 2022-12-11
기초 HDR 샘플 프로그램
HDR 기능을 활용하여 화질 개선해보자
한국 주요 전기차 충전기 제조사 (EV Charger Manufacturers) 국내 전기차 충전기 제조 시장은 대기업의 인수와 전문 기술 기업의 성장으로 기술력이 상향 평준화되어 있습니다. 주요 제조사를 시장 점유율과 기술적 특징에 따라 분류하였습니다. 1. 급속·초급속 충전...
업무내용 DWIN 모니터에 UI 작업을 진행했습니다. 해당 작업을 통해 전기차 충전기 UI 개발을 진행했습니다.
목적 React와 자바 스크립트를 이용하여 좋은 프로젝트를 만들기위해
강의 제목 [올인원 AI] 기획부터 제작까지 한번에, AI 영상 제작 마스터
목표 애니메이션 AI 제작 직접 경험
WiFi는 접속까지 됐는데 ping이 안 나갔고, 블루투스는 첫 명령부터 대답이 없었다. 같은 모듈인데 문제는 전혀 달랐다.
보드가 새 디바이스 트리로 떴다. 이제 무엇이 살아있는지 세어볼 차례인데, 기대값을 모르면 숫자를 봐도 판단이 안 된다.
커널은 고쳤는데 부팅 순간에 잠깐 불이 켜진다. 그 짧은 구간은 커널이 아니라 부트로더 소관이었다.
재부팅하면 LED가 켜지고, 값을 한 번 읽으면 꺼진다. 입력으로 설정한 핀에서는 일어날 수 없는 일이었다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
WiFi는 접속까지 됐는데 ping이 안 나갔고, 블루투스는 첫 명령부터 대답이 없었다. 같은 모듈인데 문제는 전혀 달랐다.
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
WiFi는 접속까지 됐는데 ping이 안 나갔고, 블루투스는 첫 명령부터 대답이 없었다. 같은 모듈인데 문제는 전혀 달랐다.
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
WiFi는 접속까지 됐는데 ping이 안 나갔고, 블루투스는 첫 명령부터 대답이 없었다. 같은 모듈인데 문제는 전혀 달랐다.
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
VREFBUF 판별 명령이 조용해서 2.5V 기준전압이 정상이라고 믿었다. 그런데 ADC가 아예 없었다. 에러 한 줄 없이 무한 대기하던 ADC를 찾아내고, 기준전압이 실제로는 3.3V라는 걸 확인하기까지.
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
충전기가 차에 전기를 주는 마지막 관문은 릴레이다. 회로도를 따라 어떤 핀이 어떤 릴레이를 움직이는지 찾고, AC 없이 딸깍 소리와 LED로 확인했다. 디지털 출력 네 개도 같이 끝냈다.
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
이미지에 든 EVerest를 보드에서 처음 실행해 CPU와 메모리를 재고, 오프라인 부팅 때 충전이 2분 늦어지는 원인을 고쳤다. 저항 지그로 CP 상태별 ADC 값을 측정하고, C로 첫 BSP를 짜서 CP 상태에 따라 주 릴레이가 붙고 떨어지는 것까지 확인했다.
이미지가 완성됐으니 다음은 그 안에 든 EVerest를 실제로 돌릴 차례다. M7의 목표, 하지 않을 것, 일정, 그리고 시작 전에 정해야 할 것을 정리했다.
충전기 보드의 시계가 서버보다 5초 빨랐다. WiFi로 인터넷도 되고 DNS도 되는데 timesyncd는 시간 서버에 요청을 한 번도 보내지 않았다. 원인은 networkd의 온라인 판단에 케이블 없는 유선 포트 하나만 들어 있던 것이었다. 설정 한 줄로 고쳤다.
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
손으로 실행하던 충전기 소프트웨어를 systemd 서비스로 바꿨다. 그리고 충전 중에 프로그램을 하나씩 죽여 봤다. kill -9 한 번에 릴레이가 붙은 채 남았고, EVerest를 다시 시작하자 승인 없이 릴레이가 1초 붙었다. EVerest가 ‘충전 멈추는 중’에서 영원히 맴돈...
BSP에 비상정지(EM_INT)와 누전(RCD_INT) 입력을 넣었다. 충전 중 비상정지를 걸자 감지한 같은 밀리초에 주 릴레이가 떨어졌다. 다만 비상정지를 풀면 EVerest가 아무 조작 없이 충전을 다시 시작했다. 이건 코드가 아니라 제품 요구사항으로 정할 문제였다.
DWIN 모니터를 EVerest 충전 상태에 맞춰 움직이는 sc6-hmi, 카드 리더를 EVerest 인증에 붙이는 sc6-rfid를 만들었다. 꽂자마자 ‘충전 중’ 화면이 뜬 이유는 거래 시작과 충전 시작을 같은 것으로 본 데 있었다. 하룻밤 사이 빌드 PC 주소가 바뀌어 서버 ...
지금까지 충전기는 평문 WebSocket으로 서버에 붙어 있었다. 시험용 인증서를 만들고 SteVe를 HTTPS로 바꾼 뒤, 보드를 OCPP 보안 프로파일 2(TLS + Basic 인증)로 접속시켰다. 틀린 비밀번호와 평문 접속이 거절되는 것까지 확인했다.
손으로 실행하던 충전기 소프트웨어를 systemd 서비스로 바꿨다. 그리고 충전 중에 프로그램을 하나씩 죽여 봤다. kill -9 한 번에 릴레이가 붙은 채 남았고, EVerest를 다시 시작하자 승인 없이 릴레이가 1초 붙었다. EVerest가 ‘충전 멈추는 중’에서 영원히 맴돈...
기능을 더 붙이기 전에 지금 돌아가는 코드를 이해하는 날로 정했다. 프로그램이 뜨는 순서, EVerest 구성 YAML, EVerest와 우리 프로그램이 MQTT로 주고받는 것, 그리고 BSP(sc6-bsp.c)의 구조·CP 판정·명령 처리를 정리했다.
코드 읽기 1편에서 BSP(sc6-bsp.c)를 봤다. 2편에서는 전력량계 프로그램 sc6-meter, EVerest 안쪽의 충전 상태 머신 EvseManager, 그리고 사건이 OCPP 메시지가 되어 서버로 가는 길을 따라갔다.
기능을 더 붙이기 전에 지금 돌아가는 코드를 이해하는 날로 정했다. 프로그램이 뜨는 순서, EVerest 구성 YAML, EVerest와 우리 프로그램이 MQTT로 주고받는 것, 그리고 BSP(sc6-bsp.c)의 구조·CP 판정·명령 처리를 정리했다.
손으로 실행하던 충전기 소프트웨어를 systemd 서비스로 바꿨다. 그리고 충전 중에 프로그램을 하나씩 죽여 봤다. kill -9 한 번에 릴레이가 붙은 채 남았고, EVerest를 다시 시작하자 승인 없이 릴레이가 1초 붙었다. EVerest가 ‘충전 멈추는 중’에서 영원히 맴돈...
코드 읽기 1편에서 BSP(sc6-bsp.c)를 봤다. 2편에서는 전력량계 프로그램 sc6-meter, EVerest 안쪽의 충전 상태 머신 EvseManager, 그리고 사건이 OCPP 메시지가 되어 서버로 가는 길을 따라갔다.
WSL2 설치
WSL2 설치
최초 작성일 : 2022-11-21
최초 작성일 : 2022-11-21
MFC 쓰레드 활용 헤더파일 설정
1단계 파일구조
1단계 파일구조
1단계 파일구조
Dialog 전체화면 만들기 ShowWindow(SW_SHOWMAXIMIZED);
Dialog 전체화면 만들기 ShowWindow(SW_SHOWMAXIMIZED);
Dialog 전체화면 만들기 ShowWindow(SW_SHOWMAXIMIZED);
Dialog 전체화면 만들기 ShowWindow(SW_SHOWMAXIMIZED);
Dialog 전체화면 만들기 ShowWindow(SW_SHOWMAXIMIZED);
Dialog 전체화면 만들기 ShowWindow(SW_SHOWMAXIMIZED);
Selenium 튜토리얼
잭슨 나노 크로스 컴파일
개발 관련 설명
1. 테스트 하기위한 가상 포트 설정 링크 참조 https://developer-joe.tistory.com/125
OpenCV 설치 스크립트
1. 이벤트 함수 만들기
DGUS_UI 사용 후기 일주일 정도 써봤는데 구리네요 변수값 지정해줘야하고 업로드도 불편하고
1. 속성 값 보기 model = use_charger_box columns = [m.key for m in model.__table__.columns] print(columns) 2. 그룹 정리 connector_joins = connector_jo...
1. 시작하자 마자 동작하는것 테스트
OCPP 전문 보내기 예시 ```python request = call.DataTransferPayload(vendor_id = “aa”,message_id =”str”,data = “str”) print(request) test = await cp.call(...
차이점 python 가상 환경 -사용 ``` │1: python -m pip install –upgrade pip │ │2: python -m venv myapi │ │3: ls │ ...
차이점 python 가상 환경 -사용 ``` │1: python -m pip install –upgrade pip │ │2: python -m venv myapi │ │3: ls │ ...
개요 큰비젼 황태현 이사 교육 내용
개요 큰비젼 황태현 이사 교육 내용
개요 travelsalesman 최단거리 머신러닝 계산하기 하다 세일즈맨의 최단 거리 계산하는 것을 머신러닝을 이용해보자
개요 큰비젼 황태현 이사 교육 내용
FAST API 개발 관련 정리 주된 기능들은 점프투 FastAPi wikidocs 참조하여 만들었습니다
참조 링크 가상 포트를 이용한 시리얼(Serial) 통신 하기 https://developer-joe.tistory.com/125
참조 링크 가상 포트를 이용한 시리얼(Serial) 통신 하기 https://developer-joe.tistory.com/125
참조 링크 가상 포트를 이용한 시리얼(Serial) 통신 하기 https://developer-joe.tistory.com/125
python 폴더 내 이미지 읽기
출처 https://reakwon.tistory.com/195
출처 https://www.joinc.co.kr/w/man/4200/ReadFile
개발 진행 내역
Dwin 사용후기
pyAI-k210 개발 환경 설정해보자
개발 진행 내역
라즈베리파이 카메라 _UI 샘플 코드
자주 사용하는데 완벽하게 사용하지 못한 기술들
자료 링크 개인링크 https://github.com/Leejeunghun/MFCMODBUS
자료 링크 개인링크 https://github.com/Leejeunghun/MFCMODBUS
1분기 목표 딥러닝 및 AI 관련 토이프로젝트 만들기 웹 관련 공부하기 몸관리 하기 (90KG 이하 )
HTML 기초 3요소 HTML 구조 CSS 스타일 JavaScript 기능
프로젝트 진행 내역
BEV -배터리 전기자동차
영상생성 모델
부동산 청약 알아보기
부동산 청약 알아보기
튜토리얼 따라하기
power app ``` 직관적이고 시각적인 코드리스 도구로 간단한 모바일 앱 만들때 사용하기 좋다
2025-08-07 금리 현황
2025-08-07 금리 현황
다운로드
닷넷프레임워크 공통 언어기반 프로그래밍 언어와 상관없이 동작하게 해주는 환경
참조 https://learn.microsoft.com/ko-kr/azure/devops/repos/git/gitworkflow?view=azure-devops
SQLD 보수교육 공부
해당 포스팅 이유
MYiR MYC-Y6ULX 보드에 USB 블루투스 동글을 물려 Windows와 SPP 통신을 붙이려다 겪은 삽질 전 과정과 최종 해결책 정리
MYiR MYC-Y6ULX 보드에 USB 블루투스 동글을 물려 Windows와 SPP 통신을 붙이려다 겪은 삽질 전 과정과 최종 해결책 정리
MYiR MYC-Y6ULX 보드에 USB 블루투스 동글을 물려 Windows와 SPP 통신을 붙이려다 겪은 삽질 전 과정과 최종 해결책 정리
MYiR MYC-Y6ULX 보드에 USB 블루투스 동글을 물려 Windows와 SPP 통신을 붙이려다 겪은 삽질 전 과정과 최종 해결책 정리
MYiR MYC-Y6ULX 보드에 USB 블루투스 동글을 물려 Windows와 SPP 통신을 붙이려다 겪은 삽질 전 과정과 최종 해결책 정리
MYiR MYC-Y6ULX 보드에 USB 블루투스 동글을 물려 Windows와 SPP 통신을 붙이려다 겪은 삽질 전 과정과 최종 해결책 정리
항공권 예약 내역 (완료)
SoM 벤더가 준 평가보드용 리눅스를 자체 캐리어보드에서 돌리기까지, 디바이스 트리를 실제로 어떤 순서로 짜고 무엇을 확인했는지.
SoM 벤더가 준 평가보드용 리눅스를 자체 캐리어보드에서 돌리기까지, 디바이스 트리를 실제로 어떤 순서로 짜고 무엇을 확인했는지.
직접 쓴 디바이스 트리를 실물 보드에 올렸다. SD 부팅으로 되돌릴 길을 먼저 만들고, 문서에 없던 것들을 하나씩 지나간 기록.
직접 쓴 디바이스 트리를 실물 보드에 올렸다. SD 부팅으로 되돌릴 길을 먼저 만들고, 문서에 없던 것들을 하나씩 지나간 기록.
보드가 새 디바이스 트리로 떴다. 이제 무엇이 살아있는지 세어볼 차례인데, 기대값을 모르면 숫자를 봐도 판단이 안 된다.
재부팅하면 LED가 켜지고, 값을 한 번 읽으면 꺼진다. 입력으로 설정한 핀에서는 일어날 수 없는 일이었다.
커널은 고쳤는데 부팅 순간에 잠깐 불이 켜진다. 그 짧은 구간은 커널이 아니라 부트로더 소관이었다.
모듈을 올렸는데 사용 카운트가 0이었다. 드라이버가 안 붙은 줄 알았는데, 실제로는 칩이 펌웨어를 기다리고 있었다.
펌웨어가 올라가고 eth1에 UP RUNNING이 떴다. PLC가 열렸다고 생각하기 쉽지만, RUNNING이 보여주는 범위는 생각보다 좁다.
DTS 파일을 새로 만들었는데 make가 거부했다. Makefile에 이름 한 줄을 넣으니 됐다. 그 한 줄이 어떻게 동작하는지 들여다봤다.
DTS 파일을 새로 만들었는데 make가 거부했다. Makefile에 이름 한 줄을 넣으니 됐다. 그 한 줄이 어떻게 동작하는지 들여다봤다.
DTS 파일을 새로 만들었는데 make가 거부했다. Makefile에 이름 한 줄을 넣으니 됐다. 그 한 줄이 어떻게 동작하는지 들여다봤다.
WiFi는 접속까지 됐는데 ping이 안 나갔고, 블루투스는 첫 명령부터 대답이 없었다. 같은 모듈인데 문제는 전혀 달랐다.
VREFBUF 판별 명령이 조용해서 2.5V 기준전압이 정상이라고 믿었다. 그런데 ADC가 아예 없었다. 에러 한 줄 없이 무한 대기하던 ADC를 찾아내고, 기준전압이 실제로는 3.3V라는 걸 확인하기까지.
VREFBUF 판별 명령이 조용해서 2.5V 기준전압이 정상이라고 믿었다. 그런데 ADC가 아예 없었다. 에러 한 줄 없이 무한 대기하던 ADC를 찾아내고, 기준전압이 실제로는 3.3V라는 걸 확인하기까지.
VREFBUF 판별 명령이 조용해서 2.5V 기준전압이 정상이라고 믿었다. 그런데 ADC가 아예 없었다. 에러 한 줄 없이 무한 대기하던 ADC를 찾아내고, 기준전압이 실제로는 3.3V라는 걸 확인하기까지.
충전기가 차에 전기를 주는 마지막 관문은 릴레이다. 회로도를 따라 어떤 핀이 어떤 릴레이를 움직이는지 찾고, AC 없이 딸깍 소리와 LED로 확인했다. 디지털 출력 네 개도 같이 끝냈다.
충전기가 차에 전기를 주는 마지막 관문은 릴레이다. 회로도를 따라 어떤 핀이 어떤 릴레이를 움직이는지 찾고, AC 없이 딸깍 소리와 LED로 확인했다. 디지털 출력 네 개도 같이 끝냈다.
충전기가 차에 전기를 주는 마지막 관문은 릴레이다. 회로도를 따라 어떤 핀이 어떤 릴레이를 움직이는지 찾고, AC 없이 딸깍 소리와 LED로 확인했다. 디지털 출력 네 개도 같이 끝냈다.
하드웨어 브링업이 어느 정도 끝나서, 그 위에 올릴 충전기 소프트웨어를 골랐다. C++과 Rust, 완성된 스택과 부품 세트를 비교한 끝에 EVerest로 기울었는데, 정작 걸린 건 언어가 아니라 2020년산 BSP였다.
EVerest를 쓰려면 BSP부터 갈아엎어야 하는데, 그 전에 이 칩으로 될지부터 알고 싶었다. WSL에 EVerest를 설치해 가상 차량으로 충전을 돌리고, 메모리를 재고, 차와 충전기가 주고받는 ISO 15118 메시지를 패킷으로 잡았다.
EVerest를 쓰려면 BSP부터 갈아엎어야 하는데, 그 전에 이 칩으로 될지부터 알고 싶었다. WSL에 EVerest를 설치해 가상 차량으로 충전을 돌리고, 메모리를 재고, 차와 충전기가 주고받는 ISO 15118 메시지를 패킷으로 잡았다.
EVerest를 쓰려면 BSP부터 갈아엎어야 하는데, 그 전에 이 칩으로 될지부터 알고 싶었다. WSL에 EVerest를 설치해 가상 차량으로 충전을 돌리고, 메모리를 재고, 차와 충전기가 주고받는 ISO 15118 메시지를 패킷으로 잡았다.
EVerest를 쓰려면 BSP부터 갈아엎어야 하는데, 그 전에 이 칩으로 될지부터 알고 싶었다. WSL에 EVerest를 설치해 가상 차량으로 충전을 돌리고, 메모리를 재고, 차와 충전기가 주고받는 ISO 15118 메시지를 패킷으로 잡았다.
MYiR 모듈을 쓴 우리 보드(SC6_0)를 ST OpenSTLinux v6(Scarthgap)로 옮기는 작업을 시작했다. 아침에는 시리얼에 PANIC 두 줄만 나왔고, 저녁에는 커널 6.6에 로그인했다. 그 사이에 패치 전 소스, 사라진 dd, HSE 바이패스, GPT 6칸 제한...
MYiR 모듈을 쓴 우리 보드(SC6_0)를 ST OpenSTLinux v6(Scarthgap)로 옮기는 작업을 시작했다. 아침에는 시리얼에 PANIC 두 줄만 나왔고, 저녁에는 커널 6.6에 로그인했다. 그 사이에 패치 전 소스, 사라진 dd, HSE 바이패스, GPT 6칸 제한...
MYiR 모듈을 쓴 우리 보드(SC6_0)를 ST OpenSTLinux v6(Scarthgap)로 옮기는 작업을 시작했다. 아침에는 시리얼에 PANIC 두 줄만 나왔고, 저녁에는 커널 6.6에 로그인했다. 그 사이에 패치 전 소스, 사라진 dd, HSE 바이패스, GPT 6칸 제한...
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
지난주 커널 6.6 로그인까지 올린 SC6_0 보드에서 주변장치를 하나씩 살렸다. GPIO, 이더넷, UART 3개, 보안칩, 릴레이 2개, CP PWM과 ADC까지 모두 통과했다. 이더넷에서는 PHY 칩 이름부터 틀렸고, 받기는 되는데 보내기만 안 되는 RGMII 지연 문제를 만...
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
어제에 이어 Linux 6.6 위에서 남은 주변장치를 살렸다. QCA7005 PLC 모뎀은 펌웨어를 부팅 때마다 올려 줘야 하고, AP6212는 이미지에 펌웨어가 없었다. WiFi는 ‘비밀번호가 틀렸다’는 메시지에 한참 헤맸는데, 진짜 원인은 국가 코드였다. 블루투스는 휴대폰과 시...
이미지가 완성됐으니 다음은 그 안에 든 EVerest를 실제로 돌릴 차례다. M7의 목표, 하지 않을 것, 일정, 그리고 시작 전에 정해야 할 것을 정리했다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
이미지에 든 EVerest를 보드에서 처음 실행해 CPU와 메모리를 재고, 오프라인 부팅 때 충전이 2분 늦어지는 원인을 고쳤다. 저항 지그로 CP 상태별 ADC 값을 측정하고, C로 첫 BSP를 짜서 CP 상태에 따라 주 릴레이가 붙고 떨어지는 것까지 확인했다.
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
BSP에 비상정지(EM_INT)와 누전(RCD_INT) 입력을 넣었다. 충전 중 비상정지를 걸자 감지한 같은 밀리초에 주 릴레이가 떨어졌다. 다만 비상정지를 풀면 EVerest가 아무 조작 없이 충전을 다시 시작했다. 이건 코드가 아니라 제품 요구사항으로 정할 문제였다.
BSP에 비상정지(EM_INT)와 누전(RCD_INT) 입력을 넣었다. 충전 중 비상정지를 걸자 감지한 같은 밀리초에 주 릴레이가 떨어졌다. 다만 비상정지를 풀면 EVerest가 아무 조작 없이 충전을 다시 시작했다. 이건 코드가 아니라 제품 요구사항으로 정할 문제였다.
BSP에 비상정지(EM_INT)와 누전(RCD_INT) 입력을 넣었다. 충전 중 비상정지를 걸자 감지한 같은 밀리초에 주 릴레이가 떨어졌다. 다만 비상정지를 풀면 EVerest가 아무 조작 없이 충전을 다시 시작했다. 이건 코드가 아니라 제품 요구사항으로 정할 문제였다.
어제 만든 BSP를 이번에는 실제 EVerest에 붙였다. 첫 실행에서 BSP가 EVerest의 기대와 다르게 동작하는 버그를 하나 고친 뒤, 저항 지그만으로 차량 연결부터 충전, 일시 중지, 종료까지 두 번 돌렸다. 그 전에 레이어와 작업 기록을 펌웨어를 뺀 채 GitHub 비공...
어제 만든 BSP를 이번에는 실제 EVerest에 붙였다. 첫 실행에서 BSP가 EVerest의 기대와 다르게 동작하는 버그를 하나 고친 뒤, 저항 지그만으로 차량 연결부터 충전, 일시 중지, 종료까지 두 번 돌렸다. 그 전에 레이어와 작업 기록을 펌웨어를 뺀 채 GitHub 비공...
어제 만든 BSP를 이번에는 실제 EVerest에 붙였다. 첫 실행에서 BSP가 EVerest의 기대와 다르게 동작하는 버그를 하나 고친 뒤, 저항 지그만으로 차량 연결부터 충전, 일시 중지, 종료까지 두 번 돌렸다. 그 전에 레이어와 작업 기록을 펌웨어를 뺀 채 GitHub 비공...
충전기 보드의 시계가 서버보다 5초 빨랐다. WiFi로 인터넷도 되고 DNS도 되는데 timesyncd는 시간 서버에 요청을 한 번도 보내지 않았다. 원인은 networkd의 온라인 판단에 케이블 없는 유선 포트 하나만 들어 있던 것이었다. 설정 한 줄로 고쳤다.
충전기 보드의 시계가 서버보다 5초 빨랐다. WiFi로 인터넷도 되고 DNS도 되는데 timesyncd는 시간 서버에 요청을 한 번도 보내지 않았다. 원인은 networkd의 온라인 판단에 케이블 없는 유선 포트 하나만 들어 있던 것이었다. 설정 한 줄로 고쳤다.
충전기와 서버 사이의 네트워크가 끊기면 어떻게 되는지 보려 했다. 그런데 시험을 시작하기도 전에, 서버에 접속은 했지만 등록되지 않는 문제가 나타났다. 원인은 EVerest OCPP 라이브러리의 경쟁 조건이었다. 4줄 패치로 고친 뒤 끊김 시험 네 가지를 모두 통과했다.
충전기와 서버 사이의 네트워크가 끊기면 어떻게 되는지 보려 했다. 그런데 시험을 시작하기도 전에, 서버에 접속은 했지만 등록되지 않는 문제가 나타났다. 원인은 EVerest OCPP 라이브러리의 경쟁 조건이었다. 4줄 패치로 고친 뒤 끊김 시험 네 가지를 모두 통과했다.
지금까지 충전기는 평문 WebSocket으로 서버에 붙어 있었다. 시험용 인증서를 만들고 SteVe를 HTTPS로 바꾼 뒤, 보드를 OCPP 보안 프로파일 2(TLS + Basic 인증)로 접속시켰다. 틀린 비밀번호와 평문 접속이 거절되는 것까지 확인했다.
OCPP 거래의 meterStop이 늘 0이었다. 보드의 전력량계 JSY-MK-163T를 EVerest에 연결하려 했는데, EVerest의 범용 전력량계 모듈은 레지스터 값을 무조건 실수(float)로 해석했다. 정수로 값을 주는 JSY는 읽을 수 없었다. sc6-bsp와 같은 방...
OCPP 거래의 meterStop이 늘 0이었다. 보드의 전력량계 JSY-MK-163T를 EVerest에 연결하려 했는데, EVerest의 범용 전력량계 모듈은 레지스터 값을 무조건 실수(float)로 해석했다. 정수로 값을 주는 JSY는 읽을 수 없었다. sc6-bsp와 같은 방...
기능을 더 붙이기 전에 지금 돌아가는 코드를 이해하는 날로 정했다. 프로그램이 뜨는 순서, EVerest 구성 YAML, EVerest와 우리 프로그램이 MQTT로 주고받는 것, 그리고 BSP(sc6-bsp.c)의 구조·CP 판정·명령 처리를 정리했다.
기능을 더 붙이기 전에 지금 돌아가는 코드를 이해하는 날로 정했다. 프로그램이 뜨는 순서, EVerest 구성 YAML, EVerest와 우리 프로그램이 MQTT로 주고받는 것, 그리고 BSP(sc6-bsp.c)의 구조·CP 판정·명령 처리를 정리했다.
기능을 더 붙이기 전에 지금 돌아가는 코드를 이해하는 날로 정했다. 프로그램이 뜨는 순서, EVerest 구성 YAML, EVerest와 우리 프로그램이 MQTT로 주고받는 것, 그리고 BSP(sc6-bsp.c)의 구조·CP 판정·명령 처리를 정리했다.
손으로 실행하던 충전기 소프트웨어를 systemd 서비스로 바꿨다. 그리고 충전 중에 프로그램을 하나씩 죽여 봤다. kill -9 한 번에 릴레이가 붙은 채 남았고, EVerest를 다시 시작하자 승인 없이 릴레이가 1초 붙었다. EVerest가 ‘충전 멈추는 중’에서 영원히 맴돈...
DWIN 모니터를 EVerest 충전 상태에 맞춰 움직이는 sc6-hmi, 카드 리더를 EVerest 인증에 붙이는 sc6-rfid를 만들었다. 꽂자마자 ‘충전 중’ 화면이 뜬 이유는 거래 시작과 충전 시작을 같은 것으로 본 데 있었다. 하룻밤 사이 빌드 PC 주소가 바뀌어 서버 ...
DWIN 모니터를 EVerest 충전 상태에 맞춰 움직이는 sc6-hmi, 카드 리더를 EVerest 인증에 붙이는 sc6-rfid를 만들었다. 꽂자마자 ‘충전 중’ 화면이 뜬 이유는 거래 시작과 충전 시작을 같은 것으로 본 데 있었다. 하룻밤 사이 빌드 PC 주소가 바뀌어 서버 ...
DWIN 모니터를 EVerest 충전 상태에 맞춰 움직이는 sc6-hmi, 카드 리더를 EVerest 인증에 붙이는 sc6-rfid를 만들었다. 꽂자마자 ‘충전 중’ 화면이 뜬 이유는 거래 시작과 충전 시작을 같은 것으로 본 데 있었다. 하룻밤 사이 빌드 PC 주소가 바뀌어 서버 ...
DWIN 모니터를 EVerest 충전 상태에 맞춰 움직이는 sc6-hmi, 카드 리더를 EVerest 인증에 붙이는 sc6-rfid를 만들었다. 꽂자마자 ‘충전 중’ 화면이 뜬 이유는 거래 시작과 충전 시작을 같은 것으로 본 데 있었다. 하룻밤 사이 빌드 PC 주소가 바뀌어 서버 ...