Some Issues of Developing GIS Applications on Pocket PC D ng Anh c - Lê Th y Anh – Võ S Nam - L nh Hùng S n Khoa Công Ngh Thông Tin i h c Khoa h c T nhiên Thành ph H Chí Minh E-mail:dadu
Trang 1M t s v n đ khi phát tri n ng d ng GIS trên Pocket PC
D ng Anh c - Lê Th y Anh – Võ S Nam - L nh Hùng S n
Khoa Công Ngh Thông Tin
i h c Khoa h c T nhiên Thành ph H Chí Minh E-mail:daduc@fit.hcmuns.edu.vn;ltanh@fit.hcmuns.edu.vn;
namvosy@yahoo.com;dlhson@hcm.fpt.vn
Pocket PC là m t d ng thi t b c m tay giúp ng i s d ng l u tr cácthông tin cá nhân, công vi c c n thi t c ng nh các ph n m m t i thi u trên m tthi t b nh g n Pocket PC ch y trên n n h đi u hành nhúng Windows CE, h
đi u hành đa nhi m 32-bits ch cung c p b nh m t cách gi i h n cho các ng
d ng phát tri n trên nó Vì v y, các ng d ng liên quan t i h th ng thông tin đ a
lý (Geography Information System – GIS) phát tri n trên Pocket PC và h đi uhành Windows CE g p ph i các v n đ v t i u hoá b nh c ng nh t c đ ng
d ng Trong bài vi t này, chúng tôi trình bày m t s v n đ khi xây d ng ng
d ng GIS trên Pocket PC và h đi u hành Windows CE 3.0
Some Issues of Developing GIS Applications on Pocket PC
D ng Anh c - Lê Th y Anh – Võ S Nam - L nh Hùng S n
Khoa Công Ngh Thông Tin
i h c Khoa h c T nhiên Thành ph H Chí Minh E-mail:daduc@fit.hcmuns.edu.vn;ltanh@fit.hcmuns.edu.vn;
namvosy@yahoo.com;dlhson@hcm.fpt.vn
Designed with mobile professionals in mind, Pocket PCs let users keeptheir vital personal and business information up-to-date and close at hand.PocketPC runs on embedded operating system Windows CE, which provideslimited memory to applications developed on it Therefore, when developingGeography Information System (GIS) applications on PocketPCs and Windows
CE, it is recommended that we optimize memory usage and enhance the speed ofthese applications
In this paper, we present some problems about building GIS applications onPocket PC and Windows CE 3.0
Trang 21 T V N
S phát tri n m nh m c a Internet, c ng nh kh n ng c a công ngh ph n
c ng, đã d n đ n s ra đ i c a các thi t b ng d ng Internet Theo các nhà nghiên
c u th tr ng, m c dù PC v n gi vai trò ch y u trong vi c x lý và h tr công
vi c, nh ng các thi t b Internet hay thi t b h tr cá nhân s ngày càng kh ng
Tuy nhiên, Pocket PC ch y trên n n h đi u hành nhúng Windows CE, h
đi u hành ch cung c p b nh m t cách gi i h n cho các ng d ng phát tri n trên
nó Vì v y, các ng d ng liên quan t i h th ng GIS phát tri n trên Pocket PC và
h đi u hành Windows CE g p ph i các v n đ v t i u hoá b nh c ng nh t c
đ và th ng có t c đ ch m h n nhi u so v i các ng d ng trên PC thông
th ng Ngoài ra, do kh n ng l u tr có gi i h n, vi c ng d ng GIS trên môi
tr ng này c ng g p không ít khó kh n
POCKET PC
2.1 KH N NG TÍNH TOÁN C A POCKET PC
Pocket PC s d ng m t lo i CPU khác v i CPU thông th ng Máy Pocket
PC 2002 s d ng CPU StrongARM ho c XScale c a Intel Các CPU này đ c
g i là các b x lý RISC (Reduced Instruction Set Computer) vì nó ch th c hi n
Trang 3m t l nh trong m t chu kì CPU (M i chu kì CPU trong m t giây g i là 1 Hertzhay 1 Hz) Máy PC thông th ng c a chúng ta s d ng b x lý CISC (ComplexInstruction Set Computer), đòi h i nhi u chu kì CPU đ x lý m t l nh xác đ nh.
Do đó, các b x lý RISC nh StrongARM theo lý thuy t, có th tính toán lên t i
206 tri u l nh m t giây n u nó x lý t c đ 206 Mhz
Các b x lý StrongARM và XScale c ng x lý các l nh 32bit, gi ng nh
PC thông th ng Tuy nhiên, l i có m t khác bi t l n trong vi c x lý kích th c
l nh B x lý CISC cho phép l nh có th có chi u dài bi n đ i, vì v y, nó ph itính toán kích th c c a d li u c n đ c khi x lý l nh Trong ki n trúc RISC, m i
l nh 32bit s có 32 d li u đi kèm Vì v y, b x lý luôn bi t đ c ph i đ c baonhiêu d li u., đây là m t đi m m nh c a ki n trúc này
r ng c a bus cùng v i t c đ bus c ng có m t nh h ng l n đ n t c đ
x lý và tính toán c a máy tính r ng c a bus ch ra s l ng bit (hay byte) d
li u có th đ c t / ghi lên RAM vào b vi x lý Còn t c đ bus ch ra d li u có
th đ c đ c t RAM vào b vi x lý v i đ nhanh nh th nào Ta có th hìnhdung, đ r ng bus nh s làn giao thông trên xa l , còn t c đ bus nh gi i h n v
t c đ khi l u thông Hi n này, StrongARM và XScale s d ng bus t c đ100Mhz và thi t k hi n nay c a Pocket PC cho phép dùng bus 16bit i u này cóngh a là t c đ bus t i đa là 200MB/giây
V n đ đ t ra đây là nh v y, b vi x lý có th đ t đ c t c đ x lý baonhiêu Do chúng ta c n đ c 8bytes d li u tr c khi x lý m t l nh, nên gi schúng ta có đ c t c đ bus t i đa là 200MB/giây, thì th c s , b x lý ch thihành đ c 25 tri u l nh
Ngoài ra, l i có m t v n đ khác, đó là cache Cache là m t lo i RAM đ c
bi t đ c ch a bên trong CPU và x lý v i cùng t c đ c a CPU Cache trong b
x lý StrongARM là 16K cho mã ch ng trình và 8K cho d li u, cache trongXScale là 32K cho mã ch ng trình và 32K cho d li u N u d li u và mã
ch ng trình c n x lý đ c ch a tr n trong cache, h th ng s có th thi hành v i
t c đ th t c a CPU Nh v y, t c đ c a ng d ng có th đ c thi hành s có th
Trang 4t ng t 25 lên 206 tri u l nh m t giây, tu theo ch ng trình và d li u có v a v ikích th c cache không T c đ c a h th ng c ng ph thu c vào ngu n cung c p
n ng l ng, do đó, khi s d ng Pocket PC, ta có th nh n th y s khác bi t v t c
đ khi th c thi ch ng trình
Bây gi , s d ng các đ so sánh v hi u su t ho t đ ng gi a máyDesktopPC và Pocket PC Các h th ng Desktop PC hi n t i th ng s d ng bus100-133 Mhz Pentium IV có th s d ng DDR RAM ho c RAM BUS (RDRAM) có t c đ t 200-800Mhz Vì v y, ch xét trên phu ng di n RAM, n u s
d ng RAM 133Mhz, hi u su t Desktop PC đã t ng 1/3 l n (25 lên 33 tri u l nh
m t giây) T c đ CPU c a Desktop c ng l n h n r t nhi u khi hi n t i đã đ t t i
t c đ trên 3Ghz d n đ n hi u su t toàn h th ng cao h n
Khi l p trình ng d ng GIS trên Pocket PC, đ c đi m v b x lý c ng nh
t c đ c a Pocket PC nh h ng r t l n đ n t c đ hi n th , x lý c ng nh tìm
ki m thông tin GIS gi i quy t v n đ này, ta c n có nh ng gi i pháp phù h p
đ t ng hi u n ng c a ng d ng, giúp ng i s d ng có th s d ng đ c ch ngtrình v i t c đ ch p nh n đ c
i v i các ng d ng GIS, m t trong nh ng v n đ quan tr ng nh t c n
ph i quan tâm, đó là h tr hi n th c a môi tr ng
T ng t trên môi tr ng Windows – phiên b n desktop, các đ i t ng tr cquan nh v n b n, đ ho đ c GDI (Graphics Device Interface) đi u khi n V icác hàm GDI này, ng d ng có th v ho c hi n th đ ng th ng, đ ng cong, các
đ ng khép kín, v n b n và các bitmap Màu và ki u c a các đ i t ng này d atrên các đ i t ng đ ho mà l p trình viên t o ra và s d ng
GDI trên Windows CE c ng s d ng m t ng c nh thi t b (device context )
đ l u tr d li u c n đ c hi n th trên thi t b Các đ i t ng đ ho đ c l u
tr trong device context môi tr ng Windows CE bao g m m t bút v (pen) đ
v nét, ch i v (brush) đ tô màu, font ch đ hi n th ch , bitmap ph c v cho
Trang 5vi c sao chép ho c kéo, b ng màu (palette) đ ch đ nh màu v , và vùng clipping.Windows CE h tr ng c nh thi t b máy in (printer device context) c a máy in
đ v lên máy in, ng c nh thi t b hi n th (display device context) đ v lên thi t
b video, ng c nh b nh (memory device context ) đ v lên b nh
Khi xây d ng ng d ng GIS trên Pocket PC, c n chú ý t i vi c ch đ c s
d ng các tính n ng GDI đ c h tr trên môi tr ng này Danh sách các tính n ng
đ c h tr đ c li t kê trong b ng sau
Font Raster và TrueType Các font True Type có th kéo giãn ho c quay
đ c
H tr s n 7 font Raster trong ROM
Windows CE ch h tr m t lo i font, c raster l nTrueType trên 1 lo i thi t b xác đ nh
B ng màu H tr các đ sâu màu 1, 2, 4, 8, 16, 24, và 32 bits
per pixel (bpp) M t bpp depth of 2 is unique toWindows CE
Trang 6Ta nh n th y, do c n ph i thu g n ki n trúc c ng nh các h tr nh m m cđích t i u t c đ cho các thi t b nhúng có tài nguyên gi i h n, Windows CE đã
ch cung c p m t cách gi i h n các tính n ng c a GDI
Windows CE GDI không h tr các đ c tính:
• Thay đ i to đ không gian, nh SetMapMode, GetMapMode,
SetViewportExt, và SetWindowExt T a đ không gian s t ng ng v ikhông gian c a thi t b
• Các hàm World Transform API
• Các hàm MoveTo và LineTo
• Con tr có màu s c, con tr đ ng (animated)
Và đi u này c ng là m t trong nh ng lí do d n đ n các th vi n đ ho c aMFC c ng không h tr r t nhi u hàm liên quan t i v n đ hi n th Th nhìn quacác hàm không đ c h tr ho c h tr nh ng có thay đ i c a CWnd, l p đ i
t ng hi n th chu n c a MFC, trên môi tr ng Windows CE 3.0, ta đã th y r tnhi u tính n ng quan tr ng c n ph i s d ng trong ng d ng GIS không đ c h
tr , m t khó kh n l n trong quá trình xây d ng ng d ng GIS
ArrangeIconicWindows OnDeviceChange OnNcRButtonDown
CancelToolTips OnDevModeChange OnNcRButtonUp
ChangeClipboardChain OnDrawClipboard OnPaintClipboard
CreateCaret OnDropFiles OnPaletteIsChanging
CreateGrayCaret OnDSCNotify OnParentNotify
DlgDirList OnEndSession OnQueryDragIcon
DlgDirListComboBox OnEnterIdle OnQueryEndSession
DlgDirSelect OnEnterMenuLoop OnQueryNewPalette
DlgDirSelectComboBox OnExitMenuLoop OnQueryOpen
DragAcceptFiles OnGetMinMaxInfo OnRButtonDblClk
DrawMenuBar OnHScrollClipboard OnRButtonDown
EnableScrollBar OnIconEraseBkgnd OnRButtonUp
EnableToolTips OnInitMenu OnRegisteredMouseWheel
Trang 7FilterToolTipMessage OnMButtonDblClk OnSetCursor
FlashWindow OnMButtonDown OnSizeClipboard
GetClipboardViewer OnMButtonUp OnSizing
GetDCEx OnMDIActivate OnSpoolerStatus
GetDSCCursor OnMenuSelect OnStyleChanging
GetLastActivePopup OnMouseActivate OnSysColorChange
GetSystemMenu OnMouseWheel OnTimeChange
GetUpdateRgn OnMoving OnToolHitTest
GetWindowContextHelpId OnNcActivate OnVScrollClipboard
GetWindowPlacement OnNcCalcSize OnWindowPosChangingGetWindowRgn OnNcCreate SetClipboardViewer
HiliteMenuItem OnNcHitTest SetMenu
InvalidateRgn OnNcLButtonDblClk SetWindowContextHelpIdIsZoomed OnNcLButtonDown SetWindowPlacement
LockWindowUpdate OnNcLButtonUp SetWindowRgn
OnActivateApp OnNcMButtonDblClk ShowOwnedPopups
OnAskCbFormatName OnNcMButtonDown ShowScrollBar
OnChangeCbChain OnNcMButtonUp UnockWindowUpdate
OnChildActivate OnNcMouseMove ValidateRgn
xu t h tr trên Pocket PC và tu thu c vào lo i Pocket PC
Do h n ch v ngu n n ng l ng pin và kích th c c a thi t b , Pocket PCkhông s d ng các thi t b l u tr nh đ a c ng hay đ a m m mà nó s d ng m t
c ch g i là B l u tr đ i t ng (Object store) Object store là m t vùng RAM
đ c ng i dùng đ nh ngh a, dùng đ l u tr các t p tin, các thông tin registry vàcác database (g i là Object Store d ng Storage) Vùng RAM còn l i dùng làm b
Trang 8nh cho các ch ng trình đ c th c thi (g i là Object Store d ng Program).Object store l u các thông tin d i m t d ng do h đi u hành quy đ nh, khác v itrên Desktop và v n l u gi đ c thông tin c a các ng d ng và d li u ngay ckhi n ng l ng cung c p chính b m t nh ngu n pin d tr Có th xem ObjectStore nh là đ a c ng trên thi t b dùng Windows CE vì các end-user không bi t
v Object Store do Microsoft đã cung c p trình WinCE Explorer đ đ c n i dung
c a nó (t ng t nh Microsoft Windows Expoler đ đ c n i dung c a đ a c ngtrên máy desktop PC)
i m khác bi t ch y u mà ta c n l u ý là object store trên Windows CE là
vi c thi u các kí t đ a Windows CE s d ng các th m c d i th m c g ccho vi c cài đ t các thi t b c a ng i dùng Ví d , n u ng i dùng g n m t flashcard vào máy, Windows CE s t o ra m t th m c /Storage Card 1 C m i flashcard đ c g n vào, con s này s t ng lên (/Storage Card 2,…)
ng d n t i t p tin đ c gi i h n b i MAX_PATH (có th dài t i đa 260
kí t , gi ng nh trên Windows) Tuy nhiên, trên Windows CE không có khái ni m
th m c hi n hành, ta ph i truy xu t các t p tin b ng các đ ng d n d y đ c a nó
Trên Windows CE 2.0, các t p tin có kích th c t i đa là 4MB và s l ng
t i đa trong object store là 65535 Trên Windows CE 3.0, kích th c t i đa cho
m t t p tin là 32MB, s l ng t i đa đ i t ng l u tr trong object store là g n4.000.000
Do b nh c a thi t b gi i h n, và ph i chia x làm hai ph n Object Store
d ng Storage và d ng Program, nên các ng d ng luôn ph i tính toán sao cho s
d ng t i u Object Store, không s d ng quá nhi u Object Store d ng Storage,song không đ c vì lí do này mà lúc n p ch ng trình th c thi, l i s d ng quánhi u Object Store d ng Program
2.4 C P PHÁT B NH
i v i ng d ng GIS, m t v n đ th ng g p là ph i c p phát b nhnhi u l n Vi c s d ng d th a hay sai sót trong c p phát, gi i phóng b nh có
Trang 9th đ l i h u qu r t nghiêm tr ng, đ c bi t là khi s l ng đ nh c a đ th là r t
l n Trên môi tr ng Pocket PC, vi c đ l i nh ng vùng nh d th a s làm ch mtoàn b h th ng, đ ng th i x y ra nh ng l i r t nghiêm tr ng, do dung l ng b
nh không nhi u
Windows CE s d ng các hàm API liên quan t i b nh o đ c p phát b
nh cho vùng heap và stack i m l i c a s d ng b nh o là b nh o khôngphân m nh: Windows CE luôn c p phát m t s nguyên các trang Vì Windows CE
qu n lý b nh o theo các kh i 64KB, do đó khi ch ng trình không s d ng h tvùng nh 64KB thì nên dùng m t vùng nh heap đ tránh lãng phí
2.4.1 CÁC C CH S D NG B NH
• Local Heap
Heap là m t vùng không gian b nh o d tr mà Windows CE qu n lý đ
c p phát cho ch ng trình Kích th c c a heap kho ng 4bytes hay 8bytes, tùythu c lo i CPU
b nh stack cho ti u trình đó M i ti u trình có m t stack và m i stack có m tvùng 2KB cu i cùng đ đi u khi n tràn stack
• Static data block
Kh i d li u t nh (Static data block) là m t kh i nh mà Windows CE dànhcho ch ng trình Kh i này ch a chu i, buffer, và các giá tr t nh khác mà ch ngtrình s d ng trong su t quá trình th c thi Ta có th gi m kích th c c a các kh i
d li u b ng cách khai báo d li u trong ph n read/write v i khai báo const
Trang 102.4.2 NH N BI T TÌNH TR NG THI U B NH
Cho dù c p phát b nh hi u qu th nào và ch ng trình có s d ng b
nh RAM hi u qu th nào, thi t b Pocket PC v n có th b thi u b nh m c
đ l p trình, ta có th bi t đ c tình tr ng thi u b nh theo nh ng cách sau:
• Hàm Virtual Alloc tr v 0, cho bi t c p phát không thành công
• LocalAlloc ho c HeapAlloc tr v 0, cho bi t vi c t ng kích th c vùngheap không thành công
• Windows CE tr v m t l i stack cho ch ng trình, cho bi t c p phátstack không thành công
• Khi m t ch ng trình có yêu c u c p phát b nh , Windows CE ki mtra và l c yêu c u, nh m tránh vi c s d ng t t c b nh có s n cho
m t c p phát l n Khi Windows CE b c vào tình tr ng thi u b nh ,
nó s gi m gi i h n b nh t i đa cho ch ng trình
• Windows CE g i thông đi p WM_HIBERNATION t i các ng d ng
nh m thông báo tình tr ng thi u b nh
Ng i s d ng t ng tác v i thi t b thông qua m t màn hình touch-screenLCD (màn hình c m nh n) Không s d ng bàn phím (keyboard) và chu t(mouse) thông th ng, Pocket PC h tr nh p li u thông qua m t bàn phím logic,
g i là SIP (Soft Input Panel) Bàn phím logic này th c ch t là m t khung c a sluôn t n t i trên màn hình, mô t và s p x p các phím t ng t trên máy PC thông
th ng Ng i dùng s giao ti p v i SIP thông qua ngón tay ho c stylus (m t cây
vi t v t lý, cho phép nh p li u b ng cách vi t tr c ti p lên màn hình)
Thay th cho vi c nh n Enter hay nh n đúp chu t, Pocket PC s d ng c
ch single-tapping (nh n đ n) lên touch screen Ng i dùng ch c n nh n m t l nlên m t đ i t ng ho c liên k t, h đi u hành s m đ i t ng/liên k t t ng ng
Trang 11Ngoài ra, đ giao ti p v i ng d ng, ng i dùng có th nh n-và-gi and-hold) ây là c ch có tác d ng t ng t nh vi c s d ng context-menu
(tap-b ng cách nh n ph i chu t trên PC Khi ng i dùng nh n-và-gi trên m t đ i
t ng, có th m t menu ho c m t tooltip s hi n ra, tu theo đ i t ng đó x lý
nh th nào
Trong ng d ng GIS, ta nh n th y vi c nghiên c u và x lý các cách t ngtác trên là r t c n thi t, b i trong d ng ng d ng này, vi c di chuy n, phóng to, thu
nh , tra c u b n đ là nh ng hành đ ng r t th ng xuyên x y ra Bên c nh đó,
ph i đ nh ngh a l i trong ng d ng các hardware keys (phím v t lý) nh m t n d ngcác phím di chuy n s n có c a thi t b Pocket PC nh m t ng t c đ t ng tác cho
ng i dùng khi xem b n đ
Các ng d ng liên quan t i h th ng thông tin đ a lý (GeographyInformation System – GIS) phát tri n trên Pocket PC và h đi u hành Windows
• B o đ m l u tr ít nh t thông tin có th trên Object Store d ng Storage
• B o đ m đ c t c đ khi x lý tính toán đ hi n th và tìm ki m, tra c u thông tin.
đây, chúng tôi xin phép trình bày m t s v n đ liên quan đ n t ch c l u
tr thông tin GIS đã đ c th nghi m đ i v i d li u b n đ TPHCM đ c s hoá
t ph n m m Smart Map Editor ([ 3]) D li u b n đ ngu n bao g m các file
d ng v n b n có c u trúc (text), các file d ng nh phân có c u trúc (DBF, SHP).Các d li u ngu n này mô t thông tin c a các đ i t ng trên b n đ , c th nhsau: