Patent Publication Number: US-6664892-B2

Title: Device inventory by sound

Description:
FIELD OF THE INVENTION 
     The present invention relates to effecting an inventory of local devices by sound. 
     BACKGROUND OF THE INVENTION 
     When a person first enters an unfamiliar work space, it is useful for that person to know what devices are present in the space and often the person will spend the first few minutes looking around, effectively carrying out an inventory of the devices present. 
     It is an object of the present invention to provide a user-friendly way of ascertaining what devices are present locally. 
     As will become clear below, certain embodiments of the present invention use a collision-detection and back-off protocol. Such protocols are themselves well known in the networking art; thus the access control protocol used by Ethernet and IEEE 802.3 networks is one such protocol, it being normally termed a CSMA/CD (“Carrier Sense Multiple Access/Collision Detection”) protocol. In such a network protocol, a device wishing to transmit on the network first listens to see if any other device is transmitting (this is the “carrier sense”)—if no other device is currently transmitting, the device commences to transmit. However, since two devices may do this at substantially the same time, a transmitting device listens out for collisions of its transmissions with those of another device. Where such a collision is detected, the device stops transmission and backs off (that is, does not consider re-transmitting) for a randomly chosen time period. In Ethernet networks, this time period is chosen according to a binary exponential backoff policy. 
     SUMMARY OF THE INVENTION 
     According to one aspect of the present invention, there is provided a method of effecting an inventory of local devices, involving: 
     (a) issuing a prompt to the devices; 
     (b) at each device, responding to the prompt by announcing the presence of the device by sound; 
     (c) the devices interacting to order their announcements so that each device announcement is, at least in due course, made uninterrupted by announcements from other devices. 
     Step (c) will typically involve the devices using a collision-detection and back-off protocol in respect of emissions from each other. These emissions are preferably the sound announcements themselves though other device emissions can alternatively be used for running the protocol. 
     According to another aspect of the present invention, there is provided a device provided with an announcement arrangement comprising 
     prompt detection means for detecting a broadcast prompt; 
     audio output means for announcing the presence of the device by sound; and 
     announcement control means for interacting with nearby devices having similar announcement arrangements such that, at least in due course, each device makes its announcement, through its audio output means, uninterrupted by announcements from other of the said devices. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     A method and device embodying the invention, for effecting device inventory by sound, will now be described, by way of non-limiting example, with reference to the accompanying diagrammatic drawing, the sole FIGURE of which depicts a room with multiple self-announcing devices. 
    
    
     BEST MODE OF CARRYING OUT THE INVENTION 
     The FIGURE includes a work space  11  into which a user  10  has just entered. The user wishes to know what devices are present in work space  11 ; in the present example, there are three devices  14  (hereinafter referred to as devices A, B and C respectively) each with different functionality but each provided with the same announcement subsystem  15  for facilitating a device inventory by the user  10 . 
     The announcement subsystem  15  is shown in greater detail for device B. The announce subsystem comprises: 
     a loudspeaker  20  for outputting a sound announcement indicating the existence of the device and its functionality, the generation of this output being effected by announce block  26  that feeds the loudspeaker; 
     a microphone  21  for listening to sounds emitted in the work space by the user and the devices; 
     analysis functional blocks  22  to  24  connected to receive the output of microphone  21 , these blocks being a prompt detection block  22  for detecting a predetermined audio prompt such as a handclap, a quiet detection block  23  for detecting when no other device is making an announcement, and a collision detecting block for detecting when both the device itself and another device are simultaneously announcing (for which purpose, block  24  receives an input, not shown, from announce block  26  when the latter is outputting an announcement); and 
     an announce control block  25  fed with the output of the analysis functional blocks  22  to  24  and implementing a collision-detection and backoff protocol on the basis of these outputs for controlling the generation and output of an announcement by the announce block  26  and loudspeaker  20 . 
     The announce subsystem listens to sounds in the space  11 . Upon user  10  making the predetermined audio prompt sound (e.g. a handclap), the announce control  25  is put into an active state by the output from the prompt detection block  22 . The announce control now determines from the output of quiet detection block  23  when no other device is announcing and then enables the announce block  26  to make an announcement to inform the user about the device. If a collision is detected as indicated by output from block  24 , the announce control stops the announcement by announce block  26  and backs off, that is, does not consider re-transmitting for a random time period. When the time period expires, the announce control waits for a quite period before enabling the announce block  26  again. 
     By having all devices control their announcements in this manner, in due course all the devices will make their announcements without interruption from the other devices. 
     The device announcement itself can comprise an initial element intended to facilitate collision detection and a main element for conveying device information to the user. The initial element can be a simple tone of predetermined frequency or a random pattern of predetermined tones, this latter having the advantage that there is a high probability, regardless of how many devices try to announce together, that over the period of the initial element transmitted by a first device, there will be a tone being generated by one or more of the other devices that does not conflict with the current tone being generated by the other device so that it is easy for the collision detection block to ascertain that the incoming sound contains sound from another device. As regards the main element of the announcement, this can be a musical signature or a verbal message. The announcement as a whole should not, of course, include pauses of a duration sufficient for another device to consider the announcement as having terminated. 
     In order to facilitate the task of the collision detection circuitry, not only is it informed by block  26  when it is generating its announcement, but it is also provided with a cancellation signal from the block  26  that corresponds to the announcement as it is made and is used by block  26  to cancel out that part of the signal from the microphone  21  that corresponds to the device&#39; own announcement. 
     Preferably, the announce subsystem includes a further analysis functional block that can count each completed announcement by the other devices (that is, an announcement that starts, continues uninterrupted, and finishes with a quiet period). This enables the announce control to determine its position in the order of announcements following a user prompt and then, at the next prompt, seek only to announce when its turn is reached in the previously-established order of announcement; the device first in order will, of course, initiate its announcement without delay. The collision detection and backoff protocol is still operated for when the device is making its announcement. Furthermore, since a device may be removed from the space  11 , if the device which is next in turn to announce does not, within a certain time, hear the expected announcement from whatever device should be announcing, the device assumes that the device one higher in the order has been removed and therefore it commences its own announcement; the device also advances its remembered position in the announcement order, this new position taking effect at the next prompt. 
     Many other variants are, of course, possible to the arrangement described above. For example, the devices could operate the collision detection and backoff protocol, not on the announcements themselves, but on non-sound emissions from the devices. These emissions are, for example, radio emissions, infrared emissions, or even data packets sent between the devices over a LAN to which all devices are connected. The emissions can be sent simultaneously with the sound announcements or in advance in order to predetermine an order for transmission of the sound announcements. In this latter case, the emissions can be triggered independently of the user prompt (for example, each device could be arranged to trigger, at intervals, an emission sequence by sending a first emission, thereby claiming first position in the order of transmission, with the other devices then sending their own emissions to compete for minor places in the order, the transmission order being reset each time this process is triggered by any device). 
     It is also possible to arrange for the devices to determine their order of announcement by means not involving a collision-detection and backoff protocol. For example, the devices can communicate with each other over non-sound short-range wireless links to establish an order for making the sound announcements, each device other than the first device in the established order, then listening to the sound announcements to determine when it is their turn to announce. Negotiation of the order of announcement can be done, for example, based on a unique number associated with each device such as a number specifically assigned for this purpose or the IP address of the device if the devices are networked devices, or by having each device generate a random number which is sent to all other devices (each device uses the received numbers to determine its position in the order and if there are two numbers the same, either the two conflicting devices exchange new random numbers between themselves or all devices recommence the process). 
     The devices themselves can serve any function and, indeed, a device may have no function beyond serving as an announcement device for a related entity.