MicroControl:Developer: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
 
Line 17: Line 17:
Each part of documentation includes the description of the format of data model which is maintained aat the remote-client.
Each part of documentation includes the description of the format of data model which is maintained aat the remote-client.
XML tags and the description of the information they contain.
XML tags and the description of the information they contain.
== communication ==
Basic communication between client and server is achieved by message passing over TCP. Each message is a five byte header followed by the message itself.
The header has two fields -
# A single byte character which describes type of incoming chunk
## 'f' stands for a file (mostly image file)
## 'x' stands for an incoming XML (typically a compilation of scalar and vector values)
# An unsigned long integer (4 bytes) describing the size of the incoming data
That means the image size is currently limited by the highest number that can be stored in unsigned long integer.
== blocking and queuing ===
If a new request is initiated while the TCP client is already waiting for the results from a previous request, blocking may occur. This typically results from request of image scan which may take long time. Also when the live view functionality is turned on, the client is always waiting for new images.
Blocking is handled by a queuing mechanism as follows. If GUI is making another request while the client is already in waiting mode, satXML sets up a queue and adds current request to it. The status is checked for every request made to satXML.
There is still a limitation that get and set requests are not mixed currently. That can be solved by using a separate queue for get and set requests.


= Development of important features =  
= Development of important features =  

Latest revision as of 20:49, 11 January 2011



Developer documentation

Interface and API are each defined currently for multiple functionalities. This chapter provides discussion with users and developers in mind for scope and implementation of each feature.

Acquisition settings are grouped into different use cases.

  • What to scan
  • How to scan
  • Where to scan
  • When to scan

Each part of documentation includes the description of the format of data model which is maintained aat the remote-client. XML tags and the description of the information they contain.

Development of important features

Configuration of Tracks

What to scan

Stage configuration

Purpose of this feature is to provide means for the user to interactively define 2d scan geometry.

User is expected to load the specimen / slide in the microscope and then either using remote client or directly the eye piece get the area(s) of interest in the view and click certain buttons so that client will remember those settings.

A Clickable window must be presented to show the geometry already defined. see what focus points are defined. A low resolution tiled scan is also useful for the researcher to setup points of interest.

The stage data model maintains

  • Scan extents. Either defined with center a and the width and height of the image around the center, or by selecting the corners.
  • Focus
  • Confocal stack settings

Additionally

if using Sectioning

  • x-y list of points of interest. At each selected location, it is possible to define
    1. Focus
    2. Section settings

Without Sectioning

  • x-y list of points of interest. At each selected location, it is possible to define
    1. Focus
    2. Stack settings


In future the region of interest will include geometric features.

Stack configuration

How to scan

Get and set various scan parameters

Overview Scan

Select the configuration for the fastest scan, by choosing highest speed, lowest zoom and least overlap and lowest resolution. User then selects the overview area

Either by manually positioning the slide and then marking the center Or by marking top-left and botton-right positions

and the corresponding focii

When to scan

Creation of a batch job