Blog | Tag | Local | Guest | Login | Write |  RSS
분류 전체보기에 해당되는 글 110건
2008.10.16 :: Orientation - MFC 5
2008.10.15 :: ASIC?FPGA? 1
2008.10.14 :: MSRDS 란? 2
2008.10.13 :: GTK와 GDK
Orientation - MFC

안녕하세요.

18-1 기 박상용입니다.

 MFC...
다들 많이 아시죠깊이도 아실테고블로깅 할 필요가 없.......다고 생각했지만그래도 다들 많이 하시고 깊이 아시니 그만큼 이야기 할 주제도 많다고 생각이 들었습니다(절대 할 줄 아는게 이거 뿐이라서가 아니라고 굳이 이야.....)


몇 주를 블로깅 할 지는 모르겠지만, 크게 두가지 주제로 블로깅을 할까 합니다.


- MFC 의 구조 및 관련 기술(ATL/RTTI, MFC 9.0)

- 그리고... MFC 에 관한 잡담들(장단점 및 삽질 일기)



그럼 이제 MFC 와 관련된 잡담으로 첫 블로깅을 시작해 볼까 합니다.



"왜 아직도 MFC 인가?"

 사람들마다 입맛은 저마다 다른 것 같습니다. 뭐 먹는 것 뿐만 아니라 좋아하는 여배우, 여가수 라던가 좋아하는 색깔, 야구팀, 버스의 자리 등등 말이죠. 개발이라는 것을 할 때 쓰는 도구들도 각각 선호하는 쪽으로 많은 관심 밑 편(?)을 드는 것은 당연하다고 생각합니다. 자신이 선호하는 야구팀을 응원하듯 말이죠. 아직은 공부하는 학생이고 어디 회사에서 꼭 이것을 사용해서 이것을 개발 하라는 명령이 없으니 이러한 선호도는 개개인적으로 더더욱 커지는 것 같습니다(당연히 혼자 생각입니다).

 MFC... 이제는 사양될만도 한 구 시대적 유물이 아니냐하는 생각부터 들게 하는 주제가 아니냐고 반기를 들수도 있겠습니다. 더욱, 새로운 것들이 쑴풍쑴풍 나오고 있는 요즘 시대에, 새로운 것을 쓰지않으면 난 뒤쳐진다라는 일종의 무언의 강박관념 때문에 나온지 10년이 넘어 가는 MFC 는 '낡은 기술' 이라는 눈도장이 찍히기 마련이죠.

 그럼에도 불구 하고 왜 아직도 많은 개발회사에서는 Visual C++ 6.0 을 사용하고, 그런 가운데서도 MFC 일까요? 무조건 어렵고 코드의 양이 많은 것을 쓰면 프로그래밍 내공이 늘어 나는것도 아니고, 삽질 삽질을 거듭 할 수 없은 MFC 로 아직도 많은 이들이 좋은? 어플리케이션을 만들기 위해 날밤을 새어 삽질을 하고 있습니다(조금은 객관적인 생각입니다).

 모든 것에는 이유가 있는 법! 크앙! 그럼 MFC 가 Window Programming 을 하기 좋은점 혹은 당위성?에 대해서 몇가지 이야기 해보겠습니다.

1. 노력하는 객체지향

 장점을 찾자! 생각을 하고 시작은 했지만 딱히 생각이 나질 않네요. 그래서 만물박사 "뇌입원" 에게 물어 봤더니 다음 네가지를 이야기 했습니다.

- 효율성 
- 안정성
- 재사용성
- 유지보수성
- 이식성

 어느 학원의 교재로 쓰일 법한 내용의 장점을 살펴 보니, 객체 지향의 장점과 유사한게 몇가지 있습니다. 그럼 과연 MFC 는 객체지향적 일까요?

 그럼 MFC 는 근본적으로 무엇일까요? 그저 대표 이니셜만 때어서 보면 Microsoft Foundation Classes 라고 하는 라이브러리라고 하네요(http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library). 또한 MS 홈페이지에서는 MFC 의 Concept 을 다음과 같이 이야기 하네요(http://msdn.microsoft.com/ko-kr/library/583ya1kc(VS.80).aspx).

 The Microsoft Foundation Class Library is an application framework for programming in Microsoft Windows. Written in C++, MFC provides much of the code necessary for managing windows, menus, and dialog boxes; performing basic input/output; storing collections of data objects; and so on. 

 하나의 언어나 Tool 이 아닌 Application Framework 라고 합니다. 그리고 또한 많은 코드들을 제공하는 "니네 마음데로 가져다 써라, 여기는 공짜? 부페다." 라고 하는거 같습니다. 단순히 UI 를 편하게 뽑아 내기 위해서(솔직히 편하지는 않지만요), 그저 내 코드를 재미없는(?) 커맨드 창 보다는 윈도우 창에 표현하기 위해서 MFC 가 존재 하는 것은 아닙니다. 그야 말로 윈도우 프로그래밍에 유용한 클래스 들의 집합체 일 뿐이죠. 
 또한 주목해 볼만한 문장은 Written In C++ 이라는 부분이네요. C++ 쓰여졌다는 군요 MFC 는... 
그리고 위 섹션 다음에서는 다음과 같이 말하고 있습니다.

Given the nature of C++ class programming, it is easy to extend or override the basic functionality that the MFC framework supplies.

 C++ 클래스 프로그래밍이라는, OOP 스타일의 프로그래밍을 하고 있다고 직접 명시 하고 있습니다.(http://en.wikipedia.org/wiki/Class-based_programming)
 하지만, MFC는 위의 말데로 완전 C++ 문법으로 Class Base 의 구조로 되어 있는거 같지는 않습니다. 이유는 MFC 대부분이 Win32API 를 Wrapping 한 Class 형식으로 이루어져 있다는 것 입니다.

Greate 한 프로그램 예제

절대 귀찮아서 이런 프로그래ㅁㅁ니ㅏ러뭉ㄹ몰
아무튼 위와 같은 다얄로그를 띄우는 프로그램이 있다고 칩시다. 호출 스택을 살펴 보면 다음과 같습니다.




AfxWinMain 이라는 함수가 보입니다. Afx 를 제외하고는 눈에 익숙한 API 함수임을 알 수 있습니다.
API 에서도 하나의 기본적인 창을 띄우기 위해서는 WinMain 을 사용하고 첫 인자로 현재 Instance 핸들을 받으며 시작한다는 것은 다들 아실 겁니다. (http://msdn.microsoft.com/en-us/library/ms633559(VS.85).aspx)
 그렇다면, Win32API 는 무엇으로 이루어 져있나요? extern "C" 에서 알 수 있듯이 API 함수들은 C 로 구성되어져 있습니다. 따라서 MFC 는 Windows API 함수들을 Wrapping 하되, 좀더(완벽히가 아님)OOP 적인 방법으로 구성 되어졌다고 볼 수 있습니다.

블로깅이 늦어 버렸네요 ;;;
내용을 재미 있게 이어 나갈라니 정말 제가 모르는 부분 투성이라 이게 맞는지 아닌지 검증하고 찾아 보는 시간이 더 걸리는거 같습니다 -_-;; 죄송합니다 (__) 
꼭 주중에 나머지 부분을 완성하고, 요기 내용도 수정해서 마저 올리겠습니다 -_-;
지혜야 벌금 가져가 ;;

 




ASIC?FPGA?
 안녕하세요~~17-2기 이호성입니다.
 이번에 FPGA 관련 시그를 하면서 공부한 내용을 차근차근 정리해 보도록 하겠습니다. 

 VerilogHDL로 FPGA 개발을 하기전에 배경지식을 알아본다. 반도체 칩을 설계 하는 방법에는 무엇이 있고 특징들은 무엇인지 지금부터 살펴 보겠다.

1. ASIC & FPGA
 현대의 전자제품시장은 여러가지 기능의 다양한 제품이 출현하여 그 제품들 사이의 경쟁력을 가중시키고, 부가가치가 높은 다양한 기능의 고성능,고집적화된 제품들을 빠른 시간내에 개발하여 생산할 것을 요구하게 되고 이러한 문제들을 해결하기 위해 사용자의 주문에 따라 특정용도에 사용하는 ASIC (Application Specific Integrated Circuit)이 등장하게 되었다. 즉 반도체 부품의 저가격화, 다기능화, 제품수명 (Life Cycle)의 단축으로 ASIC기술이 도입되었고 이로 말미암아 반도체 부품의 개발기간이 단축되고 개발 비용이 절감되었다.

 PLD (Programmable Logic Device)는 반도체 제조업체 측에서 보면 다량으로 제조되어 일반적인 용도로 판매되므로 범용성 칩의 범주에 속하고, 사용자 측에서 보면 사용자의 요구에 맞게 일시적으로나 영구적으로 칩내의 기본소자들을 물리적으로 연결시켜 사용하게 되므로 ASIC의 범주에 속하게 된다. PLD는 일반 ASIC보다 회귀시간(Turn-around Time)이 훨씬 줄어들고 개발비가 필요 없지만 PLD를 프로그래밍 할 또다른 장비를 필요로 한다. 이러한 PLD들은 기능적인 유연성(Flexibility)과 확장성 (Expansibility)의 한계를 가지고 있어, 이를 해결하기 위해 FPGA (Field Programmable Gate Array)가 등장하여 Mask Programming된 ASIC의 Gate Arreay와 경쟁상대로 널리 사용되고 있다.

2. LSI 분류

ASIC  : Application Specific IC
ASCP : Application Specific Custom IC
USIC : User Programmable IC
ASSP : Application Specific Custom Standard Product
UPIC : User Programmable IC
CPLD : Complex Programmable Logic Device
FPGA : Field Programmable Gate Array
PLD : Programmable Logic Device
PROM : Programmable Read Only Memory

3. FPGA?
 
이미 설계된 하드웨어를 반도체로 생산하기 직전 최종적으로 하드웨어와 동작및 성능을 검증하기 위해 제작하는 중간 개발물 형태의 집적 회로(IC).
 반도체 제조업자 측에서 보면 양산되어 일반적 용도로 사용 되므로 범용 IC의 범주에 속하고, 사용자 측에서 보면 사용자 요구에 맞게 프로그래밍하여 사용할 수 있으므로 주문형 반도체(ASIC) 범주에 속한다.
 칩안에 수많은 논리 게이트(NAND, NOR, Flip-Flop...)등이 연결이 되지 않은 채로 들어가 있다. 자신이 만들고자 하는 회로를 설계하여 해당 FPGA의 CAD툴(Synthesizer:합성장치)을 돌리면 게이트들의 결선 정보로 변환되어 나온다. 이것을 FPGA에 써주면 원하는 칩으로써 동작한다. 이러한 과정은 한번이 아니고 반영구적으로 무한히 가능하므로 이런회로 저런회로 얼마든지 만들어 볼 수 있다. FPGA 자체 단가는 비싸다. 갓 출시된 수백만 게이트짜리 제품들은 수급상황에 따라 개당 천만원을 넘어가기도 한다.

4. ASIC?
 일반 집적회로와 달리 전자정보통신 제품에 사용할 목적으로 설계된 비메모리 반도체 칩을 말한다. 논리회로형 반도체(FPGA)에 비해 값은 싸지만 상품화하는데 오랜 시간이 필요하다.
 주로 PC에 사용되는 마이크로프로세서나(microprocessor)나 메모리칩(memory chip) 등 일반 집적회로와 달리 특정한 전자정보통신 제품에 사용할 목적으로 설계된 비메모리 반도체 칩이다. 전자제품을 제조하는 업체가 반도체 설계 업체에 개발을 주문하는 형태로 제작되는데, 전자제품의 성능을 좌우하는 핵심 기능을 포함한다.
 설계자 의도를 반영해 회로를 설계하는 논리회로형 반도체(FPGA)에 비해 값은 싸지만 상품화 하는데 오랜시간이 필요하다. 수용자가 제품의 규격을 정해놓고 제조업체에 주문하는 특정 용도 주문제품(ASCP)과 제조업체가 스스로 규정한 용도를 위해 설계제작하는 표준제품(ASSP)으로 분류된다.
 완성된 주문형 반도체를 도입하면 복잡한 중간 개발단계를 생략함으로서 개발에 필요한 인력과 비용을 대폭 줄일 수 있다. 제품의 고급화, 성능의 다양화 등도 가능해 계속 수요가 증가하는 상황이다.
 주문형 반도체 업체에서는 연산장치, 제어장치, 출력장치, 입력장치 등의 부품으로 쓰이는 각종 집적회로를 개발한다. 또 새로운 제조기술과 제조방법 등에 관한 연구, 제조장비의 설치와 유지, 보수는 물론 반도체 칩의 실험 프로그램을 개발하고, 완성품의 작동여부에 대한 점검까지 담당하는 경우가 많다.
 디자인된 회로를 Transistor Level로 그대로 Silicon Wafer안에 그려 넣는다.이렇게 만들어진 집적회로는 기능이 딱 결정이 되어 수정이 불가능하다. 반도체 라인에 한번의 ASIC을 돌리려면 라인 이용료로 한번의 많은 비용(수억)이 들어가지만 이후 양산 물량은 굉장히 저렴하게 대량생산이 가능하다.

 ASIC으로 바로 칩을 만들기 전에 FPGA로 디자인한 회로를 먼저 검증하고, 잘 돌아가는 것이 확인되면 ASIC을 돌리게 된다. FPGA나 ASIC이나 둘다 집적회로이다. ASIC은 목적에 맞게 그 기능이 딱 제한된 IC이고 FPGA는 그 기능을  Programmable하게 바꿀수 있는 장치가 더 들어가 있는 IC라고 생각하면 된다.

참고 : 기초부터 응용까지 Verilog HDL (다다미디어)
         'http://blog.naver.com/bstu24

이전글 [UNIX 보안 기초 -0-] Prologue.

* 보안에 관한 간략한 개요


1. 정보보호란?

The Protection of information against unauthorized disclosure, transfer, modification, or destruction, whether accidential or intentional [ Information Warfare, July 1996 ]
(우연 또는 의도적으로 허가받지 않은 정보의 누출, 전송,수정,파괴 등으로부터 보호)


2. 정보보호의 원칙

  • OECD 의 개인정보보호 8대 원칙 (1980)
  • NIST 컴퓨터 보안 원칙
  • GASSP의 정보보호원칙


3. 관리자의 역할과 책임
 
시스템 관리자는 시스템을 정상적으로 유지하는 데 있어서 가장 중요한 위치에 있는 사람이다. 관리자가 시스템을 어떻게 관리하느냐에 따라 사용자들이 얼마나 유용하고 편리하게 사용할 수 있는가 하는 것이 결정되어지며 그 시스템의 안정성과 보안에 대한 신뢰도도 결정되어진다.

다음 아래는  '이상용 삼성전자 총무보안그룹 차장'의 글

 아래는 보안관리자가 해야 할 가장 기본적인 책무이다.
 - 보안계획 수립
 - 보안지침을 수립하며 개정
 - 주기적으로 보안점검을 수행
 - 침해사고에 대응
 - 보안 시스템 도입을 기획, 운영 및  관리
 - 보안 시스템에 대한 보안성 검토 및 효율성 분석을 수행
 - 보안관련 교육을 실시를 통하여 보안에 대한 인식제고를 향상
 - 보안위반사고 발생시 해당 사항을 경영층에 보고하고 신속한 조치를 실행
 - 보안대책의 변경 시 변경사항이 보안성에 적합한지 판단 

 위의 내용에 부가하여 보안관리자는 실질적인 보안사고에 있어 해당사고를 통한 어떠한 손실이 발생하는지 통계화해서 실제 보안사고를 통하여 기업의 얼마나 많은 손실의 갖게 되는가 분석하고 예방대책을 포함하여 경영층에 제시하도록 하여야 한다.

이와 같은 정보보호관리자의 업무분야는 이미 언급한 것과 같이 경영진과 현업과의 관계수립을 다루어야 한다.

정보보호 거버넌스의 5가지 요소는 다음과 같다.
- 정보보호 이니셔티브를 위한 최고경영진의 참여
- 정보보호 현안에 대한 경영진의 이해
- 정보보호와 기업비지니스의 연계
- 정보보호 핵심척도 분석을 통한 경영진과 관리진의 소유권과 책임
- 조직의 목적에 대한 정보보호의 연계

이상의 요소가 충족되어야만 정보보호 거버넌스가 수립됐다고 할 수 있다.


 
4. 보안등급
 보안을 실시한다고 할 때 과연 어느 정도로 정보가 안전한가를 객관적으로 판단하기 위하여 여러 단체에서 보안의 정도를 판별하는 기준을 세워 놓은 것이 있다. 그 중 가장 권위 있는 것이 Trusted Computer System Evaluation Criteria (TCSEC)이다. 여기에서는 컴퓨터 보안에 관한 여섯 가지 기본 항목을 정하였다. 여섯 가지 항목은 다시 다음의 세 그룹으로 나뉘어진다.

  • Policy
    • Security Policy
    • Marking
  • Accountability
    • Identification
    • Accountability
  • Assurance
    • Assurance
    • Continuous Protection

이 항목들에 의하여 보안등급이 나뉘어진다. 보안등급은 D, C, B, A 등으로 나뉘며 세부적으로는 다시 C1, C2, B1, B2, B3 등으로 나뉘어진다. 보안은 등급이 A로 갈수록 강력하며 같은 등급 내에서는 뒤에 붙는 숫자가 클수록 강력하다. 보안등급에 대하여 간단히 설명하면 다음과 같다.  

 관리자는 시스템을 어느 정도의 보안등급으로 구축할 것인지를 결정하여야 한다. 이때 주의하여야 할 것은 보안등급이 높다고 해서 꼭 좋다고 볼 수만은 없다는 것이다. 너무 엄격하게 보안을 유지한다면 사용자들의 불편이 그만큼 커지기 때문이다. 그러므로 관리자는 이 점을 충분히 고려하여야 한다.

5. 일반적인 침입수법

A. 정상적인 데이터 전송 .
 



B. 방해 (Interrupted)
 ex) DOS (Denial Of Service), etc

C. 가로채기 (Interception)
 ex) Sniffering, etc

D. 수정 (Modification)
 ex) IP address spoofing, DNS spoofing, etc

E. 조작 (Fabrication)
 ex) IP address spoofing, DNS spoofing, etc

 * 침입수법에 따른 구분
- 신분도용 (Impersonation)
- 신뢰받는 기계로 위장 (Transitive trust)
- 부당 이용 (Exploits)
- 자료 이용 (Data driven)
- 하부구조 이용 (Infrastructure)
- 서비스 거부 (Denial of service)

* Reference
- [book] Security PLUS for UNIX
- [Web] http://en.wikipedia.org
- [Web] http://www.oecd.org
- [Web] http://csrc.nist.gov/groups/SMA/fisma/library.html#02
- [Web] http://csrc.nist.gov/publications/nistbul/csl96-10.txt

다음글 예고
대표적인 공격 유형과 대응책. 실습.



안녕하세요.
18-2 전한경입니다.

저는 Unix의 보안 기초에 대해 공부를 하면서 정리해 나갈 것입니다.
여기에 제가 공부했던 것들 하고있는 것들을 정리하면서 참조했던 소스나 자료들은 출처를 링크로 남겨놓겠습니다.

참고서적은
* Security PLUS for UNIX - 포항공대 유닉스 보안연구회 (영진출판사, 2000)
* UNIX NETWORK PROGRAMMING VOLUME 1(제3판) - STEVENS 외 (교보문고, 2005년)
* Advanced Programming in the UNIX Environment - Stevens
                                   +
                          정보의 바다 인터넷

이 되겠습니다.^__^

블로깅은 생각날때, 공부할때 마다 작성할거구요. 아마도 한 40개 정도의 글이 되지 않을까 생각합니다.


내용은 크게 
시스템보안/네트워크보안#1,#2/보안기술/리눅스,윈도NT보안/각종도구들
이렇게 나뉠 것이구요..각 파트당 5~6개의 글들로 구성될 것입니다.


ps.
블로깅에 앞서 편한 글쓰기를 위해 '입니다'가 아닌 '이다'체를 사용할께염~ㅋ



다음글 [UNIX 보안 기초 -1-] 개요

세번째 공지입니다.


 공지가 잦다고 생각하지만;;
 다 초기에 시그를 정비해 가는 과정이라고 생각됩니다 ^^;
 잔소리라기보다는,, 말 그대로 공지이기 때문에 그냥 편한 마음으로 봐주세욘!!


 1. 다들 10심히 시그활동을 해주시는 모습에 감동입니다 -_ㅠ,,감사합니다 모두들
 
 2. 잘 올려주시는 가운데, 아직 Tistory라는 블로그를 처음 접하시는 분이 많아서 
    글 올리시는데 미숙하신듯 합니다. ^^
    비공개로 글을 올리시는 분들이 계시는데,, 공개에 예약으로 올리시면 됩니다!
    또, 글을 예약기능을 이용하지 않으시고 그냥 올리시면,, 
    그냥 시그활동 외에 한번 더 임의로 올린걸로 체크
됩니다..
    지금까지는 제가 일일히 물어보고 다시 수정을 하거나 수정을 권하였으나 ^^*
    많은 포스팅을 위해서 그냥 한번 더 쓰시는것도 매우 환영입니다 +_+/~   (정아언니 고마워요!!)

 3. 멤버십블로그에 자신의 포스트를 올리는 과정도 시그활동으로 포함하고 있었으나
    아직 멤버십 블로그에 아이디를 발급받지 않으신 분들도 계시고, 많은 분들이 잘 모르고 계시는 관계로
    그정도 수고는 제가 하도록하겠습니다 ^^;ㅋ (단순 붙여넣기만 할 예정입니다.)
    그래서 두번째 공지에서의 멤버십블로그에 올리는 과정을 pass합니다  (마찬가지로 벌금도 pass ^^*)
    하지만 구지 본인이 올리시겠다면 말리지는 않겠습니다+_+/~ (저의 무한사랑을 드립니다!!!)

 4. 그동안 권한이,, 다른사람의 글을 건들이지 않기 위해서 필자로 두고 있었는데,,
    차주민회원님의 회사생활 등등등 잡담등을 비공개로 공유하기 위해서라도 일단 회원등급을 전부 편집자변환하였습니다.!!
   ( 비공개 글이 보이나요?? etc 방에 비공개로 글하나 올려봤습니다.) 
    비공개 글을 보기위한 편의이므로,, 다른 회원분들의 글을 실수로 수정하거나 삭제하는 일이 없길 주의해주시길 바랍니다 ^^*
   
 5. 사진은 신청해주신 분이 없어서 임의로 걸었습니다 ㅋㅋㅋ 

 6. 링크 신청받습니다. 댓글로 블로그이름/블로그 주소 를 보내주세요!!

무엇 더 건의하고 싶으신것 있으시면 리플로 달아주세요!!
이와 같은 내용의 글은 멤버십 시그 게시판에도 게시됩니다 . (너무 썰렁하더라구용 ㅠ)

p.s 벌금은 회식에 사용되므로 철저하게+_+ 수거됩니다!!!
      탈퇴는 없고 무한벌금만이 존재하는 무시무시한 시그!!!!!

 

안녕하세요. 오늘은 RotateTransform과 Bitmap Effect를 활용한 간단한 샘플을 구현 해보았습니다. 아래 동영상은 이번시간에 소개할 샘플의 작동 화면 입니다.

대략 보면 뭐하는 녀석이구나 집작은 모두 하시겠지만, 설명을 하자면.. 마우스를 올려놓았을 때 해당 부분의 일정 영역이 뿌옇게 되고 회전한뒤 원상복귀 되는 내용입니다. 실제 Application에 이러한 기능을 구현해서 사용할지는 의문이지만, Interactive Design과 같은 분야에서는 응용가능 한 예제라 생각됩니다.

아래는 전체 소스코드입니다.

<WINDOW title="WPF KOREA" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x:Class="Rotation.Window1" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="300" Width="300">
   
    <GRID>
        <GRID.RESOURCES>
            <IMAGEBRUSH x:Key="WonderGirls" ImageSource="WonderGirls.jpg" />
            <STYLE TargetType="Rectangle">
                <Setter Property="Width" Value="200"/>
                <Setter Property="Height" Value="200"/>
                <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
                <Setter Property="Fill" Value="{StaticResource WonderGirls}"/>
                <Setter Property="RenderTransform">
                    <Setter.Value>
                        <RotateTransform/>
                    </Setter.Value>
                </Setter>
                <Setter Property="BitmapEffect">
                    <Setter.Value>
                        <BlurBitmapEffect Radius="0"/>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <EventTrigger RoutedEvent="Rectangle.MouseEnter">
                        <EventTrigger.Actions>
                            <BeginStoryboard>
                                <Storyboard  >
                                    <DoubleAnimation To="360" FillBehavior="Stop"
                                                     AccelerationRatio="0.2"
                                                     Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)"/>
                                    <DoubleAnimation To="5" FillBehavior="Stop"
                                                     AutoReverse="True" Duration="0:0:0.5"
                                                     Storyboard.TargetProperty="(Rectangle.BitmapEffect).(BlurBitmapEffect.Radius)"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger.Actions>
                    </EventTrigger>
                </Style.Triggers>
            </STYLE>
        </GRID.RESOURCES>
       
        <RECTANGLE>
            <RECTANGLE.CLIP>
                <ELLIPSEGEOMETRY Center="100 100" RadiusX="100" RadiusY="100" />
            </RECTANGLE.CLIP>
        </RECTANGLE>
        <RECTANGLE>
            <RECTANGLE.CLIP>
                <ELLIPSEGEOMETRY Center="100 100" RadiusX="75" RadiusY="75" />
            </RECTANGLE.CLIP>
        </RECTANGLE>
        <RECTANGLE>
            <RECTANGLE.CLIP>
                <ELLIPSEGEOMETRY Center="100 100" RadiusX="50" RadiusY="50" />
            </RECTANGLE.CLIP>
        </RECTANGLE>
        <RECTANGLE>
            <RECTANGLE.CLIP>
                <ELLIPSEGEOMETRY Center="100 100" RadiusX="25" RadiusY="25" />
            </RECTANGLE.CLIP>
        </RECTANGLE>
    </GRID>
</WINDOW>

소스상에 특별히 어려운 부분이 없으므로 설명은 생략 하도록 하고, 질문 있으신분은 리플로 말씀해주시기 바랍니다. 추가로 이번 코드는 이전에 DockBar만들기(http://whatisthat.co.kr/71) 라는 주제로 다루어 진 내용이 많이 포함되어 함께 참고 하시면 좋을것 같습니다.

사용자 삽입 이미지

MSRDS 란?

안녕하세요. 수원 멤버십 18-2기 최동혁입니다.

이번에 주제없는 시그~ 각자 맘대로 하는 시그.. -_-aaa

아하하하.. 하드웨어 쪽으로 하고 팠는데 밀렸군요.

그래서 전부터 관심이 있었던 것중의 하나인 MSRDS에 관해 하려 합니다.

저도 처음부터 다시 하는 터라 모르는게 많으니.. 잘 봐주세요 ㅠㅠ

아래의 내용은 MSRDS가 무엇인지 왜 나왔는지에 대해 간단히 설명이 된 MSRDS공식 카페의 자료... 입니다... 무단으로 퍼온건가..... ㅠㅠ



로보틱스 스튜디오는 MS에서 2006년 말에 새롭게 출시한 로봇 애플리케이션 개발 툴입니다.

이제는 로봇 S/W 개발 시대입니다. 로봇 S/W 개발은 더이상 로봇 전문 분야의 개발자들에게만 국한된 영역이 아니라 일반 S/W 개발자 모두가 참여할 수 있는 애플리케이션 개발의 한 형태로서 발전하고 있습니다.

로봇 S/W 개발을 어렵게 생각하지 마시고 이제 한번 새롭게 시작해 보시기 바랍니다.

MS의 로보틱스 스튜디오 (이하 MSRS)에서는 기본적으로는 별도의 프로그래밍 언어를 습득하지 않아도 쉽게 로봇 애플리케이션을 개발할 수 있도록 VPL(Visual Programming Language) 이라는 새로운 툴을 제공하며, 고급 개발자들의 경우 C#을 이용하여, 다양한 형태의 서비스들이나 시뮬레이션 프로그래밍을 할 수 있도록 지원합니다.

                           

 

두개의 숫자를 더하는 VPL 구현 예

 

 

 

시뮬레이션 상에서 지원되는 레고 NXT 로봇

 

 

 

시뮬레이션 상에서 지원되는 Pioneer 로봇

 

MS 로봇틱스 스튜디오(MSRS)에서의 프로그래밍 과정은 크게 아래 3가지로 나눌 수 있습니다.

  • 이미 개발되어 있는 서비스들을 이용하여 애클리케이션 개발하기 - VPL을 이용하여 애플리케이션 개발 (초급 과정)

 

  • C#으로 서비스 개발하기 - VPL에서 사용될 수 있는 기본 서비스들을 개발하거나 VPL 없이 애플리케이션을 직접 개발
    • DSS나 CCR에 대한 개념을 적용하여 서비스를 개발함

 

  • 시뮬레이션 프로그래밍 - C#을 이용하여, 직접 시뮬레이션 로봇을 제어하거나 시뮬레이션 로봇을 제작

 

MSRS를 처음 시작하시는 개발자 분들은 처음에는 VPL을 통해 간단히 애플리케이션들을 개발해 보거나 실행시켜 보는 과정을 통해 MSRS의 단계적으로 이해해 나가는 것이 필요하며, 점차 C#을 이용해 개발자 여러분이 스스로 서비스들을 만들어 보는 단계로 나아가면 될 것 같습니다.

그리고 MSRS의 가장 큰 특징은 하드웨어 로봇이 없이도 로봇 애플리케이션 개발이 가능하다는 것인데, 여러분이 직접 시뮬레이션 로봇을 만들어 볼 수 있습니다. 여러 분이 직접 만들 수 있는 로봇의 형태는 아래와 같습니다.

  • 일반적인 바퀴달린 로봇
  • 4족 로봇 또는 6족 로봇
  • 기차 또는 자동차
  • 인공위성 또는 잠수함
  • 로봇 팔과 다리 (로봇 관절)
  • 홈 로봇

MSRS는 일반 게임 개발에 사용되는 Ageia 사의 PhysX 엔진을 제공하기 때문에, 여러 분들이 손쉽게 게임과 같은 형태의 재미있는 로봇 애플리케이션들을 만들 수 있습니다.

조이스틱이나 헨들, XBox 컨트롤들이 자동으로 연결되기 때문에 로봇을 조종하는 애플리케이션도 별다른 작업 없이 손쉽게 개발할 수 있습니다.

또한 MSRS에서는 고급 개발자를 위하여 비젼처리 또는 음성인식 샘플을 제공하여, 이러한 지능형 서비스를 이용하여, 자율주행과 같은 고급 로봇 제어 기능들을 쉽게 구현할 수 있습니다.

이 외에도 한글 TTS 기능이 제공됨에 따라, 오늘의 날씨를 읽어주거나 뉴스를 읽어 주는 서비스를 손쉽게 구현할 수 있습니다.

MSRDS 공식 카페 : http://cafe.naver.com/msrskorea.cafe



앞으로 포스팅은 VPL을 기준으로 하나하나 기본부터 해나갈 듯 합니다.

왜냐? 저.. C#이 뭔지 몰라요~~ -ㅁ-;

아하하.. 물론 C#공부는 따로 해보렵니다 ㅋ.

그럼 다음에 또 뵐께요~


안녕하세요? 수원 멤버십 17기 차주민입니다.

 

OB로서 현역(?)일 때에도 참여하지 않았던 시그를 참여하게 되어서 무척이나 기쁘지만 첫 포스팅이 이딴(?) 글이 되어서 상당히 죄송스럽게 생각합니다. ㅜㅜ

 

다름이 아니라 최근 제가 속해있는 MSC의 스케줄로 인해서 포스팅을 미처 준비하지 못했습니다.

 

AIR에 대한 예제 app.과 함께 Action Script 3.0에 대한 특징과 AIR Flex의 차이점을 심도 있게 논하려는 저의 생각은 몇 차례의 회식과 임원님과의 월간 회의, 1주일 간의 교육으로 인해서 산산이 부셔져 버렸습니다. ㅜㅜ

 

이에 대해 심심한 유감의 뜻을 밝히며 다음 번 포스팅에는 조금 더 완성도 있는 모습을 약속 드리며 이만 못난 OB는 글을 줄입니다.

 

p.s 1

저의 포스팅 주제는 RIA 뿐만 아니라 삼성전자라는 회사 생활에 대한 것도 논할 예정(!!)이니 많은 기대 부탁 드려요. ==b!

p.s 2
글 올리는 것 왜 이렇게 어렵나연...


GTK와 GDK


오늘은 GTK를 공부하기전에, GTK와 GDK에 대해 알아보도록 하겠습니다.
이전에 공부를 할때 찾아봤던 기억이 있으나, 아직 제것으로 만들지 못했던것 같아, 다시 찾아보기로 하였습니다 ^ ^
이번 시그를 통하여 저번 공부때 마무리 하지 못했던 GTK를 마무리 해볼까 합니다.
공부를 하면서 올리는 내용이라 많이 부족하지만, 지적도 쏠쏠하게 해주시면 감사하겠습니다 ^ ^

처음부터 주저리주저리.. 너무 긴것 같습니다. (자~자~! 시작해 보겠습니다,)

 



1. GTK는 "GIMP Toolkit"의 약자이다.
- ( 와, 이부분은 기억이 나려고 하네요, ㅋ 처음 찾아본 자료가 아는 내용인거 보니 출발이 좋은것 같네요^ ^)
그럼 GIMP는 무엇인가 리눅스에 관심이 있는 사람들이라면 한번쯤 들어봤을만한 이미지 편집기입니다.
바로 리눅스에서 사용할 수 있는 포토샵인것입니다. (두둥.. 너무 거창한가? 그림판이라고 해둬야겠네요.ㅋ)

GTK의 천재가 아니라 잘은 모르지만, GTK의 Tutorial을 보면 이런말이 가장 처음 적혀있습니다. "GTK (GIMP Toolkit) is a library for creating graphical user interfaces" 그렇습니다!! GUI를 만들기 위한 툴킷 라이브러리입니다.

2. GDK의 친구는 그리기와 Event이다.
- (GDK는 그리기와 Event의 친구이다.. 친구라는 표현이.. 어울리지 않을 수 있습니다. 여기서 친구란, GDK로 우리가 가장 많이 해야할 일들은 그리기와 Event라는 것을 강조하기 위함입니다.)
"GDK 라이브러리는 GTK+ 위젯(어플리케이션)과 윈도우 시스템을 이어주는 추상적 계층을 제공해줍니다" 라는 문장을 많이 보셨을 겁니다. 그 이전은 저도 안해봐서 잘은 모르겠으나 듣기로는 GTK와 GDK의 구분이 없었다고 합니다. 하지만 지금은 GTK와 윈도우 시스템 사이에 GDK가 있다고 합니다.

실제로 X Window든 MS Windows든 플랫폼과의 대화는 GDK가 맡아서 하고 GTK는 GDK와 좀더 쉬운 대화를 하는것입니다. Event나 Drawing처럼 X Window와 친하게 지내야하는 작업들을 GTK와 플랫폼(일반적으로 X Window) 사이에서 처리 해 주는것입니다. 그뿐 아니라 Font, Style, 이미지 제어 등 GUI의 중요한 부분들을 담당하고 있습니다. GTK는 이러한 GDK를 이용하여 구조적인 부분을 담당합니다.

현재에는 Xlib을 래핑하고 있는것은 GDK입니다. GTK는 그 GDK를 이용하는것입니다.

3. GTK와 GDK 그리고 X Window
- X Window에서는 GUI 구현을 편리하게하고 개발자를 여유롭게 만들어 줍니다.
우리가 X Window에서 GUI를 만들려면 어떻게 해야할까요? 가장 기본적인 방법으로는 Xlib을 이용하여 개발하는 것이 있습니다. 이것은 매우 귀찮고 어려울 수 있는 일입니다.

Xlib은 X Window에서 GUI 개발을 할 수 있는 가장 기본적인 라이브러리입니다. 화면에 필요한 Widget들을 그려내고 GUI뿐만 아니라 X Window 시스템에 관련된 대부분의 기능을 지원하지만 원초적인 정보와 기능들만을 제공합니다. 개발자가 Xlib을 사용하여 GUI부분을 구현한다면 직접 정보를 관리하고 안정성을 책임져야 합니다.

GTK와 GDK를 사용한다면 Xlib이 해주는 역할외에도 GUI 프로그램을 제작함에 있어 필요한 대부분의 유형과 기능들을 미리 구현해 놓았습니다.

GTK와 GDK도 X Windows에 실제로 무언가 표시할때나 X Window에 관련된 작업을 할때는 Xlib을 사용합니다. 결국 Xlib을 사용하지만 이부분은 모두 GTK와 GDK가 내부적으로 처리해주는것입니다. 그럼 GTK와 GDK는 그냥 Xlib 래핑 해 놓은것 아니냐라고 할 수 있겠으나 그렇다고 하기엔 GTK와 GDK는 너무나 많은 일을 대신해주고 많은 부분을 확장하여 미리 만들어 놓았습니다.

버튼 하나만 보더라도 Xlib은 가장 기본적인 부분만 처리해 줍니다. 버튼을 화면에 그리고 이벤트 처리하고 정도입니다. 하지만 GTK와 GDK는 버튼을 구현함에 있어 관련된 대부분의 필요한 정보들과 기능을 확장하여 미리 준비해놓았기 때문에 우리는 그것을 사용하면 됩니다. 또한 기본적인 Widget들을 GUI 프로그램에서 일반적으로 사용하는 다양한 형태로 변이시켜서 새롭게 구성해 놓았습니다.

GTK와 GDK는 물론 아주 특수한 상황까지 고려되어있는것은 아니지만 GUI 프로그램을 제작함에 있어 불편함을 느낄수 없을만큼 많이 준비되어있습니다.

Xlib은 X Window 시스템을 제어하기 위한 가장 기본적인 라이브러리이고 GTK와 GDK는 GUI 프로그램 개발에 필요한 툴킷 라이브러리 인것입니다. 개발자는 GUI를 구현하기 위해 엄청난 시간을 보내야하는것이 아니라 비지니스로직 등의 구현에 더 많은 시간을 할애하고 GUI관련해서는 GTK와 GDK에 맡기면 되는것입니다.





나름 쉽게 정리를 해본다고 이것저것 자료를 참고해 보았습니다.
처음에는 이론 부분을 설명하고 점차 실전으로 해보고 올릴 생각입니다.
궁금하신 내용이나 추가해야할 내용이 있다면, 이야기해주세요,
저의 서치 실력으로는 거의 같은 내용이 나오는 듯 하네요 ^ ^
오늘은 사정상 내용이 많이 짧네요, 다음부터는 분발하겠습니다 ㅋㅋ




오실로 스코프를 만들기 위해서 기본적인 개념들을 정리하고 있습니다.^^





1. DSO의 구조

 

디지탈 오실로스코프는 크게 나누어서 입력부, A/D변환부, 메모리부, 타이밍 발생부, 제어부, 표시부로 나눌 수 있다.

 

입력부는 일반적인 아날로그 오실로스코프와 거의 동일한 구조로 되어 있고 A/D변환, 메모리부, 타이밍 발생부 및 제어부는 컴퓨터와 유사한 구조로 되어 있고, 표시부는 TV 또는 컴퓨터 모니터와 유사한 방식 및 아날로그 오실로스코프와 같은 방식이다.

 

디지탈 오실로스코프의 기본적인 성능은 A/D 변환부, 메모리부, 표시부에 달려 있다. A/D 변환부는 측정하는 신호의 분해능, 측정가능 주파수에 영향을 주고, 메모리부 및 표시부는 신호의 표시품질, 측정시간 등에 영향을 준다.

 

제어부는 가각의 제품마다 고유의 기능을 하는 측정항목 등에 연결이 된다.

 

2. DSO의 원리

 

그러면 신호의 변환 원리에 대하여 알아보자. 아날로그 신호은 연속적인 신호이지만 디지탈은 구간구간을 끊어서 측정하여야만 한다. 따라서 한점 한점을 디지탈(숫자)로 바꾸어서 메모리에 넣을 필요성이 생긴다. 디지탈로 변호나을 하기 위해서는 최대에서 최소를 몇 구간으로 할 것인가를 결정해야 한다. 예를 들어 1Vpeak-peak의 전압을 측정하기 위하여 100개로 나눌 것인가, 1000개로 나눌 것인가를 결정한다.

 

이것은 결국 A/D 컨버터의 비트수에 좌우가 된다. 만약 8Bit의 A/D CONVERTER라면 256개로 나눠지고 10Bit라면 1024개로 나눠지게 되는 것이다. 이것은 수직 분해능이라고 부른다.

 

위의 예를 분해능으로 바꾸어 표현을 하면 8Bit는 1V/256=3.9mV의 분해능이 10Bit는 1V/1024=0.98mV라는 분해능이 나온다. 이것을 수직 분해능이라고 한다. 수직 분해능이 높을 수록 파형의 재생 효과가 우수하다.

 

다음은 위에 설명된 분해능으로 측정을 하고 다음 측정할 때 까지의 시간을 샘플 주기라고 하는 데 역수를 취하여 주파수로 변환을 하면 샘플링 스피드라고 한다. 측정할 주기(Time Base)를 최대로 하였을 때 샘플링 스피드가 최대로 되는 데 이때의 주파수를 최대 샘플링 스피드라고 한다.

 

간혹 선택을 할 때 어느 측정 주기(Time Base)라도 최대 샘플링 스피드로 측정하는 것으로 알고 있는 데 샘플링 스피는 측정 주기(Time Base)에 따라서 변한다. 즉 측정주기가 길어질수록  샘플링 스피드는 높아지게 되어 있다.

 

다음은 수평분해능에 대하여 알아보도록 한다. 수평분해능은 메모리와 중요한 관계가 있다. 먼저 측정메모리와 실제로 표시되는 메모리의 양이 같은 경우를 알아보자.

 

이해를 쉽게하기 위하여 측정주기 (Time Base)를 1mS/Div에 두었다고 가정을 하고 표시 메모리가 500개인 경우 수평 전체칸(10칸)이 500개이므로 1Div의 표시 메모리 갯수는 50개로 1mS에 50개의 측정분해능을 가지는 것이다.

 

따라서 샘플링주파수는 1mS/50=20uS=50KHz이다. 표시 메모리가 10,000개인 경우를 가정을 하면 1Div의 메모리 갯수는 1,000개이므로 샘플링 주파수는 1mS/1000=1MHz가 된다.

 

측정 가능한 단발 파형의 주파수는 샘플링 주파수에 관계되므로 실제 측정가능 주파수는 샘플링 주파수의 약 1/3로 된다. 따라서 표시 메모리가 500개인 경우 50KHz/3=17KHz의 단발 파형을 측정할  수 있고, 표시 메모리가 10,000개인 경우는 1MHz/3=333KHz의 단발 파형을 측정할 수가 있다. 따라서 동일한 측정주기(Time Base)인 1mS에서도 표시 메모리에 따라서 17KHz, 333KHz라는 큰 차이가 나게 되는 것이다.

 

3. 샘플링 방법

 

다음은 샘플링 방법에 대하여 알아보도록 하자. 샘플링은 실시간과 등가시간으로 크게 나뉠 수가 있다.

 

- 실시간(Real Time) 샘플링

일정한 시간 간격으로 측정을 하여 하나의 화면을 구성한다. 단발 파형이나 연속 파형 양쪽을 측정할 수 있는 반면, A/D 변환 능력의 한계 때문에 최대 샘플링 스피드의 1/3정도가 최대 측정 주파수로 된다.

 

측정 주기가 낮은 경우에는 표시메모리에 의해 최대 측정 주파수가 결정된다.

 

 

- 등가시간(Equivalent  Time) 샘플링

이 방법은 측정주기를 일정 갯수로 나누어서 나뉘어진 갯수에 의한 샘플링 스피드에 의하여 측정을 하는 데 한번 측정한 후 약간의 시간차를 두고 다시 측정을 한후 한 화면이 이루어지면 측정한 값을 재배열하여 화면을 표시한다.

즉, 1.5.9.13.2.6.10.14.3.7.11.15.4.8.12.16과 같은 화면 배열이 된다.

따라서 낮은 샘플링 주파수로도 높은 신호를 측정할 수 있는 반면에 연속신호만이 측정가능하고 단발현상이나 불연속 신호는 측정이 불가능하다는 단점이 있다. 이상과 같이 두가지 방식이 있으나 대부분의 DSO는 위의 두가지 샘플링 방법을 채용하고 있다. 즉 낮은 측정주기를 설정하면 실시간 샘플링을 하고 높은 측정주기를 설정하면 등가시간 샘플링을 하도록 자동설정 또는 수동설정을 하도록 하고 있다. 다만 규격서에는 실시간 샘플링에 의한 측정 가능 주파수가 낮으므로 등가시간 샘플링에 의한 측정 가능 주파수만을 기재하는 경우가 있으므로 목적에 맞추어 세밀한 검토를 할 필요성이 있다.

 

 

4. 표시 방식

측정된 신호를 표시하는 방식으로는 크게 두가지로 나뉘어질 수가 있다.

 

-전자 편향방식 (Raster Scan CRT)

일반적인 TV나 모니커와 같은 방식의 표시장치로서 표시를 다양하게 할 수가 있고 신호나 표시를 칼라로 처리를 할수 있는 장점이 있다.

 

그러나 Raster Scan CRT의 구조적인 분해능 (400X400, 640X480, 1024X768) 이상은 표시를 할 수가 없으므로 표시되는 신호의 품질이 상당히 떨어진다.

1024*7658의 분해능을 가진 CRT를 채용하더라도 실제표시되는 양은 70% 수준 밖에 안되므로 약 700 포인트 정도의 분해능으로 표시가 된다. 결과적으로 느리게 변하는 (사인파 같이) 신호를 분석하는데는 별로 지장이 없지만 날카로운 Peak 파형과 같은 것은 제대로 표시를 할 수 없으므로 표시품질이 상당히 낮아진다.

 

또한 CRT 주변화로 (특히 DY)에서 나오는 상당한 양의 노이즈로 인하여 수신기 등 노이즈에 민감한 기기를 측정할 수 없다는 단점이 있다.

 

그러나 다양한 정보를 표시할 수 있고 낮은 제조 원가로 인하여 많은 제조회사들이 채택하고 있다.

 

-정전 편향방식

아날로그 오실로스코프와 동일한 CRT로서 전압에 의하여 표시위치를 제어하므로 CRT의 구조적인 분해능은 제한이 없으므로 상당한 분해능까지표시가 가능하다. 따라서 10,000포인트 정도로 표시를 하게되면 아날로그 오실로스코프와 같은 정도로 표시가 가능하여 날카로운 Peak파형이나 잔잔한 노이즈 등을 정확히 분석을 할 수 있는 장점이 있다. 그러나 파형을 재생하기 위해서는 D/A  Converter를 채용하여야 하므로 제조원가가 높아지고 신호의 칼라처리가 불가능하다는 단점이 있다.

 

5. 표시 방법

측정된 신호를 표시하는 방법은 Dot표시, 직전보간, 사인 보간 등 세가지로 나뉘어질 수가 있다.

 

 

-Dot 표시

측정된 신호를 측정점 위치에 점으로 표시를 한다. 점으로 표시되는 관계로 한눈에 알아보기 힘이 들고 측정점이 일정 갯수 이하로 떨어지면 파형을 알아 볼 수가 없게 된다. 그러므로 측정 분해능을 알아볼 수가 없게 된다. 그러므로 측정 분해능을 알아볼 경우가 아니면 사용을 하지 않는다. 즉, 이기능을 이용하여 DSO의 분해능을 알아볼 수가 있다. 높은 주파수의 파형을 측정할 때 Dpt 표시 상태로 두고 급격하게 변하는 부분을 관찰하면 Dot가 보인다. 이때 Dot가 보이는 양이 많으면 분해능이 높은 것이고 적으면 분해능이 낮은 것이다. 실제로 분해능이 낮은 DSO는 Dot표시와 Line표시가 많은 차이를 나타내나 분해능이 높은 DSO는 별로 차이를 느끼지 못한다.

 

- Line 표시

측정점과 측정점 사이를 직선으로 연결을 한다. 따라서 한 주기당 10개 이상의 측정점이 있어야 파형의 형태를 인식할 수 있다. 이 방법은 단발 현상이나 불연속 파형을 측정할 때 주로 사용한다.

 

- 사인 표시

측정점과 측정점 사이를 사인공식에 의한 곡선으로 연결을 한다. 따라서 측정점이 불충분할 경우라도 어느 정도까지는 재새잉 가능하다. 그러나 사인 파형을 측정할 경우에만 제대로 표시가 되고 단발 파형이나 불연속 파형에 적용하면 왜곡된 파형으로 표시될 수도 있다.

 

 

6. 표시 모드

 

- Normal 모드

한 화면의 측정이 끝나면 화면에 표시를 하여준다. 이 때 화면에 표시되는 주기는 메모리, 제어부에 따라서 큰 차이를 보인다. 일반적인 DSO는 아날로그 오실로스코프에 비하여 현저한 속도차이를 보이나 최근 들어서 여러가지 기술의 발전에 의해 일반적인 DSO가 50 ~100mS나 15mS까지의 제품도 개발이 되어서 초당 62화면을 표시할 수가 있다.

 

-Peak 모드

디지탈로 변환을 하는 관계로 측정점과 측정점 사이에 큰 신호가 있을 경우 측정이 불가능해지는 것을 막기 위하여 한번 측정을 한후 다음 측정점 이전에 큰 신호가 있을 경우 이 신호를 다음 측정점까지 유지(Peak Detecter에 의하여)를 하고 있다가 다음 측정점에서 이 신호를 측정을 한다.

 

일반적으로 Peak 측정의 최대값과 최소값이 동시에 측정된다.

 

-Roll 모드

낮은 주기로 측정을 하느 경우 한 화면이 측정이 된 후 표시가 되면 상당한 시간이 지나야 하므로 측정되는 순간순간을 볼 수 있도록 하는 모드이다.

 

또한 Peak Detect 모드를 병용하면 느린 측정에도 높은 주파수 성분도 측정이 가능하다. 실제 화면 표시는 Chart Recorder와 같이 동작을 하므로 느린 주기로 느리게 변하는 신호를 분석하기에는 최적인 모드이다. DSO만이 가질 수 있는 독특한 모드이다.

 

- 기 타

 

그 이외에 Average, X-Y, 가감산, 미적분, TV의 4~8 Field의 선택표시, DC Offset 기능, Dual Window 등의 다양한 기능들이 선보이고 있다.

 

 


-------------------------------------------------------------------------------------------------
오실로 스코프를 만들기 위한 이론 모음 중입니다.