TDR이란, Time Domain Reflectormeter 뜻과 장비 측정 원리 TDR(Time Domain Reflectometer)에 대해서. 일반적으로 파동Wave이 진행할 때 매질의 특성이 변하거나 장비 중간에 방해물이 존재하면, 굴절Refraction과 반사Reflection 등의 파동 변형이 발생합니다. (측정 시기를 말함) 이 중 반사는 파동이 진행하고 있는 반대 방향으로 파동이 보유하고 있는 에너지 중 일부가 되돌아가는 것을 의미하는데, TDR에서는 반사된 에너지를 파동의 입사 지점에서 관측하여 반사가 일어난 지점의 특성을 측정, 분석합니다. TDR을 이용하여 케이블을 사용하는 장비, HFC(Hybrid Fiber Coax)망, 전화선, 전력선, 대형 산업 현장의 금속 케이블, 지하철이나..
C# 3D 프로그래밍, GDI+ Euler Rotation 표현 프로젝트 - WindowsApplication2.zip C#에서 3D 구현을 위해 GDI+를 사용하기 위한 기본 구성은 다음과 같습니다. - X, Y, Z의 값을 갖는 클래스를 한 개 생성해야 합니다. - 3D 변환을 위한 공식에 대입될 값들을 조절할 줄 알아야 합니다. - 시점을 설정할 카메라 클래스도 설정해야 합니다. - X, Y, X에 몇 가지 공식을 대입해야 합니다. 직접 2D에서 3D로 변환할 방법은 구체적으론 없지만, 평면에서 이를 조절하는 방안과(Z축의 위치 계산 등) 24개로 이루어진 각 점(정면, 후면, 좌, 우, 상, 하 등 각 4점)의 위치 계산 및 고정을 위한 배열 활용이 중요합니다. 2D 3D간 변환 공식은 아래 사이..
[USB to Serial] PL-2303 USB 드라이버 모음 (Window, Linux, etc) UsbToSerial에서 주로 사용되는 PL-2303에 관한 드라이버 압축 파일과 간단한 정보입니다. 1. PL-2303 USB to Serial에 대한 기본적인 정보는 아래 PDF를 참조하세요 PL-2303_USB_to_Serial_Adapter_Driver_Installaion_Manual.pdf 2. USB to Serial Adapter Driver : Driver 배포 2009년(XP, Vista(32, 64bit)) XP, Vista, 기타 64bit OS 3. PL-2303 USB to Serial Bridge(H, HX, X) : 드라이버 배포 2005년(Vista, Server 2008,..
비주얼스튜디오 Qt5 시리얼 연동 사용법 (VS + Qt) 이 포스트는 비주얼스튜디오에 Qt Add-in을 설치한 것을 가정합니다. 실제로 비주얼스튜디오를 이용한 Qt 프로그램 제작하는 분들에게 참조할만한 포스트입니다. Qt 크리에이터를 사용하는 경우엔 이 포스트와 내용이 다릅니다. 아래부터 비주얼스튜디오 + Qt5 + 시리얼 라이브러리 사용 방법입니다. (폴더는 각자 확인하세요) 먼저, C:\Qt\Qt5.3.2\5.3\msvc2012_opengl\include\QtSerialPort 폴더를 확인합니다. 5.x 이상에선 기본적으로 SerialPort 클래스를 지원합니다. 5.x를 설치했음에도 SerialPort 클래스 이용이 안 된다면 아래를 참조하세요. Visual Studio 프로젝트 속성 링커 - ..
MFC 문자 찾기 함수 Find(), ReverseFind() (문자열에서 문자 찾기) MFC 문자 찾기 함수 Find(), ReverseFind() (문자열에서 문자 찾기) 문자열에서 원하는 문자를 찾으려면 Find와 ReverseFind함수를 사용하면 됩니다. 간단한 예제를 보죠. 1234567CString target("");char tok = '_';int index = 0; target = "MFC_cstring_example"; index = target.Find(tok);cs 찾기 성공 : 문자 위치 (인덱스) 반환찾기 실패 : -1 반환 7번 라인 : target 문자열에서 '_' 언더바를 찾아 인덱스를 반환합니다. 근데, 왼쪽, 즉 앞에서 찾는 게 아니라 뒤에서 찾고 싶다면? 그땐 Rev..
Qt undefined reference to 'vtable for...' 에러 해결 방법 아래와 같은 메시지 들이 뜰 경우의 해결책입니다. 1. undefined reference to 'vtable for...'2. undefined reference to vtable for mainwindow'3. undefined reference to vtable for class4. undefined reference to vtable for constructor 이건, moc 파일이 생성되지 않아 발생하는 경우입니다. .pri 또는 .pro에 변경된 사항들이 반영되지 않았다는 의미죠. 변경이란, 파일의 추가, 삭제, 이름 변경 등 모든 사항을 뜻합니다. 간단하게, Qt Creator에서 프로젝트 우클릭 후 ..
C# 메모장 프로그램 (윈도우 notepad 소스 코드) C# 메모장 소스 코드 - memo.zip 기능별 구현은 아래 소스 보면서 참조하세요. 1. using 1234567891011using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;using System.Drawing.Printing;using System.Collections;using Microsoft.Win32;cs 2. 변수 1234567891011121314151617// 폼 파일 객체..
[NX UG API] C++ 2D 도면(드로잉 시트) 만들기 예제 UG NX 10 드래프팅 기능 중 3D 모델링에서 2D 도면을 생성하는 방법이 있습니다. 이 과정을 C++ API 코드로 구현하는 방법이 있는데 좀 기니 부분별로 끊어서 설명합니다. 드로잉 시트 1. 모델링 뷰로 변환 1234567int drawing_state = 0; UF_ASSEM_set_work_part(UF_PART_ask_display_part());UF_DRAW_ask_display_state(&drawing_state); if (drawing_state == 2) // 2 = Drawing View, UG NX 10 UF_DRAW_set_display_state(1); // Modeling View, C++ APIcs 3번 ..
Qt 스톱워치, 타이머 소스, QTime 예제 (Qt Timer) Qt에서 구현 가능한 정말 간단한 Stop Watch입니다. 123456789101112131415#include #include ......... QElapsedTimer timer;qint64 nanoSec;timer.start(); nanoSec = timer.nsecsElapsed(); qDebug()
랩뷰 아두이노 연동, 장단점과 코딩 방법 (LabView, Arduino) LabVIEW와 Arduino를 연동함으로써 Arduino를 더 파워풀하고 편리하게 사용할 수 있다. LabVIEW란? - 랩뷰란 데이터 수집, 계측과 제어 시스템을 구성할 때 높은 생산성을 산출할 수 있도록 도와주는 그래피컬 프로그래밍 언어이다. - LabVIEW를 이용하여 사용자들은 그들의 시스템을 컨트롤할 수 있는 유저 인터페이스를 꾸미고, 시스템 기능을 설정할 수 있는 블록 다이어그램을 만들게 된다. - 랩뷰가 사용되는 산업 분야통신, 자동차, 반도체, 항공 우주, 교통, 의학과 전자 등을 포함한 수많은 산업 분야에서 사용되고 있다. - 개발 중 : 제품의 틀을 빠르게 만들거나 실험하기 위해서, 또한 개발 초기의 디자인을 ..
C# 코드 최적화 7가지 (작업 속도와 효율성 향상) 코드 최적화란 모든 개발자에게 중요한 측면입니다. 이 포스트에서 소개할 여러 팁은 작업 속도와 효율성을 향상해 더 나은 응용 프로그램을 제작할 수 있도록 도울 것입니다. 상용 메모리 관리 툴들은 최적화가 진행 된 응용 프로그램 코드의 질을 더 좋게 평가할 것이며, 메모리 관리 측면에서도 더 나은 결과를 유추할 수 있습니다. 작업 시간도 아낄 수 있으며, 유지 보수 비용도 절약할 수 있는 코드 최적화는 반드시 진행해야 할 사항입니다. 고민하지 말고 무조건 최적화를 하세요. 이 포스트가 그것을 돕습니다. ? 조건 연산자를 사용하세요 ?를 사용하는 것은 전혀 새로운 것이 아니고, 잘만 사용하면 오히려 더 편리합니다. 아마도 ? 연산자는 브라이언 케니건(Br..
internal compile error: Killed (program cc1plus) 에러 메시지internal compile error: Killed (program cc1plus) 제목과 같은 에러가 발생한다면 make 옵션을 살펴보자.내 경우엔 "make -j4"를 이용했더니 발생했었다. 이 에러는 시스템의 메모리가 부족하여 발생하는 것인데, j 옵션을 수정해서 에러를 해결할 수 있다. 이 포스트를 작성하고 있는 현재는 우분투 상태가 좀 이상해서 옵션 4를 주면 거의 매번 에러가 발생하나 종종 에러가 발생하지도 않는다. 이런 건 대체 무슨 이유인지 알 수가 없다. 나만 헷갈린다. 참조 링크 - make의 -j 옵션에 대해서 (소스 컴파일속도 최적화) 위의 링크를 참조해서 j 옵션 뒤에 붙을 숫자를..