검색결과 리스트
분류 전체보기 에 해당되는 글 580건
- 2015.07.07 MongoDB 설치 및 DB 생성
- 2015.07.06 시리얼 통신 개요(Serial Communication)
- 2015.07.06 마우스 동작에 응답하는 이벤트 목록
- 2015.07.03 시작의 글
- 2015.06.29 시리얼 통신 동기 방식 구현
- 2015.06.25 편집기
- 2015.06.25 HTML 태그 종류
- 2015.06.25 Web 전반 언어 카테고리
- 2015.06.25 Windows 시리얼 통신
- 2015.05.15 Windows에서 Live555 빌드하기
- 2015.02.04 dll 출력 시에 dll 파일과 lib 파일 이름 바꾸어서 출력하기
- 2015.02.03 Blob Detector (물방울 검출)
- 2015.01.29 Perspective Transformation - Image warping
- 2015.01.28 프로세스 생성
- 2015.01.28 error C2440: 'static_cast' 에러 3
2. 커맨드 창을 띄우고 MongoDB가 설치된 폴더로 이동한다
- 일반적으로 C:\Program Files\MongoDB\Server\3.0\bin 에 있다(mongo.exe가 있는 디렉토리)
3. 데이터를 저장할 폴더를 생성하고 경로를 설정한다
- 여기서 테스트로 C:\data\book 폴더를 설정하고 경로를 다음과 같이 입력한다
- mongod --dbpath c:/data/book
- 경로를 설정하면 waiting for connections 라는 문구가 마지막에 나오고 대기 상태로 있다
- 잘 생성이 되었으면 c:/data/book 경로에 다음과 같은 파일이 생성된다
4. 새로운 커맨드 창을 띄우고 mongo.exe 가 있는 디렉토리로 이동한 후 mongo 명령어를 입력하여 Mongo 쉘로 들어간다
- connecting to: test 라고 뜨는데 디폴트로 test db가 생성되고 아무 명령어도 안 치면 여기에 데이터가 저장됨
5. book DB 를 사용하기 위해 use book 명령어 입력
- db book 으로 변경되었다고 나온다
6. book DB 로 변경 후 member와 page에 데이터를 4개씩 8개 생성
> db.member.insert({name:"Kim hayoung", age:29, skill : ["Java", "Oracle"]});
> db.member.insert({name:"Park sumin", age:27, skill : ["Node.js", "Express"]});
> db.member.insert({name:"Lee naeun", age:31, skill : ["MongoDB", "Elastic"]});
> db.member.insert({name:"Hong jinho", age:33, skill : ["Linux", "Phthon"]});
> db.page.insert({number:"243", year:2011});
> db.page.insert({number:"216", year:2013});
> db.page.insert({number:"142", year:2015});
> db.page.insert({number:"72", year:2014});
- 위의 그림은 page 입력 후 insert를 입력하지 않아 에러가 난 것이다
7. 잘 생성되었는지 확인해본다
> db.member.find()
> db.page.find()
> show collections
8. book 폴더에 local db와 book db가 생성된 것을 확인
위와 같은 결과가 나오면 일단 MongoDB 생성은 성공이다
- 시리얼 통신
- 신호(데이터)를 1비트마다 직렬(Serial)로 보내는 통신
- 시간의 흐름에 따라 차례로 보내는 통신 인터페이스
- 종류 : RS232, RS422, RS485
- 동기(Synchronous), 비동기(Asynchronous) 방식
- 1바이트를 8개의 비트로 분리해서 한 번에 1비트씩 통신 선로로 전송
- 수신 측이 1바이트를 식별하기 위해 사용하는 것이 스타트 비트 & 스톱 비트
- 데이터 비트는 5, 6, 7, 8 중 하나 설정
- 데이터 비트(ByteSize)값 고 보오 레이트(Baud rate)를 일치하도록 설정
- BPS : 1초에 몇 비트가 전송되는가? (bps : bit per second)
- Baud rate : 1초에 신호가 몇 개 전송되는가?
cf) 1초에 신호가 하나일 수도 있지만, 두개, 세개, 네개 일 수도 있음
- 패리티(Parity) : 2진수의 값 중에서 1이 몇 개인가 검사.
cf) 짝수 패리티, 홀수 패리티 - 패리티가 맞지 않다면 데이터 변질이 되었다고 생각
- 정지 비트(Stop Bit) : 지정된 시간만큼 1을 가짐
- 프레임의 길이는 사전에 송신측과 수신측이 협의하여 맞추어야 함
=> 패리티가 다르거나 비트의 수가 맞지 않으면 통신을 할 수 없다
- Click - 사용자가 마우스를 클릭했을 때 발생
- DblClick - 사용자가 마우스를 더블 클릭했을 때 발생
- MouseDown - 사용자가 마우스 버튼을 눌렀을 때 발생(클릭의 전반부)
- MouseUp - 사용자가 마우스 버튼을 해제했을 때 발생(클릭의 후반후)
- MouseOut - 마우스 포인터가 객체의 그래픽 범위를 떠나려고 할때 발생
- MouseOver - 마우스 포인터가 객체의 그래픽 범위를 진입하려고 할때 발생
- MouseMove - 마우스 포인터가 객체의 그래픽 범위 안에서 마우스 포인터를 움직이려 할때 발생
- ContextMenu - 사용자가 오른쪽 마우스 버튼을 클릭했을 때 발생
드디어 Unity3D 를 시작한다.
처음 공부하는 책은 옛날 책이지만
Unity 3.x Game Development Essentials 로 공부한다
잘 해보자~~!
다음 사이트 가서 유니티를 다운 받은 후 설치하고 시작하자
책의 소스 코드는 다음 사이트에 가서 받자
http://unitybook.net/book_assets.unitypackage.zip
* 포트 열기 - 포트 설정 - 데이터 읽기 - 데이터 쓰기
1. 포트 열기
portname = "COM3";
2. 포트와 버퍼 설정
SetupComm - 버퍼 사이즈 설정
PurgeComm - 해당 버퍼 청소
<html>
<header>
<title>
<body>
<a href> </a>
<li>
<ul>
<ol>
<strong>
<nav> - 탐색하는데 선택되는 정보
<header> - 간판
<article> - 본문
어쩌다가 3D 개발자가 웹으로 오게 되었다...
웹의 언어는 전부 JavaScript 카테고리로 넣을 것이다
1. HTML
2. JavaScript
3. jQuery
4. Node.js
5. Meteor
등등
Windows에서는 시리얼 통신에 관한 함수가 따로 존재하지 않고
파일에 읽고 쓰는 것으로 통신한다
시리얼 통신에 관한 기초 자료는 다음 자료에 잘 나와있다
CreateFile( ) 함수를 이용하여 포트를 생성하고 ReadFile( ), WriteFile( )을 이용하여
데이터를 주고 받는다.
CreateFile( ) : 파일이나 입출력 장치를 연다.
입출력 장치 : 파일, 파일스트림, 디렉토리, 디스크, 볼륨, 콘솔버퍼, 파이프
각 장치를 제어할 수 있는 핸들 반환
CreateFile( ) 에 관한 사이트 주소 :
http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/4200/CreateFile
여기서 포트 입출력(시리얼 통신) 프로그램을 만들어보자
1. 소스 파일을 다운 받아 압축을 푼다.
http://www.live555.com/liveMedia/public/
2. 압축을 풀은 폴더 내에 win32config 파일 내에서 다음을 수정한다.
*
TOOLS32 = c:\Program Files\DevStudio\Vc
=>
TOOLS32 =
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE
(현재 Visual Studio 실행파일[deven.exe]가 있는 폴더 위치로 변경)
* LINK_OPT_0 = $(linkdebug) msvcirt.lib
msvcirt.lib => msvcrt.lib 로 변경 ( i를 빼줌 )
3. cmd 쉘 내에서 live 폴더로 이동해서 genWindowsMakefiles 를 입력
=> 그러면 각 서브디렉토리 내에 ".mak" 파일이 만들어짐
(Microsoft Visual Studio에 의해 사용하기 쉬운 make 파일)
4. Visual Studio 내에서 이 Makefile들을 사용하기 위해
- Open Workspace
- Makefiles(.mak) 선택
-
* DLL 이름 바꾸기
- 링커 => 일반 => 출력 파일에서 바꾸면 된다.
$(OutDir)$(TargetName)$(TargetExt)
=> myMath.dll
* LIB 이름 바꾸기
- 링커 => 고급 => 가져오기 라이브러리에서 자기가 원하는 이름으로 바꾸면 된다
$(OutDir)$(TargetName).lib
=> $(OutDir)$(TargetName)_d.lib
* 디버깅 라이브러리로 릴리즈와 구분하기 위해 _d 를 붙임
SimpleBlobDetector 내에 있는 Params 파라미터 변수를 선언하여 세팅한 후
detect()함수를 이용하여 검출하면 된다.
정말 깔끔한 코드이다... 모든 Detector가 다음과 같은 형태를 가진다
잘 보고 배워야지...
VC 6.0에서 VS 2010으로 변환했을 때 다음과 같은 에러가 발생했다
error C2440: 'static_cast' :
'UINT (__thiscall CSkinDlg::* )(CPoint)'에서
'LRESULT (__thiscall CWnd::* )(CPoint)'(으)로 변환할 수 없습니다.
그래서 에러난 곳을 확인해보니...
메시지 맵에서 ON_WM_NCHITTEST()에서 에러가 났다..
정의를 찾아가 보니...
#define ON_WM_NCHITTEST() \
{ WM_NCHITTEST, 0, 0, 0, AfxSig_l_p, \
(AFX_PMSG)(AFX_PMSGW) \
(static_cast< LRESULT (AFX_MSG_CALL CWnd::*)(CPoint) > (&ThisClass :: OnNcHitTest)) },
다음과 같은 코드라 수정이 불가능했다..
그런데...
저 메시지 맵과 연관된 함수 OnNcHitTest()의 선언을 찾아가니...
afx_msg UINT OnNcHitTest(CPoint point);
위와 같이 되어 있고 UINT가 LRESULT로 바꿀 수 없다는 에러 메시지가 나서
리턴형 UINT를 LRESULT로 바꾸니 에러가 해결 되었다 ^^
afx_msg LRESULT OnNcHitTest(CPoint point);