`US 6,941,543 B1
`(10) Patent N0.:
`Brown et al.
`
`@5)])ate(n’Patent: Sep.6,2005
`
`IJS006941543B1
`
`(54)
`
`(75)
`
`MOTION CONTROL SYSTEM AND
`METHOD
`
`Inventors: David W. Brown, White Salmon, WA
`(US); Jay S. Clark, Seattle, WA (US)
`
`(73)
`
`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 586 days.
`
`(21)
`
`(22)
`
`Appl. No.:
`Filed:
`
`09/633,633
`
`Aug. 7, 2000
`
`Related U.S. Application Data
`
`Continuation of application No. 09/191,181, filed on NOV.
`13, 1998, now Pat. No. 6,577,291, 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 appli—
`cation No. 08/454,736, filed on May 30, 1995, now Pat. No.
`5,691,897.
`
`Int. Cl.7 .................................................. G06F 9/45
`U.S. Cl.
`....................................................... 717/107
`Field of Search ............................ 717/107; 700/56,
`700/28
`
`(63)
`
`(51)
`(52)
`(58)
`
`(56)
`
`5,392,207 A
`5,402,518 A
`5,412,757 A
`5,438,529 A
`5,450,079 A
`5,465,215 A
`5,493,281 A
`5,576,727 A
`
`2/1995 Wilson et a1.
`3/1995 Lowery
`5/1995 Endo
`8/1995 Rosenberg et a1.
`9/1995 Dunaway
`11/1995 Strickland et a1.
`2/1996 Owens
`11/1996 Rosenberg et a1.
`
`......... 709/222
`
`......... 345/701
`
`(Continued)
`FOREIGN PATENT DOCUMENTS
`
`EP
`EP
`EP
`EP
`EP
`GB
`JP
`W0
`W0
`W0
`
`7/1988
`0 275 826 A1
`8/1991
`0 442 676 A2
`8/1992
`0 281 427 B1
`10/1992
`508 912 A1
`2/1994
`0 583 908 A2
`12/1991
`2 244 896 A
`6/1983
`59—228473
`7/1992
`WO 92/11731
`4/1993
`WO 93/08654
`3/1995
`WO 95/07504
`OTHER PUBLICATIONS
`
`Payton et al., Intelligent Real—Time Control of Robotic
`Vehicles, Aug. 1991, ACM, pp. 49—63.*
`
`(Continued)
`
`Primary Examiner—John Chavis
`(74) Attorney, Agent, or Firm—Black Lowe & Graham
`PLLC
`
`References Cited
`
`(57)
`
`ABSTRACT
`
`.......... 709/213
`
`U.S. PATENT DOCUMENTS
`
`4,713,808 A
`4,767,334 A
`4,769,771 A
`4,809,335 A
`4,840,602 A
`4,846,693 A
`4,855,725 A
`4,857,030 A
`4,887,966 A
`4,897,835 A
`5,120,065 A
`5,168,441 A
`5,377,258 A
`
`12/1987 Gaskill et a1.
`8/1988 Throne et a1.
`9/1988 Lippmann et a1.
`2/1989 Rumsey
`6/1989 Rose
`7/1989 Baer
`8/1989 Fernandez
`8/1989 Rose
`12/1989 Gellerman
`1/1990 Gaskill et a1.
`6/1992 Driscoll et a1.
`12/1992 Onarheim et a1.
`12/1994 Bro
`
`A system for motion control in which an application is
`developed that is independent from the actual motion control
`hardware used to implement the system. A software system
`employs an application programming interface comprising
`component functions and a service provider interface com-
`prising driver functions. Code associated with the compo-
`nent functions relates these functions to the driver functions.
`
`Driver functions are separated into core and extended driver
`functions. All software drivers implement the core driver
`functions, and optionally implement the extended driver
`functions. Extended driver functionality may be obtained
`through a combination of core driver functions.
`
`16 Claims, 64 Drawing Sheets
`
`Object Interaction-Map
`32
`
`.IUnknown
`
`
`EXHIBIT 1025 IUnknown
`
`
`
`
`|XMC_xxxUDSPIE [ STREAM ]
`
`ABB Inc.
`
`Page 1 of 92
`
`Page 1 of 92
`
`
`
`US 6,941,543 B1
`
`Page 2
`
`US. PATENT DOCUMENTS
`
`6,195,592 B1
`6,209,037 B1
`6,216,173 B1
`6,219,032 B1
`6,219,033 B1
`6,232,891 B1
`6,243,078 B1
`6,246,390 B1
`6,252,579 B1
`6,252,853 B1
`6,259,382 B1
`6,271,833 B1
`6,278,439 B1
`6,285,351 B1
`6,288,705 B1
`6,292,170 B1
`6,292,174 B1
`6,292,712 B1
`6,292,714 B1
`6,300,936 B1
`6,300,937 B1
`6,304,091 B1
`6,310,605 B1
`6,317,116 B1
`6,343,349 B1
`6,353,850 B1
`6,366,272 B1
`6,366,273 B1
`6,374,255 B1
`6,401,005 B1
`6,470,377 B1
`6,480,896 B1
`6,519,646 B1
`6,542,925 B2
`2001/0020944 A1
`2001/0032268 A1
`2002/0052939 A1
`2002/0165627 A1
`2002/0177453 A1
`2003/0069998 A1
`
`................ 700/83
`
`2/2001 Schuler et al.
`3/2001 Brown et 81.
`4/2001 Jones et 81.
`......... 345/157
`4/2001 Rosenberg et al.
`......... 345/157
`4/2001 Rosenberg et al.
`5/2001 Rosenberg ................... 341/20
`
`6/2001 Rosenberg
`. 345/161
`6/2001 Rosenberg .................. 345/156
`6/2001 Rosenberg et al.
`......... 345/157
`
`6/2001 Ohno
`.370/242
`6/2001 Rosenberg ................... 341/20
`8/2001 Rosenberg et al.
`......... 345/701
`
`8/2001 Rosenberg et al.
`345/157
`............... 345/156
`9/2001 Chang etal.
`9/2001 Rosenberg et al.
`......... 345/701
`
`.. 345/156
`9/2001 Chang et al.
`......
`.............. 345/157
`9/2001 Mallettetal.
`9/2001 Bullen ........................ 700/245
`
`.. 700/245
`9/2001 Okabavashi
`.
`................ 345/156
`10/2001 Braun et al.
`10/2001 Rosenberg .................. 345/156
`
`10/2001 Shahoian et al.
`324/662
`10/2001 Rosenberg .................. 345/157
`11/2001 Rosenberg et al.
`......... 345/145
`
`.. 711/154
`1/2002 Braun et al.
`.......
`................. 709/203
`3/2002 Wies et al.
`4/2002 Rosenberg et al.
`......... 345/156
`
`.. 345/156
`4/2002 Rosenberg et al.
`............. 707/102
`4/2002 Peurach et al.
`6/2002 Schwarz et al.
`709/400
`
`10/2002 Sevcik et al.
`.. 709/201
`............... 709/231
`11/2002 Brown et al.
`2/2003 Gupta et al.
`................ 709/229
`
`.. 709/208
`4/2003 Brown et al.
`............... 345/474
`9/2001 Brown et al.
`10/2001 Brown et al.
`............... 709/230
`5/2002 Lee .............
`709/223
`
`................. 700/56
`11/2002 Brown et al.
`11/2002 Chen et al.
`................. 455/466
`4/2003 Brown et al.
`............... 719/310
`
`OTHER PUBLICATIONS
`
`Y. Katayama, Y. Nanjo and K. Shimokura; AMotion Control
`.
`.
`.
`.
`.
`SyStem.W1th Event—DING“. MOHOIl—MOdule SWHChmg
`Mechanism for Robotic Manipulators; 1993; IEEE; US.
`Toshihiro Matsui et al; An Event—Driven Architecture for
`Controlling Behaviors of the Office Conversant Mobile
`Robot, Jle—Z; 1997; IEEE; U.S.
`.
`.
`.
`HOW to Write and Use ACtheX Controls for Microsoft
`Windows CE 3.0; Microsoft Windows Website; Aug. 16,
`2002; U.S. ms—help://MS.MSDNQTR.2002JAN.1033/
`dnce30/html/activex30.htm.
`Notes on Implementing an Ole Control Container; Aug. 16,
`2002; U5;
`Ins—help”MSMSDNQTRZOOZJAN-1033/
`dnaxctrl/html/msdnicontcntr.htm.
`What OLE is Really About; Microfost OLE (General)
`Technical Articles; microsoft website; Aug. 16, 2002; U.S.;
`_
`.
`EzdflelggfiiiZ/EENQTR‘ZOOZJAN‘1033/dn016gen/html/
`*
`'
`'
`Platform SDK: COM; Categorizing by Component Capa-
`bilities; Microsoft Website; Aug. 16, 2002; U.S.; ms—help://
`MS.MSDNQTRQIOOZJAN.1033/C0m/C0mpicati3jqnhtm.
`Bradley Bargen and Peter Donnely; Inside Direct X—in
`Depth TeChnlqueS for DeVelOPlng High-Performance Mul-
`timedia ApplicatiOHS; 1988; Chapters 1, 18, 19, 20, and
`22—27; Microsoft Press; US.
`
`Page 2 of 92
`
`~~~~~~~~~ 345/161
`
`~~~~~~~~~ 345/161
`
`1/1997 Bro
`55969994 A
`2/l997 Chni et al
`5,600,373 A
`3/l997 Lebensfeld et al-
`5,607,336 A
`4/l997 Steehrnann etal-
`5617528 A
`4/1997 Rosenberg .................. 345/739
`5,623,582 A
`6/l997 Tong
`5,636,994 A
`7/1997 Aldred et al
`5,652,866 A
`8/1997 lani
`5,655,945 A
`9/1997 Kohiyarna et al
`5,666,161 A
`9/1997 Yasuhara et al
`59670992 A
`5,691,897 A * 11/1997 Brown et al.
`................. 700/56
`
`5,691,898 A
`ll/l997 Rosenberg etal-
`~~
`345/701
`~~~~~~~~~ 345/156
`5,701,140 A
`12/l997 Rosenberg et al
`5707289 A
`1/1998 Watanabe et al
`5,733,131 A
`3/1998 Park
`5734373 A
`3/1998 Rosenberg et al
`5737523 A
`4/1998 Callaghan etal-
`5,739,811 A
`4/1998 Rosenberg et al
`5,746,602 A
`5/1998 Kikinis
`5,764,155 A
`6/1998 KertesZ et al-
`5,790,178 A
`8/1998 Shibata et al
`5,800,268 A
`9/1998 Molniek
`5,801,946 A
`9/1998 Nissen et al
`5,818,537 A
`10/1998 Enokida et al
`5,821,920 A
`10/1998 Rosenberg et al
`5,821,987 A
`10/1998 Larson
`5,822,207 A
`10/1998 Hazarna et al-
`5,825,308 A
`10/1998 Rosenberg ................... 341/20
`5,828,575 A
`10/1998 Sakai
`5,846,132 A
`12/1998 lunkin
`5,848,415 A
`12/1998 Guck .......................... 707/10
`5,852,441 A * 12/1998 Nakajima et al.
`........... 345/866
`5,855,483 A
`1/1999 Collins et al
`5,867,385 A
`2/l999 Brown et al-
`5,873,765 A
`2/l999 Riikin et al
`5,889,670 A
`3/1999 Sehnler et al ~~~~~~~~~~~~~~~~ 700/83
`5,889,672 A
`3/1999 Sehnler et al-
`-------------- 345/702
`5,890,963 A
`4/l999 Yen
`5,907,704 A
`5/1999 Gudmundson et 81.
`5,907,831 A
`5/1999 LotVin et 211.
`5,914,876 A
`6/1999 Hirai
`
`~~~~~~~~~ 345/156
`
`......... 709/203
`......... 345/161
`
`7/1999 Helmessey et al'
`5’920’476 A
`7/1999 Guido etal.
`5,924,013 A
`9/1999 Rosenberg etal.
`5,956,484 A
`9/1999 Rosenberg et a1.
`5,959,613 A
`9/1999 de la Huerga
`5,960,085 A
`11/1999 Danie“ el 91-
`59779951 A
`......... 345/157
`2/2000 Rosenberg et al.
`6,020,876 A
`......... 345/156
`2/2000 Rosenberg et al.
`6,028,593 A
`3/2000 Joseph ................
`709/228
`6,038,603 A
`
`..
`4/2000 Rosenberg et al.
`345/156
`6,046,727 A
`......... 345/701
`5/2000 Rosenberg et al.
`6,057,828 A
`
`5/2000 Rosenberg ...........
`.. 341/20
`6,061,004 A
`33888 E35312:rg et al’ """"" 345/145
`2:83:32: 2
`8/2000 Schena etal.
`.............. 345/157
`6,100,874 A
`8/2000 Govindaraj et a1.
`6,101,425 A
`......... 709/203
`8/2000 Rosenberg etal.
`6,101,530 A
`33888 $51901)“: elt al~ ~~~~~~~~ 31289625;
`2,1329%: 2
`1es e a .
`.................
`,
`,
`10/2000 Rosenberg et al.
`..
`.. 345/163
`6,128,006 A
`10/2000 Peurach et al.
`............. 707/102
`6,131,097 A
`6,139,177 A * 10/2000 Venkatraman et al.
`........ 700/83
`6,144,895 A
`11/2000 Govindaraj et a1.
`6,147,647 A
`11/2000 Tassoudjietal.
`........... 343/785
`2:126:72: 2
`nggg :f:n:t:tl'al:":....
`325/121
`6,169,540 B1
`1/2001 Rosenberg et al.
`..
`345/701
`6,173,316 B1
`1/2001 De Boor et al.
`.....
`709/218
`6,191,774 B1
`2/2001 Schena et al.
`.............. 345/163
`
`
`
`Page 2 of 92
`
`
`
`US 6,941,543 B1
`
`Page 3
`
`Peter Kovach; Inside Direct3D—The Definitive Guide for
`Real—Time 3D Power and Performance for Microsoft Win-
`
`dows; 2000; Chapters 1, 7, and 15; Microsoft Press; US.
`M. Farsi and M. Barbosa; CANopen Implementation—
`Applications to Industrial Networks; 2000; Chapters 1, 2
`and 3; Research Studies Press Ltd.; England and US.
`Wolfhard Lawrenz; CAN System Engineering—From
`Theory to Practical Applications; 1997; Chapters 1, 2.1, 2.2,
`3.2 and 4.1; Springer—Verlag New York, Inc.; US.
`Allen—Bradley; CNCnet Software Library; Oct., 1992; Pub-
`lication 8000—6.1.1; U.S.
`Robert Bosch GmbH; CAN Specification; Sep., 1991; Ver-
`sion 2.0.
`
`SISCO, Inc.; Overview and Introduction to the Manufactur-
`ing Message Specification (MMS); 1994—1995; Revision 2;
`Systems Integration Specialists Company,
`Inc.; Sterling
`Heights, Michigan, US.
`ISO—9506—1 Industrial Automation Systems—Manufactur-
`ing Message Specification—Part 1: Service definition; Aug.
`2000; pp. i—22; ISO/IEC; Switzerland.
`ISO—9506—2 Industrial Automation Systems—Manufactur-
`ing Message Specification—Part 2: Protocol specification;
`Aug. 2000; pp. i.—6; ISO/IEC; Switzerland.
`SISCO, Inc.; MMS—EASE; Jan., 1996; Systes Integration
`Specialists Company, Inc.; Sterling Hieghts, Michigan, US.
`ANSI/EIA—484—A Electrical and Mechanical
`Interface
`Characteristics and Line Control Protocol Using Commu-
`nication Control Characters for Serial Data Link Between a
`
`Direct Numerical Control System and Numerical Control
`Equipment Employing Asynchronous Full Duplex Trans-
`mission; Jun., 1995; Electronic Industries Association; US.
`ISO/IEC 7498—1 Information Technology—Open Systems
`Interconnection—Basic Reference Model: The Basic Model;
`Nov., 1994; US.
`ISO/IEC 7498—3 Information Technology—Open Systems
`Interconnection—Basic Reference Model: Naming and
`Addressing; Apr., 1997; US.
`Todd J. Schuett; The Benefits and Data Bottlenecks of High
`Speed Milling; Aug., 1995; Conference Paper Presented at
`Southeastern Michigan Chapter American Mold Builders
`Association; Creative Technology Corporation; US.
`Todd J. Schuett; “The Ultimate DNC; Direct CNC Network-
`ing (DCN)”; Modern Machine Shop; Jan., 1996; Creative
`Technology Corporation; US.
`Todd J. Schuett; Advanced Controls for High Speed Milling;
`Conference Paper Presented at
`the SME “High Speed
`Machining”; May 7—8, 1996; Creative Technology Corpo-
`ration; U.S.
`Leitao, Machado & Lopes; “A Manufacturing Cell Integra-
`tion Solution”; Paper Developed at CCP as a Part of the
`ESORIT 5629 Project; Oct., 1995.
`Mitsubishi Electric; Mitsubishi Electric Advance; Program-
`mable Logic Controllers Edition; Sep., 1996; vol. 76; Mit-
`subishi Electric Corporation; Tokyo.
`Farsi, M.; “Flexible and Reliable Robotics Cells in Factory
`Automation”; Proceedings of the IEEE International Con-
`ference on Systems, Man and Cybernetics, France; 1993; pp.
`520—525.
`
`Chu & Wang; “Development of a Practical SFC System for
`CNC Machine Shop”; International Conference on Data and
`Knowledge Systems for Manufacturing and Engineering;
`May 1994; pp. 362—367, vol. 1; pp. xx+745, vol. 2.; Chinese
`Univ.; Hong Kong.
`
`Farsi, M.; “Device Communication for Flexible Manufac-
`turing:—A New Concept”; Ninth International Conference on
`System Engineering, UK; 1994; pp. 328—334.
`Farsi, M.; “A Production Cell Communication Model in
`Factory Automation Using the Controller Area Network”;
`Proceedings of XII International Conference on Systems
`Science, Poland; 1995; pp. 90—95.
`Marcos & Orive; “A New Solution for Integrating Control
`Devices Involved in Computer Integrated Manufacturing”;
`UKACC International Conference on Control ’96 (Confer-
`ence Publication No. 427); Sep., 1996; pp. 485—490, vol. 1;
`UK.
`
`Farsi, M. “CANopen: The Open Communications Solu-
`tion”; Proceedings of Fieldbusses and Communications for
`Drives and Motion Control, Drives and Control 1996 Exhi-
`bition & Conference, UK; 1996; pp. 112—116.
`Wright et al.; “Open Architecture Manufacturing: The
`Impact of Open—System Computers on Self—Sustaining
`Machinery and Machine Tool Industry”; 7 pages; pp.
`Altintas et al.; “Design and Analysis of a Modular CNC
`System”; pub. Mar. 4, 1990; 12 pages; Elsevier Science
`Publishers; pp. 305—316.
`Robert Anderson; “Smart: A Modular Architectur for Robot-
`ics and Teleoperation”; pub. 1993;
`IEEE; 6 pages; pp.
`416—421.
`
`Microsoft; “Object Linking and Embedding 2.0 Back-
`grounder”; pub. Sep. 1993; 15 pages; pp. 1—15.
`Microsoft; “Microsoft OLE Today and Tomorrow: Technol-
`ogy Overview”; pub. Dec. 1993; 9 pages; pp. 1—9.
`Pritschow et al.; “Open System Controllers—A Challenge
`for the Future of the Machine Tool Industry”; pub Jan. 14,
`1993; CIRP; 4 pages; pp. 449—452.
`WEB 3.0 Product Brochure; Trihedral Engineering Ltd.;
`pub. 1994; 6 pages.
`Chen et al.; “Computer Numerical Control: Essentials in
`Programming and Networking”; pub. 1994; Delmar Pub-
`lishers, Inc.; 28 pages; Part 5, Chapter 27; pp. 824—848.
`Chu et al.; “Development of a Practicle SFC System for
`CNC Machine Shop”; pub. 1994; 5 pages; 362—367.
`Microsoft; “The Microsoft Object Technology Strategy”;
`pub. Mar. 1994; 33 pages; pp. 1—33.
`Microsoft; “Open Systems: Technology Leadership and
`Collaboration”; pub. Mar. 1994; 15 pages; pp. 1—15.
`William F. Ford; “What
`is an Open Architecture Robot
`Controller?”; pub. Aug. 16, 1994; IEEE Control Systems
`Society; 6 pages; pp. 27—32.
`“Requirements of Open, Modular Architecture Controllers
`for Applications in the Automotive Industry”; pub. Dec. 13,
`1994; Version 1.1; 13 pages; pp. 1—13.
`Fedrowitz; “IRL—Based Expansion of the Commonly Used
`High—Level Language C for Robot Programming”; pub.
`Oct. 1995; 5 pages.
`John Jackman; “Robotic Control Using Sequential Function
`Charts”; pub. 1996; SPIE; 9 pages; pp. 120—128.
`McGraw et al.; “A Friendly Command, Control, and Infor-
`mation System for Astronomy”; pub. 1996; ASP Conference
`Series; 12 pages; pp. 356—367.
`Proctor et al.; “Validation of Standard Interfaces
`Machine Control”; pub. 1996; 6 pages; pp. 659—664.
`Sperling et al.; “Enabling Open Control Systems—An Intro-
`duction to the OSACA System Platform”; pub. May 1996;
`8 pages; pp. 1—8.
`“NEMI Low Cost Controller Project”; pub. Dec. 1996;
`NEMI; 392 pages; pp. 1—392.
`
`for
`
`Page 3 of 92
`
`Page 3 of 92
`
`
`
`US 6,941,543 B1
`Page 4
`
`“Technologies Enabling Agile Manufacturing (TEAM)
`Intelligent Closed Loop Processing”; pub. Jan. 11, 1996; 30
`pages; pp. 1—30.
`“Open, Modular Architecture Controls at GM Powertrain—
`Technology and Implementation”; pub. May 14, 1996; Ver-
`sion 1.0; GM Powertrain Group Manufacturing Engineering
`Controls Council; 39 pages; pp. 1—39.
`Marcos et al.; “A New Solution for Integrating Control
`Devices Involved in Computer Integrated Manufacturing”;
`pub. Sep. 2, 1996; IEE; 6 pages; pp. 485—490.
`Proctor et al.; “Open—Architecture Controllers”; pub. Jun.
`1996; IEEE; 5 pages; pp. 60—64.
`Szabo et al.; “Validation Results of Specifications for
`Motion Control Interoperability”; pub. Sep. 1997; 11 pages;
`pp. 166—176.
`Feng et al.; “Distributed Control of a Multiple Tethered
`Mobile Robot System for Highway Maintenance and Con-
`struction”; pub. Nov. 1997, 10 pages; pp. 383—392.
`Lutz et al.; “OSACA—The Vendor Neutral Control Archi-
`tecture”; pub. Dec. 1997; 10 pages.
`Sperling et al.; “Designing Applications for an OSACA
`Control”; pub. Nov. 16, 1997; 5 pages.
`Chang et al.; “Development and Implementation of An
`Application of an Application Programming Interface for
`PC/DSP Based Motion Control System”; Pub. 1998; 12
`pages; p. 94—105.
`Morales et al.; “A Generalised Software Control System for
`Industrial Robots”; pub. 1998; AMC; 6 pages; pp. 411—416.
`Muir et al.; “A Three—Layer Workcell Control Architecture
`Design”; pub. May 1998; IEEE; 7 pages; pp. 1185—1191.
`Muir et al.; “Mechatronic Objects for Real—Time Control
`Software Development”; pub. Nov. 1998; SPIE; 15 pages;
`pp. 251—265.
`Leu et al.; “A Telemanufacturing Workcell Over the Inter-
`net”; pub. Nov. 1998; SPIE; 8 pages; pp. 230—237.
`
`Michaloski et al.; “A Framework for Component—Based
`CNC Machines”; pub. Nov. 1998; SPIE; 12 pages; pp.
`132—143.
`
`Emilio Morales; “GENERIS: The EC—JRC Generalised
`Software Control System for Industrial Robots”; pub. 1998;
`University Press; vol. 26; 7 pages; pp. 26—33.
`Mizukawa et al.; “De—Facto Standard API for Open and
`Networked Industrial Robots”; pub. Oct. 1999; 8 pages; pp.
`455—462.
`
`Cho et al.; “A Compact/Open Network—Based Controller
`Incorporating Modular Software Architecture for a Human-
`iod Robot”; pub. Apr. 19, 1999; Kluwer; 15 pages; pp.
`341—355.
`
`Nilsson et al.; “Integrated Architecture for Industrial Robot
`Programming and Control”; pub. May 20, 1999; Elsevier
`Science B.V.; 22 pages; pp. 205—226.
`Valera et al.; “Interactive On—line Evaluation of Robot
`Motion Control”; Aug. 2, 1999;
`IEEE; 5 pages; pp.
`1039—1043.
`
`Natale et al.; “Robust Hybrid Force / Position Control with
`Experiments on an Industrial Robot”; pub. Sep. 19, 1999; 5
`pages; pp. 956—961.
`
`Mizukawa et al.; “ORiN: Open Robot Interface for the
`Network, A Proposed Standard”; pub. May 2000; MCB
`University Press; 7 pages’ pp. 344—350.
`
`Erol et al.; “Open System Architecture Modular Tool Kit for
`Motion and Machine Processing Control”; pub. Sep. 2000;
`IEEE/ASME; 11 pages; pp. 281—291.
`
`Ge et al.; “A One—Stop Solution in Robotic Control System
`Design”; pub. Sep. 2000; IEEE; 14 pages; pp. 42—55.
`
`* cited by examiner
`
`Page 4 of 92
`
`Page 4 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 1 0f 64
`
`US 6,941,543 B1
`
`FIG.
`
`iA
`
`IO
`I2 \
`
` \
`
`
`TO/FROMFIGSIB
`
` -UNKNOWN
`
`
`STANDARD OLE INTERFACES °
`
`
`CORE INTERFACES '
`
`
`
`EXTENDED INTERFACES -
`
`
`EXTENDED UI INTERFACES '
`
`
`CODE GENERATION INTERFACES '
`VENDOR SPECIFIC INTERFACES
`
`
`MOTION
`CONTROL
`DRIVER A
`HARDWARE
`A
`LANGUAGE
`DEPENDENT
`
`
`
`
`TO/FROM FIG.
`
`ID
`
`Page 5 of 92
`
`Page 5 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 2 0f 64
`
`US 6,941,543 B1
`
`FIG.
`
`IE3
`
`Sr—
`
`38
`
`
`- UNKNOWN
`
` ' STANDARD OLE
`DRIVER
`INTERFACES
`
`5“—'—3 ADMINISTRATOR
`DRIVER
`
`
`- CUSTOM OLE
`CPL
`
`ADMIN
`
`
`INTERFACES
`
`
`
`32
`
`IUKNOWN
`
`
`
`
`: DDE SERVER
`
`
`ITO/FROMFIG.IA
`
`STANDARD OLE INTERFACES °
`
`
`MOTION
`GENRAI. INTERFACES '
`CONTROL
`CODE GENERATION INTERFACES '
`
`
`COM PONENT
`DIAGNOSTTC INTERFACES '
`
`;______
`
`35
`
`TO/FROMFIG.IC
`
`
`STANDARD OLE INTERFACES '
`EXTENDED INTERFACES -
`
`
`
`EXTENDED UI INTERFACES '
`DRIVER STUB
`
`
`§—__._
`’—
`
`36
`
`-UNKNOWN
`i
`MOTION
`STANDARD OLE INTERFACES
`CORE INTERFACES - ORR/ERR
`
`
`EXTENDED INTERFACES - HARDWARE
`
`
`EXTENDED UI INTERFACES .
`B
`CODE GENERATION INTERFACES -
`LANGUAG
`
`
`VENDOR SPECIFIC INTERFACES - DEPENDENET
`
`30b
`
`TO/ FROM FIG. IE
`
`Page 6 Of 92
`
`Page 6 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 3 0f 64
`
`US 6,941,543 B1
`
`FIG.
`
`IC
`
`5—‘____
`
`TO/FROMFIG.IB
`
`5—“—
`
`MOTION
`STANDARO OLE INTERFACES -
`CONTROL
`CORE INTERFACES
`SEQEECIACRE
`EXTENDED INTERFACES -
`c
`EXTENDED UI INTERFACES -
`CODE GENERATION INTERFACES - LANGUAGE
`VENDOR SPECIFIC INTERFACES - DEPENDENT
`
`
`
`30c
`
`TO/FROM FIG.
`
`IF
`
`Page 7 of 92
`
`Page 7 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 4 0f 64
`
`US 6,941,543 B1
`
`IUNKNOWN
`
`IA
`
` TO/FROM FIG.
`
`
`
`MOTION CONTROL
`TEXT FILE
`
`
`STREAM
`MOTION CONTROL
`
`PC BUS
`TEXT
`
`
`COMMUNICATION
`STREAM
`
`
`
`PROTOCOL
`PC BUS
`
`
`
`COMMUNICATION
`PROTOCOL
`
`
`IUNKNOWN
`
`
`'iIIIIIIITI_
`
`I Fifi
`\wnfi‘I‘FEIBLVI/éfii -b
`
`
`
`
`I80
` 200
`
`_M
`
`EC HAN ICAL
`SYSTEM A
`
`
`
`TO/FROMFIG.IE
`
`MOTION CONTROL
`DEVICE A
`
`Page 8 of 92
`
`Page 8 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 5 0f 64
`
`US 6,941,543 B1
`
`FIG.
`
`IE
`
`TO/FROM FIG.
`
`IB
`
`IUNKNOWN
`
`
`
`
`
`ISTREAM '
`MOTION CONTROL
`PC BUS
`STREAM
`PC BUS
`COMMUNICATION
`PROTOCOL
`
`28b
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`9
`1—...—
`E
`
`E
`3
`LL
`8
`I—j____
`
`[Sb
`
`f—-_
`Illlllllll
`I
`
`
`
`I
`MECHANICAL
`
`SYSTEM A
`
`L;-
`-
`E
`
`IIa g
`
`5:
`
`
`KL
`C
`E3
`
`
`HARDWARE
`CONTROLLER B
`
`MOTION CONTROL
`DEVICE B
`
`Page 9 of 92
`
`Page 9 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 6 0f 64
`
`US 6,941,543 B1
`
`FIG. IF
`
`TO/FROM FIG.
`
`IC
`
` IUNKNOWN
` MOTION CONTROL
`ISTREAM -
`
`HARDWARE C
`PC BUS STREAM
`
`
`SPECIAL PC BUS
`COMMUNICATION
`PROTOCOL FOR
`HARDWARE C
`
`28c
`
`MW“—
`
`L5
`:5—*—-
`
`14
`
`E
`8
`
`LL
`
`q
`HARDWARE
`
`
`$-—..__ b
`
`I
`MECHANICAL
`
` 18c
`
`IESC
`
`20c
`
`SYSTEM A
`
`MOTION CONTROL
`DEVICE C
`
`Page 10 of 92
`
`Page 10 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 7 0f 64
`
`US 6,941,543 B1
`
`FIG- 2 Module Interaction-Map
`
`VCH- APPLICANON
`
`..............................................
`
`. [Unknown
`
`IXMC_xxxAPI
`
` :
`i BCW APR. etc.
`
` . IUnknown
`
`
`
`
`IXMC_xxxAPI
`
`,,,,,,,
`
`.-
`
`.-
`
`COMPONENT
`
`34-
`
`
`IXMC_UDxxxSPI
`
`. IUnknown
`
`IXMC_xxxSPl
`
`Page 11 of 92
`
`Page 11 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 8 0f 64
`
`US 6,941,543 B1
`
`WET.............
`
`VC++ APPLICATION
`
`lIln
`
`VB APPLICATION
`
`
`FIG. 3 Objectlnteraction-Map 32
`
`
`
`IXMC_xxxAP|
`
`' IUnknown
`
`DRIVER
`
`ADMIN.
`
`
`
`
`
`26
`I
`
`E BCW APP.. etc.
`
`
`
`.
`
`....
`
`."‘
`
`....
`
`.-'
`
`....
`
`....
`
`.-'
`
`.~"
`
`
`
`CCmpntDisp
`
`
`
`34a
`
`34c
`
`
`
`
`
`34d
`
`I. C:Drivengr
`
`CDriver
`
`CDrIverAdmin
`
`34b
`
`49
`
`
`
`
`
`
`CUnitMapper
`
`IXMC_UDxxxSPIo
`
`36
`
`' IUnknown
`
`DRIVER
`STUB
`
`’IUnknown
`
`IXMC_xxxSPI 0
`
`DRIVER
`
`30
`
`Page 12 of 92
`
`Page 12 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 9 0f 64
`
`US 6,941,543 B1
`
`FIG. 4 Scenario Map - Initialization
`|XMC_xxxAPI o
`
`
`
`olUnknown
`
`
`
`
`
`
`
`
` CDriver
`—
`
`I
`0
`o lUnknown
`
`e
`
`IXMC_UDXXXSP| o
`
`DRIVER
`STUB
`
`36
`
`.IUnknown
`
`iXMC_XXXSP[ O
`
`DRIVER
`
`30
`
`Page 13 of 92
`
`Page 13 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 10 0f 64
`
`US 6,941,543 B1
`
`FIG - 5 Scenario Map - Core SP! Operation
`
`I CCmp‘ntDisp
`
`34a:
`
`CDriver
`
`ngDrivengr
`
`340
`
`,
`
`.lUnknown
`
`IXMC~_xxxSPI.
`
`DRIVER
`
`30
`
`Page 14 of 92
`
`Page 14 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 11 0f 64
`
`US 6,941,543 B1
`
`
` """
`
`."
`
`.u
`
`_.--
`
`n"
`
`."'
`
`,u-
`
`PCS Measurements
`olUnknown
`
`
`
`34a
`
`34c
`
`5 -—
`34d @
`M08 __4:
`Measurements
`
`
`l CCmpntDisp
`
`01
`I (3Drivengr
`i
`
`
`
`e‘
`
`IXMC~UDxxxSPl .
`
`[Unknown
`
`'
`DRIVER
`STUB
`
`36
`
`.IUnknown
`
`IXMC_xxxSPI .
`
`DRIVER
`
`30
`
`Page 15 of 92
`
`Page 15 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 12 0f 64
`
`US 6,941,543 B1
`
`FIG 7 Scenario-Map - Extended SPI Operation
`
`
`
`CUnitMapper
`
`
`
`
`
`
`o lUnknown
`
`lXMC_UDXXXSPIo
`
`DRIVER
`
`STUB
`
`36
`
`Page 16 of 92
`
`Page 16 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 13 0f 64
`
`US 6,941,543 B1
`
`FIG - 8 Scenario-Map — Clean-up.
`
`VB APPLICATION
`
`VC++ APPLICATION
`
`cw APP, etc.
`
`
`
`
`
`
`
`é
`
`
`
`o IUnknown
`
`IXMC~UDXXXSPI o
`
`DRIVER
`
`STUB
`
`36
`.IUnknown
`
`
`
`
`
`
`IXMC_xxxSPI o
`
`DRIVER
`
`30
`
`
`
`Page 17 of 92
`
`Page 17 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 14 0f 64
`
`US 6,941,543 B1
`
`F IG . 9 Interface-Map
`
`IUnknown
`
`lCComponentOjbect
`
`.
`Standard OLE 2.0 Interface
`(implemented by MFC)
`
`Standard OLE 2.0 Interface
`(impI. by MFC and AFX basecode)
`
`ICIassFactory .
`
`IDispatch .
`
`Standard OLE 2.0 Interface
`(impIt by MFC and CIassWizard
`generated code)
`
`AP. Interfaces -----------------------
`
`IXMC__API_1 .
`
`
`
`
`IXMC_API_2 .
`XMCAF’I Interface #2
`
`
`
`
`
`
`
`
`XMCAPI Interface #1
`
`O O O
`
`|XMC_API_n .
`
`XMCAPI Interface #n
`
`Page 18 of 92
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 18 of 92
`
`
`
`US. Patent
`
`S
`
`e
`
`SU
`
`1B345,1M,
`
`
`
`60:62:31,:bmSmoEn:
`
`fl
`
`5oo1lIIaN22.35%Nx520032
`hIISWesuofiozFx5200.2x.
`
`cmofimmhzaxme>moMxI.WIlAm.50:52cxbmSmo
`
`6.NooEmémckaxwioNmoEmmpzmcxmeiow50152:xbfiEovEofimmkz.:xbfiiov
`
`
`
`filemaEmOmanmnozx2:65s.xHma025m--vooM9.2.8:52cm>mosea0o
`6,wasEwozx5E8%5250
`
`moaozpmsucxupxmfio:58Hmemofimmpzficxuhxmfio:58VSzfimufimmhzixmia6amon.2_d<§mms§m>mo6.5m
`
`
`
`
`
`Or.07..
`
`osflamszso
`
`Page 19 of 92
`
`Page 19 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 16 0f 64
`
`US 6,941,543 B1
`
`32
`
`IXMC_xxxAPI
`
`DRIVER
`
`FIG.11 Module Interaction-Map
`olUnknown
`
`
`
`ADMIN.
`
` 34.
`
`
`.lUnknown
`
`'XMC—XXXAP‘O- OMPONENT
`
`42
`
`
`
`
`DRIVER
`EXMC_xxxSPl
`SREGISTRW’>
`
`
`30
`
`. lUnknown
`
`
`
`. IUnknown
`
`
`IXMC_xxxUDSPl
`STREAM
`
`
`Page 20 of 92
`
`Page 20 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 17 0f 64
`
`US 6,941,543 B1
`
`FIG-12 Objectlnteraction-Map
`
`32
`
`.lUnknown
`
`IXMC_XXXAP| .
`
`DRIVER
`ADMIN.
`
`34
`
`‘XMC—XXXAP'O
`
`4
`
`OMPONENT
`
`o IUnknown
`
`
`IXMC_>oo<SPl
`DRIVER
`...............................__2
`REGISTRYS
`308
`.................................... 300
`30
`
`.l nknown
`
`CSt ea Mg
`
`30,:
`
`CComma dMg
`
`—
`CDrierisp
`
`
`
`
`
`
`30k
`3
`
`
`CCo mandList
`
`.
`30!
`
`C omem-
`
`
`
`
`CResponseList
`'J
`
`[Unknown
`
`lXMCZuxxxU DSPI
`
`Page 21 of 92
`
`Page 21 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 18 0f 64
`
`US 6,941,543 B1
`
`FIG.13 Scenario-Map - Registration
`
`32
`
`. [Unknown
`
`
`
`IXMC_xxxSPl
`
`42
`
`REGISTRy}<...............
`
`FIG 14 Scenario-Map - lnit. by Driver Admin.
`
`32
`
`. lUnknown
`
`
`
`Page 22 of 92
`
`Page 22 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 19 0f 64
`
`US 6,941,543 B1
`
`FIG 15 Scenario-Map - Adding a Stream
`
`32
`IXMCfixxxAPI
`
`. lUnknown
`
`
`
`CLSID
`(of the stream)
`
`. lUnknown
`
`4
`
`W ........................(21.8030
`...............
`(of the streamfi e
`30.
`
`399..
`
`I
`CSt eamM <
`
`—
`9 W
`
`FIG-16 Scenario-Map - Query Operation
`
`. [Unknown
`
`...-
`
`.....
`
`_________
`
` ........
`
`Page 23 of 92
`
`Page 23 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 20 0f 64
`
`US 6,941,543 B1
`
`FIG-17 Scenario-Map - Clean-Up by
`
`Drv. Admin.
`
`lXMC_xxxAPl
`
`42
`
`hm”
`
`32
`.lUnknown
`
`DRIVER
`
`ADMIN.
`
`lXMC_xxxspl .
`
`e
`
`. [unknown
`
`DRIVER
`
`309....
`. -
`CSt eamMg ‘
`
`30d
`
`9
`—
`CDrierisp
`
`~
`
`9
`
`FIG-18 Scenario-Map - lnit. by Component
`
`34
`
`.lUnknown
`
`lXMC_xxxAPI
`
` .lUnknown
`
`DRIVER
`
`IXMC HxxxSPI
`--------------------------------
`e
`..............................................30d
`30—o
`CStea M9"
`30f 9
`309
`CComma dMg 63m,
`lCCommandList '0 «9
`CResponseLIst
`
`30
`
`......
`
`
`
`
`CStream
`
`o .lUnknown
`
`lXMC_xxxUDSPI.
`
`STREAM
`
`28
`
`'1
`
`Page 24 of 92
`
`Page 24 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 21 0f 64
`
`US 6,941,543 B1
`
`FIG 19 Scenario~Map - Command Operations
`
`34 ‘
`
`IXMC_xxxAPI
`
`O-
`
`o lUnknown
`
`
`
`OMPONENT
`
`. IUnknown
`
`
`
`0 . lUnknown
`
`IXM :C_xxxUDSP|
`
`STREAM
`
`28
`
`‘
`
`Page 25 of 92
`
`Page 25 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 22 0f 64
`
`US 6,941,543 B1
`
`FIG- 20 Scenario-Map - Clean-up by
`Component
`
`34
`
`
`
`Q lUnknown
`
`
`
`|XMC_xxxAPIO
`
` OMPONENT
`
`lXMChxxxSPl .
`
`DRIVER
`
`..................................
`
`.9
`30
`30 .
`...................................
`30e
`_
`.
`CDriv-rDisp
`CSt ea M. =
`30f 9
`-
`CComma dMg 6
`309
`30
`.
`I CCoEEmandL15
`CResponseList
`
`
`
`._.
`
`Page 26 of 92
`
`
`
`’0 a
`
`30k
`
`6 . lUnknown
`
`IXMC,_xxxUDSPI .
`
`STREAM
`
`28
`
`Page 26 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 23 0f 64
`
`US 6,941,543 B1
`
`FIG - 21 Interface-Map
`. iUnknown
` CDriverObject
`
`
`Stan-oar o
`.l he ac-
`(implemented by MFC)
`
`
`
`annuar o
`.I n e ace
`ICIassFactory .
`(impl. by MPG and AFX basecode)
`
`
`SPI Core Interfaces ------------------
`
`StaticState
`
`
`
`iXMC_Derore_
`DynamicState O
`
`
`
`
`
`
`
`
`specific to the satic state used
`when working with motion control)
`
`
`
`
`tat, a ct er me me are
`
`hi :3 ize,
`a 0 er me me are
`specific to the dynamic state used
`when working with motion control)
`
`
`
`
`
`
`
`XMCSPI Core Interface #3
`
`o
`
`8
`XMCSPi Core Interface #n
`
`SP' Extended Interfaces -------------
`
`‘u 'emove, nae, naoe rm,
`Lock (all methods operate on strms
`
`XMCSPI Extended Interface #2
`
`o 8
`
`XMCSPI Extended Interface #n
`
`
`
`Page 27 of 92
`
`iXMC__Derore__
`
`iXMC_Derore_
`A
`SP|_3
`
`
`IXMC_DFVCore_
`SPi_n
`<
`
`iXMC_DrvExt_
`StreamMgmt
`(
`
`IXMCWDNEXL
`SPI_2
`c
`
`|XMC_DrvExt_
`SPLn
`C
`
`
`
`
`
`
`Page 27 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 24 0f 64
`
`US 6,941,543 B1
`
`FIG- 22 Module Interaction-Map
`
`IXMC_xxxAPl.
`-
`0 lUnknown
`
`DRIVER
`ADM
`IN'
`
`30
`
`' lUnknown
`
`lXMC_xxxSPlc
`
`DRIVER
`
`.
`
`42 IXMC_xxxUDSPI
`EGISTRY
`
`. lUnknown
`
`STREAM
`
`'44 DBG
`
`MONWOR
`
`
`
`-
`
`.1-
`
`SERIAL 1/0
`
`468
`
`460
`
`gv-m
`16farware
`
`Page 28 of 92
`
`Page 28 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 25 0f 64
`
`US 6,941,543 B1
`
`FIG. 23 Object Interaction-Map
`
`
`IWC_X)OCAP‘ .
`
`30
`
`0 lUnknown
`
`' IUnknown
`
`
`
`
`lXMCquPl
`
`~ DRIVER
`
`CStreamDisp —-> CRegistryMgr
`28
`
`2-d
`
`
`SERIAL l/O
`
`Page 29 of 92
`
`Page 29 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 26 0f 64
`
`US 6,941,543 B1
`
`FIG. 24 Scenario-Map - initialization
`
`' lUnknown
`
`
`
`Page 30 of 92
`
`Page 30 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 27 0f 64
`
`US 6,941,543 B1
`
`FIG. 25 Scenario-Map - Registration
`
`
`
`FIG. 26 Scenario—Map - Setup
`
`iUnknown
`
`
`
`Page 31 of 92
`
`Page 31 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 28 0f 64
`
`US 6,941,543 B1
`
`FIG. 27 Scenario-Map - Clean-up
`
`0 JUnknown
`
`
`
`Page 32 of 92
`
`Page 32 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 29 0f 64
`
`US 6,941,543 B1
`
`FIG. 29 Scenario-Map - Opening the Stream
`
` SERIAL [/0
`
`Page 33 of 92
`
`Page 33 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 30 0f 64
`
`US 6,941,543 B1
`
`FIG. 30 Scenario-Map - Writing Data
`
`30 ‘
`
`. [Unknown
`
`lXMC_xxxSP| O-
`
`DRIVER
`
`
`
` ‘1eSERIAL l/O
`
`Page 34 of 92
`
`Page 34 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 31 0f 64
`
`US 6,941,543 B1
`
`FIG. 31 Scenario-Map - Reading Data
`
` .: SERIAL i/O
`
`Page 35 of 92
`
`Page 35 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 32 0f 64
`
`US 6,941,543 B1
`
`FIG- 32 Scenario-Map - Clean-up (Drv)
`
`30
`
`' IUnknown
`
`IXMC_xxxSPI .
`
`DRIVER
`
`
`
`
`
`CStreamDifl
`
`20'
`
`9
`
`28f
`
`@
`
`23
`9
`CIGeHAL
`
`( D86
`ONITOR
`
`28i
`
`$NT3.5 @ $Wm95 9 $9Wm3
`
`SERIAL [/0
`
`Page 36 of 92
`
`Page 36 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 33 0f 64
`
`US 6,941,543 B1
`
`
`
`
`
`lClassFactory .
`
`ant-ar O
`
`.0 ne ace
`
`FIG. 33 Interface-Map
`
`° lUnknown
`lCStreamObject
`
` Stan-oar O .I ne ace
`
`
`(implemented by MFC)
`
`(lmpl. by MPG and AFX basecode)
`
`
`
`
`SPI - UnDocumented
`
`lXMC_Stream .
`
`
`
`lXMC_Streamlnit .
`
`‘ead, Write, Enable, Stat, lsEnable-
`
`
`
`nltialize, Open, Close, Setup,
`Stat, CreateStream
`
`
`
`FIG . 34 Module Interaction—Map.
`
`34 .lUnknown
`
`I
`
`lXMC_xxxSPl
`
`Page 37 of 92
`
`Page 37 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 34 0f 64
`
`US 6,941,543 B1
`
`FIG. 35 Object Interaction-Map
`34 .IUnknown
`
`
`lXMC_xxxAPl
`OMPONENT
`
`
`. [Unknown
`
`
`
`
`
`
`
`
`
`. lUnknown
`
`IXMC_><xxSPl
`
`DRIVER
`
`30
`
`‘
`
`Page 38 of 92
`
`
`
`35a
`
`CDriverStubl isp
`
`CSPIMgr
`
`36c
`
`35b
`
`Page 38 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 35 0f 64
`
`US 6,941,543 B1
`
`FIG- 36 Scenario-Map-|nitialization
`34
`.EUnknown
`
`(of DriveQ/
`
`
`
`CLSID
`
`of Driver)
`
`Page 39 of 92
`
`Page 39 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 36 0f 64
`
`US 6,941,543 B1
`
`FIG - 37 Scenario-Map - Operations
`
`.lUnknown 34
`OMPONENT
`
`IXMC_XXXAPI
`
`
`
`Page 40 of 92
`
`Page 40 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 37 0f 64
`
`US 6,941,543 B1
`
`FIG- 38 Scenario-Map-Clean-up
`
`34
`
`.lUnknown
`OMPONENT
`
`IXMC_xxxAPI
`
`
`
`IXMC_DrvExt
`_xxxSPl
`
`
`
`
`.- '0 '- n,-. '- n.
`
`..... 'n -,.c '—u.. a
`
`.v'
`
`
`
`Page 41 of 92
`
`Page 41 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 38 0f 64
`
`US 6,941,543 B1
`
`CDriverStubObject
`
`Standard OLE 2.0 Interfa =
`
`(Implemented b MFC)
`
`FIG. 39 Interface-Map
`o IUnknown
`
`
`
`
`
`
`Standard OLE 2.0 Interface
`
`ICIassFactoryI
`
`
`
`
`
`IXMC_DrvStub .
`
`
`
`
`
`
`
`
`
`
`(Impl. by MFC and AFX basecode)
`
`Stl‘b SPECific Interfaces """""""
`
`RegisterDriver, UnRegisterDriver
`
`SPI Extended Interfaces ------------
`
`IXMC_DrvExt__
`SP|_1
`(
`
`IXMC_DNExt_
`SPI_2
`C
`
`IXMC_DrvExt_
`SPl_n
`
`XMCSPI Extended Interface #1
`
`XMCSPI Extended Interface #2
`
`o
`8
`
`.
`
`XMCSPI Extended Interface #n
`
`Page 42 of 92
`
`Page 42 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 39 0f 64
`
`US 6,941,543 B1
`
`FIG. 40 Module Interaction—Map
`
`34 olUnknown
`
`
`
`
`
`pDriverlnfoMap
`
`ADMIN. CPL
`
`
`
`Inver
`
`
`
`COMPONEN
`
`
`
`pDriverlnfo
`hStream.
`
`pStream Info
`
`IXMmexxAPI 0
`
`32
`
`OlUnknown
`
`
`DRIVER
`
`ADMlN.
`
`
`
`
`
`pDWnum
`
`
`
`IlJnknown
`
`OlUnknown
`
`IXMC_
`xxxSPl
`
`DRIVER
`
`IXMC_
`UDXXXSPI
`
`
`28
`
`Page 43 of 92
`
`Page 43 of 92
`
`
`
`US. Patent
`
`Sep. 6, 2005
`
`Sheet 40 0f 64
`
`US 6,941,543 B1
`
`FIG- 41 Objectlnteraction-Map
`-
`34 OlUnknown
`
`
`DRIVER
`pDnverlnfoMap
`
`ADMIN.CPL<J— 'XMCJXXAW OMPONEN
`
`
`
`
`hDriver
`
`hDrivlr,
`
`
`
`pDrvlnfo,
`pDrvEfium
`
`hStream,
`4‘2
`OlUnkno