`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
`
`