'DIY > 상식' 카테고리의 다른 글
PC에서 무선랜카드로 무선공유기 만들기 (0) | 2018.08.06 |
---|
PC에서 무선랜카드로 무선공유기 만들기 (0) | 2018.08.06 |
---|
1.객체 생성
SerialPort 객체를 Form에 끌어넣어주면 된다. SerialPort 객체는 Device Components 에 있다.
2. 초기화
SerialPort.PortName 속성은 COM1, COM2 등 몇번 COM port를 사용할지 설정
SerialPort.BaudRate 속성은 통신 속도 설정
일반적인 경우 이 두가지만 설정하면 된다.
3.Port 열고 닫기
SerialPort.Open(), SerialPort.Close() method를 이용해 포트를 열고 닫아주면 된다.
그리고 SerialPort.IsOpen 속성을 이용해 현재 포트가 열려있는지 확인할 수 있다.
3. 데이터 전송 및 수신
데이터 전송은 간단하다. txtSend 에 입력한 데이터를 전송하려면 다음과 같은 코드 한줄이면 된다.
SerialPort.Write(txtSend.Text);
하지만 SerialPort로 받아온 데이터를 읽어올 때가 VisualBasic 6.0 이후로는 Visual Basic을 사용하지 않았던 나에게는 낯선 것이었다. 그리고 이것이 C#을 이용한 시리얼 통신에 대한 글을 쓰는 이유이다.
그리고 SerialPort.ReadExisting() 를 후출하면 SerialPort 객체의 버퍼에 남아있는 데이터들을 모두 읽어오게 된다. 하지만 이 데이터들을 main form 의 ListBox 에 넣으려고 하는 순간 exception이 발생했다. MSDN 을 검색해 보면 다음과 같은 설명이 나와있다.
The DataReceived event is raised on a secondary thread when data is received from the SerialPort object. Because this event is raised on a secondary thread, and not the main thread, attempting to modify some elements in the main thread, such as UI elements, could raise a threading exception. If it is necessary to modify elements in the main Form or Control, post change requests back using Invoke, which will do the work on the proper thread.
즉 SerialPort와 main form 은 서로 다른 thread 이다. 그런데 Serial Port 의 thread 에서 다른 main form 의 thread 의 객체를 modify 하려고 하기 때문에 발생하는 문제이다. 이 문제를 해결하기 위해서
SerialPort_DataReceived() event는 main form에서 SerialPort 를 통해 받은 데이터를 이용해 main form을 수정하는 main form 내의 event handler를 invoke 한다.
그러면 exception 이 일어나는 문제가 해결된다. 아래 그림은 학부 2학년인가 3학년때 시리얼통신용으로 사용하는 D-SUB 커넥터를 캐드로 그리고 자주 사용하는 TXD, RXD, GND 를 표시해놓은 그림이다. 종종 시리얼통신을 사용할 때마다 핀 배열이 헷갈려서 항상 찾아보는 그림이다.
*첨부 : 각 2,3,5번 핀,
참고자료
MSDN http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.datareceived.aspx
출처 : C# 으로 시리얼 통신하기
List 의 자료 정렬 두가지 방식 (0) | 2018.07.30 |
---|---|
모달리스 대화상자 제어 하기 (0) | 2013.11.07 |
(참조) C#에서 VS2010 프로젝트를 VS2008프로젝트로 변경할 때 (0) | 2013.01.29 |
Visual C++를 사용하다 보면 여러가지 파일들이 자동으로 생성되는데,
이들 중 다음 파일들은 항상 자동 생성될 수 있으므로 백업시 삭제하여도 무방하며
CVS와 같은 소스관리 프로그램에는 추가되지 않도록 하는 것이 좋다.
# Visual C++에서 지워도 되는 파일들
*.pch *.mdp *.ncb *.clw *.obj *.aps *.cpl *.awk *.exp *.idb
*.opt *.pdb *.map *.res *.ilk *.scc *.bsc *.sbr *.tlb *.plg
*.lib *.dll *.exe
# 그러나, 다음 파일들은 지워서는 안된다.
*.mak, *.dsp, *.c, *.rc, *.rc2, *.ico, *.bmp, *.txt, *.def, *.hpj, *.bat, *.rtf,
*.odl, *.inf, *.reg, *.cnt, *.cpp, *.cxx, *.h, *.hpp, *.hxx, *.inl, *.tpl, *.vtp, *.mst
(참조) Visual C++ 지워도 되는 파일들 / 파일 확장자별 설명 (0) | 2013.09.08 |
---|---|
(참조) 함수 포인터 및 클래스 맴버함수의 함수 포인터사용하기 (0) | 2013.06.20 |
(참조) VS 개발시 불필요한 파일 삭제 및 배치 파일 (0) | 2013.02.25 |
(참조) VS에서 사용하는 확장자 설명 (0) | 2013.02.25 |
Visual Studio 로 개발된 소스를 압축하는 경우 보통 불필요한 파일들 때문에 파일크기가 상당히 커지는데요.
그래서 보통 불필요한 파일을 직접 삭제해주는 경우가 많습니다.
그래서 이런 파일들을 정리해주는 프로그램들도 있습니다.
그리고 위와 같은 프로그램 사용이 번거롭게 생각되는 경우에는 배치파일(bat)을 만들어 사용할 수 있습니다.
del /f /q /s /a rhsa *.bak *.ncb *.obj *.pdb *.idb *.ilk *.pch *.suo *.aps *.opt *.sbr *.bsc *.user
pause
위 내용은 bak, ncb, obj ...등의 확장자에 해당하는 파일을 삭제하는 명령입니다. 현재 디렉토리를 포함한 하위디렉토리의 모든 파일을 삭제하여 줍니다. 필요에 따라서 옵션이나 확장자를 추가하거나 삭제하셔서 사용하시면 됩니다.
Visual Studio에서 사용하는 파일들의 확장자 정보는 아래 사이트를 참고하시면 됩니다.
(참조) Visual C++ 지워도 되는 파일들 / 파일 확장자별 설명 (0) | 2013.09.08 |
---|---|
(참조) 함수 포인터 및 클래스 맴버함수의 함수 포인터사용하기 (0) | 2013.06.20 |
(참조) Visual C++ 지워도 되는 파일들 / 파일 확장자별 설명 (0) | 2013.02.25 |
(참조) VS에서 사용하는 확장자 설명 (0) | 2013.02.25 |
윈도우즈 프로그램에서 사용되는 파일 확장자에 대한 설명
파일 확장자
파일 확장자 내용
C
C언어 소스 파일. C방식으로 컴파일된다. 만약 소스내에 C++코드가 있다면 확장자를 CPP로 변경하거나 컴파일시 옵션을 /TP로 설정한다.
CPP(또는 CXX)
C++언어 소스파일. C++방식으로 컴파일된다. 만약 확장자만 CPP이고 실제 내용이 C코드이면 확장자를 C로 변경하거나 컴파일시 옵션을 /Tc로 설정한다.
H(또는 HPP, HXX)
헤더 파일. 이 파일은 함수의 원형선언, 클래스 정의, 상수정의를 위해 사용된다.
INL
인라인 함수 파일. 이 파일에는 인라인 함수가 정의된다.
RC와 RC2
RC는 리소스 파일을 말하며 리소스 컴파일러(RC.EXE)에 의해 컴파일된다. 다이얼로그, 아이콘, 메뉴, 커서 등과 같은 리소스에 대한 정보가 기술되어 있다. RC2 또한 리소스에 대한 정보가 포함된다.
DEF
모듈 정의 파일(Module definition file). 프로젝트 유형에 따라 사용목적이 다른데 윈도우즈 또는 윈도우즈 NT 기반의 프로그램인 경우 익스포트되는 함수의 리스트, 힙(Hea p)크기, 세그먼트 속성 등을 지정한다.
Developer Studio가 생성하는 파일들에 대한 목록
확장자
파일 확장자 내용
APS
리소스 파일에 대한 바이너리 파일. App Studio에서 리소스 파일을 로딩하는데 사용된다.(로딩 속도 향상)
BSC
소스 브라우저 정보 파일(Browser database file). 이 파일은 BSCMAKER.EXE를 실행할 때 SBR파일로부터 생성된다.
CLW
클래스위저드 상태 파일. 클래스위저드를 사용하여 추가되는 메시지 핸들링 함수 등과 관련된 정보들이 포함된다.
DSP
메이크 파일(MAK)과 동일한 목적의 파일로 VC++5.0에서 사용한다.
DSW
워크스페이스 파일. 워크스페이스내의 각 프로젝트에 대한 엔트리 정보를 포함한 파일
PCH
프리컴파일 헤더 파일 (Precompiled header file). 이 파일은 컴파일 속도를 향상시키며 컴파일 옵션/Yc, /Yu 또는 /YX를 사용할 때 생성된다.
PDB
프로그램 정보 파일(Program database file). 이 바이너리 파일은 컴파일링, 링킹 과정을 통해 얻어지는 디버깅 정보를 포함한다.
SBR
소스 브라우저 파일(Source browser file). 이 파일은 소스 파일에 대한 상세한 정보들이 포함된다.
WSP
Workspace information file(16비트 버전)은 통합 개발 환경이 종료될때의 상태 정보를 포함한다.
VCP
Workspace information file(VC++ 2.X버전 또는 이후버전)은 통합개발 환경이 종료될 때의 상태 정보를 포함한다.
EXP
익스포트 파일 (Export file). 익스포트되는 힘수와 데이터 정보를 포함한다.
MAP
맵 파일(Map file). 프로그램의 엔트리 포인트, 심볼이름, 시작 주소, 프로그램에 링크된 정보를 포함한다.
RES
리소스 파일(RC)이 컴파일된 바이너리 파일
HPJ
문맥 감지형 도움말 파일(Context-sensitive help project file). AppWizard 단계 4 에서 [Context-sensitive help]를 체크하면 자동 생성된다.
NCB
Parser information file. 이 파일은 클래스뷰와 컴포넌트 갤러리를 지원하기 위한 정보를 포함한다.
MDP
Microsoft Developer Studio file. 이 파일은 VC++ 2.X 버전에서 사용한 VCP파일을 대체한다.
RCT
리소스 템플릿 파일 (Resource template file)
OPT
워크스페이스 환경설정을 보유
PLG
빌드 로그 파일
[출처] 비주얼 C++ VC 확장자들 설명|작성자 헤더막스
(참조) Visual C++ 지워도 되는 파일들 / 파일 확장자별 설명 (0) | 2013.09.08 |
---|---|
(참조) 함수 포인터 및 클래스 맴버함수의 함수 포인터사용하기 (0) | 2013.06.20 |
(참조) Visual C++ 지워도 되는 파일들 / 파일 확장자별 설명 (0) | 2013.02.25 |
(참조) VS 개발시 불필요한 파일 삭제 및 배치 파일 (0) | 2013.02.25 |
경기도 수원시 팔달구 매교동 167-3번
pisnet 블루투스 스피커 수리 (0) | 2018.04.04 |
---|---|
SKT 3G USIM으로 LGT(U+) LTEA기기 (베가시크릿업) 사용하기 + 3G DATA막고 MMS만 이용하기 (0) | 2014.03.24 |
스마트 폰에 서 일반 요금제 사용시 3G 데이터 막기 [ KT용 LG 뷰2(LG-F200K)을 SKT USIM사용시 2번째] (2) | 2013.11.07 |
KT용 LG 뷰2(LG-F200K)을 SKT USIM으로 사용하자. (1) | 2013.11.07 |
(생각해보기) 오픈소스의 힘 (0) | 2013.04.25 |
개발 일을 하다가 보니 MS SQL2008R2 를 사용하고 있습니다.
고객사의 모니터링 시스템을 만들고 있었습니다.
이미지를 저장에 대하여 관리적인 측면에서 파일을 DB에 저장을 합니다.
SQL2008부터 FILESTREAM이 있고 강력하다는 말에 사용하게 되었습니다.
하지만, 내 생각과 다른 부분이 있어서, 힘들게 셋팅 된 부분과 내용을 지워야 했습니다.
그래서, 제거(삭제) 순서를 이렇게 하였습니다.
1. FileStream이 들어간 테이블 삭제 –> drop table filestream_tablename
2. DB FILE 삭제 -> alter database dbname remove file filestream_filename
3. DB FILEGROUP 삭제 -> alter database dbname remove filegroup filestream _groupname
4. FILE STREAM 기능 해제 –> SQL구성관리자 => SQL Server => 속성 =>FILESTREAM TAB => T-SQL 엑세스에 FILESTREAM사용 해제 => SQL SERVER 재시작
4번에서 기능을 해제하고 재 시작하면 DB접속이 되지 않을 경우가 있습니다. 이 때, 다시 사용을 체크하고 DB 연결이 후 재시작하면 연결되고, 이후 다시 1,2,3,4 을 해 주면 됩니다.
일단 지우고 예전 소스를 돌려도 아직까지는 깔금하게 동작하고 있습니다. 관리 측면도 편합니다.
하지만, FILE STREAM 를 꼭 사용해야 할 경우가 있습니다 .
예전방식에서 FILE이 너무 크면 DB저장이 부적절했습니다. SELECT와 INSERT가 문제였습니다.
이를 나름 해결점을 제시 하는 방식이 FILESTREAM입니다. 즉, 대용량의 파일을 SQL관리시스템 하에 둘 때
성능저하를 가져오지 않고 사용하고자 할 때 괜찮습니다.
단점은 백업과 저장 위치, 파일삭제 등의 문제가 조금 있습니다. 이곳에 CHECKPOINT 등을 두어 시스템적으로 해결 할 수 도 있습니다. 개인적으로 아직은 편리함 보다 불편함이 많은 기능인 것 같습니다.
MS SQL 2008에서 필드 수정 후 저장이 안되면 아래 옵션을 확인 한다. (0) | 2013.11.14 |
---|---|
MS SQL에서 FILESTREAM 사용시의 단점(?) (0) | 2013.11.12 |
(참조) MS SQL 의 FILESTREAM를 활성화 시키는 방법 (0) | 2013.11.12 |
원본 : http://social.msdn.microsoft.com/Forums/ko-KR/vsko/thread/28cc3dfa-d912-41ff-8ebf-6faf01b297f6
VS 2010에서는 대상 프레임워크를 3.5 로 하여 프로젝트가 생성 가능 하지만 하위버전에서 상위버전의 프로젝트는 열수 없습니다.
VS 2010에서의 프로젝트를 VS 2008로 구동 했을 때 관련 기능과 코드가 제대로 돌아가는지를 먼저 확인하셔야 할 것 같습니다.
2010에서만 지원되는 어셈블리가 있다면 2008에서는 로드가 되지 않거나 제대로 실행이 안될 수 있습니다.
변환하는 방법은 아래와 같습니다만 권장하지는 않습니다.
.sln 파일을 메모장으로 열어
Microsoft Visual Studio Solution File, Format Version 11.00.
# Visual Studio 2010.
=>
Microsoft Visual Studio Solution File, Format Version 10.00.
# Visual Studio 2008.
.csproj 파일을 메모장으로 열어
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">.
=>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">.
이렇게 하면 VS2010 프로젝트는 VS2008프로젝트로 됩니다.
List 의 자료 정렬 두가지 방식 (0) | 2018.07.30 |
---|---|
모달리스 대화상자 제어 하기 (0) | 2013.11.07 |
(참조) C# 으로 시리얼 통신하기 (0) | 2013.03.06 |
유용한 압축 프로그램 및 유틸리티
반디집 : 알집파일 포맷과 기타 파일을 모두 풀수 있다. 완전 무료다.
다운로드는 이곳에서 -> 홈페이지 열기
가끔 지인이 알집전용포맷으로 자료를 보내 주는 경우가 있습니다.
전 회사에서 노트북에서 작업을 하는데, 이것(알집)이 회사에서 유료입니다.
즉, 설치만 해도 문제(불법사용)가 됩니다. 레지스트리에 남아 있어서 설치 후 지워도 설치하여 사용한 것이 됩니다.
무료로 빵집을 사용했으나 분활된 알집파일에서 에러가 났습니다.
하지만, 반디집은 문제가 없네요.
개인적으로 빵집도 좋지만 반디집도 강추하고 싶습니다.
윈도우10 설치 USB 만들기 (0) | 2018.04.06 |
---|
나와 아버지는 내가
네 살 때 : 아버지는 뭐든지 하실 수 있었다.
다섯 살 때 : 아버지는 많은 것을 알고 계셨다.
여섯 살 때 : 아버지는 모든 것을 정확히 아시는 것은 아니었다.
열 살 때 : 아버지가 어렸을 때에는 많은 것이 지금과 확실히 달랐다.
열두 살 때 : 아버지는 어린 시절을 기억하기에는 너무 늙으셨다.
열네 살 때 : 아버지에게는 신경 쓸 필요가 없어. 아버지는 너무 구식이거든!
스물한 살 때 : 우리 아버지 말이야? 구제 불능일 정도로 시대에 뒤지셨지.
스물다섯 살 때 : 아버지는 그것에 대해 약간 알기는 하신다. 그럴 수 밖에 없는 것은 오랫동안 그 일에
경험을 쌓아 오셨으니까...
서른 살 때 : 아마도 아버지의 의견을 여쭈어 보는 것이 좋을 듯하다. 아버지는 경험이 많으시니까.
마흔 살 때 : 아버지라면 이럴 때 어떻게 하셨을까 하는 생각을 종종 한다. 아버지는 그만큼 현명하고
세상 경험이 많으시다.
쉰 살 때 : 아버지가 지금 내 곁에 계셔서 이 모든 것을 말씀드릴 수만 있다면 난 무슨 일이든 할 것이다.
아버지가 얼마나 훌륭한 분이셨는가를 미처 알지 못했던 것이 후회스럽다. 아버지로부터 더 많은 것을 배울
수도 있었는데 난 그렇게 하지 못했다.
- 랜더스 -
이 글을 읽고 기분이 짢해 졌습니다. 저와 오버랩이 되는 것이...
이순신장군님의 글에서 ... (0) | 2013.01.08 |
---|