http://msdn.microsoft.com/en-us/library/ms256177.aspx

이제 지난 번에 이어서, Catalog XML Schema를 열어보도록 하겠습니다.

XML Schema로서 PBCXML (Catalog XML)파일의 내부 구조를 설명해주고 있습니다. 맨앞의 xsd:schema를 이 파일이 schema라는 것을 나타내고 있고. Namespace와 구조의 Validation여부를 나타내고 있습니다. 그 뒤로는 주석이 나오고 있고요. 계속 내려가 보겠습니다.

appinfo는 Application에서 고유하게 사용할 것이라고 하네요. 흐음... 내부 구조는 알수가 없으니 패스합니다.
http://msdn.microsoft.com/en-us/library/ms256134.aspx

근데. 이런식으로 하나하나 파악하려니,, 왠지 삽질을 하는 것 같네요.. 좋은 방법이 없을까요???
네, 있습니다. Visual Studio에는 XML Schema 편집기가 내장되어 있습니다. ^^
이번엔 Visual Studio에서 Open File로 PbcXml600.xsd를 열어보도록 하지요.
네 모든 Schema 구조를 보기 좋게 나열해주고 있습니다. 편집도 가능하지만 우리가 Schema를 편집할 일은 없겠죠? PlatformBuilder에 내장된 Catalog Editor도 바로 이 Schema를 참고해서 각 항목들을 보여주고, 편집할 수 있도록 하게 해주는 것입니다.

이제 다시 원래의 PbCXML 파일로 다시 가보도록 하겠습니다.
Trackback 0 | Comment 0




Windows Embedded CE 6.0의 BSP작업을 하다보면, 가끔씩 드는 생각이 Catalog가 도대체 뭘까? 하는 생각이 든다.
MS에서 만들어 나오는 SYSGEN Component들을 보면, Catalog에서 선택만하고, Sysgen만 한번 때리면(물론 빌드가 안되었으면 Build가 엮어져 들어가겠지만), 자연스레, OS Image에 포함된다. 왜일까?

Sysgen은 Systen Component들을 가져와서 OS의 구성요소에 끼워넣어주는 역할을 한다. 물론 빌드가 필요하면 빌드도 하고, 이 때 다 빌드된것들은 Public이나 Private의 Target에 있고, 이것들이 Release쪽으로 복사되어 온다. Lib는 Library라 대개 BSP와 함꼐 엮일 일은 없다. 물론 MDD/PDD형태의 코드들은 Lib만 있어서, BSP의 드라이버나 기타 Component와 묶이게 되지만, 이런것은 이미 BSP의 책임으로 넘어오는 것이므로, 예외로 한다. 아무튼 대부분의 상위 Component들, 즉 Logical Driver DLL이나, Application, 기타 DLL Module들은 죄다 들어온다고 보면 된다.

그런데? 도대체 어떤 원리로 들어오게 될까? 그 내부 속속들이를 알아보기 위해서 오늘은 우선 Catalog에 대해서 알아보도록 한다. 사실 빌드 과정은 MS문서를 보거나, 여러 Third Party Device Manufacture들의 사이트에 들어가거나, 커뮤니티에 들어가보면 글들이 많다. 하지만 Catalog자체에 대해서는 별 이야기가 없다. 그도 그럴 것이, BSP제작을 하는 곳도 드물겠거니와, 그것을 굳이 Catalog로 만들 필요도 없기 때문이겠다. 이건 이전부터의 빌드 시스템과 UI을 계승하기 때문이기도 한데, 대부분이 Command Line상에서 System Environment로 처리되는 것이라, 이 가장 최하위 원리를 알고 있다면 Catalog를 만들 필요가 없기 때문이겠다.
그래도.
알아두면 좋지 않겠는가? ^^?

우선은 대부분의 CE플랫폼 개발자들은 BSP에 관심이 있을 것이므로, MS에서 작업해놓은 BSP의 Catalog를 보도록 하자. 바로 Device Emulator의 탈을 쓴 SMDK2410의 BSP Catalog이다. MS의 Device Emulator가 SMDK2410을 모태로 하고 있기에 BSP도 거의 그대로 이다. 물론 Emulation고유의 기능 때문에, 코드상에 실제 Chip에서는 사용되지 않는 코드도 들어 있긴 하다. 대표적인게 Display의 DMA처리 부분.

어쨌든 열어보면 아래와 같은 화면이 보일 것이다.
일단은 notepad등의 텍스트 에디터로 열어보자.

보시다 시피 XML 이다. 뭐 이미 확장자 자체에서 PBC XML 이라고 했으니, 감이 오지 않는가?
Platform Builder Catalog XML 파일이란 의미가 되겠다.
XML을 잘 모르시는 분들을 위해서 간단히 설명하자면, 일종의 DB파일이라고 생각하면 된다. Data자체를 들고 있는 것이 XML이고, 이 DB를 위해서 DB내부의 구조를 정의하고 있는 것이 XML Schema라는 것이 있다. 물론 XML표준상 DTD라는 포맷으로 작성된 파일도 사용될 수 있지만, 여러가지 제약이 있어서 XML Schema를 많이 사용한다. 물론 Platform Builder도 XML Schema를 사용한다.

굳이 XML Schema를 모르더라도 XML파일만 봐서도 대충의 의미의 파악은 가능한데, HTML을 접해보셨던 분이라면, HTML과는 다른 글자들을 보실 수 있을 것이다. 이 각 태그 안의 것들이 Element즉 하나의 변수명이라고 생각하면 된다. <Element> ~~~ </Element>로 싸여있는 안쪽은 바로 이 변수에 할당될 값이 된다. 물론 이 값은 해당변수의 타입이 무엇인가에 따라서 달라지게 되는데, 이부분은 XML Schema를 봐야만 이해가 가능하다. 각 태그 안에 태그 이름과 함께, <Element XXX="AAA"> 라고 되어 있는 것이 보이는데, 이는 속성으로 해당 Element의 하위 변수라고 생각하면 되고, 실제로도 태그 내부에 들어있는 Element들과 동등하게 취급된다. 차이가 있다면, Scope정도?

한줄 일일히 설명하자면, 반 이상이 XML의 설명이 될지라 글이 언제 끝날지 알 수 없어, XML용어를 그대로 노출시키면서 설명을 하고, XML자체에 대한 궁금증은 독자 스스로 찾아보길 바라겠다.

우선은 주석을 제외하고 맨 윗 줄부터 보면,

<CatalogFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" RequiredVersion="6.00" xsi:schemaLocation="urn:Microsoft.PlatformBuilder/Catalog PbcXml600.xsd" xmlns="urn:Microsoft.PlatformBuilder/Catalog">

라고 되어 있다. 무슨 뜻일까?

RootElement는 CatalogFile 이라는 이름을 갖고 있고, 첫번째 속성으로 정의되는 Namespace로서 접두어는 xsi를 사용하며, NameSpace의 이름은 http://www.w3.org/2001/XMLSchema-instance 가 되겠다. 왜 이런 이름이 NameSpace의 이름인지는 XML 표준을 참고하시면 이해가 될것이다. 그리고 위의 URL에도 한번 들어가 보시고 하면 도움이 많이 될 듯하다.
왜 저렇게 했는지 생각하기 귀찮으신 분은, 그냥 기본 설정이라고 생각하면 속 편할 것 이다. 실제로도 그러하니까.
두번째로 정의되는 속성에서 다른 Namespace를 선언하고 있는데, 이번에는 xsd라는 접두어를 갖게되며, http://www.w3.org/2001/XMLSchema 라고 Namespace이름을 주었다. 말그대로 XML Schema에 대한 Namespace를 정의한 것이며, 해당 접두어를 xsd라고 했다. 대부분의 XML Schema파일은 확장자로 xsd를 갖는다.
세번째 속성은 RequiredVersion으로 6.00이라고 되어 있다. 이 속성은 CatalogFile의 속성이므로, 아마도 Platform Builder의 버전을 표시한 것이리라.
네번째 속성은 xsi:schemaLocation이라고 되어있는 속성인데, 속성의 이름은 schemaLocation이고 접두어로 xsi가 붙었다. 접두어는 어떻게 해석해야할까?? 그냥 앞에서 정의한 실제 값으로 치환해버리면 된다. 따라서 이 속성의 실제 이름은 http://www.w3.org/2001/XMLSchema-instance:schemaLocation이 된다. 무슨 뜻일까? 앞서 http:~~~~는 Namespace로 선언 되었다. 따라서 해당 Namespace에 이미 정의 되어 있는 schemaLocatino이라는 속성(요소)가 되겠다. 이것은 이미 XML표준에서 정의가 되어 있는 부분이므로, 현재 작성되고 있는 XML파일이 사용할 XML Schema의 위치를 알려주는 것이다. 그럼 이 속성에 할당된 값은? 그렇다
urn:Microsoft.PlatofrmBuilder/Catalog PbcXml600.xsd 다.  조금은 감이 오시는지?
혹시나 아직 감이 잘 안오시는 분들은 아마도 호기심이 덜하신 분이라 생각하여 위의 XMLSchema-instance URL에 들어갔을 때의 모양을 첨부해본다.
http://www.xfront.com/URLversusURN.pdf

의미는 Catalog XML파일의 Schema를 Instance화 하기 위해서(XML로 작성되기 위해서), XML Schema를 참고해야하는데, 그 Schema의 위치가 위와 같다는 것이다. 그 위치는 urn:Microsoft.PlatformBuilder/Catalog + PbcXml600.xsd 이다. 그래서 찾아보니 아래의 위치에 해당 파일의 이름이 있다. 그렇다면 "urn:Microsoft.PlatformBuilder/Catalog"는 아래의 설치 디렉토리가 되겠구나.

일단 Schema가 어디에 있는지는 확인해두었으니, 계속 첫째줄을 파악해나가보면.
SchemaLocation다음의 속성은 xmlns="urn:Microsoft.PlatformBuilder/Catalog"
이다. 의미는, Namespace이긴한데, 기본 네임스페이스가 바로 위의 값이 된다는 것이다.  ':'을 사용하여 Namespace를 명시하지 않은 모든 Element는 다 위의 값을 Namespace로 갖게되는 것이다. Class내부로 묶어버렸다고나 할까?

자 이제 아래줄부터는 모두 데이터이다. 이제 중요한 것은 바로 위에서 찾았던 XML Schema파일을 뒤져봐야 한다.
요것은 다음에 ^^;; 추가할께요. 너무 졸려서 =.=
Trackback 0 | Comment 0




DPI를 조절해보세요.
가끔 이런 생각을 해보신적은 없나요? 데스크탑 LCD에서는 글씨가 큰데, 왜 노트북에서는 작을까?
고해상도 노트북인데, 왜 데스크탑 LCD 모니터보다 보기가 불편하지??
네, 원인은 바로 DPI와 PIXEL과의 관계입니다.
우리가 인지하는 단위는 실측 단위인 mm, Inch가 되지요, 하지만 SW로 여러가지 이미지, 글자들을 표현할때는 Pixel단위, 즉 점의 개수로 표현이 됩니다.
그리의 경우에는 이것이 우리가 실제로 보게 되는 글자의 크기에 영향을 주게 됩니다.
보통 예전 CRT모니터에서부터, 현재의 LCD로 오면서 사용하던 DPI는 96DPI였습니다.
즉 1 Inch당 96개의 점들을 표현할 수 있다는 이야기였지요. 이것을 기준으로 대부분의 그림, 글자를 표현하는 Software들이 작성되었고, 대부분의 글자들을 이 기준에 맞추어 그려두었습니다. 즉 우리가 보게될 글자의 크기에 맞추어 적절한 개수의 점을 사용해서 글자를 만들었다는 이야기이지요.
하지만 상황이 점차 변해가고 있습니다. 작은 화면에 고해상도 LCD가 등장하므로써 LCD의 DPI가 높아지게 된 것이죠. 하지만 대부분의 노트북이나 여러 OS에서는 이런것들을 자동으로 알아서 설정해주지 않습니다.
따라서 고해상도의 작은 화면의 노트북등에서는 글씨가 깨알같이 보이게 되죠.  
Windows XP이전까지는 이 DPI에 대한 설저이 매우 단순해서, 보통 사람들이 어떻게 바꾸어야 할지를 몰랐습니다. 하지만, Vista이후로는 좀더 편리한 UI를 제공하고 있지요.
아래 화면에서 사용자 지정 DPI설정을 누르시면, 자가 나타납니다. 1이라고 쓰여져 있는 부분이 바로 1inch에 해당하는 길이입니다. 즉 2.54cm가 되는데요. Software개발자가 의도한 대로 눈에 보이게 하려면, 이 DPI를 바꾸어 주면 됩니다. 화면에 자를 갖다대고, 눈금자를 드래그해서 1이라고 쓰인 부분은 2.54cm부분에 오도록 맞추면, 실제 DOT와 물리 길이와 맞추어지게 되는 것입니다.

자, 변경을 완료한 뒤에 재부팅을 하면, OS의 UI글자들이 큼지막하게 나타나는 것을 볼 수 있습니다. 이제 좀 눈이 편하겠지 싶어, 웹브라우져를 띄워 봤더니.. 이런.. 예전하고 똑같네요.
네. 물론 이경우도 해결 방법은 있습니다. IE의 맨 아래 오른쪽을 보면 돋보기 모양이 있습니다. 요걸로 화면을 확대하면 됩니다. 얼마로 확대하면 될까요? 네, 위에서 설정했던 %대로 하시면 됩니다. ^^

참고 : http://msdn.microsoft.com/ko-kr/library/aa970067.aspx
Trackback 0 | Comment 0




http://www.prolific.com.tw/eng/downloads.asp?ID=31
위의 회사가 있따. 대부분 우리나라 회사에서 가져다 쓰는 칩인것 같은데, 우리나라 회사 이름은 없네..
드라이버가 Windows 7것이 지원된다고 해서 업그레이드 했더만.. 이전 드라이버와 충돌이 있는건지,
칩이 구형인건지 설치가 안된다.. 할수 없이 VMWARE를 쓰는수밖에 --;
Trackback 0 | Comment 0




http://www.aesop.or.kr/?document_srl=69891

이런게 있네요~ ^^
게임기 대용으로도 재밋을 것 같아요~~~ ^^

이래서 인생이 재미나요~ ^^
Trackbacks 6 | Comment 0




군대이야기가 아니고,
대학교 입학때부터 사용해오던, Dual P3컴퓨터의 이야기 입니다.
대학 입학후, 새로 사서 군대갔다오고, 대학교 4학년까지. 계속 썼었고. 고향집에 아버지 쓰시라고 갔다놓고 있었죠.
저번달까지만 해도 고향내려갈때면 가끔씩, 잘 쓰던 것인데, 서버용도로 고향 집에서 24시간을 돌리도록 해놨더니. 메인 보드가 명을 달리한 것 같습니다. P3 866 Dual이라, 왠만한 요즘 넷북만큼의 성능은 나옵니다. 듀얼코어라 단일코어보다 더 부드러웠죠 ^^. 그래픽카드도 Geforce TI4200 Platinum이라, 요새 게임등만 아니면 훌륭했지요. 대항해시대 온라인까지는 무리없이 했었습니다.  
SAMSUNG TECHWIN CO., LTD. | Digimax L50 / KENOX X1 | Normal program | Multi spot | 1/4sec | F/3.2 | 0.00 EV | 6.5mm | ISO-84 | Flash fired | 2009:10:02 18:57:01
SAMSUNG TECHWIN CO., LTD. | Digimax L50 / KENOX X1 | Normal program | Multi spot | 1/4sec | F/3.2 | 0.00 EV | 6.5mm | ISO-84 | Flash fired | 2009:10:02 19:02:52

아무튼 버릴려니 추억이 살짝 떠올라서, 기록이라도 남길까하여 글을 써봤습니다.

케이스는 계속 쓸겁니다. 워낙에 튼튼한것 사뒀던터라.. 10년은 더 쓸수 있을 것 같거든요. 마이크로닉스 케이슨데, 무거운거 하나만 빼면. 최강입니다. 방탄용으로 써도 될것 같아요 ^^; 요즘 나오는 에어가이드가 없어서, 살짝 걱정이긴하지만, 옆구멍이 뚤리고 쿨러가 있어도, 제구실 못하는 케이스도 요새는 많아서. 무리는 없을 것 같습니다.
SAMSUNG TECHWIN CO., LTD. | Digimax L50 / KENOX X1 | Normal program | Multi spot | 1/30sec | F/3.2 | 0.00 EV | 6.5mm | ISO-100 | Flash fired | 2009:10:02 19:12:36


Trackback 0 | Comment 0




아이디어 접수를 완료했습니다.

데브피아에서 제공하는 데브포지에도 프로젝트 등록도 했지요.

혼자서 만들어보려 한 것이긴 하지만, 힘에 부치면 개발자/디자이너를 더 모집할 수도 있겠습니다.

어쨌든, 실제 어플 개발기한은 12월 말까지니까요.. 빡빡합니다.


Trackback 0 | Comments 2
permalink arload
2009.10.12 00:39 신고 댓글에 댓글수정/삭제
짜식 이런걸 몰래 진행하다니. 다음에 나한테도 좀 알려줘!!
permalink 두더지사냥꾼
2009.10.21 21:25 신고 댓글에 댓글수정/삭제
물먹었어요~ ^^
다음은 어플리케이션 공모나 해볼까나 하는데, 이젠 시간이 안나네요;




두더지사냥꾼's Blog is powered by Daum & tistory

 

티스토리 툴바