Difference between revisions of "OpenIGTLink/Library"

From NAMIC Wiki
Jump to: navigation, search
Line 18: Line 18:
 
= Building instructions =
 
= Building instructions =
 
* [[OpenIGTLink/Library/Build | How to build the library?]]
 
* [[OpenIGTLink/Library/Build | How to build the library?]]
 
 
= Tutorial =
 
==C-code implementation (w/o socket)==
 
 
The library contains c codes in the Source/igtlutil directory to generate Open IGT Link message byte stream.
 
The followings are core parts of source codes to create Open IGT Link message.
 
 
Include declarations for transformation data:
 
  #include "igtl_util.h"
 
  #include "igtl_header.h"
 
  #include "igtl_transform.h"
 
 
Transform package creation:
 
  /********** pack data body **********/
 
  igtl_float32 transform[12];
 
 
 
  transform[0] = tx;
 
  transform[1] = ty;
 
  transform[2] = tz;
 
  transform[3] = sx;
 
  transform[4] = sy;
 
  transform[5] = sz;
 
  transform[6] = nx;
 
  transform[7] = ny;
 
  transform[8] = nz;
 
  transform[9] = px;
 
  transform[10] = py;
 
  transform[11] = pz;
 
 
 
  igtl_transform_convert_byte_order(transform);  /* convert endian if necessary */
 
 
 
  /********** general header **********/ 
 
  igtl_header header;
 
  igtl_uint64 crc = crc64(0, 0, 0LL);          /* initial crc */
 
  header.version  = IGTL_HEADER_VERSION;
 
  header.timestamp = 0;
 
  header.body_size = IGTL_TRANSFORM_SIZE;
 
  header.crc      = crc64((unsigned char*)transform, IGTL_TRANSFORM_SIZE, crc);
 
 
 
  strncpy(header.name, "TRANSFORM", 12);      /* Device Type: should be "TRANSFORM" */
 
  strncpy(header.device_name, "Tracker", 20);    /* Device name */
 
 
 
  igtl_header_convert_byte_order(h);  /* convert endian if necessary */
 
 
Then send package (in case of BSD socket)
 
  send(sock, (void*) &header, IGTL_HEADER_SIZE, 0);
 
  send(sock, (void*) transform, IGTL_TRANSFORM_SIZE, 0);
 

Revision as of 15:08, 25 June 2008

Home < OpenIGTLink < Library

<< OpenIGTLink

Source code

An Open Source implementation of the OpenIGTLink protocol is available at

http://www.na-mic.org/svn/NAMICSandBox/trunk/OpenIGTLink/

License

This code is distributed under the new BSD License.

Design

Building instructions