GAYA Analyzer SDD Presentation. GAYA Analyzer Introduction OMS40G256 is a hardware device used for...
-
Upload
gerald-phillips -
Category
Documents
-
view
214 -
download
0
Transcript of GAYA Analyzer SDD Presentation. GAYA Analyzer Introduction OMS40G256 is a hardware device used for...
GAYA Analyzer
GAYA Analyzer
SDD Presentation
GAYA Analyzer
Introduction
•OMS40G256 is a hardware device used for detection of radioactive radiation for medical imaging systems. The detector is built from a matrix of 16*16 pixels
•The detectors can connect to an electronic board – Hardware SDK.
•The Hardware SDK registers events (radioactive particle impact) generated by the detectors.
•The SDK can collect the events as raw data or build particles energy histogram for each pixel individually.
•The collected data can be transferred to a PC for further processing.
GAYA Analyzer
Working Environment
Hardware SDKSDK64 40G256
Radiation DetectorOMS40G256
Radiation DetectorOMS40G256
Radiation DetectorOMS40G256
0 - 64
GAYA Analyzer
Main Requirements
• Allow the device developers to test it during the different development phases. This will include:o Retrieving data from the deviceo Analyzing the retrieved data using different algorithms o Displaying the histograms and the analyzed data received from
SDK.
• Allow calibration of the device for developers / future customers.
• Provide an API to communicate with the device:o The API will include a variant set of methods that will allow the
future customers to develop software that will be used to test / control the device.
o The API will publish only the device abilities that Orbotech sees fitting to expose to future customers.
GAYA Analyzer
Block Diagram
Application Layer
Services Layer
Hardware Layer
RS232 Driver
USB Driver
Ethernet Driver
Hardware SDKSDK64 40G256
Radiation Detector
OMS40G256
Radiation Detector
OMS40G256
HardwareLayer
Application
ServiceLayer
GAYA Analyzer
Main Class Diagrams – Application Layer
GAYA Analyzer
Main Class Diagrams – Service and Hardware Layers
GAYA Analyzer
Use Cases
Test Module Intactness
Calibrate Gain And Offset
Get System State
Summery
Analyze CZT/ Module Quality
Find Optimal Cut
Find Qualified Criteria
Next
System Start Up
System Shut Down
GAYA Analyzer
System Start Up
User
Application ManagerApplicationManager
ServiceLayerOMSServicesLayer
1.2: addConnectionListener(ConnectionListener): void
1.3: enterPassword(short):void
1.1: connectToSDK(ConnectionParameters):void1: Start
All Use Cases
GAYA Analyzer
Get System State Summery
ServicesLayerOMSServicesLayer
CalibrationModelCalibrationModel
User
CalibrationPanelCalibrationPanel
ApplicationManagerApplicationManager
CalibrationManagerCalibrationManager
1.1: returnSystemStateSummery():Collection
1: returnSystemStateSummery():Collection
1.1.1: returnSystemStateSummery():Collection
1.1.1.1.3: listConnectedModules():int[]
1.1.1.1.4:*[1..64][moduleIsConnected] getModuleParameters():ModulePa...
1.1.1.1.2: getSDKParameters():SDKParameters
1.1.1.1.1:[!connected] connectToSDK(ConnectionParameters):void
1.1.1.1: returnSystemStateSummery():Collection
GAYA Analyzer
Get System State Summery – Cont.
All Use Cases
GAYA Analyzer
Test Module Intactness
ServicesLayerOMSServicesLayer
ApplicationManagerApplicationManager
CalibrationModelCalibrationModel
User
CalibrationPanelCalibrationPanel
CalibrationManagerCalibrationManager
1.1.1.1.1: testAllModulesIntactness():boolean[]
1.1: testAllModulesIntactness():boolean[]
1: testAllModulesIntactness():boolean[]
1.1.1: testAllModulesIntactness():boolean[]
1.1.1.1: testAllModulesIntactness():boolean[]
GAYA Analyzer
Test Module Intactness – Cont.
User
ServiceLayerServiceLayerAPI
HardwareLayerCHardwareLayer
1.2: getModuleStatus(moduleID):void
1.1: runSelfTest(moduleID):void
1: testModuleIntactness(moduleID):boolean
All Use Cases
GAYA Analyzer
Calibrate Gain And Offset
Calibrate
Initialize
ApplicationManagerApplicationManager
ServicesLayerOMSServicesLayer
CalibrationModelCalibrationModel
User
CalibrationPanelCalibrationPanel
IDBIDB
CalibrationManagerCalibrationManager
1.1: calibrateGainAndOffset(Collection):void
1: calibrateGainAndOffset(Collection):void
1.1.1: calibrateGainAndOffset(Collection):Collection
1.1.1.1.4.1.2: calculateGainAnddOffset():Collection
2: saveGainAndOffset(int,Collection):void
1.1.1.1.4.1.1: removeImageDataChangedListener(IImageDataChanged...
1.1.1.1.4:*[1..2] startImageAcquisition(int[],OperationMode,NotificationMo...
1.1.1.1.2: setModuleOffset(int,int,short):void //Offset
1.1.1.1.1: setModuleGain(int,int,short):void //Gain
1.1.1.1.4.1: ImageAcquisitionEnded
1.1.1.1: calibrateGainAndOffset(Collection):Collection
1.1.1.1.3: addImageDataChangedListener(IImageDataChangedListene...
for eachraditaionsourcerepeatfrom1.1.1.1.3 to1.1.1.1.4.1
GAYA Analyzer
Calibrate Gain And Offset – Cont.
All Use Cases
Calibrate
Initialize
GAYA AnalyzerInitialize New Module
ApplicationManagerApplicationManager
ServicesLayerOMSServicesLayer
CalibrationModelCalibrationModel
User
CalibrationPanelCalibrationPanel
CalibrationManagerCalibrationManager
IDBIDB
1.6.1.1.5: updateModuleParameters(ModuleParameters,ModuleParame...
1.6.1.1.4: testModuleIntactness(int):boolean
1.6.1.1.3: copyRAMToEEPROM(int):void //update default memory
1.6.1.1.2:*[for each updated param] setModuleParamter(int,ModulePara...
1.6.1.1.1: writeRAM(byte[],int):void //update default parameters memory
1.3.1.1.1: getModuleParameters():ModuleParameters
1.9.1.1.3: copyRAMToEEPROM(int):void //update default memory
1.9.1.1.5: addNewModule(ModuleParameters):void
1.9.1.1.4: testModuleIntactness(int):boolean
1.9.1.1.1: writeRAM(byte[],int):void //update default parameters memory
1.1.1.1.3: init:=isModuleInitialized(int):boolean
1.9.1.1.2: setModuleParameters(ModuleParameters,int):void
1.1.1.1.2:[connected] //Burn Module Hardware
1.1.1.1.1: connected:=isModuleConnected(int):boolean
1.5:[initialized && restore] //getDefaultMemoryFilename ;String
1.8:[! initialized] //getDefaultMemoryFilename ;String
1.6:[initialized && restore] updateModuleParameters(ModuleParameter...
1.4:[initialized && restore] <undefined>(oldModuleParaeters : ModuleP...
1.3:[initialized && restore] getModuleParameters():ModuleParameters
1.2:[initialized] restore:=<undefined>() //Restore Defaults?
1.9:[! initialized] setNewModuleParameters(ModuleParameters,String):...
1.7:[! initialized] params:=<undefined>() //getNewModuleParameters :...
1.1.1.1.2.1.1.1: Burn Module Hardware
1.1: initialized:=initializeModule(int):boolean
1: initializeModule(int):void
1.6.1: updateModuleParameters(ModuleParameters,ModuleParameter...
1.3.1: getModuleParameters():ModuleParameters
1.9.1: setNewModuleParameters(ModuleParameters,String):void
1.1.1.1.2.1.1: Burn Module Hardware
1.1.1: initializeModule(int):boolean
1.6.1.1: updateModuleParameters(ModuleParameters,ModuleParamet...
1.3.1.1: getModuleParameters():ModuleParameters
1.9.1.1: setNewModuleParameters(ModuleParameters,String):void
1.1.1.1.2.1: Burn Module Hardware
1.1.1.1: initializeModule(int):boolean
Calibrate
Initialize
GAYA Analyzer
Initialize New Module – Cont.
1.6.1.1.5: updateModuleParameters(ModuleParameters,ModuleParame...
1.6.1.1.4: testModuleIntactness(int):boolean
1.6.1.1.3: copyRAMToEEPROM(int):void //update default memory
1.6.1.1.2:*[for each updated param] setModuleParamter(int,ModulePara...
1.6.1.1.1: writeRAM(byte[],int):void //update default parameters memory
1.3.1.1.1: getModuleParameters():ModuleParameters
1.9.1.1.3: copyRAMToEEPROM(int):void //update default memory
1.9.1.1.5: addNewModule(ModuleParameters):void
1.9.1.1.4: testModuleIntactness(int):boolean
1.9.1.1.1: writeRAM(byte[],int):void //update default parameters memory
1.1.1.1.3: init:=isModuleInitialized(int):boolean
1.9.1.1.2: setModuleParameters(ModuleParameters,int):void
1.1.1.1.2:[connected] //Burn Module Hardware
1.1.1.1.1: connected:=isModuleConnected(int):boolean
1.5:[initialized && restore] //getDefaultMemoryFilename ;String
1.8:[! initialized] //getDefaultMemoryFilename ;String
1.6:[initialized && restore] updateModuleParameters(ModuleParameter...
1.4:[initialized && restore] <undefined>(oldModuleParaeters : ModuleP...
1.3:[initialized && restore] getModuleParameters():ModuleParameters
1.2:[initialized] restore:=<undefined>() //Restore Defaults?
1.9:[! initialized] setNewModuleParameters(ModuleParameters,String):...
1.7:[! initialized] params:=<undefined>() //getNewModuleParameters :...
1.1.1.1.2.1.1.1: Burn Module Hardware
1.1: initialized:=initializeModule(int):boolean
1: initializeModule(int):void
1.6.1: updateModuleParameters(ModuleParameters,ModuleParameter...
1.3.1: getModuleParameters():ModuleParameters
1.9.1: setNewModuleParameters(ModuleParameters,String):void
1.1.1.1.2.1.1: Burn Module Hardware
1.1.1: initializeModule(int):boolean
1.6.1.1: updateModuleParameters(ModuleParameters,ModuleParamet...
1.3.1.1: getModuleParameters():ModuleParameters
1.9.1.1: setNewModuleParameters(ModuleParameters,String):void
1.1.1.1.2.1: Burn Module Hardware
1.1.1.1: initializeModule(int):boolean
Calibrate
Initialize
GAYA Analyzer
Initialize New Module – Cont.
1.6.1.1.5: updateModuleParameters(ModuleParameters,ModuleParame...
1.6.1.1.4: testModuleIntactness(int):boolean
1.6.1.1.3: copyRAMToEEPROM(int):void //update default memory
1.6.1.1.2:*[for each updated param] setModuleParamter(int,ModulePara...
1.6.1.1.1: writeRAM(byte[],int):void //update default parameters memory
1.3.1.1.1: getModuleParameters():ModuleParameters
1.9.1.1.3: copyRAMToEEPROM(int):void //update default memory
1.9.1.1.5: addNewModule(ModuleParameters):void
1.9.1.1.4: testModuleIntactness(int):boolean
1.9.1.1.1: writeRAM(byte[],int):void //update default parameters memory
1.1.1.1.3: init:=isModuleInitialized(int):boolean
1.9.1.1.2: setModuleParameters(ModuleParameters,int):void
1.1.1.1.2:[connected] //Burn Module Hardware
1.1.1.1.1: connected:=isModuleConnected(int):boolean
1.5:[initialized && restore] //getDefaultMemoryFilename ;String
1.8:[! initialized] //getDefaultMemoryFilename ;String
1.6:[initialized && restore] updateModuleParameters(ModuleParameter...
1.4:[initialized && restore] <undefined>(oldModuleParaeters : ModuleP...
1.3:[initialized && restore] getModuleParameters():ModuleParameters
1.2:[initialized] restore:=<undefined>() //Restore Defaults?
1.9:[! initialized] setNewModuleParameters(ModuleParameters,String):...
1.7:[! initialized] params:=<undefined>() //getNewModuleParameters :...
1.1.1.1.2.1.1.1: Burn Module Hardware
1.1: initialized:=initializeModule(int):boolean
1: initializeModule(int):void
1.6.1: updateModuleParameters(ModuleParameters,ModuleParameter...
1.3.1: getModuleParameters():ModuleParameters
1.9.1: setNewModuleParameters(ModuleParameters,String):void
1.1.1.1.2.1.1: Burn Module Hardware
1.1.1: initializeModule(int):boolean
1.6.1.1: updateModuleParameters(ModuleParameters,ModuleParamet...
1.3.1.1: getModuleParameters():ModuleParameters
1.9.1.1: setNewModuleParameters(ModuleParameters,String):void
1.1.1.1.2.1: Burn Module Hardware
1.1.1.1: initializeModule(int):boolean
The user has toprompted to Calibrategain and Offsetsequence
All Use Cases
Calibrate
Initialize
GAYA Analyzer
Analyze CZT / Module Quality
User
AnalysisPanelAnalysisPanel
ApplicationManagerApplicationManager
AnalysisModelAnalysisModel
ServicesLayerOMSServicesLayer
AnalysisManagerAnalysisManager
IDBIDB
1.1.2.1.1.2.1: removeImageDataChangedListener(IImageDataChanged...
1.1.2.1.1.2.2: AddImageData(int,ImageData):void
1.1.2.1.1.1.2: imageDataChanged
1.1.2.1.1.1.1: getImageHistogram(int):ImageData
1.1.2.1.1.2.4: NotifyImageAcquisitionEnd1.1.2.1.1.2.3: AnalyzeRetrievedData(AcquireImageParams):Collection
1.1.2.1.1: startImageAcquisition(int[],OperationMode,NotificationMode,lo...
1.1.1.1.1: addImageDataChangedListener(IImageDataChangedListene...
1.1.2.1.1.1: imageDataChanged
1.1.2.1.1.2: NotifyImageAcquisitionEnd
1.1.1: addImageDataChangedListener(IImageDataChangedListener):v...
1.1.2: AcquireImage(moduleID,ignorePixels,endConditionType,endCon...
1.1.2.1.1.1.2.1: imageDataChanged
1.1.2.1.1.2.4.1: NotifyImageAcquisitionEnd
1.1.2.1: AcquireImage(AcquireImageParams):void
1.1.1.1: addImageDataChangedListener(IImageDataChangedListener)...
1.1: analyzeWaferImage(string,AcquireImageParams):void
1: analyzeWaferImage(string,AcquireImageParams):voidAcquire
Existing
GAYA Analyzer
Analyze CZT / Module Quality – Cont.
Acquire
Existing
GAYA Analyzer
Analyze CZT / Module Quality – Cont.
Acquire
All Use Cases
Existing
GAYA Analyzer
Image acquisition thread
Acquire
Existing
GAYA Analyzer
Image acquisition thread – Cont.
All Use Cases
Existing
Acquire
GAYA Analyzer
Analyze Existing Image
User
AnalysisPanelAnalysisPanel
ApplicationManagerApplicationManager
AnalysisModelAnalysisModel
AnalysisManagerAnalysisManager
IDBIDB
1.1.1.1.2: AnalyzeRetrievedData(AcquireImageParams):Collection
1.1.1.1.1: loadExisitingImage(int,Date):ImageData
1.1.1: loadExisitingImage(int,Date):Collection
1.1.1.1: loadExisitingImage(int,Date):Collection
1.1: loadExisitingImage(int,Date):void
1: loadExisitingImage(int,Date):voidExisting
All Use Cases
Acquire
GAYA Analyzer
Find Optimal Cut
User
AnalysisPanelAnalysisPanel
AnalysisModelAnalysisModel
ApplicationManagerApplicationManager
AnalysisManagerAnalysisManager
1.1.1.1: findOptimalCut(Rectangle,Parameter):Collection
1.1.1: findOptimalCut(Rectangle,Parameter):Collection
1.1: findOptimalCut(Rectangle,Parameter):Collection
1: findOptimalCut(int,int,Parameter):Collection
All Use Cases
GAYA Analyzer
Find Qualified Criteria
User
AnalysisModelAnalysisModel
ApplicationManagerApplicationManager
AnalysisManagerAnalysisManager
AnalysisPanelAnalysisPanel
1.1.1.1.1: filterQualifiedCriteria():Collection
1.1.1.1: findQualifiedCriteria():Collection
1.1.1: findQualifiedCriteria():Collection
1.1: findQualifiedCriteria():Collection
1: findQualifiedCriteria():Collection
All Use Cases
GAYA Analyzer
System Shut Down
ServiceLayerOMSServicesLayer
User
Application ManagerApplicationManager
ApplicationPanelApplicationPanel
1.1: shutDown():void
1.1.1: removeConnectionListener(ConnectionListener): void
1.1.2: disconnectFromSDK():void
1: shutDown():void
All Use Cases
GAYA Analyzer
User Interface Overview
Image Acquisition:
GAYA Analyzer
User Interface Overview – Cont.
Image Analysis:
GAYA Analyzer
User Interface Overview – Cont.
System State Summery:
GAYA Analyzer
User Interface Overview – Cont.
Calibrate Gain and Offset:
GAYA Analyzer
User Interface Overview – Cont.
Initialize New Module:
GAYA Analyzer
Testing
• Unit-Tests:Every method in the Service Layer API and the Application managers will have a test.
• SDK “Simulation State”: In “simulation” state the SDK simulates an image acquisition and creates events and histograms as in operational mode.
• Data Integrity Verification:Writing histogram into SDK memory and retrieving the histogram back via Service Layer API.
• Functional Tests will be done on the UI, to verify completeness of the whole application.
GAYA Analyzer
Task List
Remaining tasks:Remaining tasks:
1st Milestone: Prototype (End Of March)
• Write the interface for image acquisition in the service layer API
• Write the application layer code for retrieving the image from the services layer, and analyzing the results.
GAYA Analyzer
Task List – Cont.
2nd Milestone: Image Analysis (End Of April)
• Write a generic system for sending commands to the device.
• Write the image acquisition thread.• Write the image acquisition display.• Write the image analysis for other
parameters.
GAYA Analyzer
Task List – Cont.
3rd Milestone: Calibrations (End Of May)
• Write the service and hardware layers commands for calibrations.
• Write the application calculation of gain and offset.
• Write the code for initializing new module in all layers.
GAYA Analyzer
Task List – Cont.
4th Milestone: Testing (End Of June)
• Run all the functional tests for the system, as detailed in the ADD.
• Write all the documentation needed for the project: User Manual, Design Docs, etc.
GAYA Analyzer
GAYA Analyzer
The End