throbber
(12) United States Patent
`US 6,513,058 B2
`(10) Patent N0.:
`Brown et al.
`
`@5)I)au:0flfinent: Jan.28,2003
`
`U5006513058B2
`
`(54)
`
`(75)
`
`(73)
`
`(21)
`
`(22)
`
`(65)
`
`(63)
`
`(60)
`
`(51)
`(52)
`
`(58)
`
`(56)
`
`DISTRIBUTION OF MOTION CONTROL
`COMMANDS OVER A NETWORK
`
`4,840,602 A
`
`6/1989 Rose
`
`Inventors: David W. Brown; Jay S. Clark, both
`of Bingen, WA (US)
`
`Assignee: Roy-G-Biv Corporation, Bingen, WA
`(US)
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`Appl. No.: 09/795,777
`
`Filed:
`
`Feb. 27, 2001
`Prior Publication Data
`
`US 2001/0032268 A1 Oct. 18, 2001
`
`Related US. Application Data
`
`Continuation of application No. 09/205,627, filed on Dec. 3,
`1998, now Pat. No. 6,209,037, and a continuation—in—part of
`application No. 09/191,981, filed on NOV. 13, 1998, which is
`a continuation of application No. 08/656,421, filed on May
`30, 1996, now Pat. No. 5,867,385, which is a continuation—
`in—part of application No. 08/454,736, filed on May 30,
`1995, now Pat. No. 5,691,897.
`Provisional application No. 60/067,466, filed on Dec. 4,
`1997.
`
`Int. Cl.7 ................................................ G06F 15/16
`US. Cl.
`........................... 709/201; 709/230; 700/1;
`700/19; 700/56
`Field of Search ................................. 709/201, 230;
`700/1, 19, 56
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,159,417 A
`4,418,381 A
`4,531,182 A
`4,713,808 A
`4,767,334 A
`4,809,335 A
`
`6/1979 Rubincam
`11/1983 Molusis et al.
`7/1985 Hyatt
`12/1987 Gaskill
`8/1988 Thorne et al.
`2/1989 Rumsy
`
`(List continued on next page.)
`FOREIGN PATENT DOCUMENTS
`
`EP
`EP
`EP
`EP
`EP
`GB
`JP
`W0
`W0
`W0
`
`0442676 A2
`0 281 427 B1
`0508912 A1
`0 583 908 A2
`0245826 A1
`2 224 896 A
`59 228473
`WO 92/11731
`WO 93/08654
`WO 95/07504
`
`8/1991
`8/1992
`10/1992
`2/1994
`9/1998
`12/1991
`6/1983
`2/1992
`4/1993
`3/1995
`
`OTHER PUBLICATIONS
`
`WOSA Backgrounder: Delivering Enterprise Services to the
`Windows—based Desktop, Jul. 1993, Microsoft Develop-
`ment Library; pp. 1—19.
`WOSA INSIDE WINDOWS 95; pp. 348—351.
`Software Products for Industrial Aurtomation, ICONICS; 6
`pages.
`
`(List continued on next page.)
`
`Primary Examiner—Krisna Lim
`(74) Attorney, Agent, or Firm—Michael R. Schacht
`
`(57)
`
`ABSTRACT
`
`A system for allowing an application program to commu-
`nicate with any one of a group of supported hardware
`devices comprising a software system operating on at least
`one workstation and a network communications protocol.
`The software system includes a control command generating
`module for generating control commands based on compo-
`nent functions of an application program, component code
`associated with the component functions, and the driver
`code associated with software drivers associated with the
`
`hardware devices. The network communication protocol
`allows the control commands to be communicated from the
`
`control command generating module to at least one of the
`supported hardware devices over the network.
`
`5 Claims, 68 Drawing Sheets
`
`
`
`g""'"\'_E3{EELXBEZ'IEATI
`
`‘
`VlSLJAL BASIC APP.
`C++APPLICATlON
`
`i______________________________________
`
`IXMcixxxAPl
`
`32
`
`-!Unknown
`DRIVER
`ADM/N.
`
`lXMCixXXAPl
`
`34
`
`. IUnknown
`
`MOTION ._
`
`
`COMPONENT
`
`
`o ILlnknown
`IXMC_UDxxxSP
`DRlVER
`
`STUB
`
`36
`o [Unknown
`
`
`\XMCJXXSP!
`
`30
`
`
`A
`f REGISTRYS
`
`
`ABB Inc.
`
`EXHIBIT 1023
`
`Page 1 of 97
`
`Page 1 of 97
`
`

`

`US 6,513,058 132
`
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`7/1989 Baer
`4,846,693 A
`8/1989 Fernandez
`4,855,725 A
`8/1989 Rose
`4,857,030 A
`12/1989 Gellerman
`4,887,966 A
`1/1990 Gaskill
`4,897,835 A
`6/1990 Schwane et al.
`4,937,737 A
`3/1992 Sekiguchi
`5,095,445 A
`6/1992 Driscoll et al.
`5,120,065 A
`6/1992 Wolfson et al.
`5,126,932 A
`12/1992 Onarheim et al.
`5,168,441 A
`12/1992 Adams et al.
`5,175,817 A
`9/1993 Hubert
`5,245,703 A
`9/1993 Judd et al.
`5,247,650 A
`12/1994 Bro
`5,377,258 A
`2/1995 Talati
`5,390,330 A
`2/1995 Wilson et al.
`5,392,207 A
`3/1995 Lowery
`5,402,518 A
`5/1995 Endo
`5,412,757 A
`9/1995 Dunaway
`5,450,079 A
`9/1995 Wright et al.
`5,453,933 A
`11/1995 Strickland et al.
`5,465,215 A
`2/1996 Bondy et al.
`5,491,813 A
`2/1996 Owens
`5,493,281 A
`1/1997 Bro
`5,596,994 A
`2/1997 Chui et al.
`5,600,373 A
`2/1997 Shaw et al.
`5,604,843 A
`3/1997 Lebensfeld et al.
`5,607,336 A
`3/1997 Kawakami et al.
`5,608,894 A
`4/1997 Stechmann et al.
`5,617,528 A
`6/1997 Tong
`5,636,994 A
`7/1997 Aldred et al.
`5,652,866 A
`8/1997 Jani
`5,655,945 A
`9/1997 Kohiyama et al.
`5,666,161 A
`9/1997 Yasuhara et al.
`5,670,992 A
`5,691,897 A * 11/1997 Brown et al.
`............ 318/568.1
`5,707,289 A
`1/1998 Watanabe et al.
`5,733,131 A
`3/1998 Park
`5,737,523 A
`4/1998 Callaghan et al.
`5,746,602 A
`5/1998 Kikinis
`5,752,880 A
`5/1998 Gabai et al.
`5,764,155 A
`6/1998 Kertesz et al.
`5,790,178 A
`8/1998 Shibata et al.
`5,800,268 A
`9/1998 Molnick
`5,801,946 A
`9/1998 Nissen et al.
`5,818,537 A
`10/1998 Enokida et al.
`5,821,987 A
`10/1998 Larson
`5,822,207 A
`10/1998 Hazama et al.
`5,828,575 A
`10/1998 Sakai
`5,846,132 A
`12/1998 Junkin
`5,852,441 A
`12/1998 Nakajima et al.
`5,855,483 A
`1/1999 Collins et al.
`5,867,385 A *
`2/1999 Brown et al.
`5,873,765 A
`2/1999 Rifl<in et al.
`5,890,963 A
`4/1999 Yen
`5,907,704 A
`5/1999 Gudmundson et al.
`5,907,831 A
`5/1999 Lotvin et al.
`5,914,876 A
`6/1999 Hirai
`5,920,476 A
`7/1999 Hennessey et al.
`5,924,013 A
`7/1999 Guido et al.
`5,960,085 A
`9/1999 De La Huerga
`5,977,951 A
`11/1999 Danieli et al.
`6,078,968 A
`6/2000 Lo et al.
`6,101,425 A *
`8/2000 Govindaraj et al.
`6,139,177 A
`10/2000 Venkatraman et al.
`6,144,895 A
`11/2000 Govindarai et al.
`6,216,173 B1
`4/2001 Jones et al.
`OTHER PUBLICATIONS
`
`.................. 700/1
`
`........ 700/104
`
`WEB 3.0 Products Brochure, Trihedral Engineering Ltd.
`(1994); 6 pages.
`
`The Complete, Computer—Based Automation T001 (IGSS)
`Seven Technologies A/S; 6 pages.
`Oregon Micro Systems Product Guide: pp. 1—20.
`AIMAX—WIN Product Brochure, TA Engineering C0., Inc.;
`8 pages.
`XANALOG Model NL—SIM Product Brochure, XANA-
`LOG, 4 pages.
`EXperTune PID Tuning Software, Gerry Engineering S0ft-
`ware; 6 pages.
`PMAC Product Catalog, p. 43.
`Paragon TNT Product Brochure, Intec Controls c0rp.; 6
`pages.
`Aer0techM0ti0n Control Product Guide; pp. 233—234.
`OpenBatch Product Brief, PID, Inc.; 6 pages.
`PC/DSP—Series Motion Controller C Programming Guide;
`pp. 1—54.
`FIX Product Brochure, Intellution (1994); 6 pages.
`Precision Motion Controls Product Guide; p. 17.
`C0mpum0t0r Digiplan (1993—94) Catalog pp. 10—11.
`Sue Chen, J0nath0n Lin; “Computer Numerical Control:
`Essentials in Programming and Networking”, Part 5, Chap-
`ter 27, pp. 824—848.
`Pritschow et al., “Open System Controllers: Challenge for
`the Future of the Machine T0001 Industry”; pub. Jan. 15,
`1993; pp. 449—452.
`William E. F0rd; “What Is an Open Architecture R0b0t
`Controller” pub. Aug. 16, 1994; pp. 27—32.
`Marcos et al., “A New Solution for Integrating Control
`Devices Involved in Computer—Integrated Manufacturing”;
`pub. Sep. 02,1996.
`Chu and Wang; “Development of a Practical SFC System for
`CNC Machine Shop”; pub. 1994; pp. 362—367.
`Microsoft; “The Microsoft Object Technology Strategy-
`”pub. Mar. 1994; pp. 1—33.
`Microsoft; “Open Systems: Technology, Leadership, and
`Collaboration”; pub. Mar. 1994; pp. 1—15.
`Microsoft; Microsoft OLE Today and Tomorrow: Technol-
`ogy Overview; pub. Dec. 1993; pp. 1—9.
`Microsoft; “Object
`linking and Embedding 2.0 Back-
`grounder”; pub. Sep. 1993, pp. 1—15.
`Robert Anderson; “SMART: A Modular Architecture for
`Robotics and Tele0perati0n”; pub. 1993; pp. 416—421.
`Pr0ct0r et al., “Validation of Standard Interfaces from a
`Machine Control”; pub. 1996; pp. 659—664.
`Altintas et al., “Design and Analysis of a M0dular CNC
`System”; pub. Mar. 4—1990; pp. 305—316.
`Wright et al.; “Open Architecture Controllers”; pub. Jun.
`1997; pp. 60—64.
`Lutz et al.; “OSACA—The Vendor—Neutral C0ntr01 Archi-
`tecture”; pub. Dec. 1997; pp. 247—256.
`Morales et al.; “A Generalised S0ftware Control System for
`Industrial R0b0ts”; pub. 1998; pp. 411—416.
`Feng et al.; “Distributed Control of a Multiple—Tethered
`M0gile R0b0t System for Highway Maintenance and Con-
`structi0n”; pub Nov. 1997; pp. 383—392.
`Fedr0witz; “IRL—Based Expansion of the Commonly Used
`High—Levle Language C for Robot Pr0gramming:” pub.
`Oct. 1995; 5 pages.
`Szab0 et al.; “Validation Results of Specifications for
`Motion Control Interoperability”; pub. 1997; pp. 166—167.
`Chang et al.; “Development and Implementation of an
`Applciati0n Programming Interface for PC/DSP—based
`Motion Control System”; pub. 1998; pp. 94—105.
`
`Page 2 0f 97
`
`Page 2 of 97
`
`

`

`US 6,513,058 132
`Page 3
`
`Michaloski et 1a.; “A Framework for Component—base CNC
`Machines” pub. Nov. 1998; pp. 132—143.
`Bouzouia et al.; “A Three—layer Workcell Control Architec-
`ture Design”; pub. May 1998; pp. 1185—1191.
`Muir et al.; “Mechatronic Objects for Real—time Control
`Software Development”; pub. Nov. 1998; pp. 251—265.
`McGraW et al.; “A Friendly Command, Control, and Infor-
`mation System for Astronomy”; pub. 1996; pp. 356—367.
`Jackman; “Robotic Control Using Sequential Function
`Charts”; pub. 1996; pp. 120—128.
`Leu et al.; “A Telemanufacturing Workcell over the Inter-
`net”, pub. Nov. 1998; pp. 230—237.
`“Requirements of Open Modular Architecture Controllers
`for Applications in the Automotive Industry ”; pub. Dec. 13,
`1994; pp. 1—13.
`Sperling; “Designing Applications for an OSACA Control”;
`pub. Nov. 16, 1997; 5 pages.
`
`Lutz et al.; “OSACA: The Vendor—neutral Control Archi-
`tecture”; pub. 1997; 10 pages.
`Sperling et al.; “Enabling Open Control Systems: An Intro-
`duction to the OSACA System Platform”; pub. May 1996;
`pp. 1—8.
`Open, Modular Architecture Controls at GM Powertrain;
`pub. May 14, 1996; pp. 1—33.
`“Technologies Enabling Agile Manufacturing (TEAM)
`Intelligent Closed Loop Processing”; pub. Jan. 11, 1996; 30
`pages.
`
`“Nemi Low—cost Controller Project” pub. Dec. 1996; total
`pages 392.
`Protoctor et al., “Open Architecture Controllers”; pub. Jun.
`1997, pp. 60—64.
`
`* cited by examiner
`
`Page 3 of 97
`
`Page 3 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 1 0f 68
`
`US 6,513,058 B2
`
`FIG.
`
`IA
`
`TO/FROMFIG.IB
`
`DEAR‘ENSEIST
`
`- UNKNOWN
`
`MOTION
`STANDARD OLE INTERFACES -
`ggwggg—
`CORE INTERFACES -
`EXTENDED INTERFACES - HARDWARE
`EXTENDED u: INTERFACES -
`A
`CODE GENERATION INTERFACES -
`GU G
`VENDOR SPECIFIC INTERFACES
`
`TO/FROM FIG.
`
`ID
`
`Page 4 of 97
`
`Page 4 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 2 0f 68
`
`US 6,513,058 B2
`
`FIG.
`
`IB
`
`STANDARD OLE
`
`4O
`
`DDE SERVER
`
`IUKNOWN
`
`
`' UNKNOWN
`38
`
`
`
`DRIVER
`INTERFACES
`ADMINISTRATOR
`DRIVER
`
`
`
`
`- CUSTOM OLE
`CPL
`ADM'N
`INTERFACES
`
`
`
`
`
`
`32.
`
`
`STANDARD OLE INTERFACES
`
`GENRALINTERFACES
`MOTTON
`
`
`CODE GENERATION INTERFACES-
`CONTROL
`
`
`
`DIAGNOSHC INTERFACES -
`COMPONENT
`
`
`
`
`
`TO/FROMFIG.IA
`
`35
`
`TO/FROMFIG.IC
`
`IUNKNOWN
`
`
`STANDARD OLE INTERFACES '
`,
`MOTION
`EXTENDED INTERFACES '
`CONTROL
`
`
`DRIVER STUB
`EXTENDED UI INTERFACES
`
`
`
`
`36
`
`i
`
`.UNKNOWN
`MOTION
`CONTROL
`STANDARD OLE INTERFACES
`DRIVERB
`CORE INTERFACES
`
`EXTENDED INTERFACES - HARDWARE
`
`EXTENDED UI INTERFACES -
`
`
`CODE GENERATION INTERFACES -
`LANGBUAGE
`
`
`VENDOR SPECIFIC INTERFACES - DEPENDENT
`
`
`30b
`
`
`
`
`
`
`TO/ FROM FIG.
`
`IE
`
`Page 5 of 97
`
`Page 5 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 3 0f 68
`
`US 6,513,058 B2
`
`FIG.
`
`IC
`
`TO/FROMFIG.IB
`
`STANDARD OLE INTERFACES
`
`MOTION
`
`30c
`
`x
`
`E TEIBEEIIFAREE 32.0220
`EXTENDED UI INTERFACES HARDg’I/ARE
`CODE GENERATION INTERFACES - LANGUAGE
`VENDOR SPECIFIC INTERFACES - DEPENDENT
`
`.
`
`TO/ FROM FIG. IF
`
`Page 6 of 97
`
`Page 6 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 4 0f 68
`
`US 6,513,058 B2
`
`FIG.
`
`ID
`
`TO/FROM FIG.
`
`IA
`
`IUNKNOWN
`
`
`
`IUNKNOWN
`
`
`
`
`
` ISTREAM MOTION CONTROL
`TEXT FILE
`
`
`
`
`STREAM
`ISTREAM - MOTION CONTROL
`
`
`TEXT
`PC BUS
`
`
`COMMUNICATION
`STREAM
`
`
`
`PROTOCOL
`PC BUS
`
`
`COMMUNICATION
`
`
`OUTPUT FILE
`
`PROTOCOL
`
`
` TO/FROMFIG.IE
`PERSONAL COMPUTER HARDWARE Infill!”
`\ HARDWARE
`
`l
`MECHANICAL
`I80
`
`PERSONAL COMPUTER HARDWARE BUS
`
`
`
`|"_-_
`
`I‘
`
`CONTROLLER A
`
`SYSTEM A
`
`200
`
`
`
`
`
`MOTION CONTROL
`DEVICE A
`
`Page 7 Of 97
`
`Page 7 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 5 0f 68
`
`US 6,513,058 B2
`
`FIG.
`
`IE
`
`TO/FROM FIG.
`
`IB
`
`IUNKNOWN
`
`ISTREAM - MOTION CONTROL
`PC BUS
`STREAM
`PC BUS
`COMMUNICATION
`PROTOCOL
`
`28b
`
`TO/FROMFIG.ID
`
`|6b
`
`l8b
`
`20b
`
`r—-_
`IIIIllllll
`
`
`
`
`
`HARDWARE
`CONTROLLER B -
`
`
`I
`MECHANICAL
`
`
`
`SYSTEM A
`
`MOTION CONTROL
`DEVICE B
`
`TO/FROMFIG.IF
`
`Page 8 of 97
`
`Page 8 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 6 0f 68
`
`US 6,513,058 B2
`
`FIG. IF
`
`TO/ FROM FIG.
`
`IC
`
`IUN KNOWN
`
`ISTREAM - MOTION CONTROL
`HARDWARE C
`PC BUS STREAM
`3%rmLPcaus
`COMMUNKAHON
`PROTOCOLFOR
`HARDWAREC
`
`28c
`
`TO/FROMFIG.IE
`
`I6c
`
`I8c
`
`20c
`
`HARDWARE
`
`-—I4
`IIIIIIIIIII
`|
`ll Was-q
`
`
`l
`CONTROLLER C -
`I
`MECHANICAL
`
`
`
`SYSTEM A
`
`MOTION CONTROL
`DEVICE C
`
`Page 9 of 97
`
`Page 9 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 7 0f 68
`
`US 6,513,058 B2
`
`i
`
`EXCEL APPLICATION
`
`VISUAL BASIC APP.
`
`C++ APPLICATION
`
`32
`
`
`I XMC_XXXAPI
`
`
`
`. lUnknown
`
`
`
`MOTION
`
`COMPONENT
`
`IXMC_XXXAPI .
`
`34
`
`IXMC_UDxxxSP
`
`.IUnknown
`
`36
`
`IXMC_XXXSPI
`
`DRIVER
`
`30
`
`0 !Unknown
`
`DRIVER
`
`ADMIN.
`
`
`
`S REGISTRY;
`{9‘ A
`
`5
`.ILannown
`
`DRIVER
`STUB
`
`Page 10 of 97
`
`Page 10 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 8 0f 68
`
`US 6,513,058 B2
`
`FIG_ 3
`
`26
`
`32
`
`|XMC__XXXAP| o
`
`
`
`
`
`' lUnknown
`
`DRIVER
`ADMIN.
`
`
`
`EXCEL APPLICATION
`
`VISUAL BASIC APP.
`
`C++ APPLICATION
`
`'
`
`
`
`
`
` CCmpntDisp
`
`
`
`CDrivengr
`
`CUnitMapper
`
`CDriverAdmin
`
`IXMC_UDXXXSP| o
`
`36
`
`' lUnknown
`
`DRIVER
`STUB
`
`' lUnknown
`
`IXMC_xxxSP| o
`
`DRIVER
`
`30
`
`Page 11 0f 97
`
`Page 11 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 9 0f 68
`
`US 6,513,058 B2
`
`FIG 4
`
`32
`
`..|Unknown
`
`|XMC__XXXAPI a
`
`ADMIN.
`
`DRIVER
`
`
`
` o lUnknown
`
`IXMC_UDxxxSP| a
`
`DRIVER
`
`STUB
`
`36
`
`.lUnknown
`
`IXMC_XXXSP| O
`
`DRIVER
`
`30
`
`Page 12 0f 97
`
`Page 12 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 10 0f 68
`
`US 6,513,058 B2
`
`FIG. 5
`
`EXCEL APPLICATION
`
`VISUAL BASIC APP.
`
`'
`
`
`
`C++ APPLICATION
`
`K .
`
`lUnknown
`
`lXMC_xxxSP| .
`
`DRIVER
`
`
`
`30
`
`
`
`
`Page 13 of 97
`
`Page 13 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 11 0f 68
`
`US 6,513,058 B2
`
`FIG. 6
`
`E
`
`VISUAL BASIC APP.
`
`C++ APPLICATION
`
`EXCEL APPLICATION
`
`
`
`PCS Measurements
`. lUnknown
`
`
`
`
`
`@ @
`.h
`MCS
`Measurements
`
`IXMC_UDxxxSP|
`
`lUnknown
`
`'
`DRIVER
`STUB
`
`36
`
`.lUnknown
`
`IXMC_xxxSP| .
`
`DRIVER
`
`30
`
`Page 14 0f 97
`
`Page 14 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 12 0f 68
`
`US 6,513,058 B2
`
`FIG. 7
`
`EXCEL APPLICATION
`
`VISUAL BASIC APP.
`
`
`
`I C++ APPLICATION
`
`0
`
`o lUnknown
`
`
`
`
`
`IXMC_U DxxxSPlo
`
`36
`
`DRIVER
`
`STUB
`
`
`
`Page 15 of 97
`
`Page 15 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 13 0f 68
`
`US 6,513,058 B2
`
`FIG. 8
`
`VISUAL BASIC APP.
`
`
`
`i C++ APPLICATION
`
`. IUnknown
`
`,:
`
`.....
`
`
`
`
`IXMC_xxxAP|o
`MOTION
`
`
`
`OMPONENT
`
`
`1.. I.
`,,,,,,
`34 .........
`.....
`.....
`....
`......
`.....
`o
`'
`.....
`'-
`.-
`.......
`.
`'
`.....
`.-
`.I
`......
`
`.-
`
`..
`
`
`
`
`CDriver
`
`—
`
`
`
`
`o lUnknown
`
`IXMC_UDxxxSP| .
`
`
`
`36
`
`DRIVER
`
`STUB
`
`lXMC_xxxSPI .
`
`
`
`
`30
`
`. IUnknown
`
`DRIVER
`
`
`
`Page 16 of 97
`
`Page 16 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 14 0f 68
`
`US 6,513,058 B2
`
`FIG. 9
`
`CComponentOjbect
`
`
`
`lUnknown
`
`
`
`
`
`Standard OLE 2.0 Interfac
`
`
`
`
`
`ICIassFactory
`
`IDispatch
`
`Standard OLE 2.0 Interface
`
`Standard OLE 2.0 Interface
`
`
`
`
`
`
`
`
`IXMC_API_1 ,
`
`XMCAPI Interface #2
`
`
`
`
`
`
`
`
`Page 17 of 97
`
`XMCAPI Interface #1
`
`O O O
`
`|XMC_API_2 .
`
`IXMC_API_n ,
`
`XMCAPI Interface #n
`
`API Interfaces -----------------------
`
`Page 17 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 15 0f 68
`
`US 6,513,058 B2
`
`FIG. 10
`
`CDriverSPlTable
`
`I ' V
`
`'
`
`'
`
`'
`
`‘
`
`'_INFO struct
`
`
`
`DRVEXT Xn INTERFACEle enum
`
`IXMC DrvExt_X1
`
`
`
` IXMC DrvExt_X2
`
`
`
`
`
`
`o O O
`
`
`
`
`
`lXMC_DrvExt_Xn
`
`DRVEXT_INTERFACE_INFO struct
`
`DRVEXT Xn METHODIDs enum
`
` Methodlnfo 1
`
`Methodlnfo_2
`
`O O O
`
`Methodlnfo_n
`
`DRVEXT_METHOD_INFO struct
`
`XMC_SU P PORTTYPE m__st;
`
`CString
`
`m_strName;
`
`LPFNDRVEXT
`
`m_panethod;
`
`Page 18 of 97
`
`Page 18 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 16 0f 68
`
`US 6,513,058 B2
`
`FIG. 11
`
`lXMC__xxxAPI
`
`34
`
`. lUnknown
`
`. lUnknown
`
`DRIVER
`
`ADMIN.
`
`
`
`
`
`
`. lUnknown
`
`32
`
`
`
`
`
`lXMC__xxxAPI
`MOTION
`
`
`COMPONENT
`
`
`
`|XMC_xxxSP|
`
`42
`
`DRIVER
`
`
`
`. lUnknown
`
`lXMC_xxxUDSP|
`
`STREAM
`
`
`
`
`28
`
`Page 19 of 97
`
`Page 19 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 17 0f 68
`
`US 6,513,058 B2
`
`|XMC_xxxAPl
`
`. lUnknown
`
`c lUnknown
`
`DRIVER
`
`ADMIN.
`
`FIG. 12
`
` |XMC_xxxAPl
`MOTION
`
`COMPONENT
`
`
`
`
`DRIVER
`IXMC_xxxSPI
`
`. lUnknown
`
`‘III
`
`III:
`
`'..-
`
`II
`
`......
`
`.....
`
`.......
`
`..-u
`
`.....
`
`-----
`
`.1.-
`
`.-
`
`III'
`
`...............................—-._.
`
`CCommandMg
`
`CCommand US
`
`CResponseList
`
`
`I
`.
`
`
`CStrea Hrlerlsp
`
`
`
`
`
`
`
`
`
`
`
`. lUnknown
`
`lXMC_xxxUDSP|
`
`STREAM
`
`Page 20 of 97
`
`Page 20 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 18 0f 68
`
`US 6,513,058 B2
`
`FIG. 13
`
`0 lUnknown
`
`FIG'14
`
`olUnknown
`
`lXMC_xxxAPI
`
`no
`
`u-
`
`
`
`.n
`
`-----
`
`—-_"""
`CStreamMg ‘
`0
`C
`Driv-rDisp
`
`
`
`
`
`
`
`
`Page 21 0f 97
`
`Page 21 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 19 0f 68
`
`US 6,513,058 B2
`
`FIG. 15
`
`. lUnknown
`
`|XMC_xxxAP|
`
`
`
`DRIVER
`
`ADMIN.
`
`Stream CLSID
`
`. lUnknown
`
`FIG. 16
`
`.lUnknown
`
`
`
`
`|XMC_xxxAPI
`
`IXMC_XXXUDSP|
`
`STREAM
`
`Page 22 0f 97
`
`Page 22 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 20 0f 68
`
`US 6,513,058 B2
`
`FIG-17
`
`lXMC_xxxAP|
`
`.IUnknown
`
`
`DRIVER
`
`ADMIN.
`
`o lUnknown
`
`
`
`u
`
`.......
`
`......
`
`u-
`
`n-
`
`.......
`
`.....
`
`......
`
`.....
`
`.-
`
`u.-
`
`......
`
`.-
`
`.
`......
`
`,u
`
`u
`
`FIG. 18
`
`
`
`|XMC__xxxAPI
`
`
`
`CStrea Mg
`
`0
`CCommandMg
`
`
`CDrIv-rDIsp
`‘9
`
`
`
`
`
`
`Page 23 of 97
`
`Page 23 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 21 0f 68
`
`US 6,513,058 B2
`
`FIG. 19
`
`lXMC_xxxAPI
`
`o lUnknown
`
`
`
`
`
`MOTION
`
`COMPONENT
`
`
`
`
`.---
`
`.-.-
`
`II!-
`
`nnnnn
`
`.-
`
`nnnnnnnn
`
`nu.-
`
`u..-
`
`.n--
`
`n-I‘
`
`,.-n
`
`.unn
`
`1-:-
`
`...n
`
`I...
`
`u..-
`
`-----
`
`.1.-
`
`.....
`
`.u-u
`
`o lUnknown
`
`.
`
`
`
`
`
`P
`
`CDrlerIs
`
`9‘ CCommandMg I9
`
`
`
`
`
` 9
`
`
`
`|XMC_xxxUDSP|
`
`STREAM
`
`
`
`
`
`Page 24 0f 97
`
`CStrea Mo:
`
`
`
`Page 24 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 22 0f 68
`
`US 6,513,058 B2
`
`FIG. 20
`
`. lUnknown
`
`lXMC_xxxAP|
`
`MOTION
`
`COMPONENT
`
`
`
`
`. lUnknown
`
`
`
`|XMC_XXXUDSPI
`
`‘
`
`STREAM
`
`
`
`
`
`Page 25 of 97
`
`Page 25 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 23 0f 68
`
`US 6,513,058 B2
`
`FIG. 21
`
`
`
`ICIassFactory .
`
`
`
`. IUnknown
`
`
`
`Standard OLE 2.0 Interfac-
`
`Standard OLE 2.0 Interface
`
` SPI Core Interfaces ---------------------
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`IXMC_Derore_
`
`
`StaticState
`
`
`|XMC_Derore_
`
`DynamicState O
`
`XMCSPI Core Interface #3
`
`O 8
`
`XMCSPI Core Interface #n
`
`SPI Extended Interfaces -------------
`
`
`
`
`IXMC_Derore_
`SPI_3
`
`|XMC_Derore_
`SPl_n
`
`
`
`
`
`
`
`
`
`
`
`
`IXMC_DrvExt_
`StreamMgmt a
`
`IXMC_DrvExt_
`SPI_2
`
`IXMC__DrvExt_
`SPI_n
`
`
`
`
`
`
`
`
`Add, Remove, Enable,
`
`XMCSPI Extended Interface #2
`
`o 8
`
`XMCSPI Extended Interface #n
`
`Page 26 of 97
`
`Page 26 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 24 0f 68
`
`US 6,513,058 B2
`
`FIG. 22
`
`IXMC_xxxAP| .
`
`'IUnknown
`
`'lUnknown
`
`DRIVER
`ADMIN.
`
`IXMC_XXXSP|.
`
`DRIVER
`
`' lUnknown
`
`SPI
`
`IXMC_xxxUD
`
`STREAM
`
`. I MONITOR
`
`DBG
`
`_ F
`
`ILE
`
`D VICE
`
`D VICE
`
`DRIVER
`(WinNT)
`
`DRIVER
`(Win95)
`
`SERIAL |/O
`
`Page 27 of 97
`
`Page 27 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 25 0f 68
`
`US 6,513,058 B2
`
`FIG. 23
`
`IXMC_xxxSPI .
`
`DRIVER
`
`lXMC_xxxAP|.
`
`' lUnknown
`
`'IUnknown
`
`DRIVER
`ADMIN.
`
`
`
`
`
`0 lUnknown
`
`
`
`CStreamDisp
`
`CRegistryMgr
`
`DBG
`
`MONITOR
`
`CDbgMonIOHAL
`
`CTextFiIeIOHAL _
`
`CPCBUSIOHAL
`
`CSeriaIIOHAL
`
`FILE
`
`DEVICE
`
`DEVICE
`
`DRIVER
`(WInNT)
`
`DRIVER
`(Wm95)
`
`SERIAL I/O
`
`Page 28 of 97
`
`Page 28 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 26 0f 68
`
`US 6,513,058 B2
`
`FIG. 24
`
`' lUnknown
`
`lXMC_xxxAP| .
`
`DRIVER
`ADMIN.
`
`0 lUnknown
`
`DEVICE
`
`DRIVER
`
`(WInNT)
`
`DRIVER 5
`
`DEVICE
`
`(Wm95)
`
`SERIAL I/O
`
`Page 29 of 97
`
`Page 29 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 27 0f 68
`
`US 6,513,058 B2
`
`FIG. 25
`
`' IUnknown
`
`
`
`
`IXMC_xxxAP| .
`
`DRIVER
`
`ADMIN.
`
`' IUnknown
`
`
`
`FIG 26
`
`0 IUnknown
`
`
`
`Page 30 of 97
`
`Page 30 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 28 0f 68
`
`US 6,513,058 B2
`
`FIG. 27
`
`' lUnknown
`
`
`DRIVER
`IXMC_xxxAP| .
`ADMIN.
`
`0 [Unknown
`
`
`
`CSerialIOHAL
`
`CPCBuleHAL
`
`Page 31 of 97
`
`Page 31 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 29 0f 68
`
`US 6,513,058 B2
`
`FIG. 29
`
`' lUnknown
`
`DRIVER
`
`lXMC_xxxSPl .
`o 0 lUnknown
`
`
`
`DEVICE
`
`DEVICE
`
`fi
`DRIVER
`DRIVER
`________@
`
`(WinNT)
`
`(Win95)
`
`SERIAL I/O
`
`FIARDWARE DEVICES
`
`Page 32 of 97
`
`Page 32 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 30 0f 68
`
`US 6,513,058 B2
`
`FIG_ 30
`
`0 lUnknown
`
`DRIVER
`
`IXMC_xxxSP| .
`o 0 lUnknown
`
`MONITOR
`
`DBG
`
`
`
`
`
`DEVICE
`
`DEVICE
`
`DRIVER
`(WinNT)
`
`DRIVER
`(Win95)
`
`@
`
`e
`
`FIARDWARE DEVICES
`
`SERIALI/O
`
`I;
`
`Page 33 of 97
`
`Page 33 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 31 0f 68
`
`US 6,513,058 B2
`
`FIG. 31
`
`- lUnknown
`
`DRIVER
`
`IXMC__xxxSPI.
`o ' lUnknown
`
`
`
`DEVICE
`
`(WinNT)
`
`DRIVER
`@
`
`DEVICE
`
`(Win95)
`
`DRIVER 5
`3
`é?
`
`SERIAL I/O
`
`HARDWARE DEVICES
`
`Page 34 of 97
`
`Page 34 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 32 0f 68
`
`US 6,513,058 B2
`
`FIG_ 32
`
`0 IUnknown
`
`DRIVER
`
`IXMC_xxxSP|o
`o 'lUnknown
`
`
`
`DEVICE
`
`(WinNT)
`
`DRIVER
`(a
`
`DEVICE
`
`(Win95)
`
`DRIVER
`a
`
`HARDWARE DEVICES
`
`5)
`0
`
`SERIALI/O
`
`Page 35 of 97
`
`Page 35 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 33 0f 68
`
`US 6,513,058 B2
`
`FIG. 33
`
`OlUnknown
`
`lClassFactory .
`
`Standard OLE 2.0 Interfac-
`
`ll
`
`Standard OLE 2.0 Interface
`
`SPI - UnDocumented --------------
`
`lXMC_Stream .
`
`Read, Write, Enable, Stat,
`
`|XMC__Stream|nit.
`
`Initialize, Open, Close, Setup,
`
`FIG. 34
`
`. lUnknown
`
`. lUnknown
`
`IXMC_xxxSPl
`
`MOTION
`
`COMPONENT
`
` IXMC__xxxAP|
`
`
`
`
`DRIVER
`|XMC__xxxSP|
`
`
`o lUnknown
`
`Page 36 of 97
`
`Page 36 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 34 0f 68
`
`US 6,513,058 B2
`
`FIG. 35
`
`lXMC_xxxSPl
`
`. IUnknown
`
`
` MOTION
`COMPONENT
`
`
`
`DRIVER
`
`lXMC_xxxAP|
`
`. [Unknown
`
`'0 ~-
`n
`‘
`.......
`..
`I
`a
`.
`n
`‘
`----
`.'
`.
`....
`........
`
`
`
`CSimpleDriver
`
`
`
`
`lXMC_xxxSP|
`DRIVER
`
`
`. IUnknown
`
`Page 37 of 97
`
`Page 37 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 35 0f 68
`
`US 6,513,058 B2
`
`FIG. 36
`
`. IUnknown
` IXMC_xxxAP|
`
`
`MOTION
`
`COMPONENT
`
`
`
`
`
`
`|XMC_xxxSP|
`
`
`
`DRIVER
`
`Page 38 of 97
`
`Page 38 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 36 0f 68
`
`US 6,513,058 B2
`
`FIG. 37
`
`. lUnknown
` |XMC__xxxAP|
`
`
`MOTION
`
`COMPONENT
`
`
`
`
`
`|XMC_xxxSP|
`
`DRIVER
`
`Page 39 of 97
`
`Page 39 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 37 0f 68
`
`US 6,513,058 B2
`
`FIG. 38
`
`. IUnknown
` IXMC_xxxAP|
`
`MOTION
`
`COMPONENT
`
`
`
`DRIVER
`
`STUB
`
`
`
`
`
`
`lXMC_xxxSP|
`
`
`
`DRIVER
`
`Page 40 of 97
`
`Page 40 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 38 0f 68
`
`US 6,513,058 B2
`
`FIG. 39
`
`o IUnknown
`
`Standard OLE 2.0 Interfac
`
`
`
`
`ICIassFactory .
`
`Standard OLE 2.0 Interface
`
`StUb Specific Interfaces -----------
`
`IXMC_DrvStub .
`
`IXMC_DrvExt_
`Sp|_1
`
`IXMC_DrvExt_
`Sp|_2
`
`
`RegisterDriver, UnRegisterDriver
`
`SPI Extended Interfaces -------------
`
`XMCSPI Extended Interface #1
`
`
`
`IXMC_DrvExt_
`XMCSPI Extended Interface #n
`SPI_n
`
`
`XMCSPI Extended Interface #2
`
`Page 41 0f 97
`
`Page 41 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 39 0f 68
`
`US 6,513,058 B2
`
`OIUnknown
`FIG. 40
`
`
`
`
`DRIVER
`MOTION
`IXMC__xxxAPI 0
`ADMIN. CPL
`COMPONEN
`
`
`
`pDrmum
`pDrvlnfo,
`O IUnknown
`pStrmInfoi
`
`
`
`
`DRIVER
`ADMIN.
`
`
`IXMC_xxxAPI 0
`
`0 [Unknown
`
`
`
`0 IUnknown
`
`
`DRIVER IXMC_
`UDxxxSPI
`
`xxxSPl
`
`STREAM
`
`Page 42 0f 97
`
`Page 42 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 40 0f 68
`
`US 6,513,058 B2
`
`FIG. 41
`
`DRIVER
`
`ADMIN. CPL
`
`
`
`0 lUnknown
`
`
`
`IXMC_XXXAPI 0
`MOTION
`
`
`
`COMPONEN
`
`
` pDrVEfium
`
`
`lXMC_xxxAP| o
`
`u
`
`.¢
`
`n-
`
`.n
`
`n
`
`.lu
`
`.I'
`
`.l
`
`.--
`
`n
`
`.-
`
`I...
`
`‘u
`
`,.
`
`.n
`
`.-
`
`_.
`
`.c‘
`
`O lUnknown
`
`
`
`
`DRIVER
`ADMIN.
`
`.....
`
`u..
`
`u
`
`.
`
`.
`
`-.
`
`u
`
`0
`
`a.
`
`n
`
`u
`
`'.
`
`'-
`
`u
`
`I.
`
`c,
`
`z
`
`'n
`
`l
`
`pDrvlnfo,
`pStrmInfoI
`
`
`
`
`
`
`
`_SlmpleDriver#1
`uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
`
`
`
`CSmWeDWm4'-
`
`CSim-_e8tream#n .
`.
`.
`
`................................................ 1'
`
`
`O lUnknown
`
`CDriverA-ominDis
`
`CDriverlnfoMa-
`
`CModuleM-r
`
`
`
`
`
`. u,
`
`
`
`H"
`
`
` o lUnknown
`
`Page 43 of 97
`
`Page 43 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 41 0f 68
`
`US 6,513,058 B2
`
`FIG. 42
`
`DRIVER
`
`ADMIN. CPL o
`
`
`
`0 lUnknown
`
`|XMC_XXXAPI o
`COMPONEN
`
`MOTION
`
`_
`
`.n_.-
`
`.-
`
`--'
`
`.-
`
`,-
`
`.-
`
`""""
`
`.u.-
`
`....
`
`.-
`
`.-
`
`.-
`
`.-
`
`.u.-
`
`CModuIeM-r
`
`CSImpIeDrIver#1
`
`_SimpleDriver#n
`
`
`
`
`
`
`
` o lUnknown
`
`'XMC_ -
`xxxSPI
`
`DRIVER
`
`Page 44 of 97
`
`Page 44 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 42 0f 68
`
`US 6,513,058 B2
`
`FIG. 43
`
`DRIVER
`
`
`
`ADMIN.
`
`CSimpIeDriver #n
`
`
`
`
`ADMIN. CPL
` DRIVERIXMC_xxxAP| 6
`
`
`
`
`CDriverA-minDis- .9I CModuIeMr '3'
`CSimpIeDriver #1 ’I
`
`
`
`
`
`6!. IUnknown
`
`
`IXMC_xxxSP| .
`
`DRIVER
`
`Page 45 of 97
`
`Page 45 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 43 0f 68
`
`US 6,513,058 B2
`
`FIG. 44
`
`DRIVER
`
`ADMIN. CPL
`
`
`
` DriverCLSlD,
`
`0 IUnknown
`
`o \pszStreamFileName
`
`REGISTRY
`
`lXMC_xxxAP| 0
`
`DRIVER
`
`
`
`O IUnknown
`
`0 @olUnknown
`
`DRIVER
`
`IXMC_ .
`
`XXXSPI
`
`IXMC_
`
`UDXXXSPI
`
`STREAM
`
`l
`
`Page 46 of 97
`
`Page 46 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 44 0f 68
`
`US 6,513,058 B2
`
`FIG. 45
`
`
`
`DRIVER
`ADMIN. CPL
`
`0 lUnknown
`
`..n-
`
`.un-
`
`.u.-
`
`.u-
`
`..u
`
`------
`
`.u-
`
`.I!
`
`u:-
`
`I...
`
` .u.
`
`CSimpleDriver #n
`
`
`
`0 lUnknown
`
`
`
`
`
`IXMC__XXXSP| o
`
`DRIVER
`
`Page 47 of 97
`
`Page 47 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 45 0f 68
`
`US 6,513,058 B2
`
`FIG. 46
`
`DRIVER
`
`ADMIN. CPL
`
`
`
`
`
`
`
`0 \idDrv, idStrm, pStrmlnfo
`
`o IUnknown
` DRIVER
`IXMC_xxxAPI O
`
`ADMIN.
`
`
`
`
`
`IXMC_U DXXXSPI .
`
`ClUnknown
`
`
`STREAM ll
`
`Page 48 of 97
`
`Page 48 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 46 0f 68
`
`US 6,513,058 B2
`
`FIG. 47
`
`o IUnknown
`
`
`IXMC_.
`xxxAPl
`COMPONEN
`
`MOTION
`
`
`
`a IUnknown
`
`DRIVER
`
`ADMIN.
`
`
`
`CDriverAdminDisu
`
`CModuleM-r
`
`
`
`CSimpleDriver#1_’6
`
`_SimpleDriver.-
`
`
`
`
`OlUnknown
`
`|XMC_xxxSPI o
`
`DRIVER
`
`Page 49 of 97
`
`Page 49 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 47 0f 68
`
`US 6,513,058 B2
`
`FIG. 48
`
`DRIVER
`
`
`ADMIN. CPL o \pDrvlnfoMap
`
`O lUnknown
`
`|XMC_xxxAPl o
`
`DRIVER
`
`0 lUnknown
`
`. CSim-_e8tream#1
`
`cslmmm (53‘1-
`C_imple8tream#n s
`
`0 lUnknown
`
`Page 50 of 97
`
`Page 50 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 48 0f 68
`
`US 6,513,058 B2
`
`FIG. 49
`
`OIUnknown
`
`MOTION
`
`COMPONEN
`
`CSim-IeStream #n
`
`,
`
`CSimoleStream #1
`
`0 0 lUnknown
`
`Q 0 lUnknown
`
`DRIVER
`
`IXMC_ .
`
`XXXSPI
`
`IXMC_ o
`
`UDXXXSPI
`
`STREAM
`
`|
`
`Page 51 of 97
`
`Page 51 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 49 0f 68
`
`US 6,513,058 B2
`
`FIG. 50
`
`. IUnknown
`
`Standard OLE 2.0 Interfac-
`
`
`
`
`
`ICIassFactory 0
`
`Standard OLE 2.0 Interface
`
`lDiSPatCh 0
`
`Standard OLE 2.0 Interface
`
`IXMC_EnumDN 0
`
`Standard IEnumX OLE 2.0 Interfac
`
`
`
`API Interfaces """"""""""""""""""""
`
`IXMC_
`DrvAdmin
`
`Register, UnRegister, Setup,
`
`.
`EnableLogging,IsLoggingOn,...
`IXMC_
`
`DrvAdminD-g
`
`Page 52 of 97
`
`Page 52 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 50 0f 68
`
`US 6,513,058 B2
`
`FIG. 51
`
`-—
`
`DIALOG
`
`I—
`
`
`mALOG
`
`
`
`
`
`
`
`
`DIALOG
`
`DRIVER
`
`ADMIN. CPL
`
`IXMC_XXXAP| O
`
`BPERATING SYSTEM
`
`0 IUnknown
`
`
`
`
`DRIVER
`
`
`ADMIN.
`
`Page 53 of 97
`
`Page 53 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 51 0f 68
`
`US 6,513,058 B2
`
`-—
`
`DIALOG
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DIALOG
`
`I DriverAd inDl-
`
`u
`
`ull
`
`
`
`Page 54 of 97
`
`Page 54 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 52 0f 68
`
`US 6,513,058 B2
`
`FIG. 53
`.DIALO.G
`
`
` CDriverAd inD lg
`
`
`
`OPERATING SYSTEM
`
`Page 55 of 97
`
`Page 55 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 53 0f 68
`
`US 6,513,058 B2
`
`FIG. 54
`
`DIALOG
`
`
`
`
` ADMIN. CPL
`
`|XMC_xxxAPI a
`DRIVER
`ADM I N.
`
`
`O IUnknown
`
`Page 56 of 97
`
`Page 56 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 54 0f 68
`
`US 6,513,058 B2
`
`
`
`DIALOG
`
`DIALOG
`
`
`
`
`
`.....
`
`.....
`..........
`
`.. n-
`
`nnnnn
`
`..-.
`
`.....
`
`.....
`
`unu-
`
`..--
`
`......
`
`.---
`
`
` ADMIN. CPL
`
`
`IXMC__XxxAPI o
`DRIVER
`ADMIN.
`
`
`O IUnknown
`
`Page 57 of 97
`
`Page 57 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 55 0f 68
`
`US 6,513,058 B2
`
`' FIG. 56
`
`
`
`DIALOG
`
`
`
`FIG. 57
`
`
`
`
`DRIVER ADMIN.‘
`
`DIALOG
`
`DIALOG
`
`
`
`
`
`
` 0
`
`
`
`........
`
`.......
`
`......
`
`..........
`
`“--
`
`-----
`
`......
`
`...........
`
`
`0 IUnknOwn
`
`
`
` ADMIN. CPL
`
`|XMC_xxxAPI o
`DRIVER
`ADMIN.
`
`
`Page 58 of 97
`
`Page 58 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 56 0f 68
`
`US 6,513,058 B2
`
`FIG' 58
`
`
`
`9 IUnknown
`
`LANGUAGE
`
`'IUnknown
`
`MOTION
`|COM_XXX .
`
`IXMC xxxAPI. COMPONENT
`‘
`
`ICOM xxx
`
`IXMO:API o
`
`
`ICOM_XXX .
`
`DRIVER
`ILNG_xxx .
`
`0 IUnknown
`IXMC_xxxSPI .
`
`
`ICOM_XXX .
`IXMC_xxxU DSPI .
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`
`
`
`
`Page 59 of 97
`
`Page 59 of 97
`
`

`

`0 IUnknown
`
`
`MOTION
`ICOM_xxx.
`
`IXMC_xxxAPI. COMPONENT
`
`
`
`ICOM xxx.
`IXMC:AP|
`
`
`
`LANGUAGE
`lCOM_xxx .
`DRIVER
`ILNG xxx.
`
`......
`
`OIUnknown
`
`DRIVER
`ADMIN.
`
`
`
`US. Patent
`
`Jan. 28, 2003
`
`Sheet 57 0f 68
`
`US 6,513,058 B2
`
`FIG' 59
`
`0 IUnknown
`
`
`
`
`
`
`
`CDriverObject
`
`SPI
`CLangIrvExtDisl"CLang oreExtDisp
`
`
`DATABASE 5
`IrvExtDisp d. oreExtDisp
`
`
`
`
`
`lCOM_xxx .
`lXMC_xxxUDSPI .
`
`Page 60 of 97
`
`Page 60 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 58 0f 68
`
`US 6,513,058 B2
`
`FIG. 60
`
`0 lUnknown
`
`LANGUAGE
`
`DRIVER
`
`- Q CDriverObject
`SPI
`LanorvExtDisp
`ang oreExtDis
`DATABASE
`IrvExtDisp
`oreExtDisp
`
`9
`
`61') 49W
`CStreamMgr
`DriverlnfoMgr
`
`a o
`
`CCommandMgr
`
`9
`
`CmdDatabase
`
`CDriverlnfo
`
`a, CSPIInfo
`O
`
`Page 61 of 97
`
`Page 61 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 59 0f 68
`
`US 6,513,058 B2
`
`FIG. 61
`
`0 IUnknown
`
`ICOM_xxx .
`|XMC_API .
`
`0 IUnknown
`
`LANGUAGE
`
`DRIVER
`
`......
`
`
`DRIVER
`
`ADMIN.
`
`
`
`ICOM_xxx .
`|LNG_xxx .
`IXMC_xxxSPI
`.I‘
`u."
`.-
`......
`.-
`....
`..--
`
`
`
`
`
`_..
`
`,..
`
`
`
`
`CLang IrvExtDisp
`IrvExtDisp ‘
`
`CDriverInfo
`
`
`
`CSimpleStream
`
`s
`
`0
`CSimpleStream
`
`
`
`
`ICOM_XXX
`|XMC_XXXUDSP|
`
`
`Page 62 of 97
`
`Page 62 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 60 0f 68
`
`US 6,513,058 B2
`
`0 IUnknown
`
`OIUnknown
`
`LANGUAGE
`
`FIG. 62
`ICOMqu.
`DWVER
`IXMC_AP| .
`ADMIN.
`
`
`
`
`
`ICOM_xxx .
`ILNG xxx.
`u... I... .- --.. .....
`IXMC_XX_)ESF1|I_..
`......
`
`
`
`DRIVER
`
`--------- -... .._ ..... ---. --.. -a.. ---- u..
`
`CDriverObject
`
`
`
`
`
`
`...........................
`IrvExtDisp
`‘ oreExtDisp
`
`
`CSImpleStream
`
`- S
`
`PI
`
`DATABASE _
`
`
`
`
`CDriverlnfo
`
`CSImpleStream
`
`o 00
`
`Page 63 of 97
`
`Page 63 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 61 0f 68
`
`US 6,513,058 B2
`
`FIG. 63
`
`
`0 lUnknown
`
`
`DRIVER
`lCOM_xxx .
`ADMIN.
`IXMC_AP| .
`
`
`
`0 lUnknown
`
`
`
`
`lCOM__xxx .
`DRIVER
`lLNG__xxx .
`
`
`......
`lXMC_xxxSP|
`
`LANGUAGE
`
`
`
`
`
`_'
`
`@ OlUnknown
`
`
`ICOM xxx.
`' STREAM
`
`lXMC_xxxU58PI .
`
`
`
`
`REGISTRY
`
`Page 64 of 97
`
`Page 64 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 62 0f 68
`
`US 6,513,058 B2
`
`FIG 64
`
`lUnknown
`
`
`MOT'ON
`lCOM_xxx .
`IXMC_XXXAP| . COMPONENT
`
`0 IUnknown
`
`
`LANGUAGE
`
`DRIVER
`
`oreExtDisp
`
`CStreamMgr
`
`CDriverlnfo
`
`SPllnfo
`o
`
`O O
`
`CSPllnfo
`
`.
`
`
`
`
`
`
`
`
`
`
`,9
`
`
`CIriverlnfoMgr
`
`
`
`
`
`
`§_CCmdDatabase§
`
`
`
`
` 0 lUnknown
`
`
`STREAM
`
`
`CSimpIeStream
`
`.
` O
`CSimpIeStream
`
`o O
`
`lCOM_xxx .
`|XMC_xxxUDSPI .
`
`
`
`Page 65 of 97
`
`Page 65 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 63 0f 68
`
`US 6,513,058 B2
`
`FIG. 65
`
`0 IUnknown
`
`
`ICOM_XXX .
`IXMC__xxxAP| o COMPONENT
`
`
`
`0 IUnknown
`
`
`
`
`
`|COM_xxx .
`DRIVER
`ILNG xxx .
`.-
`-.. -n.. . __ .. u..
`
`__.¢
`.......... n. .- ... -- IIIII --.. --. u... --., --.. ...
`
`
`LANGUAGE
`
`
`
`
`
`
`
`
`CDriverlnfo
`
`Page 66 of 97
`
`
`
`9 CDriverObject e
`CLanDrvExtDisp' Lang oreExtDisp
`lrvExtDiSp ‘.I oreExtDiSp
`
`
`
`
`
`CSimpleStream
`000
`
`CSimpleStream
`..........................................
`
`
`|COM_xxx .
`lXMC_xxxUDSPI .
`
`0 IUnknown
`
`STREAM
`
`Page 66 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 64 0f 68
`
`US 6,513,058 B2
`
`FIG. 66
`
`lUnknown
`
`0
`
`CDriverO bject
`
`
`
`lCIassFactory .
`Standard OLE 2.0 Interface
`
`Standard OLE 2.0 Interfac
`
`COM Interfaces
`
`""""""""""""""
`
`|COM_Base2 .
`
`Initiaiize, Unlnitialize,
`
`ICOM_Persist2 .
`
`GetlD, GetModuleType,
`
`ICOM_
`PersistRegDB
`
`
`
`
`
`
`Load, Save, Clear, lsDirty
`
`Language Driver Interfaces ---------
`
`
`Create, Destroy, Setup, Stat,
`
`.
`ILNG_
`Derore_|nit
`
`|LNG_DI‘VEX’E_
`StreamMgmt
`
`AddStream, RemoveStream,
`
`SPI Core InterfaCes ------------------
`
`SEE FIGURE 21
`
`SPI EXtended Interfaces """"""""
`
`SEE FIGURE 21
`
`
`
`Page 67 of 97
`
`Page 67 of 97
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 65 0f 68
`
`US 6,513,058 132
`
`‘\_
`IIII$5560m0ex»II65560m0ex;
`
`
`
`
`
`
`
`
`
`be:2639a953:8u:baa32550:528utri
`
`I
`
`
`
`
`
`
`IIOmHSDEmWI.@330“.u:o\?mfisouu:95“IIIIIIIIWhy—90900>_m_IOI>0”.acnaIEIOInv
`8522.36:33.SHEENI34>...Eng@2831,mama.SunIucaEEoofiIIIIIIII,IIAmwquvSun
`
`
`
`
`
`
`IIk
`
`
`
` 53:9I.WomegawzoISII2g.“01039529:"20??IhIIIIIwmmzemcvBEEF
`
`
`J.‘IIII_III.mE858mmSo»9:.we.mem5,
`~me«5EatSun05IwciqmoISci.mEoi350SEmu2:gomcficvmmnb9.«559mkfiufimcu.bcxoeImE320:8$8930.moxoemES.
`
`
`
`
`
`
`93wme.53!no:mE3582EnnonIxxx50A2ECHOUnoQZmbcmSROwig.>100ascoming»:23Emuo5mziqou55‘$502
`
`
`
`
`
`I
`
`
`
`7...,_IIIIIP_.ea“....AA«532EE8AA.05s58923.A.as05sum323839AE2»2$553?:02.
`II.“IIN\IIIIIIIIIIIIIII
`,uomoa32303030:.,IIII
`
`
`
`
`
`mcIEmIImax:9.5muwe}II.II..IIIIIAwEmcvmEuzII
`
`2:UsIIEII.g;.II.IIIIIIIIIIIIIHIIIwIIII
`
`
`
`
`
`IIJ
`
`
`
` mean:
`
`
`3:33».«.985.ucuEEoQ
`tam05a.aB820%:$SEE.mntem£.IoBa2:a.m.5563::23
`
`
`mumsflnm59:»:$5382“magma2:$3th.6563.+m5.$.82.
`
`,,
`
`
`
`:mewmime9.5mIo.BnEzcE9:83309.5
`
`Page 68 of 97
`
`Page 68 of 97
`
`
`

`

`US. Patent
`
`Jan. 28, 2003
`
`Sheet 66 0f 68
`
`US 6,513,058 B2
`
`FIG. 68 General Communication Map
`
`60%
`SerV'C '"dex
`
`61
`
`61a
`
`\Communication Map
`61b
`61c
`61d 61e
`
`Information
`
`\Target
`(Impry HW)
`
`62
`
`
`
`FIG. 69 Mapping Logic Table
`
`64
`
`\Logic Table
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket