Difference between revisions of "OpenIGTLink"

From NAMIC Wiki
Jump to: navigation, search
Line 10: Line 10:
 
=People / Organizations=
 
=People / Organizations=
 
* [http://www.kitware.com/profile/team/ibanez.html Luis Ibanez], Kitware
 
* [http://www.kitware.com/profile/team/ibanez.html Luis Ibanez], Kitware
* Junichi Tokuda, BWH
+
* [http://www.spl.harvard.edu/pages/People/tokuda  Junichi Tokuda], BWH
 
* [http://www.cisst.org/wiki/User:Csoma Csaba Csoma], JHU
 
* [http://www.cisst.org/wiki/User:Csoma Csaba Csoma], JHU
 
* Jack Blevins, Acousticmed
 
* Jack Blevins, Acousticmed

Revision as of 20:46, 9 January 2008

Home < OpenIGTLink

Open IGT Link is a simple network 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.)

License: new BSD license ©2008 Insight Software Consortium

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