`Brown et ai.
`
`111111
`
`1111111111111111111111111111111111111111111111111111111111111
`US005867385A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,867,385
`Feb. 2, 1999
`
`[54] MOTION CONTROL SYSTEMS
`
`[75]
`
`Inventors: David W. Brown, White Salmon; Jay
`S. Clark, Seattle, both of Wash.
`
`[73] Assignee: Roy-G-Biv Corporation, White
`Salmon, Wash.
`
`[21]
`
`Appl. No.: 656,421
`
`[22]
`
`Filed:
`
`May 30,1996
`
`[51]
`[52]
`
`[58]
`
`Int. CI.6
`..................................................... G05B 19/18
`U.S. CI. .................... 364/167.02; 364/130; 364/191;
`364/474.28; 395/500
`Field of Search ............................... 364/167.01, 191,
`364/474.22, 474.21, 239, 230, 474.23, 474.24,
`474.25, 474.26, 130, 474.28; 395/681, 651,
`500, 680, 800, 828
`
`2/1997 Shaw et al. ............................. 395/101
`5,604,843
`3/1997 Kawakami et al.
`.................... 395/500
`5,608,894
`5,691,897 11/1997 Brown et al. ...................... 364/167.01
`
`FOREIGN PATENT DOCUMENTS
`
`0275826 A1
`0442676 A2
`WO 9507504
`
`7/1988 European Pat. Off ......... G05B 19/00
`8/1991 European Pat. Off ........... G06F 0/44
`3/1995 WIPO .......................... G05B 19/414
`
`OTHER PUBLICATIONS
`
`WOSA Backgrounder: Delivering Enterprise Services to the
`Windows-based Desktop, Jul. 1993, Microsoft Develop(cid:173)
`ment Library WOSA Inside Windows 95, pp. 348-351.
`
`(List continued on next page.)
`
`Primary Examiner-Emanuel Todd Voeltz
`Assistant Examiner-Demetra R. Smith
`Attorney, Agent, or Firm-Michael R. Schacht; Hughes &
`Schacht, P.S.
`
`[56]
`
`References Cited
`
`[57]
`
`ABSTRACT
`
`U.S. PATENT DOCUMENTS
`
`3,673,455
`4,531,182
`4,589,074
`4,672,555
`4,695,792
`4,709,339
`4,937,737
`4,983,955
`5,095,445
`5,126,932
`5,175,817
`5,182,547
`5,224,006
`5,224,054
`5,233,538
`5,245,703
`5,247,650
`5,343,404
`5,390,330
`5,414,635
`5,453,933
`5,487,016
`5,490,086
`5,491,813
`5,587,917
`
`6/1972 Dewey .................................. 317/29 R
`7/1985 Hyatt ....................................... 364/131
`5/1986 Thomas et al. ......................... 364/483
`6/1987 Hart et al. ............................... 364/483
`9/1987 Roy ....................................... 324/83 D
`11/1987 Fernandes ............................... 364/492
`6/1990 Schwane et al.
`....................... 364/680
`1/1991 Ham, Jr. et al. ........................ 340/664
`3/1992 Sekiguchi ........................... 395/200.76
`6/1992 Wolfson et al.
`................... 395/200.32
`12/1992 Adams et al.
`..................... 395/200.66
`1/1993 Griffith.. ... ... ... .... ... ... ... ... ... ...... 340/664
`6/1993 MacKenzie et al.
`..................... 361/45
`6/1993 Wallis ..................................... 364/483
`8/1993 Wallis ..................................... 364/483
`9/1993 Hubert .. ... ... ... .... ... ... ... ... ... ...... 395/285
`9/1993 Judd et al. .............................. 395/500
`8/1994 Girgis ...................................... 364/484
`2/1995 Talati . ... ... ... ... .... ... ... ... ... ... ...... 395/703
`5/1995 Ohta ........................................ 364/481
`9/1995 Wright et al. ...................... 364/474.23
`1/1996 Elms ....................................... 364/484
`2/1996 Leone et al. ............................ 364/492
`2/1996 Bondy et al. ........................... 395/500
`12/1996 Elms ....................................... 364/487
`
`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. The system com(cid:173)
`prises a software system that employs an application pro(cid:173)
`gramming interface comprising component functions and a
`service provider interface comprising driver functions. A
`system programmer writes an application that calls the
`component functions. Code associated with the component
`functions relates these functions to the driver functions. A
`hardware designer writes driver code that implements the
`driver functions on a given motion control hardware prod(cid:173)
`uct. The driver functions are separated into core and
`extended driver functions. All software drivers implement
`the core driver functions, while the software drivers need not
`contain code for implementing the extended driver func(cid:173)
`tions. If the software driver does not contain code to
`implement an extended driver function, the functionality of
`the extended driver function is obtained through a combi(cid:173)
`nation of core driver functions. The system programmer may
`also select one or more streams that allow the control
`commands to be communicated to, and response data to be
`communicated from, motion control hardware.
`
`14 Claims, 64 Drawing Sheets
`
`Module Interaction-Map
`
`Page 1 of 165
`
`
`
`5,867,385
`Page 2
`
`OlliER PUBLICATIONS
`
`Software Products For Industrial Automation, !conics, No
`Date.
`The Complete, Computer-Based Automation Tool (IGSS),
`Seven Technologies NS, No Date.
`OpenBatch Product Brief, PID, Inc., No Date.
`Fix Product Brochure, Intellution (1994).
`Aimax-Win Product Brochure, TA Engineering Co., Inc.,
`No Date.
`Xanalog Model NL-SIM Product Borchure, Xanalog, No
`Date.
`ExperTune PID Tuning Software, Gerry, Engineering Soft(cid:173)
`ware, No Date.
`
`Paragon TNT Product Brochure, Intec Controls Corp., No
`Date.
`Compumotor Digiplan 1993-1994 catalog, pp. 10-11.
`Aerotech Motion Control Product Guide, pp. 233-234, No
`Date.
`PMAC Product Catalog, p. 43, No Date.
`PC/DSP-Series Motion Controller C Programming Guide,
`No Date.
`Precision Motion Controls Product Guide, p. 17, No Date.
`WEB' 3.0 Product Brochure, Trihedral Engineering Ltd.
`(1994).
`Oregon Micro Systems Product Guide, No Date.
`
`Page 2 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 1 of 64
`
`5,867,385
`
`FIG. IA
`10",
`12\ '\
`
`24
`
`26 rl-------- -:1
`
`EXCEL APPLICATION
`I
`I VISUAL BASIC APP
`: C++APPUCATION
`I
`I
`I
`L _____________ J
`
`CD
`o
`LL
`-------(~
`o
`0:::
`LL
`......... g
`
`STANDARD OLE INTERFACES
`CORE INTERFACES
`EXTENDED INTERFACES
`EXTENDED UI INTERFACES
`CODE GENERATION INTERFACES
`VENDOR SPECIFIC INTERFACES
`
`TO/FROM FIG. I D
`
`UNKNOWN
`
`300
`
`Page 3 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 2 of 64
`
`5,867,385
`
`FIG. 18
`
`38
`
`DRIVER
`'r----~ ADMINISTRATOR
`CPL
`
`40
`
`r-------:~DDE SERVER
`
`~----------------~~
`STANDARD OLE INTERFACES
`GENRAL INTERFACES
`<{
`19 CODE GENERATION INTERFACES
`DIAGNOSTIC INTERFACES
`IJ...
`
`UNKNOWN
`
`DRIVER
`ADMIN
`
`STANDARDQE
`INTERFACES
`CUSTOM OLE
`INTERFACES
`
`32
`IUNKNOWN ' t
`
`35
`
`MOTION
`CONTROL
`COMPONENT
`EXTENDED
`SPI
`TABLE
`
`~~--------------------~
`o
`0::
`IJ...
`"-g
`
`IUNKNOWN
`
`MOTION
`STANDARD OLE INTERFACES
`CONTROL
`EXTENDED INTERFACES
`EXTENDED UIINTERFACES DRIVER STUB
`
`36
`
`(yUNKNOWN
`STANDARD OLE INTERFACES
`MOTION
`CORE INTERFACES
`CONTROL
`EXTENDED INTERFACES
`DRIVER 8
`EXTENDED UI INTERFACES
`HARI§WARE
`CODE GENERATION INTERFACES
`LANGUAGE
`VENDOR SPECIFIC INTERFACES DEPENDENT
`
`30b
`
`TO/FROM FIG. IE
`
`Page 4 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 3 of 64
`
`5,867,385
`
`FIG. Ie
`
`~
`}
`
`CD
`
`l!5
`lL.
`~ o
`0::
`lL.
`'-g
`
`I ,
`
`I
`J
`
`/
`?UNKNOWN
`.1,
`STAND4RD OLE INTERFACESc)... MOTION
`CORE INTERFACESo- CONTROL
`DRIVERC
`EXTENDED INTERFACES 0- HARDWARE
`EXTENDED UllNTERFACESo-
`C
`CODE GENERATION INTERFACESo- LANGUAGE
`VENDOR SPECIFIC INTERFACESo- DEPENDENT
`
`30c
`
`V -L."
`
`TO/FROM FIG. IF
`
`Page 5 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 4 of 64
`
`5,867,385
`
`FIG. ID
`..,...
`
`~,.....
`
`TO/FROM FIG
`
`IA
`
`I~NKNOWN
`
`'V
`ISTREAM6- MOTION CONTROL
`TEXT FILE
`STREAM
`28d J
`TEXT
`COMMUN ICATION
`PROTOCOL
`
`\t , -~
`
`T
`
`I¥NKNOWN
`
`.
`III
`ISTREAM >- MOTION CONTROL
`PC BUS
`STREAM
`PC BUS
`COMMUNICATION
`PROTOCOL
`
`r
`
`280 J
`
`OUTPUT FILE
`34~
`
`PERSONAL COMPUTER HARDWARE BUS
`I
`PERSONAL COMPUTER HARDWARE
`
`160---
`
`18a---
`
`~
`
`200---1-
`
`,f
`I I
`~ '\
`HARDWAlE ~
`CONTROLLER A~ ____
`\
`\
`~
`
`I
`
`I
`
`MECHANICAL
`SYSTEM A
`
`I
`I
`MOTION CONTROL
`DEVICE A
`
`Page 6 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 5 of 64
`
`5,867,385
`
`FIG. IE
`
`TO/FROM FIG. I B
`
`T
`
`I¥NKNOWN
`
`ISTREAM )- MOTION CONTROL
`PC BUS
`STREAM
`PC BUS
`28b~ -
`COMMUN ICAllON
`PROTOCOL
`
`t
`J
`
`I
`J
`
`J
`
`,
`
`16b--
`
`18b-----
`
`-
`
`2Ob-----
`
`i
`I II
`~ )/
`
`"--L
`
`HARDWARE
`CONTROLLER B"" _____
`\
`\
`~
`
`MECHANICAL
`SYSTEM A
`
`I
`I
`MOTION CONTROL
`DEVICE B
`
`Page 7 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 6 of 64
`
`5,867,385
`
`FIG. IF
`
`,~
`
`TO/FROM FIG. IC
`T
`IUNKNOWN
`\ Y
`I STREAM )- MOTION CONTROL
`HARDWAREC
`PC BUS STREAM
`28c~ SPECIAL PC BUS
`COMMUNICATION
`PROTOCOL FOR
`HARDWAREC
`
`,
`
`,
`"
`
`l .
`
`16c-
`
`I--
`
`~I-
`
`18c -------
`
`20c -----l-
`
`,/
`1 Tl r
`
`- !) 14
`
`~ /7 ~
`HARDWARE
`CONTROLLER C~
`-,
`\
`\
`~
`
`MECHANICAL
`SYSTEM A
`
`I
`I
`MOTION CONTROL
`DEVICE C
`
`Page 8 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 7 of 64
`
`5,867,385
`
`FIG. 2 Module Interaction-Map
`26
`,-----~-----------------------------------
`VB APPLICATION
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`IXMC xxxAPI
`
`34
`
`IUnknown
`
`.f
`....
`............. ., ..
`.'
`"
`COMPONENT
`
`IUnknown
`
`DRIVgR
`STUB
`
`36
`
`IUnknown
`
`DRIVER ..................................................................... _ ... ....
`
`30
`
`Page 9 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 8 of 64
`
`5,867,385
`
`FIG. 3 Object Interaction-Map 32 \.---'-----...
`
`IUnknown
`
`IXMC xxxAPI
`
`26
`r---~-------------------------------------
`VB APPLICATION
`
`BCW APP. J etc.
`
`42
`
`IUnknown
`
`------. ...
`
`IXMC xxxAPI
`
`34
`...................................
`.........
`
`CCmpntDisp' +-___ ----+
`
`34a
`
`34b
`
`CDriverMgr
`
`CDriver
`
`34c
`
`34d
`
`~
`I . • I . I
`I " "
`
`---".-,,' "
`
`IUnknown
`
`DRIVER
`STUB
`
`IUnknown
`
`IXMC xxxSPI
`
`DRIVER
`
`30
`
`Page 10 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 9 of 64
`
`5,867,385
`
`FIG. 4 Scenario Map - Initialization
`IXMC xxxAPI
`
`26
`r---~-------------------------------------
`VB APPLICATION
`
`IUnknown
`
`~----
`DRIVER
`ADMIN.
`
`32
`
`BCW APP., etc.
`
`IXMC xxxAPI
`
`34
`
`...................
`
`34a
`
`34c
`
`42
`
`~
`J , ,
`C!f
`COMPONENT --_/
`
`IUnknown
`
`.'
`
`5
`
`....................
`
`1--+ CDriverAdmin
`34e
`
`IXMC
`
`IUnknown
`
`DRIVER
`STUB
`
`IUnknown
`
`36
`
`IXMC xxxSPI
`
`DRIVER
`
`30
`
`Page 11 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 10 of 64
`
`5,867,385
`
`FIG. 5 Scenario Map - Core SPI Operation
`
`26
`r---~-------------------------------------
`VB APPLICATION
`
`BCW APP., etc.
`
`IUnknown
`
`IXMC xxxAPI
`
`34
`
`...................
`
`34a
`
`34c
`
`34d
`
`..........................................
`
`34e
`
`IUnknown
`
`DRIVER
`
`30
`
`Page 12 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 11 of 64
`
`5,867,385
`
`FIG. 6 Scenario-Map - Unit Mapping
`
`26
`r---~-------------------------------------
`VB APPLICATION
`
`BCW APP., etc.
`
`_mum ____ m_m ______ 1ml-ul-~-~-~~~w nP C S Mea s u rem en Is
`
`IXMC xxxAPI
`
`34
`........................................
`.. '
`
`34a
`
`r-----...., ...
`
`..........•...............................
`
`PCS Measurements
`34e
`
`34c
`MCS-(cid:173)
`Mea sure me nts L+-+----+------I
`
`M C S _---' __ --II--'
`Measurements
`IXMC
`
`DRIVER
`STUB
`
`36
`
`IUnknown
`
`IXMC xxxSPI
`
`DRIVER
`
`30
`
`Page 13 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 12 of 64
`
`5,867,385
`
`FIG. 7 Scenario-Map - Extended SPI Operation
`
`26
`r---~-------------------------------------
`VB APPLICATION
`VC++ APPLICATION
`BCW APP., etc.
`
`IUnknown
`
`IXMC xxxAPI
`
`..................
`, ...
`
`.. --
`
`34c
`
`34d
`
`..........................................
`
`34e
`
`IXMC
`
`IUnknown
`
`DRIVER
`STUB
`
`Page 14 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 13 of 64
`
`5,867,385
`
`FIG. 8 Scenario-Map - Clean-up.
`
`26
`r---~-------------------------------------
`VB APPLICATION
`
`42
`
`~ . , ,
`(!j'
`COM PO N E N T __ ---'
`._---to ••
`
`IU nknown
`
`•
`
`IXMC xxxAPI
`
`34
`............................................
`
`34a
`
`34c
`
`........................................
`
`IXMC
`
`IUnknown
`
`DRIVER
`STUB
`
`IU nknown
`
`36
`
`IXMC xxxSPI
`
`DRIVER
`
`30
`
`Page 15 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 14 of 64
`
`5,867,385
`
`FIG. 9 Interface-Map
`
`IUnknown
`l CComponentOjbect 9
`./'\
`Standard OLE 2.0 Interface
`(implemented by MFC)
`
`ICla ssFactory 0- /Standard OLE 2.0 Interface
`\ (im pI. by M FC and AFX basecode)
`
`IDispatch 0- /Standard OLE 2.0 Interface
`
`generated code)
`
`1\ (impl. by MFC and ClassWizard
`API Interfaces ] -----------------------------
`I
`I
`
`IXM
`C_API_1 0- VXMCAPI Interface #1
`r\.
`IXM
`C_API_2 0- VXM CAP I Interface #2
`t\-
`
`O
`0
`0
`IXM
`C_API_n 0- VXMCAPllnterface #n
`~
`
`J
`
`Page 16 of 165
`
`
`
`.S! CD riverS PITa b Ie J------r.==::==::::=:==-==::==~::::::=:================:===-l
`-g
`f struct DRVEXT_INTERFACE_INFO
`MAP INFO
`f{
`~
`enum DRVEXT _Xn_INTERFACEIDS I enum DRVEXT _Xn_METHODIDS
`~
`()
`!
`!
`:E
`><
`f
`.J:
`;
`f
`~
`I
`'§
`DRVEXT Xn INTERFACEn
`rn }
`-
`-
`.'
`rn
`n:s -(.)
`CD > ,-
`L-
`C
`()
`o
`~
`•
`
`{
`
`DRVEXT Xn INTERFACE1
`DRVEXT - Xn -INTERFACE2
`-
`-
`
`L-
`
`IIXMC_DrvExt_X1 I
`
`'/,./., ... / .. /
`
`j
`
`~
`
`tn
`QO
`~
`t"-(cid:173)
`\,C
`QO
`~ tn
`
`It)
`
`"'T
`\C
`<:0-. o
`~ ..... Q)
`Q) -=
`
`rJJ
`
`0'\
`0'\
`0'\
`~
`~f
`,Q
`Q)
`~
`
`~ = ~
`
`~
`~
`~
`•
`00.
`•
`~
`
`}
`
`(!) -u.
`
`{
`
`}
`
`DRVEXT Xn METHOD1
`-
`-
`DRVEXT Xn METHOD2
`-
`-
`
`DRVEXT Xn METHODn
`-
`-
`
`IM~thOd I~fo _ 1 I
`./ . . . . - - - - - - - - - - - - - - - ,
`\ Methodlnfo_2\
`,.../ struct DRVEXT _METHOD_INFO
`o
`/.""
`{
`o
`.. /
`o
`XMC SUPPORTTYPE m st;
`CStri~g
`m_strNa~e;
`I Methodlnfo_n I
`.
`LPFNDRVEXT m_pfnMethod;
`'.
`
`.•....•.•.
`
`}
`
`IIXMC_DrvExt_X2 I
`o
`o
`o
`IIXMC_DrvE~t~~ I
`
`..........
`.. '
`
`......
`
`..........................................
`
`}
`
`Page 17 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 16 of 64
`
`5,867,385
`
`FIG. 11 Module Interaction-Map
`32
`
`IUnknown
`
`IUnknown
`
`IXMC xxxAPI
`
`IUnknown
`
`42
`
`~~---------------+
`---(----
`
`DRIVER
`
`IXMC xxxUDSPI
`
`IUnknown
`
`STREAM
`
`Page 18 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 17 of 64
`
`5,867,385
`
`FIG. 12 Object Interaction-Map
`32
`IXMC xxxAPI
`
`I Unknown
`
`IXMC xxxAPI
`
`......
`................................................
`
`IXMC xxxUDSPI
`
`IUnknown
`
`STREAM
`
`Page 19 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 18 of 64
`
`5,867,385
`
`FIG. 13 Scenario-Map - Registration
`32
`IUnknown
`
`DRIVER
`ADMIN.
`
`FIG. 14 Scenario-Map -Init. by Driver Admin.
`32
`I Unknown
`
`IXMC xxxAPI
`
`DRIVER
`ADMIN.
`
`I Unknown
`
`DRIVER
`
`.......
`...............
`........
`
`Page 20 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 19 of 64
`
`5,867,385
`
`FI G. 15 Scenario-Map - Adding a Stream
`32
`IUnknown
`CLSID
`IXMC xxxAPI
`
`DRIVER
`ADMIN.
`
`(of the stream)
`:{
`1
`
`IUnknown
`
`DRIVER
`
`FIG. 16 Scenario-Map - Query Operation
`IUnknown
`
`IXMC xxxAPI
`
`DRIVER
`ADMIN.
`
`IUnknown
`
`DRIVER
`
`IUnknown
`
`STREAM
`
`Page 21 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 20 of 64
`
`5,867,385
`
`FIG. 17 Scenario-Map - Clean-Up by
`Orv. Admin.
`32
`IUnknown
`
`IXMC xxxAPI
`
`DRIVER
`ADMIN.
`
`IUnknown
`
`DRIVER
`..... r-----,:
`..........
`....................
`r----t----:-
`
`.....
`.............................
`
`FIG. 18 Scenario-Map - Init. by Component
`34
`IUnknown
`
`IXMC xxxAPI
`
`COMPONENT
`
`IXMC
`
`IUnknown
`
`DRIVER
`........... ....... .----~
`
`CCommandList 9 _,~ ......
`
`30k
`
`IXMC
`
`IUnknown
`
`28
`
`Page 22 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 21 of 64
`
`5,867,385
`
`FIG. 19 Scenario-Map - Command Operations
`IUnknown
`
`IXMC xxxAPI
`
`OMPONENT
`
`IUnknown
`
`DRIVER
`
`...........................
`
`IUnknown
`
`STREAM
`
`28
`
`Page 23 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 22 of 64
`
`5,867,385
`
`FIG. 20 Scenario-Map - Clean-up by
`Component
`
`IUnknown
`
`IXMC xxxAPI
`
`IUnknown
`
`DRIVER
`
`.................. ··3···0·· .. •··· .. · ............ _ .... _. --:::::t-----+-'
`...................................
`
`IUnknown
`
`STREAM
`
`28
`
`Page 24 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 23 of 64
`
`5,867,385
`
`FIG. 21 Interface-Map
`IUnknown
`
`CDriverObject
`
`IClassFactory
`
`IXMC DrvCore
`StaticState
`
`IXMC DrvCore
`-
`-
`DynamicState
`
`IXMC DrvCore
`-
`-
`SPI 3
`
`IXMC DrvCore
`-
`-
`SPI n
`
`IXMC DrvExt
`-
`-
`StreamMgmt
`IXMC DrvExt
`-
`-
`SPI2
`
`IXMC DrvExt
`SPI n
`
`XMCSPJ Core Interface #3
`
`o
`8
`XMCSPI Core Interface #n
`......... -----------r--------------
`SPI Extended Interfaces
`
`XMCSPI Extended Interface #2
`o
`8
`XMCSPI Extended Interface #n
`
`Page 25 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 24 of 64
`
`5,867,385
`
`FIG. 22 Module Interaction-Map
`32
`
`IXMC xxxAPI
`
`30
`
`IUnknown
`
`IUnknown
`DRIVER
`ADMIN.
`
`IXMC xxxSPI
`
`IUnknown
`
`42~IXMC_XXXUDSPI
`EGISTRY +---+-
`
`STREAM
`
`~I---
`
`28
`
`Win31:
`
`Page 26 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 25 of 64
`
`5,867,385
`
`FIG. 23 Object Interaction-Map
`IXMC xxxAPl
`
`I Unknown
`
`30
`
`I Unknown
`
`IXMC_xxxSPI
`
`I Unknown
`
`IXMC xxxUDSPI
`............ ·· .. ···· .. 28··1'-~~-=-=:-···
`....................... _._----'
`
`"---"'"
`
`rv'IIn95
`r ware
`
`Page 27 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 26 of 64
`
`5,867,385
`
`FIG. 24 Scenario-Map -Initialization
`IUnknown
`
`IUnknown
`
`STREAM
`
`.r-----, ..
`'-t-----' ".
`1 " - - -1 - - - - .•... ......
`.....
`
`CRegistryMgr
`
`r"'in95
`
`Page 28 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 27 of 64
`
`5,867,385
`
`FIG. 25 Scenario-Map - Registration
`3
`IUnkno\M1
`
`IXrv1C xxxAPl
`
`DRIVER
`ADMIN.
`
`IUnkno\M1
`
`,;--------, IXMC xxxUDSPI
`\+ - - - ( 2 } - - - - - t
`
`FIG. 26 Scenario-Map - Setup
`IXMC xxxAPI
`1
`
`IUnknown
`DRIVER
`ADMIN.
`
`32
`
`IXMC xxxUDSPI
`....... ·· .. ······· .. ·28·· ~ ..... =-=. =I=~ .... ..... .
`.
`........................
`
`~
`
`. ...... .
`
`Page 29 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 28 of 64
`
`5,867,385
`
`FIG. 27 Scenario-Map - Clean-up
`
`IXMC xxxAPI
`
`IUnknown
`DRIVER
`ADMIN.
`
`32
`
`..... I~.~.~ ... ~_ .... _ .. ~_.:_:._:_I ... _2'_. ---...L-+-----I •••.•.•..•• ~
`
`CRegistryMgr
`
`FIG. 28 Scenario-Map - Initialization (Drv)
`30
`IUnknown
`
`IXMC_xxxSPI
`
`IXMC xxxUDSPI
`
`.............. _ .... _ - - - - - \
`
`......
`....
`
`42
`
`~
`
`CRegistryMgr
`
`28k
`
`CIOHAL
`NT3.5 Wing5 Win3.1
`
`Page 30 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 29 of 64
`
`5,867,385
`
`FIG. 29 Scenario-Map - Opening the Stream
`
`IUnknown
`
`IXMC xxxSPI
`
`IUnknown
`
`STREAM
`IXMC xxxUDSPI
`.... ········ .. ···28·· ...... ~---' ............ .
`.............................
`. .....
`
`Page 31 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 30 of 64
`
`5,867,385
`
`FIG. 30 Scenario-Map - Writing Data
`
`IUnknown
`
`IXMC xxxSPI
`
`IUnknown
`
`STREAM
`IXMC _xxxUDSPI
`. ...
`...
`...... r------r.
`··· .. ·28 J-.-,~--
`........................................
`
`. ............ .
`
`Page 32 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 31 of 64
`
`5,867,385
`
`FIG. 31 Scenario-Map - Reading Data
`
`30
`IXMC_xxxSPI
`
`IUnknown
`
`IUnknown
`
`STREAM
`IXMC xxxUDSPI
`··· .. ··28··1--,../----, '.
`.......................................
`. ......... .
`
`...... r - - - - r ..... .
`
`Page 33 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 32 of 64
`
`5,867,385
`
`FIG. 32 Scenario-Map - Clean-up (Drv)
`
`30
`
`IUnknown
`
`IXMC xxxSPI
`
`IUnknown
`
`IXMC xxxUDSPI
`...... ········ .. ··28 J--.-.,-I---- .•..
`. ...... .
`.......
`.....................
`. ..
`
`L....+---I •....
`
`.. '
`
`Page 34 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 33 of 64
`
`5,867,385
`
`FIG. 33 Interface-Map
`CStreamObject
`
`I Unknown
`
`IClassFactory
`
`"""===-=---:-:---=---~-:"'I ••••• _ ••••••••••••••
`SPI - UnDocumented
`
`IXMC Stream
`
`ead, Write, Enable, Stat, IsEnabled
`
`IXMC Stream I nit
`
`nitialize, Open, Close, Setup,
`Stat, CreateStream
`
`FIG. 34 Module Interaction-Map.
`IUnknown
`
`IXMC xxxAPI
`
`OMPONENT
`
`IXMC xxxSPI
`
`36
`
`IUnknown
`
`D:i~~R .................. >~
`
`42
`
`IUnknown
`
`DRIVER
`
`30
`
`Page 35 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 34 of 64
`
`5,867,385
`
`FIG. 35 Object Interaction-Map
`IUnknown
`
`IXMC xxxAPI
`
`IXMC DrvExt
`
`42
`
`----. ...... +---+~
`
`...............................
`
`IUnknown
`
`DRIVER
`
`30
`
`Page 36 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 35 of 64
`
`5,867,385
`
`FIG. 36 Scenario-Map - Initialization
`34
`IUnknown
`
`IXMC xxxAPI
`
`IUnknown
`
`IXMC DrvEx
`xxxSPI
`
`CLSID
`(of Driver) --,.~_-I
`
`of Driver)
`
`IXMC
`
`Page 37 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 36 of 64
`
`5,867,385
`
`FIG. 37 Scenario-Map - Operations
`34
`IUnknown
`
`IXMC xxxAPI
`
`OMPONENT
`
`IXMC DrvExt
`
`...............................
`
`IXMC
`
`Page 38 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 37 of 64
`
`5,867,385
`
`FIG. 38 Scenario-Map - Clean-up
`34
`IUnknown
`
`IXMC xxxAPI
`
`IXMC DrvExt
`xxxSPI
`36
`
`-
`
`DRIVER
`STUB
`
`...............................
`
`IUnknown
`
`IXMC xxxSPI
`
`Page 39 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 38 of 64
`
`5,867,385
`
`FIG. 39 Interface-Map
`l CDriverStubObject I 9 I Unknown
`
`/\
`Standard OLE 2.0 Interface
`(Implemented by MFC)
`IClas sFactoryo- /Standard OLE 2.0 Interface
`~Impl. by MFC and AFX basecode)
`
`-------------
`Stub Specific Interfaces I
`
`IXMC DNStubo-< RegisterDriver, UnRegisterDriver I
`SPI Extended Interfaces 1-------------
`I
`I
`
`IXMC
`-
`SPI 1
`IXMC
`DNExt
`-
`SPI2
`
`DNExt
`
`/ XMCSPI Extended Interface #1
`0- '\
`0-~ XMCSPI Extended Interface #2
`0
`8
`0-~XMCSPI Extended Interface #n
`
`DNExt
`
`IXMC
`SPI n
`
`I
`
`Page 40 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 39 of 64
`
`5,867,385
`
`FIG. 40 Module Interaction-Map
`34
`IUnknown
`pDriverlnfoMap
`IXMC xxxAPI
`
`38
`
`river, ~
`pDriverlnfo,
`hStream,
`pStreamlnfo
`IXMC xxxAPI
`32
`
`pDrv~num '__ ___ _
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`IUnknown
`
`IUnknown
`
`DRIVER
`
`IXMC
`
`IXMC
`xxxSPI
`30
`
`Page 41 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 40 of 64
`
`5,867,385
`
`FIG. 41 Object Interaction-Map
`34
`DRIVER
`pDriverlnfoMap
`ADMIN. CPL ~ IXMC_xxxAPI
`L..-_~ __ ----' --r-+
`h Drive r
`38
`hDriver,
`pDrvlnfo,
`hStream,
`pStrm Info
`
`IUnknown
`
`42
`IUnknown ~
`~------__ REG(STRY
`DRIVER
`ADMIN.
`
`.........................
`......................
`
`. .......... .
`.................
`
`rr.in;:i~;:A";~r;::;r~~--~C Drive rl n fo M a
`32b
`
`32c
`
`CSimpleDriver
`
`C S im pieD river
`
`IU nknown
`
`DRIVER
`
`IXMC -
`xxxSPI
`
`30
`
`IUnknown
`
`STREAM
`
`IXMC
`-
`UDxxxSPI
`28
`
`Page 42 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 41 of 64
`
`5,867,385
`
`FIG. 42 Scenario-Map -Initialization
`34
`IUnknown
`
`COMPONEN
`
`42
`IUnknown ~
`~--------, ~
`DRIVER
`ADMIN. .....
`
`............................
`
`DRIVER
`ADMIN. CPL
`
`38
`
`IXMC_xxxAPI
`32
`
`.........
`....
`.....
`
`32c
`
`C S im pieD river
`
`C S im pieD river
`
`IXMC -
`xxxS P I
`
`30
`
`DRIVER
`
`Page 43 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 42 of 64
`
`5,867,385
`
`FIG. 43 Scenario-Map - Registering a Driver
`pDriverl nfoMap
`
`DRIVER
`ADMIN. CPL
`
`IUnknown
`
`38
`
`CSimpleDriver
`
`IUnknown
`
`IXMC xxxSPI
`
`Page 44 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 43 of 64
`
`5,867,385
`
`FIG. 44 Scenario-Map - Registering a Stream
`DRIVER
`ADMIN. CPL
`pDriverCLSID,
`1 ~IPszStreamFileName
`38 pDriverlnfoMa~
`
`IUnknown S
`
`REG STRY
`
`IXMC xxxAPI
`32
`...........................................
`
`. .......................... .
`
`CSimpleDriver
`32df
`
`IUnknown
`
`IUnknown
`
`IXMC -
`xxxSPI
`
`IXMC
`
`Page 45 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 44 of 64
`
`5,867,385
`
`FIG. 45 Scenario-Map - Setting Driver Info.
`IUnknown
`32
`IXMC xxxAPI
`hDriver,
`DRIVER
`ADMIN. CPL pDrvlnfo
`~ ..................... .
`......... " .....
`.............................
`.------(
`
`38
`
`CSimpleDriver
`
`CSimpleDriver
`
`IUnknown
`
`IXMC xxxSPI
`
`Page 46 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 45 of 64
`
`5,867,385
`
`FIG. 46 Scenario-Map - Setting Stream Info.
`DRIVER
`ADMIN. CPL
`
`~ hDriver,hStream,pDriverlnfo
`
`38
`
`IUnknown
`
`.....
`
`............................
`
`CSimpleOriver
`
`CSimpleOriver
`
`CSim pleOriver
`32d
`
`IUnknown
`
`IXMC UDxxxSPI
`
`STREAM
`
`Page 47 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 46 of 64
`
`5,867,385
`
`FIG. 47 Scenario-Map - Querying Driver Enum.
`IUnknown
`
`IXMC -
`xxxAPI
`
`xxxAPI
`
`pDriverEnum
`~
`hDnver
`........................... .
`....................
`....
`
`...........
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`. ....
`
`CSimpleOriver
`
`CSimpleOriver
`
`CSimpleOriver
`
`IUnknown
`
`IXMC xxxSPI
`
`DRIVER
`
`30
`
`Page 48 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 47 of 64
`
`5,867,385
`
`FIG. 48 Scenario-Map - Querying Drv Info. Map
`DRIVER
`ADMIN. CPL
`
`~pDrvlnfoMap
`
`38
`
`....
`
`IUnknown
`
`............................
`
`IUnknown
`
`IXMC -
`xxxSPI
`
`307-----
`
`STREAM
`
`Page 49 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 48 of 64
`
`5,867,385
`
`FIG. 49 Scenario-Map - Clean-up
`34
`IUnknown
`
`IXMC xxxAPI
`
`DRIVER
`ADMIN. CPL
`
`38
`
`IXMC xxxAPI
`32
`
`42
`IUnknown ~ REGSTRY
`
`"--!:1===:::::!...-I ....•... ....................
`
`IUnknown
`
`DRIVER
`
`IXMC -
`xxxSPI
`
`30
`
`IXMC
`-
`UDxxxSPI
`
`STREAM
`
`Page 50 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 49 of 64
`
`5,867,385
`
`FIG. 50 Interface-Map.
`IUnknown
`CDriverAdminOjbectl--:,~ ________ --,
`
`IClassFactory
`
`Standard OLE 2.0 Interface
`(Imp/. by MFC and AFX basecode)
`
`IDispatch
`
`Standard OLE 2.0 Interface
`(Imp/. by MFC and ClassWizard
`generated code)
`I Specific Std. Interfacesl u __ uuuuuu
`
`Standard IEnumX OLE 2.0 Interfac
`
`IXMC
`
`IXMC_
`
`EnableLogging, IsLoggingOn,
`EnableDiagnosticTesting,
`IsDiagnosticTestingOn,
`SetLogg ingStream
`
`Page 51 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 50 of 64
`
`5,867,385
`
`FIG. 51 Module Interaction-Map
`42
`~
`
`48
`
`river,
`
`pDriver-t I PDriverlnfoSO
`InfoMap I ~hStream,
`pStrmlnfo
`
`DIALOG
`C--O-K-)@-~-n-ce-D
`
`38
`
`DRIVER
`ADMIN. CPL
`
`L..----..,.,.p"\riverlnfoMap I
`
`hDriver,pDriverlnfo,hStream,
`pStrmlnfo
`IUnknown
`
`IXMC xxxAPI
`
`32
`
`DRIVER
`ADMIN.
`
`Page 52 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 51 of 64
`
`5,867,385
`
`FIG. 52 Object Interaction-Map
`
`38b"\..
`
`pDriver hDriver,
`Info- t pDriverlnfo,
`Map I hStream,
`pStrmlnfo
`38d
`
`CComCPL
`
`hDriver,
`PDriverlnfol
`hStream,
`pStream Info
`
`,\pDriverlnfoMap
`\
`hDriver,
`pDriverlnfo, -------"-~\ \
`Unknown.,
`hStream,
`"
`pStreamlnfo
`DRIVER .. '
`ADMIN.
`
`Windows
`51.1
`
`Page 53 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 52 of 64
`
`5,867,385
`
`FIG. 53 Scenario-Map - Initializing the App.
`42
`
`38k
`
`1
`
`Windows
`51;-
`
`Unknown
`
`DRIVER
`ADMIN.
`
`IXMC
`
`32
`
`Page 54 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 53 of 64
`
`5,867,385
`
`FIG. 54 Scenario-Map - Main Dialog Init.
`38
`
`river mln(cid:173)
`Dialog
`C--O-K-)@---a-nc-eD
`
`pDriverlnfOMap\ 1
`
`32
`
`Page 55 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 54 of 64
`
`5,867,385
`
`FIG. 55 Scenario-Map - Adding a Driver
`38
`
`DriverAdminDI
`
`( OK )@ance))
`
`DRIVER
`ADMIN.
`
`32
`
`FIG. 58 Module Interaction-Map
`IUnknown
`
`ICOM xxx
`IXMC xxxAPI
`
`MOTION
`COMPONENT
`
`IUnknown
`
`LANGUAGE
`DRIVER
`
`ICOM xxx
`ILNG-xxx
`IXMC xxxSPI,"~_
`f " - - - - - - /
`52
`ICOM xxx
`IXMC xxxUDSPI
`28
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`IUnknown
`
`Page 56 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 55 of 64
`
`5,867,385
`
`FIG. 56 Scenario-Map - Removing a Driver
`38
`
`hDriver, I
`hStream,*, 2
`
`Unknown
`
`DRIVER
`ADMIN.
`
`IXMC
`
`32
`
`FIG. 57 Scenario-Map - View Support
`38
`
`D riverAd m in(cid:173)
`Dialog
`C--O-K-)~~a-n-ce-D
`
`lew upport(cid:173)
`Dialog
`C--O-K-)(C~a-n-ce-D
`
`32
`
`Page 57 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 56 of 64
`
`5,867,385
`
`FIG. 59 Object Interaction-Map
`I Unknown
`
`I Unknown
`DRIVER
`ADMIN.
`
`IUnknown
`lANGUAGE
`DRIVER
`,.,....------, .......
`
`ICOM xxx
`I LNG-xxx
`IXMC xxXSPI
`............. :···· .. · .. ··· .. ··52
`
`....................................................
`
`ICOM xxx
`IXMC xxxUDsPI
`28
`
`Page 58 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 57 of 64
`
`5,867,385
`
`FIG. 60 Scenario-Map -Init. by Orv. Admin.
`
`ICOM xxx
`IXMC-API
`
`I Unknown
`
`DRIVER
`ADMIN.
`
`ICOM xxx
`I LNG-xxx
`IXMC xxX"SPI
`....... ....... ····· .. ······ .. ····52
`
`....................................................
`
`Page 59 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet S8 of 64
`
`5,867,385
`
`FIG. 61 Scenario-Map - Adding a Stream
`32
`IUnknown
`DRIVER
`ADMIN.
`
`ICOM xxx
`IXMC-API
`
`ICOM xxx
`ILNG-xxx
`IXMC_xxxSPI
`.'
`.................. ······52 ')C..2:=~'--.,) ................................................... .
`.... , ...
`
`6
`
`521
`
`ICOM xxx
`IXMC xxxUDSPI
`28
`
`ICSimpleStream I
`o
`o
`o
`CSimpleStream
`
`IUnknown
`
`Page 60 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet S9 of 64
`
`5,867,385
`
`FIG. 62 Scenario-Map - Query Operation
`32
`IUnknown
`
`ICOM xxx
`IXMC-API
`
`DRIVER
`ADMIN.
`
`ICOM xxx
`I LNG-xxx
`IXMC xxxSPI
`-
`··············52
`...........
`........
`
`SPI
`DATABASE
`
`.....................................................
`
`CSimpleStream
`521
`o
`o
`CSimpleStream
`..........................................
`
`Page 61 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 60 of 64
`
`5,867,385
`
`FIG. 63 Scenario-Map - Registration loading
`32
`
`ICOM xxx
`IXMC-API
`
`IUnknown
`DRIVER
`ADMIN.
`
`ICOM xxx
`ILNG-xxx
`IXMC xxxSPI
`········· .. ···52~=~~················ .. ··· .... ······· .................... .
`-
`.....................
`53
`
`SPI
`DATABASE
`
`; ICSimpleStream I
`:
`0
`:
`0
`o
`
`ICOM xxx
`IXMC xxxUDSPI
`28
`
`Page 62 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 61 of 64
`
`5,867,385
`
`FIG. 64 Scenario-Nlap - Clean-up
`I Unknown
`
`ICOIVI xxx
`IXMCAPI
`
`I Unknown
`DRIVER
`ADI\I1IN.
`
`....................................................
`
`52e
`
`ICOIVI xxx
`I LNG-xxx
`IXMC_xxxSPI
`..................... ············5
`
`CSill1JleStream
`521
`o
`o
`
`Page 63 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 62 of 64
`
`5,867,385
`
`FIG. 65 Scenario-Nlap - Command Operation
`I Unknown
`
`ICOM xxx
`IXMC xxXAPl
`
`MOTION
`COMPONENT
`
`ICOM xxx
`I LNG-xxx
`IXMC xxxSPI
`-
`············5
`.....................
`
`................................................
`. ....
`
`ICOM xxx
`IXMC xxxUDSPI
`28
`
`STREAM
`
`Page 64 of 165
`
`
`
`u.s. Patent
`
`Feb. 2, 1999
`
`Sheet 63 of 64
`
`5,867,385
`
`FIG. 66 Interface-Map
`IUnknown
`leo riverO bject
`~
`/\.
`Standard OLE 2.0 Interface
`(Implemented by MFC)
`IClas sF acto ry cr- VStandard OLE 2.0 Interface
`I\pmpl. by MFC and AFX basecode)
`,---------------------
`
`COM Interfaces
`
`ICOM _Base20-
`
`Vlnitialize, Unlnitialize, GetErrString,
`I\GetStateHandle, SetStateHandle
`
`ICOM Persist20-
`
`KGetID, GetModuleType, GetClasslD/
`
`cr-
`IC
`OM_
`P ersistRegDB
`
`I
`LNG_
`D
`rvCore
`
`,Q-
`Init
`
`I
`VLoad, Save, Clear, IsDirty
`\.
`- ... _------
`Language Driver Interfaces I
`VCreate, Destroy, Setup, Stat,
`1\ Register, Unregister, IsRegistered,
`Enable, IsEnabled
`
`ILNG
`_DrvExt_o-
`Strea
`mMgmt
`
`VAddStream, RemoveStream,
`l~emoveAIiStreams, GetStrm Init,
`GetStrmlnitAt, GetStrmEnum.
`etStrea m C ou nt, E na bled Strm Only
`5 PIC 0 re In te rfa c es r--------------------
`SEE FIGU RE 21 (same interfaces)
`
`-------------
`SPI Extended Interfaces'
`SEE FIGURE 21 (same interfaces)
`
`Page 65 of 165
`
`
`
`I Response Data Types-
`
`Imp/. Method
`
`__ J
`I ~
`IFunction Type
`~t:.
`\NU_IMPL
`EXT - - - EMU[ATED
`----
`DIRECT
`
`I'/os - string
`'Iolf:-_double
`-- o;.lu = ULbNG or DWORD
`'Iou-WORD
`'Iod - int
`'lob = BOOl (lor 0)
`+ = continue previous type'
`
`- - - -
`
`l
`
`I
`
`- - - - - - -
`
`----------
`
`<Custom> SPI Database
`Date <date>
`Name <name>
`---Company ROY-G:BiV COrPoration----- ----
`Hardware <hardware>
`----- ----
`
`~- - - ~----- ----
`
`'NOTE: The '+' operator directs the parser to continue using the previous
`type untif either. a.) The end of the format string is reached, or b.) the next
`type changes from number to string or vice-versa.
`
`Command Data Types
`!los
`stTlng
`- - - - 'Iolf - double
`'Iolu - UlONG or DWORD
`%u=WbRD
`'Iod = int
`'lob = BOOl(1 or 0)
`+ = continue previous type'
`
`1=
`-----t-=--:- ------
`'~lrCVj
`------- @[ciT-
`---4
`I Cf!Illlj
`L ________
`I~crlf]
`-- -------
`(_ ---=
`IKeplace tfie ICustom::Foo entry With your own SPllnterface(s , save tneTtle as a I aD aellmltea text lite, ana Import just t e ::;t-'rdata of
`----.emu:
`I
`__
`---,
`- - - - - - - - -~~-~t filelnto your Resource File.
`I
`I
`_
`- - - - - - -
`NOTE: After copying the data below (between the COpy THIS DA TA and END OF COpy) into your xxx_cmdb.bin resource file, you MUST make sure
`that a 'IOxOa' character followed by a ~OxOd' character are at the vel}' beginning of the data. In other words, when copying the-aata koiii the (ex! ---- - - - - - - - - - -
`. - fiie;·MAKE-SURE to start your copy just after/he last '>'character in the ' ... » COpy fHiSDATA » .. .' text .
`
`--- Command Macros
`@[sndJ
`
`Response Macros
`
`----I
`
`HW Command Fmt
`Function Name
`HW Response Fmt
`Interface Name
`TYPE
`Index
`IMPLEMENTATION
`~~~~~~~r??~ ~~~~rt~J!~I:-1-~~~~?~' .?(~~a.t~l~bltfhiS,lm~>;2'1$ ~~~~~~~~~~~l'~~,~~~~~~~~~, ??~~~~~~~?~?~?~~~~~~?~~ ,~??,J"~~,~?,"~,?,?~~ ~~>'~~~~-l~~~i
`u
`I(.;U5IOm
`CAl
`11-00
`INOt-'@[sndj
`1@[rCvj
`IUIKt:t.;1
`I~~:<'$.~'S~~ __ ~-""Y1-H~
`!, .. ~r~'$,~~~1i
`
`..-.
`
`~
`
`tn
`~
`~
`t"-(cid:173)
`'-C
`~
`~ tn