PlusLib  2.9.0
Software library for tracked ultrasound image acquisition, calibration, and processing.
vtkPlusWinProbeCommand.cxx
Go to the documentation of this file.
1 /*=Plus=header=begin======================================================
2  Program: Plus
3  Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved.
4  See License.txt for details.
5 =========================================================Plus=header=end*/
6 
7 #include "PlusConfigure.h"
10 
11 #include "vtkPlusDataCollector.h"
12 
14 
15 namespace
16 {
17  static const std::string WINPROBE_CMD = "WinProbeCommand";
18 
19 }
20 
21 //----------------------------------------------------------------------------
23  : ResponseExpected(true)
24 {
25  this->SetName(WINPROBE_CMD);
26  this->RequestedParameters.clear();
27 }
28 
29 //----------------------------------------------------------------------------
31 {
32  this->RequestedParameters.clear();
33 }
34 
35 //----------------------------------------------------------------------------
36 void vtkPlusWinProbeCommand::PrintSelf(ostream& os, vtkIndent indent)
37 {
38  this->Superclass::PrintSelf(os, indent);
39 }
40 
41 //----------------------------------------------------------------------------
43 {
44  this->SetName(WINPROBE_CMD);
45 }
46 
47 //----------------------------------------------------------------------------
48 void vtkPlusWinProbeCommand::GetCommandNames(std::list<std::string>& cmdNames)
49 {
50  cmdNames.clear();
51  cmdNames.push_back(WINPROBE_CMD);
52 }
53 
54 //----------------------------------------------------------------------------
55 std::string vtkPlusWinProbeCommand::GetDescription(const std::string& commandName)
56 {
57  std::string desc;
58  if (commandName.empty() || igsioCommon::IsEqualInsensitive(commandName, WINPROBE_CMD))
59  {
60  desc += WINPROBE_CMD;
61  desc += ": Send text data to WinProbe device.";
62  }
63  return desc;
64 }
65 
66 //----------------------------------------------------------------------------
68 {
69  return this->DeviceId;
70 }
71 
72 //----------------------------------------------------------------------------
73 void vtkPlusWinProbeCommand::SetDeviceId(const std::string& deviceId)
74 {
75  this->DeviceId = deviceId;
76 }
77 
78 //----------------------------------------------------------------------------
80 {
81  return this->CommandName;
82 }
83 
84 //----------------------------------------------------------------------------
86 {
87  this->CommandName = text;
88 }
89 
90 //----------------------------------------------------------------------------
92 {
93  return this->CommandValue;
94 }
95 
96 //----------------------------------------------------------------------------
98 {
99  this->CommandValue = text;
100 }
101 
102 //----------------------------------------------------------------------------
104 {
105  return this->CommandIndex;
106 }
107 
108 //----------------------------------------------------------------------------
109 void vtkPlusWinProbeCommand::SetCommandIndex(const std::string& index)
110 {
111  this->CommandIndex = index;
112 }
113 
114 //----------------------------------------------------------------------------
116 {
117  this->RequestedParameters.clear();
119  {
120  return PLUS_FAIL;
121  }
122 
123  this->SetDeviceId(aConfig->GetAttribute("DeviceId"));
124  LOG_INFO(aConfig->GetNumberOfNestedElements());
125 
126  for(int elemIndex = 0; elemIndex < aConfig->GetNumberOfNestedElements(); ++elemIndex)
127  {
128  vtkXMLDataElement* currentElem = aConfig->GetNestedElement(elemIndex);
129  if (igsioCommon::IsEqualInsensitive(currentElem->GetName(), "Parameter"))
130  {
131  const char* parameterName = currentElem->GetAttribute("Name");
132  const char* parameterValue = currentElem->GetAttribute("Value");
133  const char* parameterIndex = currentElem->GetAttribute("Index");
134  if (!parameterName) // Index and Value arent always needed
135  {
136  LOG_ERROR("Unable to find required Name attribute in " << (currentElem->GetName() ? currentElem->GetName() : "(undefined)") << " element in SetUsParameter command");
137  continue;
138  }
139  LOG_INFO("Adding " << parameterName << " to execution list")
140 
141  std::map<std::string, std::string> param_values;
142  if (parameterValue)
143  {
144  param_values["Value"] = parameterValue;
145  }
146  if (parameterIndex)
147  {
148  param_values["Index"] = parameterIndex;
149  }
150  std::pair<std::string, std::map<std::string, std::string>> parameter;
151  parameter.first = parameterName;
152  parameter.second = param_values;
153  RequestedParameters.push_back(parameter);
154  }
155  }
156  return PLUS_SUCCESS;
157 }
158 
159 //----------------------------------------------------------------------------
161 {
163  {
164  return PLUS_FAIL;
165  }
166 
167  XML_WRITE_STRING_ATTRIBUTE_IF_NOT_EMPTY(DeviceId, aConfig);
168 
169  // Write parameters as nested elements
170  std::list<std::pair<std::string, std::map<std::string, std::string>>>::iterator paramIt;
171  for (paramIt = this->RequestedParameters.begin(); paramIt != this->RequestedParameters.end(); ++paramIt)
172  {
173  vtkSmartPointer<vtkXMLDataElement> paramElem = vtkSmartPointer<vtkXMLDataElement>::New();
174  paramElem->SetName("Parameter");
175  paramElem->SetAttribute("Name", paramIt->first.c_str());
176  std::map<std::string, std::string> param_attributes = paramIt->second;
177  std::map<std::string, std::string>::iterator attribIt;
178  for(attribIt = param_attributes.begin(); attribIt != param_attributes.end(); ++attribIt)
179  {
180  paramElem->SetAttribute(attribIt->first.c_str(), attribIt->second.c_str());
181  }
182  aConfig->AddNestedElement(paramElem);
183  }
184  return PLUS_SUCCESS;
185 }
186 
187 //----------------------------------------------------------------------------
189 {
190  LOG_DEBUG("vtkPlusWinProbeCommand::Execute: " << (!this->CommandName.empty() ? this->CommandName : "(undefined)")
191  << ", device: " << (this->DeviceId.empty() ? "(undefined)" : this->DeviceId)
192  << ", value: " << (this->CommandValue.empty() ? "(undefined)" : this->CommandValue)
193  << ", index: " << (this->CommandIndex.empty() ? "(undefined)" : this->CommandIndex));
194 
195  // Data Collector
196  vtkPlusDataCollector* dataCollector = GetDataCollector();
197  if (dataCollector == NULL)
198  {
199  this->QueueCommandResponse(PLUS_FAIL, "Command failed. See error message.", "Invalid data collector.");
200  return PLUS_FAIL;
201  }
202 
203  // Get device pointer
204  if (this->DeviceId.empty())
205  {
206  this->QueueCommandResponse(PLUS_FAIL, "Command failed. See error message.", "No DeviceId specified.");
207  return PLUS_FAIL;
208  }
209  vtkPlusDevice* usDevice = NULL;
210  if (dataCollector->GetDevice(usDevice, this->DeviceId) != PLUS_SUCCESS)
211  {
212  this->QueueCommandResponse(PLUS_FAIL, "Command failed. See error message.", std::string("Device ")
213  + (this->DeviceId.empty() ? "(undefined)" : this->DeviceId) + std::string(" is not found."));
214  return PLUS_FAIL;
215  }
216  vtkPlusWinProbeVideoSource* device = dynamic_cast<vtkPlusWinProbeVideoSource*>(usDevice);
217 
218  // CommandName
219  if (!igsioCommon::IsEqualInsensitive(this->Name, WINPROBE_CMD))
220  {
221  this->QueueCommandResponse(PLUS_FAIL, "Command failed. See error message.", "Unknown command name: " + this->Name + ".");
222  return PLUS_FAIL;
223  }
224 
225  std::map < std::string, std::pair<IANA_ENCODING_TYPE, std::string> > metaData;
226  std::string resultString = "<CommandReply>";
227  std::string error = "";
228  std::string res = "";
229  PlusStatus status = PLUS_SUCCESS;
230  bool hasFailure = false;
231 
232  std::list<std::pair<std::string, std::map<std::string, std::string>>>::iterator paramIt;
233  for (paramIt = this->RequestedParameters.begin(); paramIt != this->RequestedParameters.end(); ++paramIt)
234  {
235  std::string parameterName = paramIt->first;
236  // Map of command parameter and value to be returned via meta data.
237  // For Gets, this will return the value and for sets, this will return the success
238  // For example: "GetMDepth", "10" or "SetARFITxCycleCount", "SUCCESS"
239  std::map<std::string, std::string> attribs = paramIt->second;
240 
241  resultString += "<Parameter Name=\"" + parameterName + "\"";
242 
243  // Search for command
244  PlusStatus status;
245 
246  // Assign value and index
247  std::string value = attribs["Value"];
248  int index;
249  try { // try to cast index to number, but index may not always exist
250  index = std::stoi(attribs["Index"]);
251  }
252  catch (const std::invalid_argument& ia) {
253  index = -1;
254  }
255 
256  // Option 1: Get
257  if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_FREEZE)
258  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_TGC)
259  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_MULTIFOCAL_ZONE_COUNT)
260  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_FOCAL_DEPTH)
261  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_FOCAL_DEPTH)
262  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_FIRST_GAIN_VALUE)
263  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_TGC_OVERALL_GAIN)
264  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_SPATIAL_COMPOUND_ENABLED)
265  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_SPATIAL_COMPOUND_ANGLE)
266  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_SPATIAL_COMPOUND_COUNT)
267  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_MMODE_ENABLED)
268  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_M_REVOLVING_ENABLED)
269  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_RF_MODE_ENABLED)
270  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_MPR_FREQUENCY)
271  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_M_LINE_INDEX)
272  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_M_LINE_COUNT)
273  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_M_WIDTH)
274  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_M_DEPTH)
275  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_DECIMATION)
276  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_FRAME_RATE_LIMIT)
277  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_HARMONIC_ENABLED)
278  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_BUBBLE_CONTRAST_ENABLED)
279  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_AMPLITUDE_MODULATION_ENABLED)
280  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_TRANSMIT_LOCKED)
281  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_TRANSMIT_CURRENT)
282  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_TRANSMIT_CYCLE_COUNT)
283  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_TRANSMIT_FNUMBER)
284  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_APODIZATION_FNUMBER)
285  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_FILTER_COEFFICIENT_SET)
286  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_TRANSDUCER_INTERNAL_ID)
287  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_ENABLED)
288  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_START_SAMPLE)
289  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_STOP_SAMPLE)
290  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_PRE_PUSH_LINE_REPEAT_COUNT)
291  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_POST_PUSH_LINE_REPEAT_COUNT)
292  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_INTER_SET_DELAY)
293  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_INTER_PUSH_DELAY)
294  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_LINE_TIMER)
295  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_TX_CYCLE_COUNT)
296  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_TX_CYCLE_WIDTH)
297  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_TX_TX_CYCLE_COUNT)
298  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_TX_TX_CYCLE_WIDTH)
299  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_PUSH_CONFIG)
300  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_FPGA_REV_DATE_STRING)
301  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_X8BF_ENABLED))
302  {
303  if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_FREEZE))
304  res = device->IsFrozen() ? "True" : "False";
305  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_TGC))
306  res = std::to_string(device->GetTimeGainCompensation(index));
307  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_MULTIFOCAL_ZONE_COUNT))
308  res = std::to_string(device->GetBMultiFocalZoneCount());
309  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_FOCAL_DEPTH))
310  res = std::to_string(device->GetFocalPointDepth(index));
311  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_FOCAL_DEPTH))
312  res = std::to_string(device->GetARFIFocalPointDepth(index));
313  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_FIRST_GAIN_VALUE))
314  res = std::to_string(device->GetFirstGainValue());
315  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_TGC_OVERALL_GAIN))
317  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_SPATIAL_COMPOUND_ENABLED))
318  res = device->GetSpatialCompoundEnabled() ? "True" : "False";
319  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_SPATIAL_COMPOUND_ANGLE))
320  res = std::to_string(device->GetSpatialCompoundAngle());
321  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_SPATIAL_COMPOUND_COUNT))
322  res = std::to_string(device->GetSpatialCompoundCount());
323  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_MMODE_ENABLED))
324  res = device->GetMModeEnabled() ? "True" : "False";
325  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_M_REVOLVING_ENABLED))
326  res = device->GetMRevolvingEnabled() ? "True" : "False";
327  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_RF_MODE_ENABLED))
328  res = device->GetBRFEnabled() ? "True" : "False";
329  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_MPR_FREQUENCY))
330  res = std::to_string(device->GetMPRFrequency());
331  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_M_LINE_INDEX))
332  res = std::to_string(device->GetMLineIndex());
333  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_M_LINE_COUNT))
334  res = std::to_string(device->GetMAcousticLineCount());
335  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_M_WIDTH))
336  res = std::to_string(device->GetMWidth());
337  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_M_DEPTH))
338  res = std::to_string(device->GetMDepth());
339  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_DECIMATION))
340  res = std::to_string(device->GetSSDecimation());
341  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_FRAME_RATE_LIMIT))
342  res = std::to_string(device->GetBFrameRateLimit());
343  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_HARMONIC_ENABLED))
344  res = device->GetBHarmonicEnabled() ? "True" : "False";
345  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_BUBBLE_CONTRAST_ENABLED))
346  res = device->GetBBubbleContrastEnabled() ? "True" : "False";
347  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_AMPLITUDE_MODULATION_ENABLED))
348  res = device->GetBAmplitudeModulationEnabled() ? "True" : "False";
349  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_TRANSMIT_LOCKED))
350  res = device->GetBTransmitLocked() ? "True" : "False";
351  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_TRANSMIT_CURRENT))
352  res = std::to_string(device->GetBTransmitCurrent());
353  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_TRANSMIT_CYCLE_COUNT))
354  res = std::to_string(device->GetBTransmitCycleCount());
355  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_TRANSMIT_FNUMBER))
356  res = std::to_string(device->GetBTransmitFNumber());
357  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_APODIZATION_FNUMBER))
358  res = std::to_string(device->GetBApodizationFNumber());
359  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_B_FILTER_COEFFICIENT_SET))
360  res = std::to_string(device->GetBFilterCoefficientSet());
361  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_TRANSDUCER_INTERNAL_ID))
362  res = std::to_string(device->GetTransducerInternalID());
363  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_ENABLED))
364  res = device->GetARFIEnabled() ? "True" : "False";
365  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_START_SAMPLE))
366  res = std::to_string(device->GetARFIStartSample());
367  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_STOP_SAMPLE))
368  res = std::to_string(device->GetARFIStopSample());
369  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_PRE_PUSH_LINE_REPEAT_COUNT))
371  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_POST_PUSH_LINE_REPEAT_COUNT))
373  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_INTER_SET_DELAY))
374  res = std::to_string(device->GetARFIInterSetDelay());
375  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_INTER_PUSH_DELAY))
376  res = std::to_string(device->GetARFIInterPushDelay());
377  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_LINE_TIMER))
378  res = std::to_string(device->GetARFILineTimer());
379  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_TX_CYCLE_COUNT))
380  res = std::to_string(device->GetARFITxCycleCount());
381  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_TX_CYCLE_WIDTH))
382  res = std::to_string(device->GetARFITxCycleWidth());
383  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_TX_TX_CYCLE_COUNT))
384  res = std::to_string(device->GetARFITxTxCycleCount());
385  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_TX_TX_CYCLE_WIDTH))
386  res = std::to_string(device->GetARFITxTxCycleWidth());
387  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_ARFI_PUSH_CONFIG))
388  res = device->GetARFIPushConfigurationString();
389  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_FPGA_REV_DATE_STRING))
390  res = device->GetFPGARevDateString();
391  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::GET_X8BF_ENABLED))
392  res = device->GetARFIIsX8BFEnabled() ? "True" : "False";
393 
394  if (res != "")
395  {
396  status = PLUS_SUCCESS;
397  resultString += " Success=\"true\"";
398  if (index != -1)
399  resultString += " Index=\"" + std::to_string(index) + "\"";
400  resultString += " Value=\"" + res + "\"";
401  metaData[parameterName] = std::make_pair(IANA_TYPE_US_ASCII, res);
402  }
403  else
404  {
405  status = PLUS_FAIL;
406  resultString += " Success=\"false\"";
407  }
408  }
409 
410  // Option 2: Set
411  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_FREEZE)
412  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_TGC)
413  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_MULTIFOCAL_ZONE_COUNT)
414  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_FOCAL_DEPTH)
415  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_FOCAL_DEPTH)
416  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_FIRST_GAIN_VALUE)
417  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_TGC_OVERALL_GAIN)
418  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_SPATIAL_COMPOUND_ENABLED)
419  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_SPATIAL_COMPOUND_COUNT)
420  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_MMODE_ENABLED)
421  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_M_REVOLVING_ENABLED)
422  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_RF_MODE_ENABLED)
423  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_MPR_FREQUENCY)
424  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_M_LINE_COUNT)
425  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_M_WIDTH)
426  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_M_DEPTH)
427  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_DECIMATION)
428  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_FRAME_RATE_LIMIT)
429  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_HARMONIC_ENABLED)
430  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_BUBBLE_CONTRAST_ENABLED)
431  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_AMPLITUDE_MODULATION_ENABLED)
432  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_TRANSMIT_LOCKED)
433  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_TRANSMIT_CURRENT)
434  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_TRANSMIT_CYCLE_COUNT)
435  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_TRANSMIT_FNUMBER)
436  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_APODIZATION_FNUMBER)
437  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_FILTER_COEFFICIENT_SET)
438  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_ENABLED)
439  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_START_SAMPLE)
440  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_STOP_SAMPLE)
441  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_PRE_PUSH_LINE_REPEAT_COUNT)
442  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_POST_PUSH_LINE_REPEAT_COUNT)
443  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_INTER_SET_DELAY)
444  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_INTER_PUSH_DELAY)
445  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_LINE_TIMER)
446  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_TX_CYCLE_COUNT)
447  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_TX_CYCLE_WIDTH)
448  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_TX_TX_CYCLE_COUNT)
449  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_TX_TX_CYCLE_WIDTH)
450  || igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_PUSH_CONFIG))
451  {
452  if (value == "")
453  {
454  status = PLUS_FAIL;
455  std::string success = "false";
456  std::string status_msg = "MISSING INFO";
457  error += "Insufficient information for \"" + parameterName + "\"\n";
458  resultString += " Success=\"" + success + "\"";
459  metaData[parameterName] = std::make_pair(IANA_TYPE_US_ASCII, status_msg);
460  continue;
461  }
462 
463  if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_FREEZE))
464  {
465  bool set = igsioCommon::IsEqualInsensitive(value, "true") ? true : false;
466  status = device->FreezeDevice(set);
467  }
468  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_TGC))
469  {
470  double tgc_value = stod(value);
471  status = device->SetTimeGainCompensation(index, tgc_value);
472  }
473  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_MULTIFOCAL_ZONE_COUNT))
474  {
475  int32_t count = stoi(value);
476  status = device->SetBMultiFocalZoneCount(count);
477  }
478  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_FOCAL_DEPTH))
479  {
480  float depth_value = stof(value);
481  status = device->SetFocalPointDepth(index, depth_value);
482  }
483  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_FOCAL_DEPTH))
484  {
485  float depth_value = stof(value);
486  status = device->SetARFIFocalPointDepth(index, depth_value);
487  }
488  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_FIRST_GAIN_VALUE))
489  {
490  double gain_value = stod(value);
491  status = device->SetFirstGainValue(gain_value);
492  }
493  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_TGC_OVERALL_GAIN))
494  {
495  double tgc_value = stod(value);
496  status = device->SetOverallTimeGainCompensation(tgc_value);
497  }
498  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_SPATIAL_COMPOUND_ENABLED))
499  {
500  bool set = igsioCommon::IsEqualInsensitive(value, "true") ? true : false;
502  status = PLUS_SUCCESS;
503  }
504  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_SPATIAL_COMPOUND_COUNT))
505  {
506  int32_t count = stoi(value);
508  status = PLUS_SUCCESS;
509  }
510  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_MMODE_ENABLED))
511  {
512  bool set = igsioCommon::IsEqualInsensitive(value, "true") ? true : false;
513  device->SetMModeEnabled(set);
514  status = PLUS_SUCCESS;
515  }
516  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_M_REVOLVING_ENABLED))
517  {
518  bool set = igsioCommon::IsEqualInsensitive(value, "true") ? true : false;
519  device->SetMRevolvingEnabled(set);
520  status = PLUS_SUCCESS;
521  }
522  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_RF_MODE_ENABLED))
523  {
524  bool set = igsioCommon::IsEqualInsensitive(value, "true") ? true : false;
525  device->SetBRFEnabled(set);
526  status = PLUS_SUCCESS;
527  }
528  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_MPR_FREQUENCY))
529  {
530  int32_t frequency = stoi(value);
531  device->SetMPRFrequency(frequency);
532  status = PLUS_SUCCESS;
533  }
534  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_M_LINE_COUNT))
535  {
536  int32_t count = stoi(value);
537  device->SetMAcousticLineCount(count);
538  status = PLUS_SUCCESS;
539  }
540  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_M_WIDTH))
541  {
542  int32_t width = stoi(value);
543  device->SetMWidth(width);
544  status = PLUS_SUCCESS;
545  }
546  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_M_DEPTH))
547  {
548  int32_t depth = stoi(value);
549  device->SetMDepth(depth);
550  status = PLUS_SUCCESS;
551  }
552  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_DECIMATION))
553  {
554  int32_t val = stoi(value);
555  status = device->SetSSDecimation(val);
556  status = PLUS_SUCCESS;
557  }
558  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_FRAME_RATE_LIMIT))
559  {
560  int32_t val = stoi(value);
561  device->SetBFrameRateLimit(val);
562  status = PLUS_SUCCESS;
563  }
564  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_HARMONIC_ENABLED))
565  {
566  bool set = igsioCommon::IsEqualInsensitive(value, "true") ? true : false;
567  device->SetBHarmonicEnabled(set);
568  status = PLUS_SUCCESS;
569  }
570  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_BUBBLE_CONTRAST_ENABLED))
571  {
572  bool set = igsioCommon::IsEqualInsensitive(value, "true") ? true : false;
574  status = PLUS_SUCCESS;
575  }
576  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_AMPLITUDE_MODULATION_ENABLED))
577  {
578  bool set = igsioCommon::IsEqualInsensitive(value, "true") ? true : false;
580  status = PLUS_SUCCESS;
581  }
582  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_TRANSMIT_LOCKED))
583  {
584  bool set = igsioCommon::IsEqualInsensitive(value, "true") ? true : false;
585  device->SetBTransmitLocked(set);
586  status = PLUS_SUCCESS;
587  }
588  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_TRANSMIT_CURRENT))
589  {
590  int val = stoi(value);
591  device->SetBTransmitCurrent(val);
592  status = PLUS_SUCCESS;
593  }
594  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_TRANSMIT_CYCLE_COUNT))
595  {
596  uint16_t val = stoi(value);
597  device->SetBTransmitCycleCount(val);
598  status = PLUS_SUCCESS;
599  }
600  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_TRANSMIT_FNUMBER))
601  {
602  double val = stod(value);
603  device->SetBTransmitFNumber(val);
604  status = PLUS_SUCCESS;
605  }
606  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_APODIZATION_FNUMBER))
607  {
608  double val = stod(value);
609  device->SetBApodizationFNumber(val);
610  status = PLUS_SUCCESS;
611  }
612  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_B_FILTER_COEFFICIENT_SET))
613  {
614  uint8_t val = stod(value);
615  device->SetBFilterCoefficientSet(val);
616  status = PLUS_SUCCESS;
617  }
618  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_ENABLED))
619  {
620  bool set = igsioCommon::IsEqualInsensitive(value, "true") ? true : false;
621  device->SetARFIEnabled(set);
622  status = PLUS_SUCCESS;
623  }
624  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_START_SAMPLE))
625  {
626  int32_t val = stoi(value);
627  device->SetARFIStartSample(val);
628  status = PLUS_SUCCESS;
629  }
630  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_STOP_SAMPLE))
631  {
632  int32_t val = stoi(value);
633  device->SetARFIStopSample(val);
634  status = PLUS_SUCCESS;
635  }
636  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_PRE_PUSH_LINE_REPEAT_COUNT))
637  {
638  int32_t val = stoi(value);
639  status = device->SetARFIPrePushLineRepeatCount(val);
640  }
641  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_POST_PUSH_LINE_REPEAT_COUNT))
642  {
643  int32_t val = stoi(value);
644  status = device->SetARFIPostPushLineRepeatCount(val);
645  }
646  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_INTER_SET_DELAY))
647  {
648  int32_t val = stoi(value);
649  status = device->SetARFIInterSetDelay(val);
650  }
651  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_INTER_PUSH_DELAY))
652  {
653  int32_t val = stoi(value);
654  status = device->SetARFIInterPushDelay(val);
655  }
656  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_LINE_TIMER))
657  {
658  int32_t val = stoi(value);
659  status = device->SetARFILineTimer(val);
660  }
661  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_TX_CYCLE_COUNT))
662  {
663  int32_t val = stoi(value);
664  status = device->SetARFITxCycleCount(val);
665  }
666  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_TX_CYCLE_WIDTH))
667  {
668  int32_t val = stoi(value);
669  status = device->SetARFITxCycleWidth(val);
670  }
671  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_TX_TX_CYCLE_COUNT))
672  {
673  int32_t val = stoi(value);
674  status = device->SetARFITxTxCycleCount(val);
675  }
676  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_TX_TX_CYCLE_WIDTH))
677  {
678  int32_t val = stoi(value);
679  status = device->SetARFITxTxCycleWidth(val);
680  }
681  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ARFI_PUSH_CONFIG))
682  {
684  status = PLUS_SUCCESS;
685  }
686 
687  if (status == PLUS_SUCCESS)
688  {
689  std::string success = "true";
690  std::string status_msg = "SUCCESS";
691  resultString += " Success=\"" + success + "\"";
692  metaData[parameterName] = std::make_pair(IANA_TYPE_US_ASCII, status_msg);
693  }
694  else
695  {
696  std::string success = "false";
697  std::string status_msg = "FAIL";
698  resultString += " Success=\"" + success + "\"";
699  metaData[parameterName] = std::make_pair(IANA_TYPE_US_ASCII, status_msg);
700  }
701  }
702 
703  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_M_LINE_INDEX))
704  {
705  device->SetMLineIndex(index);
706  status = PLUS_SUCCESS;
707 
708  std::string status_msg = "SUCCESS";
709  resultString += " Success=\"true\"";
710  metaData[parameterName] = std::make_pair(IANA_TYPE_US_ASCII, status_msg);
711  }
712 
713  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ALL_FOCAL_DEPTHS))
714  {
715  std::istringstream ss(value);
716  std::string val;
717  status = PLUS_SUCCESS;
718  for(int i = 0; i < 4; i++)
719  {
720  ss >> val;
721  status = status == PLUS_SUCCESS ? device->SetFocalPointDepth(i, stof(val)) : PLUS_FAIL;
722  if (status != PLUS_SUCCESS)
723  {
724  error += "Error setting Focal Depth " + std::to_string(i) + " to " + val + "\n";
725  break;
726  }
727  }
728 
729  std::string success = status == PLUS_SUCCESS ? "true" : "false";
730  std::string status_msg = status == PLUS_SUCCESS ? "SUCCESS" : "FAIL";
731  resultString += " Success=\"" + success + "\"";
732  metaData[parameterName] = std::make_pair(IANA_TYPE_US_ASCII, status_msg);
733  }
734  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::SET_ALL_ARFI_FOCAL_DEPTHS))
735  {
736  std::istringstream ss(value);
737  std::string val;
738  status = PLUS_SUCCESS;
739  for(int i = 0; i < 6; i++)
740  {
741  ss >> val;
742  status = status == PLUS_SUCCESS ? device->SetARFIFocalPointDepth(i, stof(val)) : PLUS_FAIL;
743  if (status != PLUS_SUCCESS)
744  {
745  error += "Error setting Focal Depth " + std::to_string(i) + " to " + val + "\n";
746  break;
747  }
748  }
749 
750  std::string success = status == PLUS_SUCCESS ? "true" : "false";
751  std::string status_msg = status == PLUS_SUCCESS ? "SUCCESS" : "FAIL";
752  resultString += " Success=\"" + success + "\"";
753  metaData[parameterName] = std::make_pair(IANA_TYPE_US_ASCII, status_msg);
754  }
755  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::IS_SCANNING))
756  {
757  res = device->IsScanning() ? "True" : "False";
758 
759  status = PLUS_SUCCESS;
760  resultString += " Success=\"true\"";
761  resultString += " Value=\"" + res + "\"";
762  metaData[parameterName] = std::make_pair(IANA_TYPE_US_ASCII, res);
763  }
764  else if (igsioCommon::IsEqualInsensitive(parameterName, vtkPlusWinProbeVideoSource::UV_SEND_COMMAND))
765  {
766  status = device->SendCommand(value.c_str());
767 
768  std::string success = status == PLUS_SUCCESS ? "true" : "false";
769  std::string status_msg = status == PLUS_SUCCESS ? "SUCCESS" : "FAIL";
770  resultString += " Success=\"" + success + "\"";
771  metaData[parameterName] = std::make_pair(IANA_TYPE_US_ASCII, success);
772  }
773  else
774  {
775  status = PLUS_FAIL;
776  resultString += " Success=\"false\"";
777  error += "No parameter named \"" + parameterName + "\"\n";
778  metaData[parameterName] = std::make_pair(IANA_TYPE_US_ASCII, "Unknown Parameter");
779  }
780  if (status != PLUS_SUCCESS)
781  hasFailure = true;
782  resultString += "/>\n";
783  }
784  resultString += "</CommandReply>";
785  if (hasFailure)
786  status = PLUS_FAIL;
787 
788  vtkSmartPointer<vtkPlusCommandRTSCommandResponse> commandResponse = vtkSmartPointer<vtkPlusCommandRTSCommandResponse>::New();
789  commandResponse->UseDefaultFormatOff();
790  commandResponse->SetClientId(this->ClientId);
791  commandResponse->SetOriginalId(this->Id);
792  commandResponse->SetDeviceName(this->DeviceName);
793  commandResponse->SetCommandName(this->GetName());
794  commandResponse->SetStatus(status);
795  commandResponse->SetRespondWithCommandMessage(this->RespondWithCommandMessage);
796  commandResponse->SetErrorString(error);
797  commandResponse->SetResultString(resultString);
798  commandResponse->SetParameters(metaData);
799  this->CommandResponseQueue.push_back(commandResponse);
800  return PLUS_SUCCESS;
801 
802 }
static const char * GET_B_FILTER_COEFFICIENT_SET
void SetARFIPushConfigurationString(std::string pushConfiguration)
static const char * SET_SPATIAL_COMPOUND_COUNT
static const char * GET_B_TRANSMIT_CURRENT
static const char * GET_B_BUBBLE_CONTRAST_ENABLED
static const char * SET_ARFI_TX_TX_CYCLE_WIDTH
virtual void PrintSelf(ostream &os, vtkIndent indent)
static const char * GET_ARFI_POST_PUSH_LINE_REPEAT_COUNT
static const char * SET_B_AMPLITUDE_MODULATION_ENABLED
Abstract interface for tracker and video devices.
Definition: vtkPlusDevice.h:60
virtual void PrintSelf(ostream &os, vtkIndent indent)
static const char * GET_SPATIAL_COMPOUND_ANGLE
virtual PlusStatus WriteConfiguration(vtkXMLDataElement *aConfig)
PlusStatus SetARFITxTxCycleWidth(uint8_t propertyValue)
PlusStatus GetDevice(vtkPlusDevice *&aDevice, const std::string &aDeviceId) const
PlusStatus SetARFITxCycleCount(uint16_t propertyValue)
std::string Name
PlusStatus SendCommand(const char *command)
static const char * GET_SPATIAL_COMPOUND_COUNT
static const char * GET_B_FRAME_RATE_LIMIT
void SetCommandName(const std::string &text)
void SetCommandValue(const std::string &text)
static const char * GET_B_HARMONIC_ENABLED
static const char * SET_ARFI_TX_TX_CYCLE_COUNT
igsioStatus PlusStatus
Definition: PlusCommon.h:40
static const char * GET_B_MULTIFOCAL_ZONE_COUNT
virtual PlusStatus ReadConfiguration(vtkXMLDataElement *aConfig)
static const char * SET_SPATIAL_COMPOUND_ENABLED
PlusStatus SetFocalPointDepth(int index, float depth)
std::string to_string(ClariusAvailability avail)
PlusStatus SetTimeGainCompensation(int index, double value)
for i
static const char * SET_B_TRANSMIT_CURRENT
static const char * GET_B_APODIZATION_FNUMBER
vtkStandardNewMacro(vtkPlusWinProbeCommand)
static const char * GET_ARFI_TX_TX_CYCLE_WIDTH
#define PLUS_FAIL
Definition: PlusCommon.h:43
static const char * GET_SPATIAL_COMPOUND_ENABLED
static const char * SET_ARFI_PRE_PUSH_LINE_REPEAT_COUNT
This command is for communicating with vtkPlusWinProbeDevices.This command is used for communicating ...
static const char * SET_B_BUBBLE_CONTRAST_ENABLED
Class for acquiring ultrasound images from WinProbe ultrasound systems.
virtual std::string GetDeviceId() const
PhidgetLCD_Font int int const char * text
Definition: phidget22.h:4287
static const char * GET_ARFI_INTER_PUSH_DELAY
virtual std::string GetDescription(const std::string &commandName)
PlusStatus SetBMultiFocalZoneCount(int32_t count)
PlusStatus SetARFIPrePushLineRepeatCount(int32_t propertyValue)
Manages devices that record image or positional data.
#define PLUS_SUCCESS
Definition: PlusCommon.h:44
PlusStatus SetFirstGainValue(double value)
PlusStatus SetARFIPostPushLineRepeatCount(int32_t propertyValue)
static const char * GET_FPGA_REV_DATE_STRING
static const char * SET_B_FILTER_COEFFICIENT_SET
virtual void SetDeviceId(const std::string &deviceId)
PlusStatus SetARFITxTxCycleCount(uint16_t propertyValue)
bool RespondWithCommandMessage
static const char * GET_B_TRANSMIT_CYCLE_COUNT
PlusStatus SetARFIInterPushDelay(int32_t propertyValue)
PlusStatus SetSSDecimation(uint8_t value)
PlusStatus SetARFIFocalPointDepth(int index, float depth)
std::string GetCommandValue() const
PhidgetLCD_Font int * width
Definition: phidget22.h:4275
std::string GetCommandIndex() const
void QueueCommandResponse(PlusStatus status, const std::string &message, const std::string &error="", const igtl::MessageBase::MetaDataMap *metaData=nullptr)
virtual vtkPlusDataCollector * GetDataCollector()
std::string DeviceId
std::string DeviceName
const char const char * value
Definition: phidget22.h:5111
Phidget_ChannelClass uint32_t * count
Definition: phidget22.h:1321
PlusStatus SetARFIInterSetDelay(int32_t propertyValue)
static const char * SET_B_MULTIFOCAL_ZONE_COUNT
PlusStatus SetARFITxCycleWidth(uint8_t propertyValue)
static const char * SET_ALL_ARFI_FOCAL_DEPTHS
static const char * GET_B_AMPLITUDE_MODULATION_ENABLED
static const char * GET_B_TRANSMIT_FNUMBER
static const char * SET_ARFI_INTER_SET_DELAY
static const char * GET_M_REVOLVING_ENABLED
static const char * SET_B_TRANSMIT_CYCLE_COUNT
set(gca, 'XTick', axisXRange(1):1:axisXRange(2))
void SetCommandIndex(const std::string &text)
PlusStatus SetOverallTimeGainCompensation(double value)
static const char * SET_ARFI_POST_PUSH_LINE_REPEAT_COUNT
static const char * SET_ARFI_INTER_PUSH_DELAY
static const char * SET_B_HARMONIC_ENABLED
virtual PlusStatus WriteConfiguration(vtkXMLDataElement *aConfig)
PlusCommandResponseList CommandResponseQueue
static const char * SET_B_FRAME_RATE_LIMIT
double frequency
Definition: phidget22.h:3246
std::string GetCommandName() const
virtual PlusStatus ReadConfiguration(vtkXMLDataElement *aConfig)
static const char * SET_B_TRANSMIT_FNUMBER
PlusStatus SetARFILineTimer(uint16_t propertyValue)
static const char * GET_ARFI_PRE_PUSH_LINE_REPEAT_COUNT
static const char * SET_M_REVOLVING_ENABLED
static const char * GET_ARFI_INTER_SET_DELAY
static const char * GET_ARFI_TX_TX_CYCLE_COUNT
virtual void GetCommandNames(std::list< std::string > &cmdNames)
static const char * SET_B_APODIZATION_FNUMBER
static const char * GET_TRANSDUCER_INTERNAL_ID