Title: Need for a Digital Interface
1 Clement Lau HAVi Organization Sony
Electronics clement_at_arch.sel.sony.com
2- Event Manager
- a mechanism to signal a change of state of a
software element or the network in general - change is represented by an event
- work as subscription and notification model
- an event is either posted only to local host or
globally to all IAV/FAV in the network - fully transparent, no need to know the physical
location of event poster or subscriber - easy API for posting / receiving events anywhere
in network
3 Event Manager
- three types of events
- system event
- vendor specific event
- application specific event
- system events are defined by the HAVi
organization and can only be posted by trusted
software elements - private events can be defined either by vendor or
by application
4 Event Manager Model (subscriber)
- a software element decides the list of events it
wants to keep track of (the listen-to event
list) - subscribes to the listen-to event list by
sending a registration request to the local Event
Manager - the registration request contains opcode of the
function that the software element uses to
process event notification - when any of the subscribed event is posted
(anywhere in the network), the local Event
Manager sends an event notification message to
the software element
5 Event Manager Model (subscriber)
- an event notification message contains the posted
event, the posters SEID, and is delivered to the
receiving software elements message callback
function - the software element deciphers the event
notification message, extracts the event handling
function opcode, and invokes the function to
perform actual processing of the event delivered
6 Event Manager Model (subscriber)
- subscription service API
- EventManagerRegister
- EventManagerUnregister
- EventManagerReplace
- EventManagerAddEvent
- EventManagerRemoveEvent
7 Event Manager Model (poster)
- software element wishing to post an event (event
poster) first construct the event to be posted - a request is sent to the local Event Manager to
either post the event locally or globally to all
remote Event Manager in the network - each Event Manager finds the list of local
software elements interested in the event - for each interested software element, the Event
Manager constructs an event notification message
and sends it to the software element
8 Event Manager Model (poster)
- if the event is to be posted globally, coordinate
with all remote Event Managers to deliver the
event to the remote nodes - posting of a global event is totally transparent
to the poster in the sense that - it is not aware of the physical location of the
notified software elements - semantically, it can safely assume that all
software elements interested in the event
regardless where they physically reside will get
the notification
9 Event Manager Model (poster)
- HAVi defines the protocol for a local Event
Manager to coordinate with remote Event Managers
to deliver an event globally to all interested
software element in the network - event posting service API
- EventManagerPostEvent
- EventManagerForwardEvent (inter Event Manager
only)
10 - DCM Manager
- component responsible for installing and
uninstalling DCM code units that act as agents
for applications to access functionality/service
provided by BAV/LAV (known as guest) - DCM code units for FAV/IAV (if present) are self
managed - mandatory on FAV, optional on IAV (the FAV/IAV is
known as host) - automatic installation of a DCM code unit when a
guest is connected, uninstallation of the guests
DCM code unit when it is disconnected from the
network
11 DCM Manager
- LAV is either 1394 (but not HAVi compliant)
device or non 1394 device - non 1394 device
- e.g., VCR with NTSC analog signal and hard front
panel controls - 1394 device (non HAVi compliant)
- e.g., DV camcorder
12 DCM Manager
control command
like proprietary protocol such as SLink
LAV device
like analog AV stream
13 DCM Manager
control command
SDD DCM DDI
IEC 61883 FCP
BAV device
IEC 61883 CMP
14 DCM Manager
Potential DCM hosts
SDD DCM FCM
Global DCM Manager decides on DCM host
15 DCM Manager
- HAVi defines a default scheme to select a host
whenever a new guest is found in the network,
which will then install the DCM code unit for the
guest - a set of user modifiable preferences can be used
to guide the selection of host and the DCM code
unit of a guest - four preferences
- PREFER_VENDOR_HOST
- PREFERRED_HOST
- PREFERRED_URL
- PREFERRED_URL_DEVICE
16 DCM Manager
- a leader selection protocol is executed whenever
there is a change of number of DCM Managers in
network - one of the DCM Managers is selected as the
leader, the rest are called followers - the leader inquires the followers for the state
of DCM code units installed for all BAV/LAV found
in network - if any BAV/LAV does not have an installed DCM
code unit, the leader coordinates with followers
to select the most suitable host to install the
DCM code unit - host selection is either done by the default
protocol or guided by preferences
17 DCM Manager
- highlights of default host selection protocol
- if the guest is a BAV, an eligible FAV capable of
uploading its Java DCM code unit is selected - if the guest is a LAV or there isnt any node
capable of uploading a BAV Java DCM code unit,
any FAV/IAV capable of installing a proprietary
embedded DCM code unit for the guest is selected - all conditions being equal, a host with the
lowest number of installed DCM code unit is
selected - for BAV, the URL stored in its SDD takes
precedence over its built-in DCM code unit
18 DCM Manager
- highlights of preference guided host selection
(note if any step succeeds, the remaining steps
are skipped) - if PREFERRED_HOST is specified and the host is a
valid node in network, it is selected - if PREFERRED_VENDOR_HOST is TRUE, a host of the
same vendor as the guest that is capable of
hosting its DCM code unit is selected - any FAV capable of hosting the guest DCM code
unit is selected - any IAV capable of hosting the guest DCM code
unit is selected
19 DCM Manager
- highlights of preference guided DCM code unit
selection (note if any step succeeds, the
remaining steps are skipped) - if PREFERRED_URL is specified and the selected
host is a FAV, the Java DCM code unit stored in
the specified URL is installed - for a BAV guest and if the selected host is a
FAV, the Java DCM code unit stored in the
location specified by the URL in its SDD is
installed - for a BAV guest and if the selected host is a
FAV, the built-in Java DCM code unit stored in
its SDD is installed - a proprietary embedded DCM code unit is installed
by the selected host
20 DCM Manager
- the event DcmInstallIndication is posted at the
end of the process indicating the status of the
DCM code unit installation attempt - an application should subscribe to this event if
it wants to know the result of a guest DCM code
unit installation
21 DCM Manager
- when a guest disappears from the network, each
DCM Manager gets a Network Reset event
notification - check if the node currently hosts the guest DCM
code unit and automatically uninstall the code
unit if it does - there is no need to involve the leader in this
process, each DCM Manager performs this task
autonomously - the event DcmUninstallIndication is posted at the
end of the process indicating the status of the
DCM code unit uninstallation attempt - an application should subscribe to this event if
it wants to know the result of the guest code
unit uninstallation
22 DCM Manager
- DCM Manager service API
- DcmManagerSetPreference
- DcmManagerGetPreference
- DcmManagerInstallDCM
- DcmManagerUninstallDCM
23 Self Describing Device data (SDD)
- data in a HAVi compliant device configuration ROM
containing - descriptive information about the device (e.g.
device class) - device capabilities (e.g. support level 2 GUI)
- DCM code unit
- data to construct DDI user interface graphical
elements - proprietary vendor specific data
- configuration ROM based on IEEE 1212r
specification - DCM Manager reads SDD to determine if it is
capable of hosting a DCM code unit (Java or
embedded) of the device
24 Self Describing Device data (SDD)
- HAVi Unit Directory in the configuration ROM
contains actual SDD data - mandatory fields in HAVi Unit Directory
- Specifier_ID (0x00A02D assigned to 1394 TA by
IEEE) - Version (0x010008 assigned by HAVi)
- HAVi Message Version (0x000100 assigned by HAVi)
- HAVi_Device_Profile (24 bit immediate value)
- HAVi_User_Preferred_Name (24 bit leaf offset)
- HAVi_DCM (24 bit leaf offset)
- HAVi_DCM_Profile (24 bit leaf offset)
- HAVi_DCM_Reference (24 bit leaf offset)
- HAVi_Device_Icon_Bitmap (24 bit leaf offset)
25 Self Describing Device data (SDD)
- each leaf offset is the pointer to a 1212 leaf
structure containing actual data for that field - for example, the HAVi_DCM_Profile field contains
the offset to a leaf structure which in turn
contains information about the DCM code unit such
as its total size in bytes, required memory size
of code segment, required memory size of data
segment etc - non HAVi device do not have SDD and proprietary
mechanism can be used by vendors to determine
what these devices are (e.g. use AVC protocols)