piątek, 26 czerwca 2009

Qt for S60 - Tower

Jeszcze dobrze nie poznałem możliwości Qt for S60 "Garden" to już mamy kolejną wersję Qt for S60 "Tower" tak więc mamy już zaimplementowane następujące moduły: QtCore, QtTest, QtGui, QtNetwork, QtScript, QtSvg, QtXML

Do nowych API doszło: Phonon, QtSql oraz QtWebkit, obsługa softkeys i API do metod wprowadzania tekstu. Moduł Phonon jest w trakcie tworzenia i owszem można już pisać kod i go kompilować ale nie oznacza to że zadziała. Moduł QtSql opiera się na binarnej wersji pod SQLite3. Natomiast wersja QtWebkit jest dość eksperymentalna (oparta na silniku WebKit 527).


Warto przejrzeć Changelog, aby dowiedzieć się o największych zmianach w API i jak listę problemów z którymi mogą zetknąć się uzytkownicy nowszej wersji. Jedna z najciekawszych rozwiązań które zastosowano w tej wersji jest konwersja z poziomu makr C++ z tradycyjnego leaves z Symbiana na standardowe z C++ wyjątki.

Instalacja po stronie komórki wymaga odinstalowania poprzednich wersji Qt i jak bibliotek współpracujących. Przed instalacją nowszej wersji Qt for S60 trzeba zainstalować: pips_s60_1_5_5b.sis, openc_ssl_s60_1_5_5b.sis, stdcpp_s60_1_5_5b.sis. (są to biblioteki Open C++ i Open C).


Warto obejrzeć wprowadzenie do Qt for S60


i przykład jak zrobić pierwszą aplikację w Qt for S60


Pozostało poczekać na aktualizację Qt for S60 Developer Library na Forum Nokia i na nową wersję Mobility Extensions APIs.

sobota, 20 czerwca 2009

Chinski Symbian

Szukając informacji o programowaniu na Symbiana S60 zauważam bardzo dynamiczny rozwój stron o programowaniu na Symbiana w języku chińskim. Duża w tym zasługa tego, że na rynku chińskim jest coraz więcej komórek z Symbianem. Ponieważ Fundacja Symbian przykłada duża uwagę do tego żeby w Chinach rozwijać programistów od Symbiana więc utworzono odrębną witrynę dla programistów z Chin. Fundacja także prowadzi chińskojęzycznego bloga. Najwięcej zasług zrobiła Nokia zakładając w Pekinie centrum badawczo rozwojowe. Chińczycy z Nokii prowadzą badania nad nowym interfejsem użytkownika i nad interakcją z otoczeniem (ang. rich context modeling). W tym centrum pracują tacy badacze jak Zhen Liu, Xia Wang, Jilei Tian, Kongqiao Wang, Hao Wang, Zhanjiang Song, Jian Ma. Obecność tych badaczy w centrum badawczo rozwojowym sprzyja dobrym kontaktom na poziomie uniwersyteckim. Takim uniwersytetem w Chinach, który bierze udział w pracach badawczych i edukacji studentów jest Uniwerytet Tsinghua. Zainteresowanie Symbianem wśród programistów jest bardzo duże o czym mogą świadczyć prężnie działające fora dyskusyjne Forum Nokia w języku chińskim. Nie da się ukryć faktu, że Chińczycy lubią łamać zabezpieczenia czy dostarczają reszty światu certyfikaty developerskie. Efektem takiej sytuacji jest też, że sporo Chińczyków pisze na swoich blogach o programowaniu na Symbiana. Przykładowe blogi na których pisze się po chińsku o programowaniu: 颠三倒四的传说, Zhang Lei, milefo95, 郭先东, 我的博客, simbalg, 松林的博客- songlin0512, 亚北 - guanyabei1981, hzb1983, Corner Boy鐨勫涔犳棩蹇 - richiechyi, 忆云 - lwr0312, poseidonwain, mindy1978, lunix-w, wenly8384, 非藉秋风 - shixuehuiab, c_linuxsymbian, 福音使徒 - fuyinshitu, fhz1980 i wiele innych.

Czuję pewien respekt, że skoro Chińczycy tak chętnie prowadzą blogi o tym jak uczą się programowania na Symbiana C++ to jednak mam niedosyt odpowiedników angielskojęzycznych takich, które by na przykład do znudzenia pisały o budowie HelloWorld w Symbian C++ czy o idiomach w kodowaniu. Jeszcze podziwiam tempo w jakim oni piszą i uczą się Symbiana C++. Godne podkreślenia jest to, że chętnie piszą o tym w swoim ojczystym języku nie podporządkują się modzie pisania po angielsku, bo piszą o tym dla swoich. Mają szacunek do tradycji i swojego języka.

sobota, 13 czerwca 2009

Problemy z Carbide.c++

Ta notatka jest dość stara - czytelników odsyłam do tego artykułu Programowanie Symbiana pod Windows 7 

Faktycznie, mogłem się spodziewać dość dużego zainteresowania poprzednim wpisem. Rzecz w tym że sporo zapytań dotyczy problemu pierwszych kroków z pracą na Carbide.C++. Istnieje pewien problem dla wszystkich rzeczy wspólny:

zainstalowanie niewłaściwej wersji Perla
zainstalowanie niewłaściwej wersji S60 SDK
niepoprawnie działanie kompilatora
brak rejestracji emulatora z S60 SDK
niepoprawne skonfigurowanie Carbide.C++
brak ścieżek do zmiennej środowiskowej PATH

Jeżeli już ktoś instalował i mu nie działa, albo kiedyś tam instalował i potem "wrócił" to musi sprawdzić czy wszystko działa z linii poleceń. To wtedy będzie oznaczało, że problem jest po stronie Carbide.C++. A co się stanie jak kompilator nie skompiluje? Albo emulator nie zechce uruchomić się?. Trzeba wszystko przeinstalować ponownie. Z apletu dodaj i usuń programy usuwamy (znakami xxx oznaczam to że mogą być różne wersje):

Carbide.c++ xxx
CSL ARM Toolchain (arm-symbianelf) 2005-Q1C
S60 3rd Edition xxx SDK for Symbian OS
Active Perl x.x.x Build xxx

Istotne jest też usunięcie fizyczne folderów gdzie to były rzeczy zainstalowane (przy założeniu że wszystko jest na C: na Windows XP bo na Windows Vista jest trochę inaczej):
C:\Program Files\Nokia\Carbide.c++ v2.0\
C:\Program Files\Common Files\Symbian\
C:\Program Files\CSL Arm Toolchain\
C:\Symbian\
C:\Perl\

Rejestrujemy się na Forum Nokia, login i hasło przyda nam się potem przy rejestracji emulatora i przy ściąganiu SDKów.

Najpierw instalujemy ActivePerl 5.6.1.638, potem Carbide.C++ 2.0 Podczas instalacji Carbide.C++ wybieramy wersję Developer, (wersji Professional i OEM nie polecam początkującym). Po instalacji nie uruchamiamy go jeszcze. Następnie instalujemy któreś S60 SDK. Użytkownicy Windows Visty muszą zainstalować wersję co najmniej S60 3rd Edition FP2 SDK for Symbian OS. Podczas instalacji S60 SDK zostaniemy poproszeniu o zainstalowanie CSL Arm Toolchain. Użytkownicy Windows Visty mogą otrzymać komunikat o tym że do kompilacji potrzebne jest używanie odpowiedniego pliku wsadowego. Im też polecam dodanie do zmiennych środowiskowej PATH pewnych wartości ( z tej strony).

Teraz możemy uruchomić Carbide.C++. Pierwszą rzeczą jest poprawne skonfigurowane IDE do kompilacji. Najpierw możemy uruchomić
Start -> Programy -> Carbide.c++v2.0 -> Configure environment for WINSCW command line.
Ten plik wsadowy konfiguruje emulatora do pracy z Carbide.c++
Teraz możemy uruchomić Carbide.C++
Start -> Programy -> Carbide.c++v2.0 ->Carbide.c++v2.0
Uruchaniając IDE trzeba pozmieniać pewne domyślne ustawienia. Z menu Carbide.c++v2.0 wybieramy Windows -> Preferences. Pojawi się okno Preferences, po lewej stronie mamy takie drzewko i wybieramy stamtąd węzeł Carbide.c++ i podwęzeł Platform Filtering Preferences.
Przy EKA2 Platforms pozostawiamy tylko Emulation (WinSCW) i GCCE (wszystko co ma w nazwie ARM odznaczamy).
Następnie sprawdzamy czy Carbide.C++ wykryło odpowiednią wersję S60 SDK to wybieramy węzeł SDK Preferences i tam mamy listę zainstalowanych SDKów.
Zamykamy i uruchamiamy z menu Carbide File -> New -> Symbian OS C++ Project i pojawi się okno z którego wybieramy węzeł S60 -> GUI Application i przechodzimy krok po kroku wszystkie okna kreatora.
Jak kreator zrobi całą strukturę folderów to w menu wybieramy Project -> Build Configuration -> Manage... to pojawi się okno Add/Remowe Carbide Build Configuration i zaznaczamy tylko Emulator Debug i Phone Release dla SDK którego chcemy użyć.
Zanim zaczniemy kompilację to trzeba będzie ustawić zakładkę Console na aktywną i wybrać z menu Projekt Build All Configurations. Wtedy Carbide.c++ skompiluje kod na wersję na komórkę oraz zrobi paczki w folderze sis a także zrobi wersję binarną dla emulatora. Komunikaty podczas kompilacji można zaobserwować w zakładce Console. Aby uruchomić emulator trzeba wybrać z menu Run ->Run. Po kilku minutach uruchomi się emulator wraz zaleceniem żeby zarejestrować go. W tej sytuacji trzeba podać hasło i login do forum Nokii.
Trzeba liczyć się z tym że przy każdym uruchamianiu emulatora może pojawiać sie komunikat Alertu zabezpieczeń systemu Windows o pozwolenie na uruchamianie aplikacji w emulatorze.
Po uruchomieniu emulatora klikamy w przycisk menu i pojawi się widok Menu i wtedy trzeba przejść do ikonki Installations. w po wybraniu powinno widać tą aplikację.
W folderze sis znajduje się plik *.sisx tej aplikacji, który możemy wgrać na komórkę.

czwartek, 11 czerwca 2009

Symbian C++ z linii polecen

Ta notatka jest dość stara - czytelników odsyłam do tego artykułu Programowanie Symbiana pod Windows 7

Od pewnego czasu rośnie mi ilość ludzi którzy wpadają do mojego bloga, żeby poczytać o programowaniu na Symbiana. Fakt że niewielu w Polsce ludzi zna się na programowaniu na Symbiana. Myślę, że coraz więcej ludzi będzie chciało poznać to jak programuje się na ich komórkę. Symbian w zależności od wersji która jest zainstalowana w komórce to ma różne możliwości. W tej sytuacji największe możliwości mają programiści C++, którzy dzisiaj mogą programować w Symbian C++, OpenC, OpenC++ i od niedawna w Qt for S60.
Większość ludzi myśli, że jak zainstalują oprogramowanie IDE np: Carbide.C++ to od razu będą mogli już pisać kod i testować aplikacje, zakładając, że wszystkie działania zostaną podjęte przez środowisko programistyczne. Tutaj mogą się spodziewać problemów z pracą w Carbide.C++ ponieważ nie znają tego jak działa cały proces tworzenia aplikacji do Symbiana.

Warto jest poświęcić sporo czasu na zrozumienie tego.
Najpierw istotna jest kolejność instalacji. Instalujemy wszystko na jednym dysku w miarę możliwości. Ja wybrałem dysk E. W tej sytuacji przyda się bardzo duży dysk twardy. W praktyce zainstalowanie wszystkich SDK czy IDE używanych do programowania na komórkę zajmie w sumie kilkadziesiąt GB danych i trzeba poświecić na to sporo czasu. Oczywiście że zakładam że instalujemy to na Windows XP. Windows Vista wymaga dodatkowej pracy przy konfiguracji.

Najpierw trzeba zarejestrować się na Forum Nokii
Pobieramy wersje instalacyjne i instalujemy po kolei:

Carbide.C++ 2.0
zainstalowało mi się to na E:\Program Files\Nokia\Carbide.c++ v2.0
ActivePerl 5.6.1.638 - zainstalowałem to na E:\Perl
Paczki z S60 SDK
SDK S60 3.2 (razem z kompilatorem gcce dla ARM), SDK S60 5.0, SDK S60 for N97
Z tych paczek zainstalowały mi się w E:\Symbian, skrypty kompilacyjne na C:\Program Files\Common Files\Symbian, a kompilator na E:\Program Files\CSL Arm Toolchain
Potem polecam ściągnięcie Qt 4.5 for Windows (zawiera QtCreator), który zainstalował mi się w E:\qt\2009.02\ , oraz pobrałem Qt for S60 "Garden"

Ponieważ teraz już wszystko zainstalowane to trzeba sprawdzić czy działają polecenia z linii poleceń.

Robimy plik r.bat a w nim piszemy cmd i zapisujemy go w
E:\Symbian\9.3\S60_3rd_FP2\S60Ex\HelloWorld
uruchamiamy go: wpisujemy perl -v
powinno być informacja że mamy wersję

This is perl, v5.6.1 built for MSWin32-x86-multi-thread
Binary build 638 provided by ActiveState Corp.

Jeżeli nie pojawi się informacja to trzeba dodać do zmiennych środowiskowych PATH ścieżkę E:\Perl\bin\

Następnie wpisujemy polecenie: devices
Pojawi się się lista SDKów jakie mamy zainstalowane, istotna jest wiedza który z nich jest domyślny, bo to zależy który emulator i które SDK bierze udział w procesie tworzenia aplikacji. Brak rozeznania może spowodować tym że emulator nie zechce działać dobrze.

Gdyby okazało się że to polecenie nie działa (co jest mało prawdopodobne w sytuacji gdy dobrze zainstalowaliśmy SDKi) to oznacza że trzeba ponownie zainstalować albo dodać ścieżkę do zmiennej środowiskowej PATH C:\Program Files\Common Files\Symbian\Tools

Kompilatory GCCE dla ARM pod Symbianem są zainstalowane w E:\Program Files\CSL Arm Toolchain\bin tak więc trzeba sprawdzić czy ta ścieżka jest w zmiennej środowiskowej PATH.

Pozostało sprawdzenie czy zainstalowaliśmy Qt 4.5.1 to wpiszemy qmake -h wtedy pojawi się pomoc do polecenia qmake. Jeżeli to polecenie nie dało wyników to trzeba poszukać pliku E:\qt\2009.02\bin\qtenv.bat i uruchomić go. W sytuacji gdy uruchomienie tego pliku nie dało efektu dla qmake -h to należałoby ręcznie wprowadzić zmienne środowiskowe

QTDIR=E:\Qt\2009.02\qt
Zmienne które należy dopisać na początku
PATH=E:\Qt\2009.02\bin;E:\Qt\2009.02\mingw\bin;
i zmienną
QMAKESPEC=win32-g++

Następna rzecz to wypakowanie paczki z Qt 4.5 for S60 "Garden" w E:\Qt\4.5.0-garden
Dodajemy do zmiennej środowiskowej PATH kolejną ścieżkę na początku E:\Qt\4.5.0-garden\bin

Aby się upewnić że emulatory z SDK są poprawnie zainstalowane trzeba przed konfiguracją Qt for S60 sprawdzić. W tym celu warto sprawdzić to tam gdzie jest zainstalowane Carbide.C++ i uruchomić ten plik: E:\Program Files\Nokia\Carbide.c++ v2.0\configuration\run_env_update.bat

W folderze E:\qt\4.5.0-garden robimy plik c.bat z tekstem cmd oraz plik b.bat z tekstem configure -platform win32-mwc -xplatform symbian-abld
i zapisujemy a następnie uruchamiamy c.bat i wpisujemy b.bat i następuje konfiguracja środowiska Qt pod kątem kompilacji tego na Symbiana

Następnym krokiem jest wypakowanie plików Qt for S60 do odpowiedniego SDK Do 3.x S60 SDK zawartość z E:\qt\4.5.0-garden\qts60binaries\3.x\qtlibs-4.5.0-garden.exe wypakowujemy do E:\Symbian\9.2\S60_3rd_FP1_2\ Natomiast zawartość E:\qt\4.5.0-garden\qts60binaries\5.0\qtlibs-4.5.0-garden.exe wypakujemy w E:\S60\devices\S60_5th_Edition_SDK_v1.0\

Właściwie teraz już zainstalowaliśmy to co jest potrzebne w pracy. Zanim przejdziemy do konfiguracji Carbide.C++ trzeba sprawdzić jak będzie wyglądała kompilacja z linii poleceń.

Prawie każdy projekt Symbiana C++ składa się z odpowiedniej struktury podkatalogów:
group - tam są pliki odpowiedzialne za strukturę projektu bld.inf i *.mmp
inc - są tan pliki nagłówkowe dla projektu w C++
src - są tam kody źródłowe w C++
data - są tam pliki zasobów odpowiedzialne głównie podczas tworzenie wersji wielojęzycznych i jak też opisują budowę UI
gfx - przechowuje pliki graficzne
sis - zawiera pik *.pkg z którego można stworzyć pliki sisx (z podpisem)
Opcjonalnie mogą być podfoldery:
doc - zawiera dokumentację projektu
help - zawiera informacje potrzebne do wygenerowania pliku pomocy który będzie instalowany razem z aplikacją

W tej sytuacji warto zobaczyć to na przykładzie E:\Symbian\9.3\S60_3rd_FP2\S60Ex\HelloWorldBasic

Wchodzimy w E:\Symbian\9.3\S60_3rd_FP2\S60Ex\HelloWorldBasic\group
a tam trzeba zrobić plik wsadowy c.bat z poleceniem cmd i zapisać go
robimy następny plik b.bat z poleceniem bldmake bldfiles
a w końcu plik k.bat z poleceniem abld build gcce urel. Uruchamiamy plik c.bat potem wpisujemy b.bat i uruchamiamy. Pojawi się plik ABLD.BAT, następnie wpisujemy k.bat. Zaczyna się właściwa kompilacja. W efekcie skompilowane pliką są w E:\Symbian\9.3\S60_3rd_FP2\Epoc32\release\gcce\urel\HelloWorldBasic.exe
pliki zasobów są w
E:\Symbian\9.3\S60_3rd_FP2\Epoc32\data\z\resource\apps\HelloWorldBasic.rsc
natomiast plik z informacją o grafice jest w E:\Symbian\9.2\S60_3rd_FP1\Epoc32\Data\z\resource\apps\helloworldbasic_aif.mif

Man nadzieję, że kompilacja poszła gładko pomimo, że wyświetlało w oknie dużo komunikatów o ostrzeżeniach.

Kolejna rzecz to zrobienie sobie paczki instalacyjnej. W folderze sis przeważnie jest plik *.pkg, który zawiera informacje o tym co ma być w tej paczce.

W folderze sis jest helloworldbasic_gcce.pkg trzeba zrobić plik c.bat z poleceniem cmd a następnie drugi plik b.bat z poleceniem makesis helloworldbasic_gcce.pkg. uruchamiamy plik c.bat a następnie wpisujemy b.bat wykonujemy go. Zrobił się plik helloworldbasic_gcce.SIS.

Z tym plikiem trzeba jeszcze podpisać. Następnie trzeba sobie postarać się o certyfikat developerski albo samemu sobie go wygenerować

Jak się ma pliki certyfikatu self-sign lub certyfikatu developerskiego *.cer i *.key w tym folderze to można sobie zrobić plik p.bat z następującym poleceniem

signsis -s helloworldbasic_gcce.SIS helloworldbasic_gcce_pod.SISX 305978-306701.cer 305978-306701.key 12345

Po uruchomieniu pliku p.bat powinno pojawić się plik helloworldbasic_gcce_pod.SISX i ten plik można by sobie spokojnie zainstalować w komórce.

Na koniec "wyczyścimy" to co zrobiliśmy. W folderze E:\Symbian\9.3\S60_3rd_FP2\S60Ex\HelloWorldBasic\group zrobimy plik u.bat z poleceniem abld reallyclean gcce urel . a następnie wykonamy go.

Ten powyższy przykład dotyczył tego jak sprawdzić czy wszystkie podstawowe narzędzia do kompilacji działają. Z punktu widzenia programisty istotne jest sprawdzenie czy kod który napisał zadziała w emulatorze. W folderze E:\Symbian\9.3\S60_3rd_FP2\S60Ex\HelloWorldBasic\group zrobimy plik w.bat z poleceniem abld build winscw udeb
, a następnie wykonamy go. Skompilowaliśmy przykład dla kompilatora. Kolejną rzeczą jest uruchomienie emulatora. W tym folderze robimy plik e.bat z poleceniem epoc i wykonujemy go.
Zostanie uruchomiony emulator. W tym emulatorze wciskamy klawisz menu, a potem przewijamy do Instalations i wtedy to wybieramy ikonkę HelloWorldBasic

Jak już jestęsmy z tego zadowoleni to po zamknięciu emulatora możemy wyczyścić to poleceniem abld reallyclean winscw udeb i w ten sposób mamy porządek w emulatorze.


Warto też sprawdzić jak kompiluje się z linii poleceń projekty Qt for S60:
Wejdziemy w E:\qt\4.5.0-garden\examples\script\context2d i zrobimy w nim plik c.bat z poleceniem cmd i uruchamiamy go. Wpisujemy qmake. To polecenie wygeneruje nam wszystkie potrzebne pliki do kompilacji. Następnie wpisujemy make release-gcce i skompilujemy swój kod. Następnie trzeba zrobić paczkę do zainstalowania w komórce. Wpisujemy createpackage -i context2d_gcce_urel.pkg

Po zainstalowaniu odpowiedniej wersji biblioteki Qt for S60 na komórkę E:\qt\4.5.0-garden\qts60binaries można zainstalować skompilowaną paczkę context2d_gcce_urel.sisx
Na koniec warto sobie wyrobić nawyk sprzątania po kompilacjach i wpisujemy make distclean i wykonujemy to.

To wszystko powinno wystarczyć żeby upewnić się czy cały proces tworzenia aplikacji jest dobrze skonfigurowany i wtedy można przejść do konfiguracji Carbide.C++

środa, 10 czerwca 2009

Przyszłość Symbiana

Zakup wszystkich udziałów w firmie tworzącej system operacyjny Symbian przez Nokię, a potem przekształcenie firmę w fundację odpowiedzialną za rozwój tego systemu to tendencja bardzo korzystna. A także wzięcie kredytu od europejskiego banku na rozwój tego systemu. W sytuacji gdzie wszyscy rywalizują o to który system będzie coraz bardziej popularny zależy od programistów i zaawansowanych użytkowników. Media mają znaczenie, o tyle ile posiada się dobrze zorganizowany dział marketingowy, który odpowiada za promocję.

W tej sytuacji wobec konkurencji ze strony Google (Android) Apple(iPhone), Microsoft (Windows Mobile) Fundacja Symbiana musi prowadzić kampanię agresywną skierowaną dla developerów Symbiana. Problem w tym że Symbian nie ma zbyt wyraźnej marki, która by wyróżniała wobec konkurencji. Od tego powinni wyjść żeby programiści chętnie pisali o tym systemie na blogach, na forach dyskusyjnych, w serwisach społecznościowych. Wykorzystując potencjał informacji z Forum Nokia pozwoli to na lepszą komunikację pomiędzy programistami i ludźmi zainteresowanymi tymi technologiami. Głównym kanałami komunikacji tak naprawdę stały się blog Facebook i Twitter. Wprowadzenie nowej witryny internetowej fundacji wraz z nową witryną dla programistów (w wersji beta) sprawi że w przyszłości ciężar dyskusji będzie przesuwał się na stronach forum dla programistów Symbiana, bądź dojdzie do integracji z Forum Nokii (bardziej zależy to od rozwoju Wiki ze strony ochotników).

Jednak w odróżnieniu od konkurencji postanowiono dostarczyć mapę drogową rozwoju Symbiana. Jedną z tych cech jest zmiana nazewnictwa kolejnych wersji. Obecna aktualna wersja Symbian 9.4 po połączeniu z S60 edycji 5 otrzymuje nazwę Symbian^1 . Ma to pokazać iteracyjność powstawania kolejnych wersji Symbiana oraz przejrzystość tego czego mają się spodziewać programiści w ciągu następnych 3 lat.

Symbian^2 będzie miał możliwość obsługę widgetów prosto z poziomu interfejsu systemu (obecnie widgety są uruchamiane jako programy). Teoretycznie będzie możliwe uruchamianie tego systemu na dowolnym wyświetlaczu VGA. Producenci pokażą komórki z S60 edycji 5.1 na końcu tego roku, a klienci będą mogli kupować komórki w 2010 roku.

Symbian^3 będzie opierał się na koncepcji zwanej Screenplay która zakłada używanie OpenVG, sprzętowej akceleracji grafiki 2D, nagrywania video wysokiej jakości 720p HD, kontekstową wykorzystanie GPS, obsługę wielokanałowego dźwięku. W praktyce pierwsze tego komórki pojawią się w drugiej połowie 2010 roku, a rynek dopiero to przyjmie w 2011 roku. Interesujące byłoby uruchamianie Symbiana w laptopach z procesorem ARM w tym czasie. Przypuszczam że perspektywa tego co będzie w Symbianie^4 może skłonić do migracji z Linuksa na Symbiana.

Symbian^4 przypuszczam że będzie miał już zupełnie inna architekturę opartą na Qt4.6 wraz z rozszerzeniem zwanym "Orbit UI" który będzie pozwalał programistom tworzenia zaawansowanych aplikacji działających podobnie jak strony internetowe, czy aplikacje RIA. Dojdzie do tego zmiana wyglądu aplikacji który będzie bardziej opierał się na silniku 3D dla UI zwanym "DirectUI", a użytkownik będzie mógł przełączać się pomiędzy widokiem 3D a tym tradycyjnym.
Pierwsze rozwiązania zostaną pokazane pod koniec 2010 roku, natomiast na rynek wprowadzą pod koniec 2011, a ludzie zaczną używać w 2012 roku.

Przypuszczam że może dojść do dość dziwnej sytuacji w której kod napisany w Qt 4.6 może działać w poprzednich wersjach Symbiana ale trzeba będzie inaczej kompilować pod określone procesory (ARM czy Atom Intela, czy rozwiązania Nvidii / AMD dla OLPC). Gdyby inżynierom Symbiana udało się zrobić dystrybucje Symbiana praktycznie na każdy procesor, to przypuszczam że stałby się dość interesującą alternatywą dla Linuksa.

Tego czego najbardziej mogę dzisiaj spodziewać to duże zainteresowanie tym jaki będzie nowy interfejsu użytkownika w komórkach na bazie powstającej dzisiaj biblioteki Qt for S60. A pośrednio też tworzenie nowych aplikacji w C++ pod Qt. Jakbym spodziewał się większego zainteresowania tworzeniem aplikacji w Qt ze względu zmianę licencji i szukania innego rozwiązania niż platforma .NET czy Java.

niedziela, 7 czerwca 2009

Diagnostyka samochodowa

Od dłuższego czasu oprócz możliwości programowania w komórkach interesuję się też tym jakie możliwości programistyczne są w samochodach. Na razie jeszcze nie ma wersji Symbiana, która by zarządzała informacjami z układów w samochodach. Jedyne to co mogę zrobić to dokonywać diagnostykę w samochodach. Tutaj trzeba wiedzieć gdzie jest port OBD2, podłączyć kabel diagnostyczny i rozpocząć komunikację z układami kierowniczymi w samochodzie.

Najciekawszą rzeczą jest to że obok standardowego zestawu danych każdy producent samochodu może zawierać dodatkowe kody diagnostyczne i trzeba tylko wiedzieć jak można wysyłać dodatkowe polecenia. Na razie według mnie najlepszą bazą kodów diagnostycznych dysponuje program VAG-COM firmy Ross-Tech. Cała rzecz opiera się na tym żeby skorzystać z tego programu trzeba zakupić sprzęt czyli kabel diagnostyczny, który w wersji dla profesjonalistów kosztuje 899 dolarów. Tak naprawdę największą wartością jest baza 12000 kodów diagnostycznych. Pomimo, że w internecie jest już baza 7597 kodów. Ten program jest rozwijany już klika lat. Ale okazuje się, że coraz ważniejsze staje się na bieżąco dokonywanie auto diagnostyki samochodu w którym się jeździ. Z prostego powodu im więcej elektroniki i czujników tym większe prawdopodobieństwo awarii. Warto na bieżąco wiedzieć co się dzieje z elektroniką w samochodzie, a nie tylko w momencie awarii. Skoro istotne jest dokonywania diagnozy swojego samochodu to warto zaobserwować na rynku wysyp różnych urządzeń diagnostycznych skanerów OBD2 opartych na komunikacji z Bluetoothem gdzie odpowiednie oprogramowanie w komórce odbiera, komunikuje się z tym skanerem. Przykładem takiego urządzenia Elmscan 5 Wireless Bluetooth, jednakże kupowanie takich urządzeń ma sens jak mamy pewność, że te dane które otrzymamy wystarczą nam. Często jest tak, że wymieniamy części na nowsze i wtedy może okazać się że trzeba kupić nowy skaner z nową bazą kodów. W tej sytuacji można skonstruować własny skaner OBD2. Podzespoły do elektroniki są w miarę tanie. To co trzeba zrobić to zaprojektować układ który będzie pełnił tą rolę i oczywiście zaprogramować. Obecnie na rynku są dostępne mikroprocesory takie jak AVR czy 8058 dodatkowo wystarczy kupić układ Rayson BT, zrobić płytkę z wyjściem do komunikacji z portem OBD2. To co trzeba zaprogramować w AVR Studio kod który będzie kierował komunikacją z portem i jak z BT. Otóż komunikacja może obywać się na różnych protokołach. W diagnostyce samochodowej takimi protokołami są KWP-2000, KWP-6000 (CAN), KWP-7000(UDS). Znajomość budowy tych protokołów wystarczy do zaprogramowania mikroprocesora. Warto poczytać o tym z niemieckojęzycznej strony. Są też kody źródłowe do mikroprocesorów z których można by zanalizować pod kątem tego jak programuje się protokoły komunikacji Obdchip, Micronics czy Stern Technologies. Zrobienie takiego zestawu pozwoli na samodzielne badanie nowych kodów, z tego powodu że będzie można tworzyć własną bazę kodów diagnostycznych.

Jednak jest już dostępny układ scalony elm 327, który można sobie przystosować do zaprogramowania protokołów komunikacyjnych OBD2 na poziomie poleceń AT (w praktyce można poszukać sobie już gotowego rozwiązania z układem BT).

Od marca 2009 roku jest rozwijany opensourcowy projekt SymBtELM przez Owena Brotherwooda, Jest to skrypt napisany w Pythonie na Symbiana. Dzięki temu układowi elm 327 i modułowi BT można by nawiązać komunikację z komórką.

Podobny projekt rozwijają też Brazylijczycy tworząc aplikację do tego samego celu w Pythonie dla Symbiana i interfejs użytkownika w WebRuntime (WRT).

Byłem zainteresowany napisaniem takiego programu do komunikacji z komórkami, ale brak obeznania w programowaniu w elektronice i fakt, że do elektroniki trzeba mieć dobre wyczucie w precyzji. Trzeba wiedzieć jak zaprojektować płytkę, jak wygląda lutowanie, a potem używanie programatora, co to są fusebity. Do dobrego pomiaru danych w transmisji w celu sprawdzania działania komunikacji w danym protokole dobrze przydałby się oscyloskop. To wszystko jest interesujące, ale biorąc pod uwagę swoją niepełnosprawność to raczej zajmowanie się tym wszystkim w pojedynkę przekracza moje możliwości.