분류 전체보기

임베디드/Qt

Qt 성능 분석

성능 분석도구가 여러 가지가 있지만 Qt Creator에서도 제공하는 성능 분석 도구들이 있다. 그중에서 QML Profiler를 사용하여 분석하였다. QML ProfilerQML Profiler는 QML 기반 애플리케이션의 랜더링, JavaScript 실행, 시그널/슬롯 처리 등 QML 엔진이 수행하는 작업들의 성능을 분석해 주는 도구이다. 타임라인과 Flame Graph, 세부 분석 등을 통해 프레임별 렌더링 시간, 애니메이션, JavaScript 함수 실행 시간, 이벤트 처리, 바인딩 등 상세 데이터를 제공해 준다. Qt Creator에서 Analyze 탭에 QML Profiler를 클릭하면 분석이 시작된다. 1. Timeline시간 순으로 메모리 사용, 애니메이션, 컴파일, 생성, 바인딩, 시그널..

이론공부

온도제어 총정리

ON/OFF 제어1. ON/OFF 제어의 기본 원리원리 및 동작 방식ON/OFF 제어는 온도 센서로부터 현재 온도(PV)를 측정하고 이를 사용자가 설정 온도(SV)와 비교한다. 비교 결과에 따라 히터 출력을 ON 또는 OFF 상태로 전환한다. 이처럼 제어 신호가 두 가지 상태(0%, 100%)로만 표현되기 때문에 '2위치 제어'라고도 부른다.  조절감도(HYSTERESIS) 적용만약 현재 온도(PV)가 설정 온도(SV)와 정확히 일치하는 한 점에서만 전환된다면 미세한 변화에도 릴레이나 출력 소자가 반복적으로 작동(채털링)하여 장치에 부담을 주게 된다. 이를 방지하기 위해 설정 온도(SV) 주변에 일정한 범위( ±2℃)의 조절감도(HYSTERESIS) 또는 불감대(dead band)를 설정하여 온도가 해당..

임베디드/Qt

Qt Linguist를 사용한 다국어 GUI

개요Qt GUI 프로그램을 만들 때 버튼 클릭으로 프로그램의 언어를 바꾸기 위해서 진행하였다.Qt에는 Linguist라는 툴을 제공하기 때문에 쉽게 다국어 기능을 구현할 수 있다. 사용 환경VMware - Ubuntu 22.04 64bit과정1. qttools 모듈 다운로드cd ~/qt6/srcwget https://download.qt.io/official_releases/qt/6.5/6.5.1/submodules/qttools-everywhere-src-6.5.1.tar.xztar xf qttools-everywhere-src-6.5.1.tar.xz 2. 빌드 디렉토리 생성 및 구성mkdir -p ~/qt6/host-build/qttoolscd ~/qt6/host-build/qttools$HOME/q..

임베디드/Qt

GUI 프로그램 자동 실행 및 종료

사용환경Raspberry Pi 4 Compute Module + 7인치 GUI에서 진행 라즈베리파이에서 자동 실행시키기GUI환경으로 부팅이 바로 되므로 LXDE의 autostart 기능을 이용해 애플리케이션을 자동 실행하였다. autostart 파일 편집sudo nano /etc/xdg/lxsession/LXDE-pi/autostart  위 2줄은 기본값이고 아래 3번째 줄에 실행파일을 등록해준다. 라즈베리파이를 재부팅하면 시작될 때 자동으로 프로그램도 실행된다. GUI 프로그램 안정적인 종료 및 라즈베리파이 종료프로그램 종료하기onClicked: Qt.quit() qml에서 간단하게 버튼의 onClicked에 Qt.quit()만 하면 프로그램이 꺼지게 된다. 하지만 리소스 정리(cleanUP)를 하고 ..

임베디드/Qt

Deploy to Remote Linux Host 에러 대처

qt.qpa.xcb: could not connect to display 에러 발생 시점라즈베리파이 IP를 변경하고 원격 실행을 했을 때 아래와 같은 에러가 발생했다. 에러 문구10:43:58: Starting /usr/local/bin/appPLC_Touch on RPI... qt.qpa.xcb: could not connect to display  qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the applica..

임베디드/Qt

Qt 라이선스 (LGPL, GPL, Commercial)

※ 아래의 내용은 참조 용도로만 사용해야 합니다. 정확한 법적 참고 자료로 사용할 수 없습니다.  Qt 라이선스는 LGPL, GPL, Commercial 3가지로 나뉜다. LGPL (Lesser General Public License)특징LGPL 라이선스 하의 Qt 라이브러리는 동적 링크를 통해 사용할 수 있다.애플리케이션이 Qt의 라이브러리를 사용하는 방식이 동적 링크라면 애플리케이션의 소스 코드를 공개할 필요는 없다.정적 링크를 사용하는 경우 애플리케이션 전체 소스 코드를 공개하거나 사용자에게 재링크 가능한 형태로 제공해야  한다.공개 범위애플리케이션이 Qt 라이브러리를 동적으로 링크하고 있다면 해당 애플리케이션의 소스 코드를 공개할 의무가 없다.단, 수정된 Qt 라이브러리 자체의 소스 코드는 공개..

임베디드/Qt

라즈베리파이 Qt6 크로스 컴파일 메뉴얼

개요목표Ubuntu 22.04(Host PC)에서 Qt 6.5.1 라이브러리를 빌드(크로스 컴파일)하여 Raspberry Pi 4(ARM 보드)에서 Qt 기반 애플리케이션을 실행시키기 크로스 컴파일이란?크로스 컴파일은 개발자가 사용하는 호스트 시스템(일반적으로 x86_64 pc)에서 타깃 시스템(ARM)용 실행 파일(바이너리)을 빌드하는 과정을 말한다.  이를 위해서는 대상 보드(ARM)에 맞는 툴체인(toolchain)과 sysroot 설정이 필요하다. 즉, 호스트와 타깃의 CPU 아키텍처나 운영체제가 다르기 때문에, 일반 컴파일러로는 생성된 바이너리가 타깃에서 실행되지 않는다. 이때, 타깃 시스템에 맞는 컴파일러, 링커, 라이브러리 등을 사용하는 크로스 컴파일 툴체인을 통해 올바른 실행 파일을 생성해..

임베디드/RaspberryPi

SD카드 Linux Reader

라즈베리파이의 SD카드를 Window에서 읽으려면 부팅 파이션만 읽을 수 있다. 하지만 pi 내부의 프로그램들은 볼 수 없다. 1. SD 카드의 파일 구조 이해라즈베리파이의 SD 카드에는 보통 두 개 이상의 파티션이 있다.부팅 파티션 (boot)FAT32 형식으로 되어 있으며, 대부분의 운영 체제에서 읽기가 가능하다.라즈베리파이의 부팅에 필요한 파일(kernel.img, cmdline.txt, config.txt 등)이 들어 있다.부팅 설정을 변경하려면 이 파티션을 수정해야 한다.루트 파일 시스템 파티션 (rootfs)ext4 형식으로 되어 있으며, 리눅스 기반 파일 시스템이다.이 파티션에 모든 시스템 파일, 사용자 데이터, 설치된 프로그램 등이 저장된다.Windows에서는 기본적으로 이 파티션을 읽을 ..

Frozen Prize
'분류 전체보기' 카테고리의 글 목록