gaya analyzer sdd presentation. gaya analyzer introduction oms40g256 is a hardware device used for...

Post on 14-Jan-2016

216 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related