eQip Project Proposal
Version 0.32 (06/27/02)
Jean-Louis Villecroze | eQip Development Team |
This document contains a working version of the proposal for
the software architecture of a Mobile Information Appliance running QNX.
Feel free to contribute to it.
The goal of the project is to build on top of QNX RTP a software environement that
enable a mobile device to act as a Smart Personal
Digital Assistant.
- eQip architecture
- List of the agents
- Layers
- Special features
- Basic applications
- Extra applications
- Libraries
- Issues
- Requirement not (yet) allocated to a component
- Things to do
- Known bugs
- Road-map
- Team
- Documents
- Proposal for the issues
- Glossary
- Version History
This section definies all the conventions used in this document:
[!] | Note |
---|---|
[?] | Question |
XXX | To be filled |
TBC | To Be Completed |
Change in a version from its predecessor, are colored in RED, as follow :
blah blah blah ... foo bar 56 , blah blah
The architecture of the eQip is layered as follow :
Applications | ||
Agents | Layers | |
QNX |
The Applications running on the device are at the highest
level, they deal with the agents and in some case with the
operating system directly. The system shall use
the message passings ability of QNX for agents communications.
The purpose of the agents is to offer various critical services to the applications that may run on the device, and to performe low level tasks related to the good health of the device. An agent is alway running from the moment the device is booted.
7 software agents are planned to be running on the device :
- timed event agent
Start app X (or send msg with data to app Y) every Z secs
or when it is 5:35pm (everyday, only the saturday etc ...).- Special event(s)
- everyday at 3:00am, the device is awaken (LCD turned off, unnecessary
harware off) for housekeeping. This housekeeping includes :- Configuration of the next timed event
- agents housekeeping
- system reboot if necessary
At the end of this housekeeping activity, the device
shall go back in sleep mode. - every morning at a specified time by the user, the device
-if connected to internet- download severals HTML documents
for offline reading.
- everyday at 3:00am, the device is awaken (LCD turned off, unnecessary
- When the device is going to sleep, the agent programs the
next(s) timed event in the CPU.
- Special event(s)
- eQip monitor
Keep track / monitor all the applications running on the
eQip (make easier for an app to find another app). Provides
stats on each app (CPU/mem/thread) and allow to specify
rules on when to kill an application that use too much
memory/battery (alert the user that he is running out of
ram/flash).- Put the device to sleep if no user input and no activity
after a given delay. - Turn off backlight after a given delay or on app request.
- When the battery is as low as 10%, start app X with command
with sitch "-op 4523" or send message Y to application T. - Dont allow the eQip to be used when the battery level is
bellow a given value and not plugged in the AC. Using a
button combination, the user can force the device to run
anyway (at his/her own risk). - Monitor the battery usage for a given application and keep
track of it (/time). This stats will be later used to know
how long the battery will last with the current consumption
by the running apps. - The user should have the possibility to switch his ipaq into
a battery conservation mode where the user applications are
run with a lower priority (less time allocated to them). This
mode shall be turned off whenever the device is plugged to the
AC. - Automaticaly adapt the brightness of the LCD according to the
time of the day and to the user settings. - Start a given application on request from another application
- Register a message/data to be sent to an application the
next time the application is running. - When an application is about to be launched, the agent check
if there is "theorically" enought ressource (memory/battery)
to run it. If not, the agent shall terminate some of the
running applications (according to rules) to free resources.
- Put the device to sleep if no user input and no activity
- in/out agent
Handle sending/reception of data stream from any input/output
device possible (net,IR,serial) trought a in/out folders and
routing of the data to the associated application (if requested).The agent handle also the application request of input/output
in realtime when the device can use a communication media (when
connected).[!] Must support 3rd party in/out add-on
- user input agent
- Retreive user "grafitti style" input and send it to the current
application/widget. Make use of reconition plug-in installed by the user. - Retreive hardware keyboard (if any) input and send it to the current
application/widget. - Retreive voice input (speech-to-text) and send control/input to the
current application or to another application/agent. - The input must be datafield-aware (ex. if the field is a date, the
input must be in date type).
[!] Must support 3rd party input add-on
- Retreive user "grafitti style" input and send it to the current
- database agent
Handle storing/retreival of data stored in soups (database) that
are eQip-wise known.- Provides an easy way to store/retreive/search for data associated
to keys. - Simplify back-up and sync of the eQip data by having all critical
data known and accounted for. - Simplify access of data from an application by other applications.
- Used by an application to store/retrieve its state when terminating/
starting.
Soups can be located on onboard flash, CF (& SD) or on another eQip
or on a workstation (using a serial/net link).[!] The agent must conserve writing cycle to the flash FS to increase
the flash lifespan. - Provides an easy way to store/retreive/search for data associated
- Ruby agent
Handle the execution of any Ruby code requested by any applications
using Ruby.This agent allow to:
- Have a faster reponse time to the user Ruby action
- Avoid multiple loading of the same Ruby libraries and functions
when severals application run at the same time - Provides an easy medium for applications communications and data
sharing
- Watchdog agent
The purpose of this agent is to sustain a high level of availability
of the system when one (or more) of the agents failed by
monitoring the status of the agents. The agent shall kill and restart any
failing agent and/or restart agent that have crashed.
A layer is a shared library that like an agent provides services to the
applications that use it.
Here is a description of the layers available on the device:
- Data Translators
To open/load data from differrent supports that have internally
the same representation, an application shall use a data
translator (also valid fo writing data).An example of translator is an image translator, that read
a JPG file and output a PhImage_t. Then the application can
using the same translator to write this PhImage_t in a gif
file.The layer offer to an application a commun interface to all
the data translator installed on the device.Add-Ons are added to the corresponding Translators to handle
new data format.An Add-On handle a specified set of format. Each format is
indicated by :- A name (e.g : JPG translator)
- A mime-type (e.g : image/jpeg)
- A file extension (e.g : jpg)
Each translation can be configurated before beeing use (if
requiered and supported by the Add-On)The standard translators are :
- Image Translators
- Sound Translators
- Localization
To support various language, an application linked to this
layer, can acceed the language data files stored in the /lang
folder of its installation and retreive the correct string
for a given string with the currently used localization. - Communication
Any application should be able to use this layer to read/send
data on any communication support present on the device, using
the simple common interface provided by this layer. The layer
should allow the application to select the medium and the type
of protocol (possible for the selected medium).For example, any application should be able to create and send
an email (or read/download one). - Text-to-Speech
Any application should be able to use this layer to output data
to the user trought a text-to-speech engine.
This section list and discuss various features that will be implemented in the
project:
- Relation device / host
When the device is connected to an host workstation, three
modes can be selected by the user :- Slave
In this mode, the device is seen as an external disk by
the host computer. User can act on the device FS as they
will do on any FS (with respect of the files rights and
to the autorisation given by the owner to the host
computer).Applications on the device can be started and will be
displayed on the host screen. Where the keyboard and mouse
will be used. - Master
In this mode, the device act as the owner of the screen,
keyboard and mouse of the host computer. The screen become
a copy of the device screen (with far more real-estate).
Applications started on the device are displayed in the
host screen.The host computer is seen as an external disk by the device.
User can act on the host FS as they will do on any FS (
with respect of the files rights).eQip applications installed on the host computer are added
in the Launcher in a "Host" folder.When the device is disconnected from the host, the host
resume is "normal" screen contents and behavior. - Relay
In this mode, the host computer act as an INTERNET access
point, providing an ethernet link over the connection. The
host computer is seen as computer on the network and can be
contacted and used with standard ethernet applications.
- Slave
- Relation device / device
It shall be possible for 2 or more devices, to establish
a band of devices trought any communication medium.Once a device have join such group, it can share is FS
(all or part of it) and its application, with the others
members.Applications
installed on a device but missing from the other, and
added in the Launcher in a "Remote" folder.
Devices user can run these applications, displayed on
the users device (using users device input).
According to application launch setting, the application will
be run on the owners device or on the remote device.In order to be "shared" and application should have been marked
by the owner of the device as shareable. By default, a "shared"
application is always set as execute on the users device. - User modes
The user shall have the possibility to define mode of use for
his device and to select (manualy or automaticaly according
to the time) which mode the device should run on. A mode of
use is a list of application/settings that must be set/run
whiles a specific mode is activated.For example :
- At 8am, the device switch to the "work" mode, in which the
backdrop is the Diary, and the Notes application is running
by default. The device is also set into the non-conservation
battery mode. The Diary application show a compact version
of the owner activites planned for the day. - At the supposed starting time of a meeting, a new meeting type
note is automaticaly created (linked to the meeting event),
ready for user input. - At 6pm (or on user action), the device switch to "commute"
mode, the Diary and Notes applications are stopped, the
launcher is set back as the backdrop, and the "Games" folder
is automaticaly selected. The device is also set into the
battery conservation mode. - At 8pm, the user select the "relax" mode, the MP3 player is
automaticaly run and start playing the favorites song of the
owner. As the device is on it cradle, the device come out of
the battery conservation mode.
- At 8am, the device switch to the "work" mode, in which the
- System sounds
The device shall play various non-intrusive sounds during its
operation by the user.Basic sounds events are :
- pen tap
- slip opening
- system alert
- low battery
- application crash
All system sounds must respect the current audio volume (set by
the user) and shall not be played when the audio output is muted.The user shall be able to change the system sounds to match is
preferences. - Going to sleep
When the user press the power button or by a programmated action,
the device shall go into sleep mode. The following action must
be performed in order before the CPU is put into "active" sleep
mode :- Turn OFF the LCD
- Send a message to all running applications that the device
is going to sleep - Wait for ACK from the application before continuing (with
a timeout) - Turn OFF unnecessary hardware
- Suspend all running application but some of the agents
- Send a message to some of the agent/driver for special processing
of the "going to sleep" event - Wait for the agents ACK (without a timeout)
- Put the CPU in sleep mode (and performe any OS related
stuff)
The device must support the "storage mode" in which the contents
of its memory is stored on a CF/SD card. The battery is in this
case switched OFF. When the battery is switched ON, the device awake
like if it have been "asleep" (altought the date/time will be
adjusted by the user).[!] must not last more than one second
- Waking-up (from sleep)
When the user press the "power" button or if an alarm is raised
in the CPU, the device shall come off sleep. The following
action must be performed after the CPU come out from sleep mode:- The OS shall performe any related operation
- Some of the agents must be resumed
- A message shall be sent to some of the agents/drivers for special
processing of the "waking-up" event - Wait for the agent ACK (width a timeout)
- Turn ON hardware (if necessary)
- Resume all running applications and others agents (if necessary)
- Send a message to all running applications that the device has
just awaken - Turn on the LCD (if necessary)
[!] must not last more than one second
- Annotated FS
Every files stored (and exchanged with an host computer) shall
support a set of annotations, some of them definied by the system
some added by the user. This is also valid for "directory".An annotation is a definied by a : key, type, value and are stored
and retreived from the files annotations using the key (a string)
to look-up the correct annotation.For every file (that really need it), the following annotations
will ALWAYS be presents:- Mime type
- Preferred Application (if any)
- Sharing rights
- CRC
- owner (system,user)
- Date of last sync
- Safe
A "safe" is a special folder of the device, where the user can
store sensitive documents/soups/files. On user request (or if
the device go to sleep after a given time of non-use), the "safe"
is closed (archived and crypted). To re-open the "safe" and
access to the file store in it, the user shall specify the
correct password. - Fleet of device
Within a same entity (e.g: compagny), all the devices owned
by it can be grouped in a fleet (an entity can own severals fleets).According to the entity policies, handling a fleet of device allow :
- Lock the device to use only on persona, and forbbid creation of
new personae - Forbide the installation by the user of new packages (or of given categories
of applications) - Restrict access to the settings
- Restrict access to applications according to the time.
- Provide a way to sychronize all the devices of a fleet with the same
data/applications, when the device is connected to the entity network (or to an host computer). - Offer services to simply retreive given data from the users device when connected.
- From his workstation, the fleet administrator shall be able to:
- Clone a new device to the entity standard and personalize it for its user
- Monitor the device status (presence,sync,statistics...)
- Perform remote maintenance and troubleshooting
- Manage standard contents (installed application) of the fleets device
- Reinstall a recent back-up on a new device when the original has been
destroyed/lost - Enter in the fleet database, the data (contact,notes,events) that must
be added to the device data at the next sync.
- Lock the device to use only on persona, and forbbid creation of
- Embedded Programming Language
The user shall have the possibility to program directly on his/her device
using a special paper-roll of the Notepad (Edit, Run, Debug):- Create simple application
- Create simple GUI
- Create Note, Contact or Diarys event
- Handle Soups
- Access to the communication medium
The programming language used will be Ruby, and its integration to
the device system shall be complete.Any application that wish it, shall be able to integrate Ruby code,
modifiable by the user, to extend or customize the application.
It shall be possible for instance to set a Ruby function as callback for
a GUI event.
It shall be also possible for an application to embed Ruby code
in a document or in the file annotations.
All applications must respect the following requirements :
- Receive and process a GOING_TO_SLEEP message, sent by the
system when the device is going to sleep. The application
must send an acknowledgment within XXms. - Receive and process a WAKING_UP message, sent by the system
when the device is waking-up. The application must send an
acknowledgment within XXms. - Receive and process a TERMINATE_NOW message, sent by the
system when the application must terminate. The application
must send an acknowledgment withing XXms, or it will be
slay. - The application must provide a menu to be displayed and
interacted with, when the user tap the title of the
application. - Must use the storage agent to store settings/state/
data (unless the data cant be fitted in the soup, eg.
an application creating a MP3 file or an image or a
specific file to be shared with 3rd party desktop
application).
The following list, describe the functionalities of the applications that will
be shipped with the eQip system :
- Top/Bottom bar
Always visible (or partly hidded) thoses two bar have for purpose to
display critical informations to the owner and to give quick access to common
features of the device.- Bottom bar
- The bar shall allow an application to install
some action/display whiles running (ex. MP3 player). - The bar shall accept special application that are
only running only inside the bar (ex. when online, the
temperature of a city is displayed after beeing
requested from the net by a given "bottom" bar add-on). - Plugins shall raise the functionnality of the bar, the user having
the complete choice of what to display
(altought some plugins will be recommended). Here is :- Battery status
Must show the estimated time of use left
before the battery run off if the current
load is maintained. - Time/Date
- Volume level (can be changed)
- Screen bightness
- Memory available (RAM/FLASH)
- CPU activity
- Ticker (stock market style)
- Turn backlight on/off
- List/Switch running application {PLUGIN by JLV}
- Pen input area for launching actions
- Disable any futur alarms (to be used during event
where the device shall go stealth whatever alarm is
going to be raised) - List of applications installed on the device. Grouped by folder.
- Battery status
- The bar shall provide to the user a simple way of displaying at
any moment emergency informations, such as :- Police phone number
- Firefighter phone number
- Family doctor
according to his/her current location.
- The bar shall allow an application to install
- Top bar
- Display application title (tap on it, display an application provided
menu - rotate screen
- hide top/bottom bar
- close current application
- cycle trought the running application
- Get help (on the running application)
- Display application title (tap on it, display an application provided
- Bottom bar
- Launcher
- Must keep/display on demand a list of the most used app.
- Must handle the fact that application can be stored
on SD/PcCard/CF, inserted/removed by the user as will. - Allow to select application to be shown by their
location : Internal or CF (or SD). - Allow the user to create new (or rename) categories
and to move application in other categories that the
one specified by the author. On of the default folder
is "Favorites" in which the user can fill (link) his
favorites (most used) applications. - Allow the user to fill an application in severals
folders at the same time (link). - Display infos on an application
- Location (store)
- Size (exe/libs/data...)
- Author/version/release date/installation date
- Battery/memory usage stats
- Frequency of use (once a day, every hours ...)
- Allow to freeze/thawn an application (compress) to
reduice wasted space (for application not use very
often). - Shall allow to user to select a "Detailed List" style
for the Launcher, where application are listed as files
with their informations. - The user must have the possibility to replace the
Launcher by another application as "backdrop". If this
is the case, the "top" bar shall give the possibility
to start the launcher as a standard application. The
user shall be eable to re-set the launcher as the
backdrop application. - Provides a way to reboot the device.
- The user shall have the possibility to have his full
name displayed in the launcher window. A tap on it, shall
display his/her business card.
- Settings
- Position of the vertical scrollbar (left or right)
- Default Volume level
- Systems Sounds
- Date/time (and timezone)
- Current Location (various location may be added by the user (see contact application))
- Language (localization)
- Owner infos (create new personae, select the current persona)
- Settings for the basic apps (notepad,Diary,contacts,launcher,explorer)
- Colors used on the device for the GUI (themes ?)
- Idle delay before auto-sleep (when plugged to AC/when not)
- Idle delay before turning the backlight off (when plugged to AC/when not)
- Network settings for each location (LAN/ADSL/PPP/WIFI)
- Basic applications settings
- Welcome
Automaticaly started the first time the user boot his/her eQip,
the application allow the user to discover (get familiar)
with the eQip GUI and allow him to enter the basic settings:- Calibrate the screen/pen
- Owner infos (default persona)
- Date/time/location
- etc...
- Notepad
-
Must provides services for other applications to creates
notes (even when the note application is not running) and
"fill" them or list existing notes (and extract
data from it). - Must allow the user to send a note to another device.
-
Display list of notes sorted by folders (where they
are filled). -
Allow the user to create new note (from the paper-roll installed), modify existing note and
fill then in one (or several) folder (all three applications : Notepad,Contact and Diary share
the same folders). -
All notes have the following attributes :
- creation date
- update date
- title
- protection (read/write)
- type (paper-roll type)
- list of folder in which the note is filled
- list of contact links
- list of Diary links
- list of files links
- list of note links (note can be linked to other notes)
-
List of default paper-roll type :
- Paper note (standard text note)
- Blank paper (basic hand-free drawing)
- Named note (specificaly linked to a contact)
- Graph paper (precise drawing)
- To do check-list (various style possible, with time tracking and priority)
- Shopping check-list
- Two column (allow simple math operation)
- Drawing canvas (complex hand-free drawing)
- Meeting note
- Phone conversation form
- Personal Diary
- Daily activities (with time tracking)
- Direction (to given location)
- Music partition
- Audio recording
- Ruby listing
- Must support XML/HTML export of the notes.
- Accept 3rd-party paper-roll (using add-on).
-
Must provides services for other applications to creates
- Diary
-
Must provides services for other applications to creates
events (even when the Diary application is not running)
and "fill" them or list existing events (and extract
data from it). - Must allow the user to send an event to another device.
- Must support XML/HTML export of the Diary events
- Accept 3rd-party event (using add-on)
-
Display a calendar and allow to manipulate events. The
possible display mode are:- show day (0am-12pm(according to user settings)/list of events)
- show week
- show month
- show year
- show todo (all)
- show today events/todo
Events are filled in folder, and filter can be applied to the display
mode to show only relevent events. - Allow to delete all events older than a given date. When deleting a recurrent event, the user shall be asked if only the current occurence shall be removed of all further occurences.
- An event is :
- Meeting
The default data of such event are :
- date/time (and periodicity)
- starting/ending time
- notification (show a warning X days/hours/minutes before event)
- subject
- category (work/fun ...)
- list of folders where the event is filled in
- list of actions to performe
- participants (link to contact cards)
- location (possible link to a contact card)
- comments
- Link to related notes / files
- User specific fields ...
Exemple : "Project review" meeting at 4:00pm (duration 1 hour)
- Appointement
The default data of such event are :
- date/time (and periodicity)
- starting/ending time
- notification (show a warning X days/hours/minutes before event)
- subject
- category (work/fun ...)
- list of folders where the event is filled in
- list of actions to performe
- contact (link to contact card)
- location (possible link to a contact card)
- comments
- Link to related notes / files
- User specific fields ...
Example : Doctor McCoy at 6pm
- Activity
The default data of such event are :
- date/time (and periodicity)
- starting/ending time
- notification (show a warning X days/hours/minutes before event)
- subject
- category (work/fun ...)
- list of folders where the event is filled in
- list of actions to performe
- contact (possible link to contact card)
- location (possible link to a contact card)
- comments
- Link to related notes / files
- User specific fields ...
Example : Going for a run at 3pm
- To do
The default data of such event are :
- status (done/in progress/not done)
- subject
- list of folders where the event is filled in
- date/time due (and periodicity)
- notification (show an warning X days/hours/minutes before the event)
- contact (link to contact card)
- comments
- Link to related notes / files
- User specific fields ...
Example : Confirm meeting with John Do
- Reminder
The default data of such event are :
- date (and periodicity)
- notice (show an warning X days before the event)
- subject
- comments
- list of folders where the event is filled in
- Link to related notes / files / contact
- User specific fields ...
Example : Bob b-day !
- Action
The default data of such event are :
- date/time (and periodicity)
- subject
- list of folders where the event is filled in
- type (execute,send data)
- action data
- comments
- Link to related notes / files
Example : Every morning at 5am, get online and grab my favorites web pages contacts
- Period
The default data of such event are :
- start date/time, end date/time
- subject
- list of the events categories that shall be disabled during the period
- list of folders where the event is filled in
- comments
- Link to related notes / files
Example : During my vacations, disable any work related events (like periodic meeting).
- Meeting
- Events actions
For most of the events, a list of actions can be specified by the user. On the occurence
of the event, the actions will be performed. The actions can be :- Start a given application
- Show the note application ...
- and create a new note (of a given type)
- and display a given note
- and list a given folder
- Events periodicity
When specifying the periodicity of an event, the user shall have the
following choices:- every day
- every other day
- every X days
- every week
- every other week
- every X weeks
- every month
- every other month
- every X months
- same week each month
- every year
- every other year
- every X years
- same week each year
- Events notification
When an event is scheduled to start, the device shall show a notification slip that
inform the owner that the given event is about to start. According to the user settings
for the event, the notification can happen before the event it-self. When the slip is
shown, the user can snooze or discard the notification. When snoozed, the slip (and the
notification sounds) will be reshow to the user at a later time (specified when snoozed).
-
Must provides services for other applications to creates
- Contacts
-
Must provides services for other applications to creates
contacts (even when the contacts application is not running)
and "fill" them or list existing contacts (and extract
data from it). - Must allow the user to send an entry to another device.
-
Contacts are filled in folders according to the users need
(Office,Friend). A contact can be filled in several folders. -
Allow the user to create view profile, by selecting the field
to show in a given profile. The user shall switch of profile easily. - Let the user add his/her own fields to a contact
- Must support XML/HTML and vCard export/import of the contacts
-
Default Contact data
There is three kind of contact entry :
- Human Beeing
- title
- Name
- Firstname
- Nickname
- keywords (list of like/dislike words...)
- special day (list of special event (date/subject) (Diary events can be generated according))
- List of related people with their relation (ex: assistant , Ms Doe)
- Photo(s) (if available)
- Location (home/work, link )
- compagny (link or not to another contact card)
- position
- phone (home/work/cell)
- fax (home/work)
- web site
- comments
- notes (link to notes related to this contact)
- Diary (link to events related to this contact)
- files (link to related files/folders to this contact)
- users definied fields ...
- Entity
- name
- Logo (if available)
- keywords (list of field/activity words...)
- contacts (list of contact in the compagny, possible link to other contact card)
- Location (link)
- phone (home/work/cell)
- fax (home/work)
- web site
- comments
- notes (link to notes related to this contact)
- Diary (link to events related to this contact)
- files (link to related files/folders to this contact)
- users definied fields ...
- Location
- nick name (if any. ex: home , work ...)
- adress
- how to get there
- comments
- contacts (link to contact related to this location)
- notes (link to notes related to this location)
- Diary (link to events related to this location)
- files (link to related files/folders to this contact)
- users definied fields
- Human Beeing
- Contacts are shown (filtered by kind) :
- Sorted according to any of the card fields
- Grouped (and sorted) according to their folders and/or location
-
Must provides services for other applications to creates
- Help/Assistant
- Find file/application/data/contacts/notes/events
- How to
- Applications helps
- In/Out Folder
- Show the data received (and not yet processed by the
default application) or to be sent by/from the device. - Once a data is sent off, or processed by the related
application, the item is removed from the folder. - Must support various medium of input/output such as :
- ethernet
- IRL
- serial
- Show the data received (and not yet processed by the
- File browser
- Display folder contents in various way (icon,detail...)
- Display a specific icon according to the file mime type
- Shall allow the user to add new mime-type and specify the
icon for it. - Shall allow the user to copy/move/delete users files and
directory on the internal memory or on CF (SD) card. - Allow to set the prefered application for a given
mime-type (overide the existing one if needed) or/and
for a specific file - A tap on a file, start the preferred application for
this file by providing the files pathname to the
application - Shall hide the system files such as the soup database
by default. - Keep a list of favorites folder as well as a list of
the last visitated folder - Support Add-Ons to add files processing (ex. compress, crypt)
- Calculator
- Must include a "scientific" mode
- Must include a "ploting" mode
- Must be programmable in Ruby (user adding new functions)
- Package installer
Allow to install package in the :
- internal store
- external store(s)
from remote location or from a localy stored package file.
- Backup/sync app
- Sync with an host computer is done with the SyncML protocol
- Use any kind of host-eQip connection (NET/USB/Serial/IR)
- Must support back-up of the internal memory on removable
device such as CF or SD - Sync with another device shall be possible. In this case, the
user shall have to select what to synchronize.
- Web browser
- Must cach data in RAM to avoid CF writing.
- Offline web contents reader
This application, coupled with the Web Browser shall allow the user
to specify the web site to download for offline reading. The download
of the data could be done by the device it-self or by an host computer
with a later transfert of the data. - MP3 player
- Must allow the user to turn off the screen when playing
- Fine sound level tuning
- Shall allow the user to create new TAG on a mp3 file
- Must support a list of mp3 location : inte