임베디드 보드 - Tegra K1 (TK1) 자동 로그아웃 원인 및 해결 NVDIA에서 나온 30만 원 초반대 Jetson Tegra K1(이하 TK1)은 고성능에 비해 가격이 낮아서 유용하게 사용할 수 있는 임베디드 보드다. 근데 이 보드에 문제가 있다. 2016년 이후론 거의 발생하지 않는 문제인데, 이전에 구입한 사람들은 누구나 한번 쯤은 겪어봤을 상황이 있다. 자동 로그아웃이 되며 그동안 작업한 것을 몽땅 날려버리는 아주 화나는 순간 말이다. 그래도 다행히 NVDIA 측에서 이를 해결해 새로운 커널을 제공하고 있다. 업데이트된 커널을 이용하면 저런 열 받는 상황을 다시 보지 않아도 된다. 아래 링크된 글을 살펴보면 나와 같은 원인으로 고민하던 사람을 만나볼 수 있고, 친절하게 해결책을 제시해 주는..
시리얼 통신 개요, 구현, 포트 버퍼 설정 (C# SERIAL) 시리얼 통신 개요시리얼은 거의 모든 PC에서 표준으로 사용되는 디바이스 통신 프로토콜이다. 시리얼의 개념을 USB의 개념과 잘 구분해야 한다. 대부분 컴퓨터에는 2개의 RS232 기반 시리얼 포트가 있다. 시리얼은 또한 여러 가지 디바이스에서 계측을 위한 일반 통신 프로토콜이며, 여러 GPIB 호환 디바이스에는 RS232 포트가 장착되어 있다. 그뿐만 아니라, 원격 샘플링 디바이스로 데이터 수집을 하는 경우에도 시리얼 통신을 사용할 수 있다(IEEE 참조). 시리얼 통신의 개념시리얼 포트는 정보의 바이트를 한 번에 한 비트씩 순차적으로 송수신한다. 한 번에 전체 바이트를 동시에 전달하는 병렬 통신과 비교하면 시리얼 통신은 속도가 느리지만, ..
블루투스, 비콘을 응용한 3차원 위치 추적 서비스 (IPS) 마케터들은 구매 행동 변화를 해결할 방법을 생각해야 했다. 그중 하나가 비콘(Beacon) 기술을 활용한 실내 위치 추척 시스템(IPS, Indoor Positioning System)이다. 사실 실내 위치 추척 시스템(IPS)은 오랫동안 다양한 기술로 연구되어왔다. 최근의 블루투스4.0(Bluetooth Low Energy) 기술을 사용하면 실내뿐 아니라 스포츠 경기장처럼 넓은 장소에서도 위치 추적이 가능해진다. 기존 GPS는 야외에서 2차원의 위치만 제공한 반면, 블루투스4.0 기술은 실내에서 3차원의 위치도 제공해준다. 블루투스4.0 기능은 갤럭시 S3, 아이폰 4S, 옵티머스 G프로 및 이후 기종에 이미 장착되어 있다. 다음은 SKT가 ..
[C언어] OpenGL 키보드, 마우스로 도형 회전, 확대 프로그램 일단 첨부 파일 부터 소개합니다. OpenGL 키보드 방향키로 도형 회전 확대 (7zip으로 푸세요) - OpenGL 예제.part1.rar [클릭]- OpenGL 예제.part2.rar [클릭] 위의 압축 파일 2개는 예제 모음이고, 그중에 4개의 콜백 함수로 만든 도형 조작 예제는 아래를 참조하세요. 일단, 아래 캡쳐 된 그림들은 실제 실행 화면입니다. 초기엔 작은 사각형이 하나 생성됩니다.키패드의 '+', '-' 키를 눌러 크기를 조절할 수 있어요. [C언어] OpenGL 예제 프로그램, 시작 화면 [C언어] OpenGL 예제 프로그램, 마우스 이벤트 [C언어] OpenGL 예제 프로그램, 키보드 이벤트 위에 실행 화면을 구현하는 ..
C# 파일과 폴더 정보, 드래그 앤 드롭 예제 (마우스 Drag Listview) 전체 프로젝트는 바로 아래에 있는 zip 파일을 참조하시면 됩니다. 여기에 파일을 올려보세요 아래에 마우스로 파일을 올려놓으면 파일 정보가 나오고,여기에 폴더를 올려보세요 아래에 마우스로 폴더를 올려놓으면 폴더의 정보가 나옵니다. C# 드래그 앤 드롭 프로젝트 - Csharp_DragAndDrop.zip [클릭] 우선, using System.ComponentModel;을 추가하여 DataFormats 클래스를 사용할 수 있도록 설정합니다. - txtFileDrop_DragDrop 함수 : 파일 정보 추출 후 텍스트로 표시- lDirDrop_DragDrop 함수 : 폴더 정보 추출 후 파일 내역 텍스트로 표시 1234567..
C# Form fade effect, 페이딩 (그라데이션) 윈폼 예제 C# Form fade 프로젝트 - WindowsApplication5.zip [클릭] 일단 프로젝트를 다운 받아 실행하면 위와 같이 멋없는 윈도우 폼이 하나 뜹니다. 근데, 이미 페이딩 효과(그라데이션?)가 적용된 것으로 아래 gif처럼 마우스를 갖다 대면 윈폼 색상이 변해요. 『gif 캡처 프로그램』이 마우스 커서까지 녹화하지 못해서 그런데, 화면이 밝아지는 건 마우스 커서가 닿았기 때문입니다. 이런 효과를 윈도우 폼에 추가할 소스가 아래에 있습니다. C# Windows Form Fade페이딩 폼을 만드는 그 자체는 어렵지 않습니다. 제대로 구조화하여 프로그래밍하는 것이 중요합니다. 실제로 프로그램 소스 상에서는 폼의 불투명도를 단..
C# WinForm 예제, 다이얼로그 크기 고정 소스 WinForm 예제 프로젝트 - AspectRatioForm.zip [클릭] 이 다이얼로그는 아주 약간의 공식만 습득한다면 쉽게 구현할 수 있습니다. 프로그램의 윈폼이 일정한 비율로 늘거나, 준다면 다양한 응용 프로그램에서 유용하게 사용할 수 있습니다. 화면의 비율은 어떤 폼의 높이와 관련이 있지만, 일정한 비율로 폼을 유지하려면 폭, 높이가 조정되는 경우를 모두 염두에 두어야 합니다. 즉, 높이가 줄면 너비도 줄고, 너비가 줄면 높이도 줄어야 합니다. 반대의 경우도 마찬가지죠. 코딩에 반영할 공식은 아주 간단합니다. 따라서, 사용자가 생성할 프로그램 윈폼의 공식을 정리해 보면 아래와 같습니다. Width = (ratio width * From hei..
C# 윈폼 예제, 스크린 캡쳐 소스 (화면 ScreenShot) 스크린 캡쳐 (ScreenShot) 프로젝트 - WindowsApplication2.zip [클릭] 간단한 C# 윈폼 스크린샷 프로그램입니다. 필요한 건 역시, 각 좌표를 Integer 형으로 변환시켜 인식시켜 줄 네임 스페이스입니다. 1System.Runtime.InteropServicescs 그리고 스크린 캡쳐를 위한 좌표 계산 API를 선언합니다. 123456789101112[DllImport("user32.dll", ExactSpelling = true, SetLastError = true)]public static extern IntPtr GetDC(IntPtr hWnd); [DllImport("user32.dll", ExactSp..
[스크린락] C# 윈도우폼 디자인 예제, ScreenLock 다이얼로그 윈도우폼 예제 프로젝트 - ScreenLock.zip [클릭] 다이얼로그 기본 비밀번호는 "password"입니다. 3회 만에 비밀번호를 제대로 입력하지 않으면, 입력창이 사라집니다. 그때 C# 다이얼로그에서 F7을 누르면 다시 입력창이 나타납니다. 근데, 그냥 실행시켜도 ALT+F4가 먹혀요. 두 개의 프로그램이 프로젝트에 삽입되어 있는데, 교체해 가며 실행하는 방법은 간단합니다. 1Application.Run(new "여기에 파일 이름")cs 여기에 삽입된 C# 타이머들은 비밀번호 해제 후 본 화면으로 돌아갈 때, 1. 어두웠던 화면을 점차 밝게,2. 꾸준히 포커스를 텍스트 박스 안으로, 지정해줍니다. 아래 코드는 패스워드를 입력..
C# 스플래시 윈폼 구현 (대기 시간 지루하지 않은 다이얼로그) 프로젝트 - C_sharp_SplashScreen.zip [클릭]실행파일 - SplashScreen.zip [클릭] WinForm 스플래시 스크린은 실버라이트를 이용한 웹 페이지와는 조금 다릅니다. 시각적으로도 다르고, 구현 방식도 당연히 다르죠. 스플래시 스크린은 주로 응용 프로그램이 로드되는 동안에 사용자에게 지루함(?)을 줄이기 위한 용도 등으로 쓰입니다. 예를 들어, 어떤 프로그램을 실행할 때, 프로그램 로딩이 끝나기 전 GIF 이미지가 실행되는 건 아시죠? 그와 유사한 프로그램이라고 할 수 있습니다. 이런 C# 윈폼 스크린을 구현하기 위해선 그림자, 투명도, 배경 이미지, 투명함의 정도 등에 대한 API 사용이 요구됩니다.가장 중요..
C언어 힙, 선택, 삽입, 버블, 쉘, 합병, 퀵 정렬 소스 코드 (7종류) 7개의 정렬법7개의 정렬이란, 선택정렬, 삽입정렬, 버블정렬, 쉘정렬, 합병정렬, 퀵정렬, 힙정렬입니다. 정수 20만개 까지만 받도록 설정해 놨고, 아래의 그림은 18만개의 정수를 입력받아 정렬시킨 결과입니다. C언어 정렬 예제 소스 코드 - c.zip [클릭] 7개 정렬 소스 공통 부분 (선택정렬, 삽입정렬, 버블정렬, 쉘정렬, 합병정렬, 퀵정렬, 힙정렬) 12345678910111213141516171819#include #include #include #define MAX_SIZE 1000000 #define SWAP(x, y, t) ( (t)=(x), (x)=(y), (y)=(t) )//x와 y의 위치를 temp값을 이용..
Qt 프로그래밍 프로젝트, VisualStudio -> Qt Creator 변환 방법 이 포스트에서 소개하는 개발 환경은 Visual Studio 2012 + Qt 5.3.2입니다. Qt 프로그래밍에 필요한 팁입니다. 첫 번째 프로젝트의 한글 경로를 모두 제거합니다. 즉, 폴더 이름을 바꾸던지 다른 경로로 옮기세요. QtCreator은 한글 경로 인식 못 합니다. 비주얼스튜디오에서 할 수는 있는데... ... ... .. .. . . 두 번째 한글 경로를 변경하면 Visual Studio에서 사용하는 .pro.user 내부의 경로까지 바뀌진 않습니다. 그러하니 일일이 손으로 고쳐줘야 합니다만, 다행히 많은 양은 아니라 그냥 고칠 수 있어요. 12345678910ProjectExplorer.Project...