Difference between revisions of "OpenIGTLink"

From NAMIC Wiki
Jump to: navigation, search
Line 1: Line 1:
 
=Overview=
 
=Overview=
 +
A simple protocol intended for trackers, robots and other devices to send data to the main application. Some devices might accept commands.
 +
* [http://www.ndigital.com/ Optotrack]
 +
* MRI real time image
 +
* [http://www.cisst.org/wiki/MRI_Robot JHU robots]
 +
Please contact us if you would like to include other devices.
 +
 +
=People / Organizations=
 +
* [http://www.kitware.com/profile/team/ibanez.html Luis Ibanez], Kitware
 +
* Junichi Tokuda, BWH
 +
* [http://www.cisst.org/wiki/User:Csoma Csaba Csoma], JHU
 +
* Jack Blevins, Acousticmed
 +
* Patrick Cheng, BWH
 +
* Haying Liu, BWH
 +
* [http://www.insightsoftwareconsortium.org/ Insight Software Consortium]
 +
* [http://www.na-mic.org/ National Alliance for Medical Image Computing (NA-MIC)]
 +
 
=Protocol=
 
=Protocol=
  
Line 6: Line 22:
 
   0  2                      14                                      34            42              50
 
   0  2                      14                                      34            42              50
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+.....
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+.....
   | V |          TYPE        |              DEVICE_NAME              |  BODY_SIZE  |      CRC      |  BODY     
+
   | V |          TYPE        |              DEVICE_NAME              |  BODY_SIZE  |      CRC64    |  BODY     
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+.....
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+.....
  
 
===Byte Order===
 
===Byte Order===
Big endian should be used.
+
Big endian should be used for all numerical values (version, body size, crc)
  
 
===Header Fields===
 
===Header Fields===

Revision as of 20:22, 9 January 2008

Home < OpenIGTLink

Overview

A simple protocol intended for trackers, robots and other devices to send data to the main application. Some devices might accept commands.

Please contact us if you would like to include other devices.

People / Organizations

Protocol

Header Structure

 Bytes
 0   2                       14                                      34             42               50
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+.....
 | V |          TYPE         |              DEVICE_NAME              |   BODY_SIZE   |      CRC64    |   BODY  		  
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+.....

Byte Order

Big endian should be used for all numerical values (version, body size, crc)

Header Fields

Data Type Description
V Unsigned short (16bit) Version number (1)
TYPE char[8] Type name of body
DEVICE_NAME char[20] Unique device name
BODY_SIZE 64 bit unsigned int Size of body in bytes
CRC 64 bit unsigned int 64 bit CRC for body data

Message types

IMAGE

TRANSFORM

POSITION

STATUS

 Bytes (Body)
 50   52            60                           80
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+.....
 | C |  Sub Code   |       Status name           |   Status message (optional)
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+.....
Data Type Description
C Unsigned short (16bit) Status code groups: 1-Ok, 2-Generic Error, ... (see below)
Sub Code 64 bit integer Sub code for the error (ex. 0x200 - file not found)
Error name char[20] "Error", "Ok", "Starting up" - can be anything, don't relay on this
Status Message (optional) char[ BodySize - 30 ] Optional (English) description (ex. "File C:\test.ini not found")


Status codes:
0 No Errors Found (use status 1 instead!)
1 OK (Default status)
2 Unknown error
3 Panic mode (emergency)
4 Not found (file, configuration, device etc)
5 Access denied
6 Busy
7 Time out / Connection lost
8 Overflow / Can't be reached
9 Checksum error
10 Configuration error
11 Not enough resource (memory, storage etc)
12 Illegal/Unknown instruction (or feature not implemented)
13 Device not ready (starting up)
14 Manual mode (device does not accept commands)
15 Device disabled
16 Device not present
17 Device version not known
18 Hardware failure
19 Exiting / shut down in progress


Resources