Fraxinus  18.10
An IGT application
cxIGTLinkUSStatusMessage.cpp
Go to the documentation of this file.
1 /*=========================================================================
2 This file is part of CustusX, an Image Guided Therapy Application.
3 
4 Copyright (c) SINTEF Department of Medical Technology.
5 All rights reserved.
6 
7 CustusX is released under a BSD 3-Clause license.
8 
9 See Lisence.txt (https://github.com/SINTEFMedtek/CustusX/blob/master/License.txt) for details.
10 =========================================================================*/
11 
13 #include "igtl_header.h"
14 #include <string.h>
15 #include "igtl_us_status.h"
16 
17 namespace cx
18 {
19 
21  igtl::MessageBase(),
22  mProbeType(ProbeDefinition::tNONE)
23 {
24  AllocatePack();
25  m_StatusMessage = m_Body;
26  m_StatusMessage = NULL;
27 
28  for (int i = 0; i < 3; i ++)
29  {
30  mDataOrigin[i] = 0.0;
31  }
32 
33  m_SendMessageType = "CX_US_ST";
34 }
35 
37 {}
38 
39 void IGTLinkUSStatusMessage::SetProbeType(ProbeDefinition::TYPE probeType)
40 {
41  mProbeType = probeType;
42 }
43 int IGTLinkUSStatusMessage::GetProbeType()
44 {
45  return mProbeType;
46 }
48 {
49  mDataOrigin[0] = o[0];
50  mDataOrigin[1] = o[1];
51  mDataOrigin[2] = o[2];
52 }
53 void IGTLinkUSStatusMessage::SetOrigin(double oi, double oj, double ok)
54 {
55  mDataOrigin[0] = oi;
56  mDataOrigin[1] = oj;
57  mDataOrigin[2] = ok;
58 }
59 
61 {
62  o[0] = mDataOrigin[0];
63  o[1] = mDataOrigin[1];
64  o[2] = mDataOrigin[2];
65 }
66 
67 const double* IGTLinkUSStatusMessage::GetOrigin() const
68 {
69  return mDataOrigin;
70 }
71 
72 void IGTLinkUSStatusMessage::GetOrigin(double &oi, double &oj, double &ok)
73 {
74  oi = mDataOrigin[0];
75  oj = mDataOrigin[1];
76  ok = mDataOrigin[2];
77 }
78 
80 {
81  mDepthStart = depthStart;
82 }
84 {
85  return mDepthStart;
86 }
88 {
89  mDepthEnd = depthEnd;
90 }
92 {
93  return mDepthEnd;
94 }
96 {
97  mWidth = width;
98 }
100 {
101  return mWidth;
102 }
103 void IGTLinkUSStatusMessage::SetDataFormat(std::string dataFormat)
104 {
105  mDataFormat = dataFormat;
106 }
108 {
109  return mDataFormat;
110 }
111 
113 {
114  // Allocate pack
115  AllocatePack();
116  m_StatusMessage = this->m_Body;
117 
118  // Set pointers
120 
121  //Copy data
122  statusMessage->originX = static_cast<igtl_float64>(this->mDataOrigin[0]);
123  statusMessage->originY = static_cast<igtl_float64>(this->mDataOrigin[1]);
124  statusMessage->originZ = static_cast<igtl_float64>(this->mDataOrigin[2]);
125  statusMessage->depthStart = static_cast<igtl_float64>(this->mDepthStart);
126  statusMessage->depthEnd = static_cast<igtl_float64>(this->mDepthEnd);
127  statusMessage->width = static_cast<igtl_float64>(this->mWidth);
128 
129  statusMessage->probeType = static_cast<igtl_int32>(this->mProbeType);
130  //TODO: string dataformat
131 
132  /*int originMemSpace = sizeof(igtl_float64)*3;
133  memcpy((*void)this->m_StatusMessage, (void*) mDataOrigin, originMemSpace);
134  memcpy((*void)this->m_StatusMessage[originMemSpace], (void*) mNewStatus, sizeof(igtl_uint8));*/
135 
136  // Convert byte order from host to network
137  igtl_us_status_convert_byte_order(statusMessage);
138 
139  return 1;
140 }
141 
143 {
145 }
146 
148 {
149  m_StatusMessage = this->m_Body;
150 
151  // Set pointers
153 
154  // Convert byte order from network to host
155  igtl_us_status_convert_byte_order(statusMessage);
156 
157  //Copy data
158  this->mDataOrigin[0] = statusMessage->originX;
159  this->mDataOrigin[1] = statusMessage->originY;
160  this->mDataOrigin[2] = statusMessage->originZ;
161  this->mDepthStart = statusMessage->depthStart;
162  this->mDepthEnd = statusMessage->depthEnd;
163  this->mWidth = statusMessage->width;
164  this->mProbeType = static_cast<ProbeDefinition::TYPE>(statusMessage->probeType);
165  //TODO: dataformat
166 
167  return 1;
168 }
169 }
#define IGTL_US_STATUS_HEADER_SIZE
Definition of characteristics for an Ultrasound Probe Sector.
void igtl_export igtl_us_status_convert_byte_order(igtl_us_status_message *message)
Namespace for all CustusX production code.