Systems and methods for managing video data

Information

  • Patent Grant
  • 10362273
  • Patent Number
    10,362,273
  • Date Filed
    Friday, August 3, 2012
    12 years ago
  • Date Issued
    Tuesday, July 23, 2019
    5 years ago
Abstract
Described herein are systems and methods for managing video data. Embodiments are described by reference to a Digital Video Management (DVM) system, for example methods for providing a user with access to view live feed from cameras in a DVM system. In overview, a DVM system is configured to provide a user interface for allowing an operator to view a plurality of video display objects, wherein each display object is configured to display live video data captured at a camera of the DVM system. The user interface is further configured to provide access to one or more camera groups, wherein the one or more camera groups are respectively defined by dynamic parameters. The DVM system executes a process for updating the constituent cameras of each camera group responsive to changes in the dynamic parameters.
Description

This application claims priority under 35 U.S.C. § 119 to Australian (AU) Patent Application No. 2011903152, filed on Aug. 5, 2011. The Australian (AU) Patent Application No. 2011903152, filed on Aug. 5, 2011, is hereby incorporated by reference.


FIELD OF THE INVENTION

The present invention relates to systems and methods for managing video data. Embodiments of the invention have been particularly developed for managing user access to cameras in a Digital Video Management (DVM) system. While some embodiments will be described herein with particular reference to that application, it will be appreciated that the invention is not limited to such a field of use, and is applicable in broader contexts.


BACKGROUND

Any discussion of the background art throughout the specification should in no way be considered as an admission that such art is widely known or forms part of common general knowledge in the field.


Digital Video Management (DVM) systems, such as those based on the Honeywell DVM model, are widely used. In overview, a plurality of cameras are assigned to a plurality camera servers, with each camera server being configured to make available (for live viewing or recording purposes) video data from an assigned one or more cameras. The camera servers are all centrally managed by a DVM database server.


In sites with a large number of cameras (for example more than 1,000 cameras), there are significant challenges in providing quick and convenient access to a desired one or more cameras. Such quick and convenient access is in some cases crucial, for example during an incident or emergency.


There is a need in the art for improved systems and methods for managing video data.


SUMMARY OF THE INVENTION

It is an object of the present invention to overcome or ameliorate at least one of the disadvantages of the prior art, or to provide a useful alternative.


One embodiment provides a method for managing video data in a DVM system, the method including:


providing a user interface for allowing an operator to view a plurality of video display objects, wherein each display object is configured to display live video data captured at a camera of the DVM system;


via the user interface, providing access to one or more camera groups, wherein the one or more camera groups are respectively defined by dynamic parameters; and


updating the constituent cameras of each camera group responsive to changes in the dynamic parameters.


One embodiment provides a DVM system configured to perform a method as described herein.


One embodiment provides a tangible non-transitive carrier medium carrying computer executable code that, when executed via one or more processes, allows the performance of a method as described herein.


Reference throughout this specification to “one embodiment”, “some embodiments” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment”, “in some embodiments” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment, but may. Furthermore, the particular features, structures or characteristics may be combined in any suitable manner, as would be apparent to one of ordinary skill in the art from this disclosure, in one or more embodiments.


As used herein, unless otherwise specified the use of the ordinal adjectives “first”, “second”, “third”, etc., to describe a common object, merely indicate that different instances of like objects are being referred to, and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking, or in any other manner.


In the claims below and the description herein, any one of the terms comprising, comprised of or which comprises is an open term that means including at least the elements/features that follow, but not excluding others. Thus, the term comprising, when used in the claims, should not be interpreted as being limitative to the means or elements or steps listed thereafter. For example, the scope of the expression a device comprising A and B should not be limited to devices consisting only of elements A and B. Any one of the terms including or which includes or that includes as used herein is also an open term that also means including at least the elements/features that follow the term, but not excluding others. Thus, including is synonymous with and means comprising.





BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings in which:



FIG. 1 schematically illustrates a DVM system according to one embodiment.



FIG. 2A schematically illustrates a DVM system according to one embodiment.



FIG. 2B schematically illustrates a DVM system client terminal and user interface according to one embodiment.



FIG. 2C schematically illustrates a DVM system client terminal and user interface according to one embodiment.



FIG. 3 illustrates a method according to one embodiment.





DETAILED DESCRIPTION

Described herein are systems and methods for managing video data. Embodiments are described by reference to a Digital Video Management (DVM) system, for example methods for providing a user with access to view live feed from cameras in a DVM system. In overview, a DVM system is configured to provide a user interface for allowing an operator to view a plurality of video display objects, wherein each display object is configured to display live video data captured at a camera of the DVM system. The user interface is further configured to provide access to one or more camera groups, wherein the one or more camera groups are respectively defined by dynamic parameters. The DVM system executes a process for updating the constituent cameras of each camera group responsive to changes in the dynamic parameters. For example, in one embodiment there is a camera group defined by cameras recently viewed by a particular client. That group is updated thereby to provide an operator with quick and convenient access to recently viewed cameras.


System Level Overview



FIG. 1 illustrates a general Digital Video Management (DVM) system 101. System 101 is described to provide general context to various embodiments discussed below. Although embodiments are described by reference to DVM systems based on system 101, the present invention is not limited as such. That is, system 101 is provided as a general example to highlight various features of an exemplary DVM system. In practice, many systems omit one or more of these features, and/or include additional features.


System 101 includes a plurality of video streaming units 102. Units 102 include conventional cameras 104 (including analogue video cameras) coupled to discrete video streaming units, and IP streaming cameras 105. Video streaming units 102 stream video data, presently in the form of surveillance footage, on a TCP/IP network 106. This is readily achieved using IP streaming cameras 105, which are inherently adapted for such a task. However, in the case of other cameras 104 (such as conventional analogue cameras), a discrete video streaming unit 107 is required to convert a captured video signal into a format suitable for IP streaming.


For the purposes of the present disclosure, the term “video streaming unit” should be read to include IP streaming cameras 105 and video streaming units 107. That is, the term “video streaming unit” describes any hardware component configured to stream video data onto a network, independent of the source of the originating analogue video data.


For the present purposes, the terms “video streaming unit” and “camera” are generally used interchangeably, on the assumption that each video streaming unit corresponds to a unique set of optical components used to capture video. That is, there is a one-to-one relationship between streaming units 107 and cameras 104. However, in other embodiments there is a one-to-many relationship between streaming units 107 and cameras 104 (i.e. a streaming unit is configured for connection to multiple cameras).


One or more camera servers 109 are also connected to network 106 (these may be either physical servers or virtual servers). Each camera server is enabled to have assigned to it one or more of video streaming units 102. In some embodiments the assignment is on a stream-by-stream basis rather than a camera-by-camera basis. This assignment is carried out using a software-based configuration tool, and it follows that camera assignment is virtual rather than physical. That is, the relationships are set by software configuration rather than hardware manipulation. In practice, each camera has a unique identifier. Data indicative of this identifier is included with surveillance footage being streamed by that camera such that components on the network are able to ascertain from which camera a given stream originates.


In the present embodiment, camera servers are responsible for making available both live and stored video data. In relation to the former, each camera server provides a live stream interface, which consists of socket connections between the camera manager and clients. Clients request live video through the camera server's COM interfaces and the camera server then pipes video and audio straight from the relevant streaming unit to the client through TCP sockets. In relation to the latter, each camera server has access to a data store for recording video data. Although FIG. 1 suggests a one-to-one relationship between camera servers and data stores, this is by no means necessary. Each camera server also provides a playback stream interface, which consists of socket connections between the camera manager and clients. Clients create and control the playback of video stored that the camera server's data store through the camera manager's COM interfaces and the stream is sent to clients via TCP sockets.


Although, in the context of the present disclosure, there is discussion of one or more cameras or streaming units being assigned to a common camera server, this is a conceptual notion, and is essentially no different from a camera server being assigned to one or more cameras or streaming units.


Clients 110 execute on a plurality of client terminals, which in some embodiments include all computational platform on network 106 that are provided with appropriate permissions. Clients 110 provide a user interface (UI) that allows surveillance footage to be viewed in real time by an end-user. For example, one UI component is a render window, in which streamed video data is rendered for display to a user. In some cases this user interface is provided through an existing application (such as Microsoft Internet Explorer), whilst in other cases it is a standalone application. The user interface optionally provides the end-user with access to other system and camera functionalities, including mechanical, digital and optical camera controls, control over video storage, and other configuration and administrative functionalities (such as the assignment and reassignment of cameras to camera servers). Typically clients 110 are relatively “thin”, and commands provided via the relevant user interfaces are implemented at a remote server, typically a camera server. In some embodiments different clients have different levels of access rights. For example, in some embodiments there is a desire to limit the number of users with access to change configuration settings or mechanically control cameras.


System 101 also includes a DVM database server 115. Database server 115 is responsible for maintaining various information relating to configurations and operational characteristics of system 101, and for managing events within the system. In terms of events, the general notion is that an action in the system (such as the modification of data in the database, or the reservation of a camera, as discusses below) causes an event to be “fired” (i.e. published), this having follow-on effects depending on the nature of the event.


In the present example, the system makes use of a preferred and redundant database server (115 and 116 respectively), the redundant server essentially operating as a backup for the preferred server. The relationship between these database servers is generally beyond the concern of the present disclosure.


Some embodiments of the present invention are directed to distributed DVM systems, also referred to as “distributed system architecture” (DSA). In general terms, a distributed DVM system includes a plurality of (i.e. two or more) discrete DVM systems, such as system 101. These systems are discrete in the sense that they are in essence standalone systems, able to function autonomously without the other by way of their own DVM servers. They may be distributed geographically (for example in different buildings, cities or countries), or notionally (in a common geographic location, but split due to individual system constraints, for example camera server numbers, or simply to take advantage of benefits of a distributed architecture). In the context of FIG. 1, a remote system 150, communicates with the local system via a DSA link 151. For the present purposes, it is assumed that remote system 150 is in a general sense similar to the local system. Various components (hardware and software) are configured to allow communications between the systems, for example via a network connection (including, but not limited to, an Intranet or Internet connection), or other communications interface. For the sake of the present embodiments, it is assumed that the inter-system communications occur by way of TCP/IP connections, and in this manner any communications channel supporting TCP/IP may be used.


Camera Group Management



FIG. 2 illustrates components of an exemplary DVM system (such as the system of FIG. 1), but simplified to illustrate components relevant to camera group management.


A camera 201 is associated with a camera server 202. Camera server 202 is configured to access video data made available by camera 201, either for live viewing or for recording to a storage device 203. Camera server 202 is configured/controlled by a DVM server 204. There may be a large number of cameras and camera servers configured/controlled by DVM server 204.


DVM server 204 executes DVM administration modules 205. The functional block for modules 205 is used to simplistically represent a wide range of software components implemented within a DVM system. Only a selection of these are shown, being user interface modules 230 and a content sharing module 250.


DVM server 204 communicates with a user interface 210 which executes on a client terminal 211. In the present embodiment, this user interface is provided via module 230 via a web-server type arrangement (i.e. user interface 210 is provided via a web-browser at terminal 211 which renders data transmitted by server 211). In this manner, module 230 is configured to allow a plurality of terminals 211 to independently provide respective instantiations user interface 210 for a respective plurality of operators.


User interface 210 is configured to display live and recorded video data to a user via a video display objects (and, in some embodiments, other DVM content such as screenshots, maps, and the like). In the example of FIG. 2, a plurality of display objects are shown as being rendered on-screen simultaneously, including a major display object 212 and minor display objects 213A-E. These are configured to each display live video data from respective cameras (such as camera 201).


User interface 210 provides various controls 217 (which simplistically represents a variety of GUI controls available to an operator of terminal 211, such as record control, camera position control, camera view selection, and so on).


DVM server 204 additionally provides a camera group management module 250. However, it will be appreciated that in other embodiments some or all of the functionality of module 250 is handled at client terminal 211 within user interface 210. In overview, module 250 is responsible for managing camera groups that are respectively defined by dynamic parameters, such as camera parameters, user parameters, user interface parameters, or camera server parameters. The general crux of the parameters being “dynamic” is that the values for the parameters change over time, such that the constituent cameras that make up a given group vary over time. Module 250 is configured to keep the groups up to date, achieved by either assessing parameters periodically, updating the group in response to monitored events, or updating the group in response to a request that requires the group to be updated (for example a “refresh” command).


In some embodiments user interface 210 is configured to enable user creation of camera groups based on specified dynamic parameters, for example by way of a camera group controls object 216, which provides access an interface by which a user is permitted to create a new group or modify an existing group. In either case, the creation/modification process includes selection of parameters (such as dynamic parameters) that are to define the group, with the selection being made from a list of available parameters. By way of example, parameters are optionally selected thereby to configure groups for one or more of the following:

    • Cameras recently viewed at a given client terminal. For example, the dynamic parameter may be a camera “last accessed time” for cameras viewed at the relevant client terminal.
    • Cameras recently viewed across the DVM system. For example, the dynamic parameter may be a camera “last accessed time”.
    • Cameras having a high view rate over a predefined period. For example, the dynamic parameter may be a “times viewed” and/or a parameter related to the number of viewing clients and time viewed by each client.
    • Cameras having greater than a threshold incident rate over a predefined period. For example, the dynamic parameter may be related to an “incidents recorded” value and/or data supplied by video analytics software.
    • Cameras having greater than a threshold motion rate over a predefined period. For example, the dynamic parameter may be a measure of camera movement, or number of times the camera was moved (e.g. in terms of pan, tilt and zoom).
    • Cameras having greater than a threshold number of movement observations, based on analytics software, over a predefined period. For example, the dynamic parameter may be a value supplied by video analytics software that is configured to identify movement in a camera's field of view.
    • Cameras in respect of which alarms have been raised over a predefined period. For example, the dynamic parameter may be a camera alarm count value.
    • Cameras displaying a fail condition. For example, the dynamic parameter may be an active camera fail or error value.
    • Cameras which have had greater than a threshold number of fail or error conditions over a predetermined period. This is useful in allowing a user to observe the feed from these cameras, which may intermittently fail given the error rate.
    • Cameras that are proximally close (in location or field of view) to currently or recently viewed cameras.


It will be appreciated that there is a wide range of groups able to be created, given the flexible approach of allowing a user to select defining parameters.


In some cases, wherein each group has a maximum size, and is populated by a set of cameras of up to and including the maximum size that best satisfy the dynamic parameters. For example, the maximum size may be 10, and the 10 cameras selected to populate the group are either those that best match the dynamic parameter, or those which have most recently matched the dynamic parameter. In the case of a “recently used cameras” group, this would display the 10 most recently sued cameras, with the 11th most recent dropping out of the group each time another camera ceases to be used.


In some cases a camera group is displayable in a list or tree structure, and cameras in the list are able to be dragged and dropped into user interface video display objects. In some cases, as an alternative or in additional to “drag and drop”, a click-based selection is made, and the relevant camera view is automatically moved to a major display object, or moved to a major/minor display object selected based on a prioritization algorithm.


In some cases a camera group is able to be launched into a multi-object view (having an object arrangement similar to that of FIG. 2A, or alternately a different geometric layout). The example of FIG. 2A shows a user interface object, in the form of a camera group preview object 260, which includes a screenshot or streaming live feed for each of the cameras in the group. The screenshots, or streaming live feeds, are displayed in video display objects 261A-E. In some cases, where live streaming is provided via objects 261A-E, the live video streaming rate varies between the cameras in response to specified criteria. For example, in some cases there are additional objects displayed off-screen (requiring a user to scroll down to make them visible); these are streamed at a lower rate until displayed on screen. In the cases of a “recently viewed” camera group, the streaming rate decreases based on the time elapsed since a camera was viewed and/or as the number of cameras more recently viewed than that camera increases.



FIG. 2B illustrates an embodiment specifically directed towards maintaining convenient access to recently used cameras. To this end, user interface 210 includes a camera display history object 270, which is configured to contain a plurality of video display objects (with objects 271A-E being shown, and potentially additional accessible by way of a scrolling operation). During use of user interface 210, which cameras are displayed in objects 212 and 213A-E varies over time (for example as a result of user activity, or as a result of automated events such as alarms or the like). Each time a new camera is displayed by one of the display objects, another camera which was previously displayed ceases to be displayed (given the limited number of display objects). That is, one camera moves from a state of being presently used, to being the most recently used. The recently viewed camera group of object 270 preferably ahs a maximum size of n. That is, the group is defined by the most recent n cameras viewed via the user interface, wherein 0≤n<a predefined maximum.


Objects 271A-E are respectively indicative of the most recently used cameras. These objects in some embodiments provide live video streaming of their respective cameras (although preferably at a lower rate/quality thereby to conserve CPU and network resources). In other embodiments they each provide a still image taken from the respective cameras (which may be predefined or taken at a designated time, such as the time at which the camera was last viewed, and is optionally periodically updated). In some embodiments, objects 271A-E are camera names or descriptors.


Preferably, a selected one of objects 271A-E is able to be dragged-and-dropped onto a selected major or minor video display object, thereby to instruct the user interface to display the video stream from the camera associated with the selected object 217A-E via the selected major/minor display object.



FIG. 3 illustrates an exemplary method 300 for managing a recently sued camera group. In the context of method 300, 301 includes identifying a change in cameras displayed in major/minor video display objects. 302 includes determining a camera or set of cameras that are no longer displayed in major/minor display objects based on the identified change. Those cameras are added to the “recently viewed” camera group at 303, and the display of that group (for example object 270) us updated accordingly at 304.



FIG. 2C illustrates a further exemplary user interface instantiation. This is similar to FIG. 2B, but with two additional objects on the left hand side. An attribute based camera tree object 290 sets out cameras based on attributes (such as location or the like). This may be in the form of a hierarchical tree, or a list. A group based camera tree 291 sets out cameras based on camera groups. That is, a user is able to navigate camera groups using object 291 and then, for example, drag and drop a desired camera into one of the major or minor video display objects thereby to view live video data from that camera. In some cases a user ca select a camera group, and launch a multi-display-object view for simultaneously viewing live video data for a selection of or all of the cameras in that group.


Conclusions and Interpretation


It will be appreciated that the disclosure above provides various significant systems and methods for managing video data. For example, the present embodiments allows for cameras to be more readily accessed by a user, either by way of flexibly defined groups based on dynamic parameters, or by configuring an object to keep track of recently used cameras.


Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining”, analyzing” or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulate and/or transform data represented as physical, such as electronic, quantities into other data similarly represented as physical quantities.


In a similar manner, the term “processor” may refer to any device or portion of a device that processes electronic data, e.g., from registers and/or memory to transform that electronic data into other electronic data that, e.g., may be stored in registers and/or memory. A “computer” or a “computing machine” or a “computing platform” may include one or more processors.


The methodologies described herein are, in one embodiment, performable by one or more processors that accept computer-readable (also called machine-readable) code containing a set of instructions that when executed by one or more of the processors carry out at least one of the methods described herein. Any processor capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken are included. Thus, one example is a typical processing system that includes one or more processors. Each processor may include one or more of a CPU, a graphics processing unit, and a programmable DSP unit. The processing system further may include a memory subsystem including main RAM and/or a static RAM, and/or ROM. A bus subsystem may be included for communicating between the components. The processing system further may be a distributed processing system with processors coupled by a network. If the processing system requires a display, such a display may be included, e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT) display. If manual data entry is required, the processing system also includes an input device such as one or more of an alphanumeric input unit such as a keyboard, a pointing control device such as a mouse, and so forth. The term memory unit as used herein, if clear from the context and unless explicitly stated otherwise, also encompasses a storage system such as a disk drive unit. The processing system in some configurations may include a sound output device, and a network interface device. The memory subsystem thus includes a computer-readable carrier medium that carries computer-readable code (e.g., software) including a set of instructions to cause performing, when executed by one or more processors, one of more of the methods described herein. Note that when the method includes several elements, e.g., several steps, no ordering of such elements is implied, unless specifically stated. The software may reside in the hard disk, or may also reside, completely or at least partially, within the RAM and/or within the processor during execution thereof by the computer system. Thus, the memory and the processor also constitute computer-readable carrier medium carrying computer-readable code.


Furthermore, a computer-readable carrier medium may form, or be included in a computer program product.


In alternative embodiments, the one or more processors operate as a standalone device or may be connected, e.g., networked to other processor(s), in a networked deployment, the one or more processors may operate in the capacity of a server or a user machine in server-user network environment, or as a peer machine in a peer-to-peer or distributed network environment. The one or more processors may form a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.


Note that while some diagrams only show a single processor and a single memory that carries the computer-readable code, those in the art will understand that many of the components described above are included, but not explicitly shown or described in order not to obscure the inventive aspect. For example, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.


Thus, one embodiment of each of the methods described herein is in the form of a computer-readable carrier medium carrying a set of instructions, e.g., a computer program that is for execution on one or more processors, e.g., one or more processors that are part of web server arrangement. Thus, as will be appreciated by those skilled in the art, embodiments of the present invention may be embodied as a method, an apparatus such as a special purpose apparatus, an apparatus such as a data processing system, or a computer-readable carrier medium, e.g., a computer program product. The computer-readable carrier medium carries computer readable code including a set of instructions that when executed on one or more processors cause the processor or processors to implement a method. Accordingly, aspects of the present invention may take the form of a method, an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of carrier medium (e.g., a computer program product on a computer-readable storage medium) carrying computer-readable program code embodied in the medium.


The software may further be transmitted or received over a network via a network interface device. While the carrier medium is shown in an exemplary embodiment to be a single medium, the term “carrier medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “carrier medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by one or more of the processors and that cause the one or more processors to perform any one or more of the methodologies of the present invention. A carrier medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical, magnetic disks, and magneto-optical disks. Volatile media includes dynamic memory, such as main memory. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise a bus subsystem. Transmission media also may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications. For example, the term “carrier medium” shall accordingly be taken to included, but not be limited to, solid-state memories, a computer product embodied in optical and magnetic media; a medium bearing a propagated signal detectable by at least one processor of one or more processors and representing a set of instructions that, when executed, implement a method; a carrier wave bearing a propagated signal detectable by at least one processor of the one or more processors and representing the set of instructions a propagated signal and representing the set of instructions; and a transmission medium in a network bearing a propagated signal detectable by at least one processor of the one or more processors and representing the set of instructions.


It will be understood that the steps of methods discussed are performed in one embodiment by an appropriate processor (or processors) of a processing (i.e., computer) system executing instructions (computer-readable code) stored in storage. It will also be understood that the invention is not limited to any particular implementation or programming technique and that the invention may be implemented using any appropriate techniques for implementing the functionality described herein. The invention is not limited to any particular programming language or operating system.


Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment, but may. Furthermore, the particular features, structures or characteristics may be combined in any suitable manner, as would be apparent to one of ordinary skill in the art from this disclosure, in one or more embodiments.


Similarly it should be appreciated that in the above description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, FIG., or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the Detailed Description are hereby expressly incorporated into this Detailed Description, with each claim standing on its own as a separate embodiment of this invention.


Furthermore, while some embodiments described herein include some but not other features included in other embodiments, combinations of features of different embodiments are meant to be within the scope of the invention, and form different embodiments, as would be understood by those skilled in the art. For example, in the following claims, any of the claimed embodiments can be used in any combination.


Furthermore, some of the embodiments are described herein as a method or combination of elements of a method that can be implemented by a processor of a computer system or by other means of carrying out the function. Thus, a processor with the necessary instructions for carrying out such a method or element of a method forms a means for carrying out the method or element of a method. Furthermore, an element described herein of an apparatus embodiment is an example of a means for carrying out the function performed by the element for the purpose of carrying out the invention.


In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure an understanding of this description.


Similarly, it is to be noticed that the term coupled, when used in the claims, should not be interpreted as being limited to direct connections only. The terms “coupled” and “connected,” along with their derivatives, may be used. It should be understood that these terms are not intended as synonyms for each other. Thus, the scope of the expression a device A coupled to a device B should not be limited to devices or systems wherein an output of device A is directly connected to an input of device B. It means that there exists a path between an output of A and an input of B which may be a path including other devices or means. “Coupled” may mean that two or more elements are either in direct physical or electrical contact, or that two or more elements are not in direct contact with each other but yet still co-operate or interact with each other.


Thus, while there has been described what are believed to be the preferred embodiments of the invention, those skilled in the art will recognize that other and further modifications may be made thereto without departing from the spirit of the invention, and it is intended to claim all such changes and modifications as falling within the scope of the invention. For example, any formulas given above are merely representative of procedures that may be used. Functionality may be added or deleted from the block diagrams and operations may be interchanged among functional blocks. Steps may be added or deleted to methods described within the scope of the present invention.

Claims
  • 1. A method for managing video data in a DVM system, the method including: providing a user interface for allowing an operator to view a plurality of video display objects, wherein the plurality of display objects are each simultaneously displaying live video data captured at a camera of the DVM system;via the user interface, providing access to one or more camera groups, each camera group including one or more constituent cameras that are all providing live video streaming;defining the one or more camera groups based on dynamic parameters which change automatically over time such that the constituent cameras that are in a given group change over time; andupdating the constituent cameras that make up each camera group in response to changes in the dynamic parameters.
  • 2. A method according to claim 1 wherein the one or more camera groups includes a recently viewed camera group defined by the most recent n cameras viewed via the user interface, wherein 0<n<a predefined maximum.
  • 3. A method according to claim 2 wherein the user interface is configured to display a screen object containing video display objects indicative of the cameras in the recently viewed camera group.
  • 4. A method according to claim 3 wherein the video display objects provide live video streaming.
  • 5. A method according to claim 4 wherein the live video streaming is at a rate less than the rate of streaming when the cameras where being viewed.
  • 6. A method according to claim 1 wherein the live video streaming rate varies between the cameras in the viewed camera groups in response to specified criteria.
  • 7. A method according to claim 1 wherein the user interface is configured to enable user creation of camera groups based on specified dynamic parameters.
  • 8. A method according to claim 1 wherein the one more groups are defined by dynamic parameters thereby to configure groups for one or more of the following: cameras recently viewed at a given client terminal;cameras recently viewed across the DVM system;cameras having a high view rate over a predefined period;cameras having greater than a threshold incident rate over a predefined period;cameras having greater than a threshold motion rate over a predefined period;cameras having greater than a threshold number of movement observations, based on analytics software, over a predefined period;cameras in respect of which alarms have been raised over a predefined period;cameras which have had greater than a threshold number of fail or error conditions over a predetermined period; andcameras having a fail or error condition.
  • 9. A method according to claim 8 wherein each group has a maximum size, and is populated by a set of cameras of up to and including the maximum size that best satisfy the dynamic parameters.
  • 10. A method according to claim 1 wherein a given camera group is displayable in a user interface object including a screenshot or streaming feed for each of the cameras.
  • 11. A DVM system configured to perform a method including: providing a user interface for allowing an operator to view a plurality of video display objects, wherein the plurality of display objects are each simultaneously displaying live video data captured at a camera of the DVM system;via the user interface, providing access to one or more camera groups that are all providing live video streaming;defining the one or more camera groups based on dynamic parameters that change automatically over time such that the constituent cameras that are in a given group change over time; andupdating the constituent cameras that make up each camera group in response to changes in the dynamic parameters.
  • 12. A DVM system according to claim 11 including: a plurality of camera servers, wherein each camera server is configured to utilise video data from an assigned one or more video streaming units; anda plurality of video streaming units, wherein each streaming unit is configured to stream, onto a network, video data for a respective camera.
  • 13. A DVM system according to claim 11 wherein the one or more camera groups includes a recently viewed camera group defined by the most recent n cameras viewed via the user interface, wherein 0<n<a predefined maximum.
  • 14. A DVM system according to claim 12 wherein the user interface is configured to display a screen object containing video display objects indicative of the cameras in the recently viewed camera group.
  • 15. A DVM system according to claim 11 wherein the live video streaming rate varies between the cameras in the viewed camera groups in response to specified criteria.
  • 16. A DVM system according to claim 11 wherein the user interface is configured to enable user creation of camera groups based on specified dynamic parameters.
  • 17. A tangible non-transitive computer-readable carrier medium carrying computer executable code that, when executed via one or more processes, allows the performance of a method including: providing a user interface for allowing an operator to view a plurality of video display objects, wherein the plurality of display objects are each simultaneously displaying live video data captured at a camera of the DVM system;via the user interface, providing access to one or more camera groups that are all providing live video streaming;defining the one or more camera groups based on dynamic parameters that change automatically over time such that the constituent cameras that are in a given group change over time; andupdating the constituent cameras that make up each camera group in response to changes in the dynamic parameters.
  • 18. A computer-readable carrier medium according to claim 17 wherein the one or more camera groups includes a recently viewed camera group defined by the most recent n cameras viewed via the user interface, wherein 0<n<a predefined maximum.
  • 19. A computer-readable carrier medium according to claim 17 wherein the live video streaming rate varies between the cameras in the viewed camera groups in response to specified criteria.
  • 20. A computer-readable carrier medium according to claim 17 wherein the user interface is configured to enable user creation of camera groups based on specified dynamic parameters.
US Referenced Citations (283)
Number Name Date Kind
3753232 Sporer Aug 1973 A
3806911 Pripusich Apr 1974 A
3857018 Stark et al. Dec 1974 A
3860911 Hinman et al. Jan 1975 A
3866173 Moorman et al. Feb 1975 A
3906447 Crafton Sep 1975 A
4095739 Fox et al. Jun 1978 A
4146085 Wills Mar 1979 A
4148012 Baump et al. Apr 1979 A
4161778 Getson, Jr. et al. Jul 1979 A
4213118 Genest et al. Jul 1980 A
4283710 Genest et al. Aug 1981 A
4298946 Hartsell et al. Nov 1981 A
4332852 Korklan et al. Jun 1982 A
4336902 Neal Jun 1982 A
4337893 Flanders et al. Jul 1982 A
4353064 Stamm Oct 1982 A
4373664 Barker et al. Feb 1983 A
4379483 Farley Apr 1983 A
4462028 Ryan et al. Jul 1984 A
4525777 Webster et al. Jun 1985 A
4538056 Young et al. Aug 1985 A
4556169 Zervos Dec 1985 A
4628201 Schmitt Dec 1986 A
4646964 Parker et al. Mar 1987 A
4685615 Hart Aug 1987 A
4821177 Koegel et al. Apr 1989 A
4847839 Hudson, Jr. et al. Jul 1989 A
5070468 Niinomi et al. Dec 1991 A
5071065 Aalto et al. Dec 1991 A
5099420 Barlow et al. Mar 1992 A
5172565 Wruck et al. Dec 1992 A
5204663 Lee Apr 1993 A
5227122 Scarola et al. Jul 1993 A
5259553 Shyu Nov 1993 A
5271453 Yoshida et al. Dec 1993 A
5361982 Liebl et al. Nov 1994 A
5404934 Carlson et al. Apr 1995 A
5420927 Micali May 1995 A
5449112 Heitman et al. Sep 1995 A
5465082 Chaco Nov 1995 A
5479154 Wolfram Dec 1995 A
5481481 Frey et al. Jan 1996 A
5526871 Musser et al. Jun 1996 A
5541585 Duhame et al. Jul 1996 A
5591950 Imedio-Ocana Jan 1997 A
5594429 Nakahara Jan 1997 A
5604804 Micali Feb 1997 A
5610982 Micali Mar 1997 A
5631825 van Weele et al. May 1997 A
5640151 Reis et al. Jun 1997 A
5644302 Hana et al. Jul 1997 A
5663957 Dent Sep 1997 A
5666416 Micali Sep 1997 A
5717757 Micali Feb 1998 A
5717758 Micali Feb 1998 A
5717759 Micali Feb 1998 A
5732691 Maiello et al. Mar 1998 A
5774058 Henry et al. Jun 1998 A
5778256 Darbee Jul 1998 A
5793868 Micali Aug 1998 A
5914875 Monta et al. Jun 1999 A
5915473 Ganesh et al. Jun 1999 A
5923328 Griesmer Jul 1999 A
5923817 Nakamura Jul 1999 A
5927398 Maciulewicz Jul 1999 A
5930773 Crooks et al. Jul 1999 A
5960083 Micali Sep 1999 A
5973613 Reis et al. Oct 1999 A
5992194 Baukholt et al. Nov 1999 A
6072402 Kniffin et al. Jun 2000 A
6097811 Micali Aug 2000 A
6104963 Cebasek et al. Aug 2000 A
6119125 Gloudeman et al. Sep 2000 A
6141595 Gloudeman et al. Oct 2000 A
6149065 White et al. Nov 2000 A
6154681 Drees et al. Nov 2000 A
6167316 Gloudeman et al. Dec 2000 A
6233954 Mehaffey et al. May 2001 B1
6241156 Kline et al. Jun 2001 B1
6249755 Yemini et al. Jun 2001 B1
6260765 Natale et al. Jul 2001 B1
6268797 Berube et al. Jul 2001 B1
6292893 Micali Sep 2001 B1
6301659 Micali Oct 2001 B1
6318137 Chaum Nov 2001 B1
6324854 Jayanth Dec 2001 B1
6334121 Primeaux et al. Dec 2001 B1
6347374 Drake et al. Feb 2002 B1
6366558 Howes et al. Apr 2002 B1
6369719 Tracy et al. Apr 2002 B1
6374356 Daigneault et al. Apr 2002 B1
6393848 Roh et al. May 2002 B2
6394359 Morgan May 2002 B1
6424068 Nakagashi Jul 2002 B2
6453426 Gamache et al. Sep 2002 B1
6453687 Sharood et al. Sep 2002 B2
6483697 Jenks et al. Nov 2002 B1
6487658 Micali Nov 2002 B1
6490610 Rizvi et al. Dec 2002 B1
6496575 Vasell et al. Dec 2002 B1
6516357 Hamann et al. Feb 2003 B1
6518953 Armstrong Feb 2003 B1
6546419 Humpleman et al. Apr 2003 B1
6556899 Harvey et al. Apr 2003 B1
6574537 Kipersztok et al. Jun 2003 B2
6583712 Reed et al. Jun 2003 B1
6604023 Brown et al. Aug 2003 B1
6615594 Jayanth et al. Sep 2003 B2
6628997 Fox et al. Sep 2003 B1
6647317 Takai et al. Nov 2003 B2
6647400 Moran Nov 2003 B1
6658373 Rossi et al. Dec 2003 B2
6663010 Chene et al. Dec 2003 B2
6665669 Han et al. Dec 2003 B2
6667690 Durej et al. Dec 2003 B2
6741915 Poth May 2004 B2
6758051 Jayanth et al. Jul 2004 B2
6766450 Micali Jul 2004 B2
6789739 Rosen Sep 2004 B2
6796494 Gonzalo Sep 2004 B1
6801849 Szukala et al. Oct 2004 B2
6801907 Zagami Oct 2004 B1
6826454 Sulfstede Nov 2004 B2
6829332 Farris et al. Dec 2004 B2
6851621 Wacker et al. Feb 2005 B1
6871193 Campbell et al. Mar 2005 B1
6886742 Stoutenburg et al. May 2005 B2
6895215 Uhlmann May 2005 B2
6910135 Grainger Jun 2005 B1
6967612 Gorman et al. Nov 2005 B1
6969542 Klasen-Memmer et al. Nov 2005 B2
6970070 Juels et al. Nov 2005 B2
6973410 Seigel Dec 2005 B2
6983889 Alles Jan 2006 B2
6989742 Ueno et al. Jan 2006 B2
7004401 Kallestad Feb 2006 B2
7019614 Lavelle et al. Mar 2006 B2
7032114 Moran Apr 2006 B1
7055759 Wacker et al. Jun 2006 B2
7076083 Blazey Jul 2006 B2
7117356 LaCous Oct 2006 B2
7124943 Quan et al. Oct 2006 B2
7130719 Ehlers et al. Oct 2006 B2
7183894 Yui et al. Feb 2007 B2
7203962 Moran Apr 2007 B1
7205882 Libin Apr 2007 B2
7216007 Johnson May 2007 B2
7216015 Poth May 2007 B2
7218243 Hayes et al. May 2007 B2
7222800 Wruck May 2007 B2
7233243 Roche et al. Jun 2007 B2
7243001 Janert et al. Jul 2007 B2
7245223 Trela Jul 2007 B2
7250853 Flynn Jul 2007 B2
7274676 Cardei et al. Sep 2007 B2
7283489 Palaez et al. Oct 2007 B2
7313819 Burnett et al. Dec 2007 B2
7321784 Serceki et al. Jan 2008 B2
7337315 Micali Feb 2008 B2
7343265 Andarawis et al. Mar 2008 B2
7353396 Micali et al. Apr 2008 B2
7362210 Bazakos et al. Apr 2008 B2
7376839 Carta et al. May 2008 B2
7379997 Ehlers et al. May 2008 B2
7380125 Di Luoffo et al. May 2008 B2
7383158 Krocker et al. Jun 2008 B2
7397371 Martin et al. Jul 2008 B2
7408925 Boyle et al. Aug 2008 B1
7468662 Velipasalar et al. Dec 2008 B2
7487538 Mok Feb 2009 B2
7505914 McCall Mar 2009 B2
7542867 Steger et al. Jun 2009 B2
7543327 Kaplinsky Jun 2009 B1
7574734 Fedronic et al. Aug 2009 B2
7576770 Metzger et al. Aug 2009 B2
7583401 Lewis Sep 2009 B2
7586398 Huang et al. Sep 2009 B2
7600679 Kshirsagar et al. Oct 2009 B2
7620644 Cote et al. Nov 2009 B2
7634662 Monroe Dec 2009 B2
7644367 McKeon et al. Jan 2010 B2
7661603 Yoon et al. Feb 2010 B2
7680814 Mercer et al. Mar 2010 B2
7683940 Fleming Mar 2010 B2
7735132 Brown et al. Jun 2010 B2
7735145 Kuehnel et al. Jun 2010 B2
7794536 Roy et al. Sep 2010 B2
7801870 Oh et al. Sep 2010 B2
7818026 Hartikainen et al. Oct 2010 B2
7839926 Metzger et al. Nov 2010 B1
7853987 Balasubramanian et al. Dec 2010 B2
7861314 Serani et al. Dec 2010 B2
7873441 Synesiou et al. Jan 2011 B2
7907753 Wilson et al. Mar 2011 B2
7937669 Zhang et al. May 2011 B2
7983892 Anne et al. Jul 2011 B2
7995526 Liu et al. Aug 2011 B2
7999847 Donovan et al. Aug 2011 B2
8045960 Orakkan Oct 2011 B2
8069144 Quinlan et al. Nov 2011 B2
8089341 Nakagawa et al. Jan 2012 B2
8095889 DeBlaey et al. Jan 2012 B2
8102240 Birchbauer et al. Jan 2012 B2
8108200 Anne et al. Jan 2012 B2
8166532 Chowdhury et al. Apr 2012 B2
8174572 Buehler et al. May 2012 B2
8179227 Dziadosz May 2012 B2
8199196 Klein et al. Jun 2012 B2
8222990 Gerner et al. Jul 2012 B2
8232860 Goel Jul 2012 B2
8272053 Markham et al. Sep 2012 B2
8316407 Lee et al. Nov 2012 B2
8341695 Thomas et al. Dec 2012 B2
8350666 Kore Jan 2013 B2
8351350 Bhandari et al. Jan 2013 B2
8479029 Adams et al. Jun 2013 B2
8509987 Resner Aug 2013 B2
8560970 Liddington Oct 2013 B2
8605151 Bellamy et al. Dec 2013 B2
8922658 Galvin Dec 2014 B2
9036828 Schambeck May 2015 B2
20020011923 Cunningham et al. Jan 2002 A1
20020016971 Berezowski et al. Feb 2002 A1
20020022991 Sharood et al. Feb 2002 A1
20020046337 Micali Apr 2002 A1
20020118096 Hoyos et al. Aug 2002 A1
20020121961 Huff Sep 2002 A1
20020165824 Micali Nov 2002 A1
20020170064 Monroe et al. Nov 2002 A1
20030033230 McCall Feb 2003 A1
20030071714 Bayer et al. Apr 2003 A1
20030174049 Beigel et al. Sep 2003 A1
20030208689 Garza Nov 2003 A1
20030233432 Davis et al. Dec 2003 A1
20040061714 Sinclair et al. Apr 2004 A1
20040062421 Jakubowski et al. Apr 2004 A1
20040064453 Ruiz et al. Apr 2004 A1
20040068583 Monroe et al. Apr 2004 A1
20040087362 Beavers May 2004 A1
20040125124 Kim et al. Jul 2004 A1
20040205350 Waterhouse et al. Oct 2004 A1
20040267694 Sakai et al. Dec 2004 A1
20050138380 Fedronic et al. Jun 2005 A1
20050200714 Marchese Sep 2005 A1
20060077262 Miyamaki et al. Apr 2006 A1
20060017939 Jamieson et al. Jun 2006 A1
20070109098 Siemon et al. May 2007 A1
20070132550 Avraham et al. Jun 2007 A1
20070171862 Tang et al. Jul 2007 A1
20070268145 Bazakos et al. Nov 2007 A1
20070272744 Bantwal et al. Nov 2007 A1
20080037432 Cohen et al. Feb 2008 A1
20080173709 Ghosh Jul 2008 A1
20090018900 Waldron et al. Jan 2009 A1
20090063517 Wright et al. Mar 2009 A1
20090080443 Dziadosz Mar 2009 A1
20090086692 Chen Apr 2009 A1
20090097815 Lahr et al. Apr 2009 A1
20090168695 Johar et al. Jul 2009 A1
20090258643 McGuffin Oct 2009 A1
20090266885 Marcinowski et al. Oct 2009 A1
20090292995 Anne et al. Nov 2009 A1
20090328203 Haas Dec 2009 A1
20100026811 Palmer Feb 2010 A1
20100036511 Dongare Feb 2010 A1
20100220715 Cherchali et al. Sep 2010 A1
20100269173 Srinvasa et al. Oct 2010 A1
20110043631 Marman et al. Feb 2011 A1
20110071929 Morrison Mar 2011 A1
20110115602 Bhandari et al. May 2011 A1
20110133884 Kumar et al. Jun 2011 A1
20110153791 Jones et al. Jun 2011 A1
20110167488 Roy et al. Jul 2011 A1
20110181414 G. et al. Jul 2011 A1
20120096131 Bhandari et al. Apr 2012 A1
20120106915 Palmer May 2012 A1
20120121229 Lee May 2012 A1
20120133482 Bhandari et al. May 2012 A1
20120326868 Goel Dec 2012 A1
20130010111 Laforte et al. Jan 2013 A1
20130036356 Worrill et al. Feb 2013 A1
20150363478 Haynes Dec 2015 A1
Foreign Referenced Citations (36)
Number Date Country
2240881 Dec 1999 CA
1265762 Sep 2000 CN
19945861 Mar 2001 DE
0043270 Jan 1982 EP
0122244 Oct 1984 EP
0152678 Aug 1985 EP
0629940 Dec 1994 EP
0858702 Apr 2002 EP
1339028 Aug 2003 EP
1630639 Mar 2006 EP
2251266 Jul 1992 GB
2390705 Jan 2004 GB
6019911 Jan 1994 JP
2003074942 Mar 2003 JP
2003240318 Aug 2003 JP
WO 8402786 Jul 1984 WO
WO 9419912 Sep 1994 WO
WO 9627858 Sep 1996 WO
WO 0011592 Mar 2000 WO
WO 0076220 Dec 2000 WO
WO 0142598 Jun 2001 WO
WO 0157489 Aug 2001 WO
WO 0160024 Aug 2001 WO
WO 0232045 Apr 2002 WO
WO 02091311 Nov 2002 WO
WO 03090000 Oct 2003 WO
WO 2004092514 Oct 2004 WO
WO 2005038727 Apr 2005 WO
WO 2006021047 Mar 2006 WO
WO 2006049181 May 2006 WO
WO 2006126974 Nov 2006 WO
WO 2007043798 Apr 2007 WO
WO 2008045918 Apr 2008 WO
WO 2008144803 Dec 2008 WO
WO 2010039598 Apr 2010 WO
WO 2010106474 Sep 2010 WO
Non-Patent Literature Citations (35)
Entry
U.S. Appl. No. 14/129,086, filed Dec. 23, 2013.
“Certificate Validation Choices,” CoreStreet, Inc., 8 pages, 2002.
“CoreStreet Cuts the PKI Gordian Knot,” Digital ID World, pp. 22-25, Jun./Jul. 2004.
“Distributed Certificate Validation,” CoreStreet, Ltd., 17 pages, 2006.
“Identity Services Infrastructure,” CoreStreet Solutions—Whitepaper, 12 pages, 2006.
“Important FIPS 201 Deployment Considerations,” Corestreet Ltd.—Whitepaper, 11 pages, 2005.
“Introduction to Validation for Federated PKI,” Corestreet Ltd, 20 pages, 2006.
“Manageable Secure Physical Access,” Corestreet Ltd, 3 pages, 2002.
“MiniCRL, Corestreet Technology Datasheet,” CoreStreet, 1 page, 2006.
“Nonce Sense, Freshness and Security in OCSP Responses,” Corestreet Ltd, 2 pages, 2003.
“Real Time Credential Validation, Secure, Efficient Permissions Management,” Corestreet Ltd, 5 pages, 2002.
“The Role of Practical Validation for Homeland Security,” Corestreet Ltd, 3 pages, 2002.
“The Roles of Authentication, Authorization & Cryptography in Expanding Security Industry Technology,” Security Industry Association (SIA), Quarterly Technical Update, 32 pages, Dec. 2005.
“Vulnerability Analysis of Certificate Validation Systems,” Corestreet Ltd—Whitepaper, 14 pages, 2006.
“Keyfast Technical Overview”, Corestreet Ltd., 21 pages, 2004.
Goldman et al., “Information Modeling for Intrusion Report Aggregation,” IEEE, Proceedings DARPA Information Survivability Conference and Exposition II, pp. 329-342, 2001.
Honeywell, “Excel Building Supervisor-Integrated R7044 and FS90 Ver. 2.0,” Operator Manual, 70 pages, Apr. 1995.
http://www.tcsbasys.com/products/superstats.asp, TCS/Basys Controls: Where Buildings Connect With Business, 2 pages, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1009.asp, TCS/Basys Controls: Where Buildings Connect With Business, 1 page, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1017a.asp, TCS/Basys Controls: Where Buildings Connect With Business, 1 page, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1017n.asp, TCS/Basys Controls: Where Buildings Connect With Business, 1 page, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1020nseries.asp, TCS/Basys Controls: Where Buildings Connect With Business, 2 pages, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1020series.asp, TCS/Basys Controls: Where Buildings Connect With Business, 2 pages, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1022.asp, TCS/Basys Controls: Where Buildings Connect With Business, 2 pages, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1024.asp, TCS/Basys Controls: Where Buildings Connect With Business, 2 pages, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1030series.asp, TCS/Basys Controls: Where Buildings Connect With Business, 2 pages, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1033.asp, TCS/Basys Controls: Where Buildings Connect With Business, 2 pages, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1035.asp, TCS/Basys Controls: Where Buildings Connect With Business, 2 pages, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1041.asp, TCS/Basys Controls: Where Buildings Connect With Business, 1 page, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1050series.asp, TCS/Basys Controls: Where Buildings Connect With Business, 2 pages, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1051.asp, TCS/Basys Controls: Where Buildings Connect With Business, 2 pages, printed Aug. 26, 2003.
http://www.tcsbasys.com/products/sz1053.asp, TCS/Basys Controls: Where Buildings Connect With Business, 2 pages, printed Aug. 26, 2003.
http://wwww.tcsbasys.com/products/sz1031.asp, TCS/Basys Controls: Where Buildings Connect With Business, 2 pages, printed Aug. 26, 2003.
Trane, “System Programming, Tracer Summit Version 14, BMTW-SVP01D-EN,” 623 pages, 2002.
Smith, “Working with Checkboxes in the WPF TreeView,” Code Project, available at http://www.codeproject.com/Articles/28306/Working-with-Checkboxes-in-the-WPF-TreeView?display=print, 8 pages, printed Dec. 29, 2015.
Related Publications (1)
Number Date Country
20130194430 A1 Aug 2013 US