Professional Documents
Culture Documents
0 Integration
Revision 1.0
DOCUMENTATION NOTICE
This document is the final version and will be updated by a complete reissue.
PROPRIETARY NOTICE
This document is the property of, and contains proprietary information of Resonant Medical Inc. This document shall
not be reproduced, copied, or used for any purpose other than consideration of the technical contents, without the
express written permission of the duly authorized representative of the company.
PAGE 2 OF
ANALYSIS DOC 10
QA APPROVAL DATE
PUBLICATION HISTORY
TABLE OF CONTENTS
Table of Contents..........................................................................................................................3
1.1 Document Scope.............................................................................................................4
1.2 Responsibilities...............................................................................................................4
1.3 Internal Document References & Materials.....................................................................4
1.4 External Document References.......................................................................................4
1.5 Definitions.......................................................................................................................4
2 Specific NEEDS OF ULTRASONIX ACQUISITION.........................................................5
2.1 Current Needs..................................................................................................................5
2.1.1 User must be notified (receive event) only when a new frame is acquired............5
2.1.2 Threading bug in ImageProcessor must be fixed...................................................5
2.1.3 1-frame processing limit for B Processor must be removed..................................5
2.1.4 Currupt setup files must not raise exceptions........................................................5
2.1.5 The SDK dll’s must be compatible with VC7 (and soon VC8).............................5
2.1.6 The serial number licensed must be accessible.....................................................5
2.1.7 The prbInfo structure of probes must be accessible...............................................6
2.1.8 The probe boundaries of variables must be accessible..........................................6
2.1.9 Hardware testing must be accessible.....................................................................6
2.1.10 The acquisition strategy used must not affect current performance.......................6
2.2 New Needs......................................................................................................................6
2.2.1 The prmRfOffset parameter must be accessible properly......................................6
2.2.2 The RF capture length must be at least 18 cm.......................................................6
2.2.3 The captured RF must not be shifted line-wise.....................................................6
2.2.4 The captured RF must not be shifted depth-wise..................................................6
2.2.5 It must be possible to disable (or modify) board filters.........................................7
2.3 Other Needs.....................................................................................................................7
2.3.1 Overlooked Needs.................................................................................................7
2.3.2 Future Needs.........................................................................................................7
2.3.3 Future Bugs...........................................................................................................7
2.3.4 Information Needs.................................................................................................7
3 Integration Options For Ultrasonix SDK.............................................................................8
3.1 Keep working with current SDK (1.2).............................................................................8
3.2 Integrate the new SDKs (Porta 3.0 and Texo 1.0) as-are.................................................8
3.3 Integrate the new SDKs (Porta 3.0 and Texo 1.0) with additional support from Ultrasonix
8
3.4 Integrate the new SDKs with all the buildable source code for both high-level and low-level
DLLs 8
4 Likeliness Of Fulfilling Needs By Option.............................................................................9
4.1 Comparison Table...........................................................................................................9
4.2 Conclusion.....................................................................................................................11
1 PURPOSE
This document analyses the feasibility of integrating the new Ultrasonix 3.0 SDK into the
Restitu main trunk.
1.2 Responsibilities
Mike Donovan and Sebastien Phaneuf are responsible to keep analysis valid and up-to-date.
1.5 Definitions
TERM MEANING
2.1.1 User must be notified (receive event) only when a new frame is acquired
SDK 1.2 had to be modified so that the main acquisition loop notifies the user only if a new
frame is found. As it was, the main loop emitted events continuously, and because the event did
not contain a frame ID to compare with the previous event, we could mistakenly record the
same frame twice or even more often. As this was probably not considered a bug by Ultrasonix,
it likely hasn’t been ‘fixed’ in their most recent SDK.
The fix involved creating our own acquisition loop, which requires access to several internal
variables and functions of the SDK which are not exported in current SDK.
2.1.5 The SDK dll’s must be compatible with VC7 (and soon VC8)
SDK 1.2 had to be rebuilt on VC7 to make its dll’s compatible with Restitu. As it was, the dll’s
were built in VC6, and were unusable by Restitu, which is built in VC7. This has not been fixed
by Ultrasonix in their new SDK, which is still built in VC6.
2.1.10 The acquisition strategy used must not affect current performance
Our current acquisition strategy is the parallel strategy, which has its own acquisition loop. All
performance tests were done on that strategy. Should we need to change to the callback strategy
(implemented but not performance-tested), performance must not be negatively affected. The
new SDK may force the use of the callback strategy.
3.2 Integrate the new SDKs (Porta 3.0 and Texo 1.0) as-are
The new SDKs provide a lot of functionality and likely fix many of the more complex bugs
(especially for RF acquisition). Adopting them may make Restitu more performant, may give
access to features not available in older SDKs, and may even eventually be necessary with new
hardware. Integrating them as-is has the advantage that it does not require any additional
support from Ultrasonix, and makes us less dependent on them. However, it may be impossible
to fulfill many of our needs, and the integration may be time-consuming, especially if the new
SDKs cause new bugs in Restitu.
3.3 Integrate the new SDKs (Porta 3.0 and Texo 1.0) with additional
support from Ultrasonix
If Ultrasonix accepts to provide additional support for their SDKs in a timely manner, we may
get most of the advantages of option 3.2 (complex bug fixes, possible performance boost, new
features, compatibility with future hardware). In addition, many of our needs are more likely to
be fulfilled through their support. This would likely require their giving us access to all their
low-level DLLs (not the source code, but the LIBs and headers) and their giving us buildable
sources for one or more critical specific low-level DLLs. However, this would make us more
dependent on them, it may still be impossible to fulfill some of our needs, and the integration
may still be time-consuming.
3.4 Integrate the new SDKs with all the buildable source code for both
high-level and low-level DLLs
If we convince Ultrasonix that giving us access to all the buildable source code for their DLLs
simplifies our integration greatly (and even makes it possible in the first place) without any
disadvantages for them, we get all advantages of option 3.3. In addition, it is likely that all our
needs will be met this way, and that we will not be blocked waiting for them to make changes.
The integration will still be more time-consuming than with option 3.1, but the advantages
outweigh that disadvantage greatly.
Needs 3.1 Old SDK 3.2 New SDK as- 3.3 New SDK 3.4 New SDK
is with support with all sources
2.1.1 Notification Certain. Already Unlikely. Uncertain. Certain.
only if new frame working. Probably not Requires our own Necessary
considered a bug acquisition loop, modifications in
by Ultrasonix. and thus access to source code
acquisition DLL possible.
source code.
2.1.2 Processor Certain. Already Likely. Ultrasonix Likely. Ultrasonix Certain.
threading bug working. informed of the informed of the Necessary
bug. bug. modifications in
source code
possible.
2.1.3 1-frame Certain. Already Uncertain. May Uncertain. May Certain.
processing limit working. not be considered not be considered Necessary
a bug. a bug. May require modifications in
access to source code
utx_imgproc.dll possible.
source code.
2.1.4 Corrupt Certain. Already Uncertain. May Uncertain. May Certain.
setup files working. not be considered not be considered Necessary
a bug. a bug. May require modifications in
access to porta.dll source code
source code. possible.
2.1.5 VC7 Certain. Already Unlikely. Likely. Certain.
compatibility working. Workarounds may Workarounds may Necessary
be possible but be possible but modifications in
probably requires a probably requires a source code
new version by new version by possible.
Ultrasonix. Ultrasonix.
2.1.6 Serial Certain. Already Unlikely. Does not Unlikely. Does not Likely. Necessary
number working. seem accessible seem accessible modifications in
through SDKs. through SDKs or source code may
even exported in be possible, but
low-level DLLs. driver may not
May require access allow access
to utx_driver.dll anymore.
source code.
2.1.7 prbInfo Certain. Already Unlikely. Does not Unlikely. Does not Certain.
structure working. seem accessible seem accessible Necessary
through SDKs. through SDKs or modifications in
even exported in source code
low-level DLLs. possible.
4.2 Conclusion
The overall need fulfillment of each option was calculated by assigning a value to each
probability (Impossible = 0%, Unlikely = 25%, Uncertain = 50%, Likely = 75%, Certain =
100%) and averaging the results. It is obvious from the table that options 3.2 and 3.3 are very
likely to be unusable (45% and 31% less likely to fulfill our needs than the current option (3.1).
However, option 3.4 is more likely to fulfill our needs than the current option, enough to justify
the disadvantages that come with it (possibly time-consuming implementation). The different
needs were not weighted, but option 3.4 makes fulfilling our new needs much more likely than
option 3.1, and may be the only way to fulfill them.
This analysis makes clear that unless we have full access to Ultrasonix buildable source code
for both high and low level DLLs, it is not a good move, and may be even impossible, to
integrate the new Ultrasonix SDK. Because it may be necessary to do so to fulfill our new
needs, option 3.4 seems the only choice. This implies that Ultrasonix must be convinced that
providing their source code is necessary for us and not a disadvantage for them.