본문 바로가기
[Qt GUI 프로그래밍] 트리뷰 사용 예제, QTreeView와 QFile 응용 [Qt GUI 프로그래밍] 트리뷰 사용 예제, QTreeView와 QFile 응용 Qt QTreeView와 QFile을 함께 사용한 GUI 프로그래밍 예제입니다. 우선 결과 화면부터 보여드릴게요. 제가 소개하는 소스는 특정 폴더의 ini 파일만 읽어 ini 내용을 트리뷰로 표현하는 것입니다. GUI 프로그래밍에서 자주 사용하는 것 중 하나인 트리뷰(QTreeView)는 부모와 자식 노드로 구성되는데요. ini 파일 이름은 부모 노드, ini 파일 내용은 자식 노드로 구성되어 있습니다. .ini 부모 노드(파일 이름) 아래에 자식 노드(ini 파일 내용)가 보이시죠? 아래 소개하는 소스는 위 Qt GUI 프로그래밍 트리뷰 소스입니다. 1234567891011121314151617181920212223242.. 2017. 9. 9.
인라인함수로 프로그램 코드 최적화 (C++ inline함수) 인라인함수로 프로그램 코드 최적화 (C++ inline함수) C++ 코드 최적화를 할 때 프로그램 코드엔 인라인함수가 있어야 합니다. C++ 객체지향 프로그래밍에 인라인함수가 갖는 장점을 적극적으로 활용하기 위함이죠. 이 포스트에선 함수 호출할 때 발생하는 오버헤드를 해결하는 인라인함수를 설명합니다. 프로그램 코드 최적화로 실행 속도를 개선하려면 반드시 인라인함수 사용이 필요합니다. 10.4 인라인함수들(Inline Functions) 인라인함수들은 함수 호출 때문에 초래되는 오버헤드를 제거할 수 있으며 여전히 보통의 함수들의 장점들을 제공한다. 그러나, 인라인화 하는 것은 만병통치약이 아니다. 어떤 상황들에서, 그것은 프로그램의 성능을 저하할 수도 있다. 이러한 특징을 현명하게 사용하는 것이 중요하다... 2017. 9. 8.
[IP 라우팅] 라우팅 테이블, ICMP Redirect에 대해서 [IP 라우팅] 라우팅 테이블, ICMP Redirect에 대해서 More Details아래 그림은 ICMP redirect message의 형식을 보여주고 있다. 네 가지의 서로 다른 redirect message가 있다. 그것들은 다음 그림에서와같이 code로 구별된다. ICMP redirect가 보아야 하는 세 개의 IP 주소가 있다. (1) redirect를 유발한 IP 주소(그것은 ICMP redirect의 데이터 부분에 있는 IP 헤더에 있다.)(2) redirect를 보내는 라우터의 IP 주소(그것은 redirect를 포함하고 있는 IP datagram의 source IP address이다.)(3) 사용될 라우터의 IP 주소(그것은 ICMP message의 4-7바이트에 있다.) ICMP r.. 2017. 9. 7.
[ICMP redirect] IP 라우팅 : FOWARD, REDIRECT 예제 [ICMP redirect] IP 라우팅 : FOWARD, REDIRECT 예제 To Forward or Not to Forward호스트들은 특별히 라우터로 구성되지 않는 한, IP datagram을 forward하지 않는다. 그렇다면 이러한 구성은 어떻게 이루어지는 것인가? 대부분은 ipforwarding이라는 커널 변수를 갖는다. 어떤 시스템은 이 변수가 zero가 아닐때만 forward를 한다. SunOS 4.1.x는 세가지 값을 가질 수 있다. -1은 forward하지 않고 이후 변수의 값을 바꿀 수 없음을 의미하고, 0은 기본적으로 forward하지 않으나 두 개 이상의 interface가 설정되면 1로 세트하고, 값이 1이면 항상 forward함을 의미한다. Solaris 2.x는 세 개의 값.. 2017. 9. 6.
PLC 이더넷 통신 - 커넥션 (미쓰비시 PLC MELSEC) PLC 이더넷 통신 - 커넥션 (미쓰비시 PLC MELSEC) 커넥션(Connection)PLC 이더넷 모듈로 실질적인 통신을 하기 위해서는 커넥션이라는 것이 있어야 합니다. Q시리즈에서는 최대 16개까지의 커넥션을 만들 수 있습니다. 이 커넥션이라는 것은 TCP/IP를 실질적으로 다루기 위해서 PLC 이더넷 모듈이 제공하는 것입니다. PC에서 소켓 이라고 표현되는 것과 거의 같은 것입니다. 하나의 커넥션은 PLC 통신을 할 두 대상 사이를 이어주는 말 그대로 하나의 연결입니다. 물리적으로 두 대상을 연결하는 것은 통신선이겠지만, 프로그램을 하는 입장에서 두 대상을 연결하는 것은 커넥션입니다. 커넥션은 논리적으로 두 대상을 연결하는 그 무엇입니다. 그렇기 때문에 PLC 이더넷 모듈을 사용해서 PLC 통신.. 2017. 9. 5.
비주얼스튜디오 에러, 오류로 인해 새 프로젝트/항목 대화 상자를 초기화할 수 없습니다 비주얼스튜디오 에러, 오류로 인해 새 프로젝트/항목 대화 상자를 초기화할 수 없습니다 비주얼스튜디오2013에서 이런 에러가 발생했습니다. 기존 프로젝트도 열리지 않고, 새 프로젝트 생성도 안 됩니다. 아래 메시지가 뜨면서 아무 작업도 못하는 상황이죠. 오류로 인해 새 프로젝트/항목 대화 상자를 초기화할 수 없습니다. 'Microsoft.VisualStudio.Dialogs.DialogInitializationException' 형식의 예외가 Throw되었습니다. 해결 방법은 사용자 설정 정보를 초기화하는 겁니다. 아래 순서대로 따라하세요. (비주얼스튜디오2013 기준으로 설명) 1. 비주얼스튜디오2013 종료 2. CMD 명령 프롬프트 실행 3. C:\Program Files\Microsoft Visua.. 2017. 9. 4.
PLC시퀀스 제어, 자기유지회로 (원리와 정의, 강좌) PLC시퀀스제어시퀀스제어(Sequential Control)란 미리 정해진 순서에 따라 제어의 각 단계를 점차로 진행하는 제어다. 불연속적인 작업을 행하는 공정제어 등에 널리 이용된다. 이는 일종의 스위치나 버튼을 사용하여 전기회로의 부하를 운전하기도 하고, 부하의 운전상태나 고장상태를 알리기도 하는 일련의 제어를 말한다. 예로 빌딩이나 공장 등에서 엘리베이터를 움직이고 고장을 알리기도 하고, 세탁기, 냉장고, 자동판매기 등도 시퀀스적으로 동작하고 있다. 시퀀스 제어계 표현 방법 - 전개 접속도 가장 많이 사용하는 방법으로 시퀀스도라고도 하며, 시퀀스제어를 사용한 전기장치 및 기기 기구의 동작을 기능 중심으로 전개하여 표시한 도면이다. 시퀀스 제어기호를 사용하여 작성한다. 여기에는 주회로와 제어회로, 표.. 2017. 9. 3.
PLC접점 기능, PLC릴레이 기능 (기초 자료) PLC접점 기능, PLC릴레이 기능 (기초 자료) PLC접점의 기능과 분류 (a는 arbelt 의미) (1) a 접점(a contact)그림(a)와 같이 아무런 힘이 가해지지 않은 상태(즉 초기 상태에서는) 고정접점과 가동접점이 떨어져 있는 PLC접점을 말하며, 힘을 가하면 그림(b)와 같이 조정접점과 가동접점이 접촉되어 전류를 통전시키는 기능을 한다. (2) b 접점 (b는 break 의미)그림 (a)는 초기 상태(힘이 가해지지 않은 상태)에서 가동접점과 고정접점이 붙어있다. 누름 버튼스위치의 버튼을 누르면 그림 (b)와 같이 가동접점과 고정 접점이 떨어지는 PLC접점을 b 접점이라 한다. (3) c 접점C 접점이란 a 접점과 b 접점이 공통된 가동접점을 공유한 형식의 전환접점을 말하며 그림의 전자 P.. 2017. 9. 2.
[Qt프로그래밍] QML Repeater 리피터 예제 [Qt프로그래밍] QML Repeater 리피터 예제 Qt프로그래밍 QML 리피터(QML Repeaters) : 모델 데이터를 이용해 사용자가 정의한 템플릿 위에 아이템을 배치. QML 리피터를 이용하면 사용자가 원하는 위치에 많은 요소를 쉽게 배치할 수 있다. QML 리피터가 생성하여 배치할 아이템의 총 개수는 내부의 model 값으로 결정된다. 여기서 소개할 샘플은 24개 도형을 5 by 5 크기로 생성한다. 반복 횟수는 model이 보유한 24이다. QML Repeater 내부의 Rectangle 생성 코드를 24번 반복하니, 총 24개의 도형이 생성된다는 뜻이다. 또한, 도형에는 텍스트가 추가된다. 즉, 도형엔 생성 순서별 번호가 쓰이는 것이다. 12345for (int i = 0; i 2017. 9. 1.
빅데이터 구축, 활용 - 도입 방법 빅데이터 구축, 활용 : 어떻게 할 것인가? 기업이나 정부, 공공 기관의 입장에서 '빅데이터를 어떻게 도입할 것인가'하는 고민 속에서 이 책을 썼다. 빅데이터에 관해서 이야기하는 사람들은 많지만 실제로 적용하려면 안갯속에 있는 것 같은 게 현실이다. 빅데이터에 대한 찬사는 빅데이터를 도입하고 구축하려는 사람들에게 그리 도움이 되지 않는다. 빅데이터에 관한 책을 읽고, 빅데이터를 먼저 구축한 사람들로부터 이야기를 들어봐도 막연한 것은 마찬가지다. 빅데이터는 공부하면 할수록 어렵다. 빅데이터는 왜 어려울까? 빅데이터의 기본 개념이 어렵기 때문이다. 빅데이터는 다양한 형태를 띠고 있다. 대단히 많은 전문 분야가 모여 있는 것이 빅데이터로, 융합 IT의 전형적인 모습을 하고 있다. 빅데이터에는 여러 가지 전문 .. 2017. 8. 31.
C# 모폴로지(morphology) 외곽선 검출 소스 (영상처리) C# 모폴로지(morphology) 외곽선 검출 소스 (영상처리) 영상처리에서 외곽선을 말끔하게 정리해주는 방법의 하나인 모폴로지(morphology) 기법을 C#의 그리드 패턴과 접목한 예제입니다. 일단 모폴로지morphology의 이론적 개념에 대해선 모폴로지 기법_Morphology 이 포스트를 참조하세요. 아래는 위 포스트에서 발췌했습니다. 모폴로지morphology기법 - 영상 내에 존재하는 특정 객체의 형태를 변형시키는 용도로 사용되는 영상처리기법.- 이진 영상처리에 주로 사용됨.- 영상에서 잡음을 제거하거나, 영상에서 객체의 모양을 기술하는 용도로 사용됨. (예: 모폴로지morphology의 대표적인 예로 침식과 팽창연산이 있음.) 침식연산 : 필터의 크기 및 사용 횟수에 따라 작은 덩어리의.. 2017. 8. 30.
납땜하는법, 납땜불량 - 기판 기초와 잘 하는 방법 확인해요 납땜하는법, 납땜불량 - 확인해요 공돌이들은 피해갈 수 없다는 그것. 납땜입니다. 납땜하는법과 납땜불량 설명합니다. 납땜하는법, 납땜이란? - 납땜이란 금이 가거나 뚫어진 쇠붙이를 땜납으로 때움, 때울 자리에 염산을 바르고 구리로 만든 인두를 불에 달구어서 염산을 찍고 땜납을 묻혀서 문질러 붙인다. - 납땜하는법에서 납땜이란 먼저, 접합해야 할 금속과 금속 사이에 전기인두로 납땜할 모재와 납을 동시에 가열한다. 녹은 납이 모세관 현상에 의하여 접합할 두 금속 사이에 흘러들어 가서 납으로 접합하여 연결하는 것이며, 전기, 전자, 통신 및 컴퓨터 기기 등의 회로를 구성하는 작업 공정이다. 납땜 시 주요 관리 항목 청결 - 금속 표면 청결 - 인두기 및 사용 도구 청결 가열 - 인두기 팁 방향 - 가열 온도 .. 2017. 8. 29.