7 #include "PlusConfigure.h" 11 #include "vtkPlusUSImagingParameters.h" 122 std::vector<float> nonZeroes;
123 for (
unsigned i = 0;
i < arraySize;
i++)
127 nonZeroes.push_back(depths[
i]);
130 std::sort(nonZeroes.begin(), nonZeroes.end());
133 while (
i < nonZeroes.size())
135 if (nonZeroes[
i] == nonZeroes[
i - 1])
137 nonZeroes.erase(nonZeroes.begin() +
i);
144 if (nonZeroes.size() == 0)
146 nonZeroes.push_back(depths[0]);
148 int32_t
count = nonZeroes.size();
151 for (
i = 0;
i < nonZeroes.size();
i++)
153 depths[
i] = nonZeroes[
i];
156 for (;
i < arraySize;
i++)
168 os << indent <<
"MinValue: " << this->
m_MinValue << std::endl;
169 os << indent <<
"MaxValue: " << this->
m_MaxValue << std::endl;
170 os << indent <<
"LogLinearKnee: " << this->
m_Knee << std::endl;
171 os << indent <<
"LogMax: " << static_cast<unsigned>(this->
m_OutputKnee) << std::endl;
172 os << indent <<
"TransducerID: " << this->
m_TransducerID << std::endl;
173 os << indent <<
"Frozen: " << this->
IsFrozen() << std::endl;
174 os << indent <<
"Voltage: " << static_cast<unsigned>(this->
GetVoltage()) << std::endl;
178 for(
int i = 0;
i < 8;
i++)
182 for(
int i = 0;
i < 4;
i++)
186 for(
int i = 0;
i < 6;
i++)
191 os << indent <<
"CustomFields: " << std::endl;
192 vtkIndent indent2 = indent.GetNextIndent();
193 igsioFieldMapType::iterator it;
196 os << indent2 << it->first <<
": " << it->second.second << std::endl;
203 LOG_TRACE(
"vtkPlusWinProbeVideoSource::ReadConfiguration");
206 XML_READ_STRING_ATTRIBUTE_REQUIRED(TransducerID, deviceConfig);
207 XML_READ_BOOL_ATTRIBUTE_OPTIONAL(UseDeviceFrameReconstruction, deviceConfig);
208 XML_READ_BOOL_ATTRIBUTE_OPTIONAL(SpatialCompoundEnabled, deviceConfig);
209 XML_READ_BOOL_ATTRIBUTE_OPTIONAL(BHarmonicEnabled, deviceConfig);
210 XML_READ_BOOL_ATTRIBUTE_OPTIONAL(MRevolvingEnabled, deviceConfig);
211 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
float, TransmitFrequencyMHz, deviceConfig);
212 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
float, ScanDepthMm, deviceConfig);
213 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
int, SpatialCompoundCount, deviceConfig);
214 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
int, MPRFrequency, deviceConfig);
215 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
int, MLineIndex, deviceConfig);
216 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
int, MWidth, deviceConfig);
217 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(int32_t, MWidthLines, deviceConfig);
218 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
int, MAcousticLineCount, deviceConfig);
219 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
int, MDepth, deviceConfig);
220 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
unsigned long, Voltage, deviceConfig);
221 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
unsigned long, MinValue, deviceConfig);
222 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
unsigned long, MaxValue, deviceConfig);
223 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
unsigned long, LogLinearKnee, deviceConfig);
224 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
unsigned long, LogMax, deviceConfig);
225 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
unsigned long, SSDecimation, deviceConfig);
226 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
double, FirstGainValue, deviceConfig);
227 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
double, OverallTimeGainCompensation, deviceConfig);
228 XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(
int, BFrameRateLimit, deviceConfig);
231 const char* strMode = deviceConfig->GetAttribute(
"Mode");
238 const char* mwidthSeconds_string = deviceConfig->GetAttribute(
"MWidth");
239 if(mwidthSeconds_string)
241 int mwidthSeconds = std::stoi(mwidthSeconds_string);
242 if(mwidthSeconds > 0)
271 deviceConfig->SetAttribute(
"TransducerID", this->
m_TransducerID.c_str());
274 deviceConfig->SetAttribute(
"HarmonicEnabled", this->
GetBHarmonicEnabled() ?
"TRUE" :
"FALSE");
275 deviceConfig->SetAttribute(
"MRevolvingEnabled", this->
GetMRevolvingEnabled() ?
"TRUE" :
"FALSE");
277 deviceConfig->SetFloatAttribute(
"ScanDepthMm", this->
GetScanDepthMm());
280 deviceConfig->SetIntAttribute(
"MPRFrequency", this->
GetMPRFrequency());
281 deviceConfig->SetIntAttribute(
"MLineIndex", this->
GetMLineIndex());
283 deviceConfig->SetIntAttribute(
"MWidthLines", this->
m_MWidth);
285 deviceConfig->SetIntAttribute(
"MDepth", this->
GetMDepth());
288 deviceConfig->SetUnsignedLongAttribute(
"Voltage", this->
GetVoltage());
289 deviceConfig->SetUnsignedLongAttribute(
"MinValue", this->
GetMinValue());
290 deviceConfig->SetUnsignedLongAttribute(
"MaxValue", this->
GetMaxValue());
291 deviceConfig->SetUnsignedLongAttribute(
"LogLinearKnee", this->
GetLogLinearKnee());
292 deviceConfig->SetUnsignedLongAttribute(
"LogMax", this->
GetLogMax());
293 deviceConfig->SetUnsignedLongAttribute(
"SSDecimation", this->
GetSSDecimation());
310 if(modeString.empty())
312 LOG_WARNING(
"Empty mode string defaults to B mode");
317 std::transform(modeString.begin(), modeString.end(), modeString.begin(), ::toupper);
319 if(modeString ==
"B")
321 else if(modeString ==
"BRF")
323 else if(modeString ==
"RF")
325 else if(modeString ==
"M")
327 else if(modeString ==
"PW")
329 else if(modeString ==
"ARFI")
331 else if(modeString ==
"CFD")
334 { LOG_ERROR(
"Unrecognized mode: " << modeString); }
366 LOG_ERROR(
"Invalid mode passed: " <<
int(
mode));
375 int32_t mlineWidth = pow(2, round(std::log(
value *
m_MPRF) / std::log(2)));
382 return mwidthSeconds;
391 int __stdcall
frameCallback(
int length,
char*
data,
char* hHeader,
char* hGeometry,
char* hModeFrameHeader)
400 uint16_t* frame = reinterpret_cast<uint16_t*>(
data + 16);
401 assert(buffer.size() == frameSize[0] * frameSize[1]);
404 #pragma omp parallel for 405 for(
unsigned t = 0;
t < frameSize[0];
t++)
407 for(
unsigned s = 0; s < frameSize[1]; s++)
409 uint16_t val = frame[
t * frameSize[1] + s];
426 cVal = logFactor * std::log(
float(1 + val));
432 buffer[s * frameSize[0] +
t] = static_cast<uint8_t>(cVal);
439 #pragma omp parallel for 440 for(
unsigned t = 0;
t < frameSize[0];
t++)
442 for(
unsigned s = 0; s < frameSize[1]; s++)
453 CineModeFrameHeader* header = (CineModeFrameHeader*)hHeader;
454 CFDGeometryStruct* cfdGeometry = (CFDGeometryStruct*)hGeometry;
455 GeometryStruct* brfGeometry = (GeometryStruct*)hGeometry;
456 MGeometryStruct* mGeometry = (MGeometryStruct*)hGeometry;
457 PWGeometryStruct* pwGeometry = (PWGeometryStruct*)hGeometry;
458 ARFIGeometryStruct* arfiGeometry = (ARFIGeometryStruct*)hGeometry;
459 int callbackFrameNumber = header->TotalFrameCounter;
460 InputSourceBindings usMode = header->InputSourceBinding;
461 FrameSizeType frameSize = { 1, 1, 1 };
463 if(header->TotalFrameCounter == 0)
472 frameSize[0] = cfdGeometry->LineCount;
473 frameSize[1] = cfdGeometry->SamplesPerKernel;
475 else if(usMode & B || usMode & BFRFALineImage_SampleData)
481 frameSize[0] = brfGeometry->LineCount;
482 frameSize[1] = brfGeometry->SamplesPerLine;
486 <<
" to " << frameSize[1] <<
". Adjusting spacing and buffer sizes.");
493 LOG_INFO(
"Scan Depth changed. Adjusting spacing.");
497 else if(usMode & ARFI)
500 int lineRepeatCount = arfiGeometry->PrePushLineRepeatCount + arfiGeometry->PostPushLineRepeatCount;
503 assert(length == arfiDataSize + timeblock);
504 frameSize[0] = (arfiDataSize + timeblock) /
sizeof(int32_t);
509 LOG_INFO(
"ARFI frame size updated. Adjusting buffer size and spacing.");
516 LOG_INFO(
"Scan Depth changed. Adjusting spacing.");
520 else if(usMode & BFRFALineImage_RFData)
522 int harmonic_multiplier = 1;
525 harmonic_multiplier = 3;
529 harmonic_multiplier = 2;
532 frameSize[0] = brfGeometry->SamplesPerLine * brfGeometry->Decimation;
533 frameSize[1] = brfGeometry->LineCount * harmonic_multiplier;
536 LOG_INFO(
"Rf frame size updated. Adjusting buffer size and spacing.");
545 LOG_INFO(
"Scan Depth changed. Adjusting spacing.");
549 else if(usMode & M_PostProcess)
551 frameSize[0] = mGeometry->LineCount;
552 frameSize[1] = mGeometry->SamplesPerLine;
560 <<
" to " << frameSize[0] <<
"x" << frameSize[1] <<
". Adjusting buffer size.");
567 LOG_INFO(
"Scan Depth changed. Adjusting spacing.");
571 else if(usMode & PWD_PostProcess)
573 frameSize[0] = pwGeometry->NumberOfImageLines;
574 frameSize[1] = pwGeometry->NumberOfImageSamples;
578 LOG_INFO(
"Unsupported frame type: " << std::hex << usMode);
585 LOG_DEBUG(
"Timestamp is <= 0 so ignoring this frame.");
589 LOG_DEBUG(
"Frame: " << callbackFrameNumber <<
". Mode: " << std::setw(4) << std::hex << usMode <<
". Timestamp: " <<
timestamp <<
". UseDeviceFrameReconstruction: " <<
m_UseDeviceFrameReconstruction);
596 assert(length == frameSize[0] * frameSize[1] *
sizeof(uint16_t) + 16);
598 if(usMode & M_PostProcess)
606 frameSize, VTK_UNSIGNED_CHAR,
607 1, US_IMG_BRIGHTNESS, 0,
613 LOG_WARNING(
"Error adding item to extra video source " <<
m_ExtraSources[
i]->GetSourceId());
629 frameSize, VTK_UNSIGNED_CHAR,
630 1, US_IMG_BRIGHTNESS, 0,
636 LOG_WARNING(
"Error adding item to primary video source " <<
m_PrimarySources[
i]->GetSourceId());
643 LOG_DEBUG(
"Frame ignored - B-mode source not defined. Got mode: " << std::hex << usMode);
646 else if(usMode & ARFI)
651 int32_t* tempData = reinterpret_cast<int32_t*>(
data);
653 double currentTime = vtkIGSIOAccurateTimer::GetSystemTime();
657 1, US_IMG_RF_REAL, 0,
663 LOG_WARNING(
"Error adding item to ARFI video source " <<
m_ExtraSources[
i]->GetSourceId());
667 LOG_INFO(
"Success adding item to ARFI video source " <<
m_ExtraSources[
i]->GetSourceId());
671 else if(usMode & BFRFALineImage_RFData)
675 assert(length == frameSize[0] * frameSize[1] *
sizeof(int32_t));
679 1, US_IMG_RF_REAL, 0,
685 LOG_WARNING(
"Error adding item to RF video source " <<
m_ExtraSources[
i]->GetSourceId());
689 else if(usMode & CFD)
695 LOG_INFO(
"Frame ignored. Got mode: " << std::hex << usMode);
716 <<
"Frame size: " << frameSize[0] <<
"x" << frameSize[1]
718 <<
", buffer image orientation: " 719 << igsioCommon::GetStringFromUsImageOrientation(
m_PrimarySources[
i]->GetInputImageOrientation()));
754 <<
"Frame size: " << frameSize[0] <<
"x" << frameSize[1] <<
"x" << frameSize[2]
756 <<
", buffer image orientation: " 757 << igsioCommon::GetStringFromUsImageOrientation(
m_ExtraSources[
i]->GetInputImageOrientation()));
765 unsigned int numSpaceDimensions = 3;
766 std::vector<double> spacing;
776 for(
unsigned int i = 0;
i < numSpaceDimensions; ++
i)
781 std::ostringstream spacingStream;
783 for(
unsigned int i = 0;
i < numSpaceDimensions; ++
i)
786 if(
i != numSpaceDimensions - 1)
788 spacingStream <<
" ";
791 this->
m_CustomFields[
"ElementSpacing"].first = FRAMEFIELD_FORCE_SERVER_SEND;
792 this->
m_CustomFields[
"ElementSpacing"].second = spacingStream.str();
793 LOG_DEBUG(
"Adjusted spacing: " << spacingStream.str());
801 for(
int i = 0;
i < 8;
i++)
806 for(
int i = 0;
i < 4;
i++)
815 WPSetCallback(funcPtr);
844 LOG_ERROR(
"Neither B-mode nor RF-mode data sources are defined, and unable to retrieve the video source in the capturing device.");
850 LOG_DEBUG(
"Connect to WinProbe");
853 LOG_ERROR(
"Failed connecting to WinProbe!");
858 LOG_ERROR(
"Failed loading defaults!");
863 LOG_ERROR(
"Transducer not connected!");
869 std::string presetPath =
"Default.xml";
870 LOG_DEBUG(
"Loading Default Presets. " << presetPath);
871 if(!LoadXmlPreset(presetPath.c_str()))
873 LOG_ERROR(
"Failed loading default presets!")
888 this->
m_CustomFields[
"SamplingRate"].first = FRAMEFIELD_FORCE_SERVER_SEND;
891 SetSCCompoundAngleCount(0);
893 LOG_DEBUG(
"GetHandleBRFInternally: " << GetHandleBRFInternally());
894 LOG_DEBUG(
"GetBFRFImageCaptureMode: " << GetBFRFImageCaptureMode());
898 SetHandleBRFInternally(
false);
899 SetBFRFImageCaptureMode(2);
903 SetHandleBRFInternally(
true);
904 SetBFRFImageCaptureMode(0);
910 LOG_ERROR(
"Primary source is not defined!");
917 LOG_ERROR(
"RF source is not defined!");
922 SetPWIsEnabled(
true);
931 SetCFSamplesPerKernel(2);
934 SetCFIsEnabled(
true);
938 LOG_DEBUG(
"GetHandleBRFInternally: " << GetHandleBRFInternally());
939 LOG_DEBUG(
"GetBFRFImageCaptureMode: " << GetBFRFImageCaptureMode());
940 SetPendingRecreateTables(
true);
944 for(
int i = 0;
i < 8;
i++)
952 for(
int i = 0;
i < 4;
i++)
960 for(
int i = 0;
i < 6;
i++)
999 char* sessionPtr = GetSessionPtr();
1000 bool success = WPVPSetSession(sessionPtr);
1003 LOG_WARNING(
"Failed setting session pointer!");
1008 SetMaxDmaTransferSize(0x100000);
1012 WPDXSetIsGetSpatialCompoundedTexEnabled(
true);
1013 WPDXSetFusedTexBufferMax(16);
1015 WPDXSetDrawTextLayer(
false);
1016 WPDXSetDrawScalesAndBars(
false);
1017 std::this_thread::sleep_for(std::chrono::milliseconds(100));
1020 SetMIsEnabled(
true);
1029 LOG_DEBUG(
"GetPendingRecreateTables: " << GetPendingRecreateTables());
1030 LOG_DEBUG(
"GetPendingRestartSequencer: " << GetPendingRestartSequencer());
1031 LOG_DEBUG(
"GetPendingRun30Frames: " << GetPendingRun30Frames());
1039 LOG_DEBUG(
"Disconnecting from WinProbe");
1045 LOG_DEBUG(
"Disconnect from WinProbe finished");
1081 LOG_WARNING(
"Probe has been disconnected from the engine!");
1095 char* texture =
nullptr;
1098 int tLength = WPDXGetFusedTexData(&texture, &slicePitch, &rowPitch);
1101 LOG_DEBUG(
"B Mode buffer empty");
1106 FrameSizeType frameSize = { 1, 1, 1 };
1107 frameSize[0] = tLength / rowPitch;
1108 frameSize[1] = rowPitch;
1112 <<
" to " << frameSize[1] <<
". Adjusting spacing and buffer sizes.");
1119 LOG_INFO(
"Scan Depth changed. Adjusting spacing.");
1125 unsigned int temp = 0;
1126 temp = (texture[0] & 0xff);
1128 temp = (texture[1] & 0xff);
1130 temp = (texture[2] & 0xff);
1132 temp = (texture[3] & 0xff);
1140 LOG_DEBUG(
"Timestamp is <= 0 so ignoring this frame.");
1142 WPFreePointer(texture);
1152 frameSize, VTK_UNSIGNED_CHAR,
1153 1, US_IMG_BRIGHTNESS, 0,
1159 LOG_WARNING(
"Error adding item to primary video source " <<
m_PrimarySources[
i]->GetSourceId());
1163 WPFreePointer(texture);
1198 return WPGetIsScanningProperty();
1208 SetPendingRecreateTables(
true);
1255 SetPendingRecreateTables(
true);
1278 ::SetSSDepth(depth);
1279 SetPendingRecreateTables(
true);
1317 assert(index >= 0 && index < 8);
1328 assert(index >= 0 && index < 8);
1332 SetTGC(index,
value);
1333 SetPendingTGCUpdate(
true);
1356 SetTGCFirstGainValue(
value);
1379 SetTGCOverallGain(
value);
1380 SetPendingTGCUpdate(
true);
1382 for (
int tgcIndex=0; tgcIndex < 8; tgcIndex += 1)
1393 assert(index >= 0 && index < 4);
1404 assert(index >= 0 && index < 4);
1409 SetPendingRecreateTables(
true);
1419 assert(index >= 0 && index < 6);
1430 assert(index >= 0 && index < 6);
1434 WPSetARFIFocalDepth(index, depth);
1435 SetPendingRecreateTables(
true);
1459 SetBMultiTxCount(
count);
1460 SetPendingRecreateTables(
true);
1477 assert(propertyValue > 0 && propertyValue <= 16);
1482 SetPendingRecreateTables(
true);
1499 assert(propertyValue > 0 && propertyValue <= 255);
1504 SetPendingRecreateTables(
true);
1525 SetPendingRecreateTables(
true);
1546 SetPendingRecreateTables(
true);
1565 SetSCIsEnabled(
value);
1600 SetSCCompoundAngleCount(
value);
1601 SetPendingRecreateTables(
true);
1627 SetHandleBRFInternally(
false);
1628 SetBFRFImageCaptureMode(2);
1632 SetHandleBRFInternally(
true);
1633 SetBFRFImageCaptureMode(0);
1660 double timestamp = vtkIGSIOAccurateTimer::GetSystemTime();
1664 1, US_IMG_RF_REAL, 0,
1670 LOG_WARNING(
"Error adding fake zeros item to ARFI video source " <<
m_ExtraSources[
i]->GetSourceId());
1674 LOG_WARNING(
"Success adding fake zeros item to ARFI video source ");
1678 SetPendingRecreateTables(
true);
1679 LOG_INFO(
"Mode changed to: " << this->
ModeToString(mode));
1729 brfEnabled = (GetBFRFImageCaptureMode() == 2);
1742 SetBIsHarmonic(
value);
1743 SetPendingRecreateTables(
true);
1761 SetBIsBubbleContrast(
value);
1762 SetPendingRecreateTables(
true);
1780 SetBIsAmplitudeModulation(
value);
1781 SetPendingRecreateTables(
true);
1799 SetBIsTransmitLocked(
value);
1800 SetPendingRecreateTables(
true);
1819 SetBTxCurrent(
value);
1820 SetPendingRecreateTables(
true);
1838 SetTxTxCycleCount(
value);
1839 SetPendingRecreateTables(
true);
1857 SetTxTxFNumber(
value);
1858 SetPendingRecreateTables(
true);
1876 SetApodizationFNumber(
value);
1877 SetPendingRecreateTables(
true);
1895 SetBisBubblePop(
value);
1913 SetTxBubblePopCycleCount(
value);
1914 SetPendingRecreateTables(
true);
1932 SetTxFilterCoefficientSet(
value);
1951 mmodeEnabled = GetMIsEnabled();
1957 return mmodeEnabled;
1965 SetMIsRevolving(
value);
1966 SetPendingRecreateTables(
true);
1985 SetPendingRecreateTables(
true);
2003 SetMAcousticLineIndex(
value);
2004 SetPendingRecreateTables(
true);
2024 SetPendingRecreateTables(
true);
2031 int mwidthSeconds = 0;
2037 return mwidthSeconds;
2045 SetPendingRecreateTables(
true);
2064 SetPendingRecreateTables(
true);
2083 SetPendingRecreateTables(
true);
2104 SetPendingRecreateTables(
true);
2124 SetPendingRecreateTables(
true);
2143 if(propertyValue > 2000)
2145 LOG_ERROR(
"The maximum ARFI line timer is 2000. Ignoring call to change to " << propertyValue);
2150 SetPendingRecreateTables(
true);
2172 SetPendingRecreateTables(
true);
2194 SetPendingRecreateTables(
true);
2214 if(propertyValue > 250 * 250)
2216 LOG_ERROR(
"The maximum ARFI inter set delay is 250*250. Ignoring call to change to " << propertyValue);
2219 else if (propertyValue == 0)
2221 LOG_WARNING(
"ARFI inter set delay defaulting to clinical delay mode of approximately 1 second.");
2244 if(propertyValue > 250)
2246 LOG_ERROR(
"The maximum ARFI inter push delay is 250. Ignoring call to change to " << propertyValue);
2273 LOG_ERROR(
"A X4BF does not support ARFI mode.");
2275 WPSetARFIPushConfigurationString(pushConfiguration.c_str());
2276 SetPendingRecreateTables(
true);
2285 char* temp =
new char[50];
2286 WPGetARFIPushConfigurationString(temp);
2296 char* temp =
new char[20];
2297 WPGetFPGARevDateString(temp);
2309 WPSetTransducerID(guid.c_str());
2310 SetPendingRecreateTables(
true);
2319 return transducer_id;
2325 std::vector<double> spacing = { 0.0, 0.0, 1.0};
2336 std::vector<double> spacing = { 0.0, 0.0, 1.0};
2354 bool arfiEnabled =
false;
2372 LOG_ERROR(
"The FPGA version must be '2020-10-24 24' to ARFIPush. Current version: " <<
m_FPGAVersion);
2379 if (cappedVoltage > maximumVoltage)
2381 LOG_WARNING(
"Voltage was higher than 50V before sending ARFI push. Capping voltage to " <<
std::to_string(maximumVoltage) <<
"V.");
2382 cappedVoltage = maximumVoltage;
2441 LOG_ERROR(
"Cannot apply changes while not connected.")
2456 LOG_ERROR(
"Failed to set depth imaging parameter");
2470 LOG_ERROR(
"Failed to set voltage parameter");
2484 LOG_ERROR(
"Failed to set frequency parameter");
void SetARFIPushConfigurationString(std::string pushConfiguration)
bool GetSpatialCompoundEnabled()
void SetMWidth(int value)
static const char * SET_SPATIAL_COMPOUND_COUNT
int32_t m_ARFIInterPushDelay
virtual void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
void SetBHarmonicEnabled(bool value)
int32_t GetARFIInterPushDelay()
static const std::string RFMODE_PORT_NAME
uint8_t GetLogMax() const
int32_t m_MAcousticLineCount
vtkPlusWinProbeVideoSource * thisPtr
static const char * SET_M_LINE_COUNT
bool m_BBubbleContrastEnabled
int GetBTransmitCurrent()
PlusStatus ARFIPush(uint8_t maximumVoltage=50)
static const char * GET_B_TRANSMIT_CURRENT
static const char * GET_RF_MODE_ENABLED
PhidgetRCServo_Voltage voltage
vtkPlusWinProbeVideoSource()
bool IsPending(const std::string ¶mName) const
static const char * SET_B_TRANSMIT_LOCKED
static const char * GET_B_BUBBLE_CONTRAST_ENABLED
static const char * SET_ARFI_TX_TX_CYCLE_WIDTH
virtual void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
static const char * GET_ARFI_POST_PUSH_LINE_REPEAT_COUNT
float GetFocalPointDepth(int index)
static const char * SET_B_AMPLITUDE_MODULATION_ENABLED
static const char * SET_ARFI_ENABLED
int MSecondsFromWidth(int32_t value)
int16_t m_BBubbleDestructionCycleCount
void AdjustSpacing(bool value)
virtual PlusStatus GetInputFrameSize(vtkPlusChannel &aChannel, unsigned int &x, unsigned int &y, unsigned int &z) const
static const char * GET_SPATIAL_COMPOUND_ANGLE
static const char * SET_ARFI_PUSH_CONFIG
PlusStatus SetARFITxTxCycleWidth(uint8_t propertyValue)
float m_FocalPointDepth[4]
bool m_UseDeviceFrameReconstruction
static const char * KEY_DEPTH
uint16_t GetMinValue() const
int16_t GetBBubbleDestructionCycleCount()
int32_t m_ARFIPostPushLineRepeatCount
void FrameCallback(int length, char *data, char *hHeader, char *hGeometry)
#define XML_FIND_DEVICE_ELEMENT_REQUIRED_FOR_WRITING(deviceConfig, rootConfigElement)
PlusStatus SetARFITxCycleCount(uint16_t propertyValue)
PlusStatus SendCommand(const char *command)
bool GetBBubbleContrastEnabled()
PlusStatus FreezeDevice(bool freeze)
static const char * GET_SPATIAL_COMPOUND_COUNT
bool GetBAmplitudeModulationEnabled()
void SetBTXFilterCoefficientSet(int32_t value)
static const char * SET_B_TX_FILTER_COEFFICIENT_SET
static const char * GET_B_FRAME_RATE_LIMIT
PlusStatus SetVoltage(uint8_t voltage)
void SetBApodizationFNumber(double value)
static const char * KEY_FREQUENCY
uint16_t m_ARFITxCycleCount
int32_t GetSpatialCompoundCount()
int32_t GetBTXFilterCoefficientSet()
static const char * GET_B_TRANSMIT_LOCKED
static const char * GET_B_HARMONIC_ENABLED
int __stdcall frameCallback(int length, char *data, char *hHeader, char *hGeometry, char *hModeFrameHeader)
virtual PlusStatus StartRecording()
static const char * GET_FOCAL_DEPTH
static const char * GET_M_WIDTH
static const char * SET_ARFI_TX_TX_CYCLE_COUNT
double GetFirstGainValue()
static const std::string BMODE_PORT_NAME
static const char * GET_B_MULTIFOCAL_ZONE_COUNT
PlusStatus GetDepthMm(double &aDepthMm) const
int32_t GetARFIPrePushLineRepeatCount()
void SetMDepth(int32_t value)
virtual PlusStatus ReadConfiguration(vtkXMLDataElement *config)
double m_RenderedTimestampOffset
static const char * SET_SPATIAL_COMPOUND_ENABLED
friend int __stdcall frameCallback(int length, char *data, char *hHeader, char *hGeometry, char *hModeFrameHeader)
PlusStatus SetFocalPointDepth(int index, float depth)
static const char * GET_M_LINE_COUNT
int32_t GetARFIStopSample()
std::string to_string(ClariusAvailability avail)
std::string GetFPGARevDateString()
double m_OverallTimeGainCompensation
virtual PlusStatus InternalDisconnect() VTK_OVERRIDE
std::string m_TransducerID
uint16_t GetMaxValue() const
float GetTransmitFrequencyMHz()
bool GetBHarmonicEnabled()
vtkPlusUsImagingParameters * ImagingParameters
Store the current imaging parameters.
bool RequireImageOrientationInConfiguration
PlusStatus SetTimeGainCompensation(int index, double value)
static const char * GET_MPR_FREQUENCY
void SetMRevolvingEnabled(bool value)
static const char * SET_B_TRANSMIT_CURRENT
bool m_SpatialCompoundEnabled
uint8_t GetARFITxCycleWidth()
PlusStatus SetPending(const std::string ¶mName, bool pending)
static const char * GET_B_BUBBLE_DESTRUCTION_ENABLED
static const char * GET_B_APODIZATION_FNUMBER
bool m_BAmplitudeModulationEnabled
uint16_t m_ARFITxTxCycleCount
static const char * GET_ARFI_TX_TX_CYCLE_WIDTH
uint8_t GetARFITxTxCycleWidth()
static const char * GET_ARFI_TX_CYCLE_COUNT
static const char * SET_ARFI_TX_CYCLE_WIDTH
double CurrentPixelSpacingMm[3]
Values used in calculation of image to transducer matrix.
static const char * UV_SEND_COMMAND
static const char * GET_B_BUBBLE_DESTRUCTION_CYCLE_COUNT
static const char * SET_FREEZE
std::vector< uint8_t > m_PrimaryBuffer
void SetARFIStopSample(int32_t value)
PlusStatus GetVideoSourcesByPortName(const char *aPortName, std::vector< vtkPlusDataSource * > &sources)
void SetBTransmitFNumber(double value)
std::string ModeToString(Mode mode)
PlusStatus SetScanDepthMm(float depth)
int32_t m_BTXFilterCoefficientSet
igsioFieldMapType m_CustomFields
void SetMModeEnabled(bool value)
void SetBTransmitCurrent(int value)
static const char * GET_SPATIAL_COMPOUND_ENABLED
static const char * SET_ALL_FOCAL_DEPTHS
std::vector< uint8_t > m_ExtraBuffer
static const char * SET_ARFI_PRE_PUSH_LINE_REPEAT_COUNT
void SetSpatialCompoundCount(int32_t value)
static const char * SET_B_BUBBLE_CONTRAST_ENABLED
void SetBBubbleDestructionCycleCount(int16_t value)
void SetMPRFrequency(int32_t value)
~vtkPlusWinProbeVideoSource()
static const char * SET_M_WIDTH
virtual PlusStatus Disconnect()
Class for acquiring ultrasound images from WinProbe ultrasound systems.
bool GetBBubbleDestructionEnabled()
PlusStatus GetFirstActiveOutputVideoSource(vtkPlusDataSource *&aVideoSource)
void ReconstructFrame(char *data, std::vector< uint8_t > &buffer, const FrameSizeType &frameSize)
uint8_t GetSSDecimation()
static const char * GET_ARFI_INTER_PUSH_DELAY
bool GetBTransmitLocked()
void FlipTexture(char *data, const FrameSizeType &frameSize, int rowPitch)
static const char * SET_M_LINE_INDEX
int32_t GetARFIInterSetDelay()
unsigned long FrameNumber
static const char * SET_ARFI_START_SAMPLE
double m_BTransmitFNumber
PlusStatus SetBMultiFocalZoneCount(int32_t count)
static const char * SET_TGC_OVERALL_GAIN
PlusStatus SetARFIPrePushLineRepeatCount(int32_t propertyValue)
static const char * GET_M_LINE_INDEX
PlusStatus SetTransducerID(std::string guid)
static const char * GET_M_DEPTH
static const char * GET_TGC_OVERALL_GAIN
PlusStatus SetFirstGainValue(double value)
double GetBTransmitFNumber()
int32_t GetARFIStartSample()
PlusStatus SetARFIPostPushLineRepeatCount(int32_t propertyValue)
bool GetARFIIsX8BFEnabled()
int32_t GetBMultiFocalZoneCount()
PlusStatus InternalUpdate()
static const char * GET_FPGA_REV_DATE_STRING
static const char * SET_ARFI_FOCAL_DEPTH
PlusStatus SetARFITxTxCycleCount(uint16_t propertyValue)
int GetTransducerInternalID()
static const char * SET_MMODE_ENABLED
static const char * GET_B_TRANSMIT_CYCLE_COUNT
void SetARFIEnabled(bool value)
uint16_t GetARFITxTxCycleCount()
int32_t GetARFIPostPushLineRepeatCount()
PlusStatus SetARFIInterPushDelay(int32_t propertyValue)
bool GetMRevolvingEnabled()
PlusStatus SetProbeVoltage(float aVoltage)
uint16_t GetLogLinearKnee() const
static const char * GET_FIRST_GAIN_VALUE
PlusStatus SetSSDecimation(uint8_t value)
int32_t GetBFrameRateLimit()
virtual PlusStatus StopRecording()
PlusStatus SetARFIFocalPointDepth(int index, float depth)
#define XML_FIND_DEVICE_ELEMENT_REQUIRED_FOR_READING(deviceConfig, rootConfigElement)
FrameSizeType m_ExtraFrameSize
void SetBTransmitLocked(bool value)
static const char * IS_SCANNING
virtual PlusStatus InternalStartRecording() VTK_OVERRIDE
std::string m_ARFIPushConfigurationString
int m_ARFIPushConfigurationCount
static const char * SET_FIRST_GAIN_VALUE
int32_t m_ARFIInterSetDelay
std::vector< vtkPlusDataSource * > m_ExtraSources
static const char * SET_B_BUBBLE_DESTRUCTION_CYCLE_COUNT
PlusStatus SetTransmitFrequencyMHz(float frequency)
virtual PlusStatus WriteConfiguration(vtkXMLDataElement *config)
static const char * GET_ARFI_TX_CYCLE_WIDTH
static const char * SET_MPR_FREQUENCY
std::string m_FPGAVersion
static const char * KEY_VOLTAGE
static const char * GET_DECIMATION
const char const char * value
bool m_BBubbleDestructionEnabled
Phidget_ChannelClass uint32_t * count
PlusStatus GetProbeVoltage(float &aVoltage) const
PlusStatus SetExtraSourceMode(Mode mode)
static const char * GET_FREEZE
static const char * GET_ARFI_PUSH_CONFIG
PlusStatus SetARFIInterSetDelay(int32_t propertyValue)
virtual bool IsRecording() const
void SetBTransmitCycleCount(uint16_t value)
int32_t MWidthFromSeconds(int value)
static const char * SET_B_BUBBLE_DESTRUCTION_ENABLED
Mode StringToMode(std::string modeString)
bool StartThreadForInternalUpdates
float m_ARFIFocalPointDepth[6]
void SetARFIStartSample(int32_t value)
static const char * SET_B_MULTIFOCAL_ZONE_COUNT
PlusStatus SetARFITxCycleWidth(uint8_t propertyValue)
static const char * SET_ALL_ARFI_FOCAL_DEPTHS
PlusStatus InternalApplyImagingParameterChange() override
double GetOverallTimeGainCompensation()
std::vector< vtkPlusDataSource * > m_PrimarySources
static const char * GET_B_AMPLITUDE_MODULATION_ENABLED
const double * GetCurrentPixelSpacingMm()
void SetBFrameRateLimit(int32_t value)
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_M_DEPTH
static const char * SET_RF_MODE_ENABLED
static const char * SET_B_TRANSMIT_CYCLE_COUNT
uint16_t m_BTransmitCycleCount
static const char * SET_ARFI_TX_CYCLE_COUNT
void SetMWidthLines(int32_t value)
static const char * GET_X8BF_ENABLED
static const char * SET_ARFI_LINE_TIMER
int32_t GetMAcousticLineCount()
static const char * GET_ARFI_LINE_TIMER
static const char * GET_TGC
static const char * SET_FOCAL_DEPTH
uint16_t GetARFITxCycleCount()
PlusStatus SetOverallTimeGainCompensation(double value)
virtual PlusStatus InternalStopRecording() VTK_OVERRIDE
static const char * SET_ARFI_POST_PUSH_LINE_REPEAT_COUNT
PlusStatus GetFrequencyMhz(double &aFrequencyMhz) const
std::vector< double > GetExtraSourceSpacing()
static const char * SET_ARFI_INTER_PUSH_DELAY
int32_t GetMPRFrequency()
float GetSpatialCompoundAngle()
static const char * GET_B_PRF
double GetBApodizationFNumber()
static const char * GET_ARFI_STOP_SAMPLE
void SetMAcousticLineCount(int32_t value)
static const char * GET_B_TX_FILTER_COEFFICIENT_SET
float GetTransducerWidthMm()
virtual igsioCommon::VTKScalarPixelType GetPixelType(vtkPlusChannel &aChannel)
FrameSizeType m_PrimaryFrameSize
void SetSpatialCompoundEnabled(bool value)
static const char * SET_B_HARMONIC_ENABLED
std::vector< double > GetPrimarySourceSpacing()
virtual PlusStatus InternalConnect() VTK_OVERRIDE
double m_TimeGainCompensation[8]
static const char * SET_B_FRAME_RATE_LIMIT
bool IsSet(const std::string ¶mName) const
static const char * GET_MMODE_ENABLED
static const char * SET_ARFI_STOP_SAMPLE
static const char * GET_ARFI_START_SAMPLE
void SetBAmplitudeModulationEnabled(bool value)
static const char * SET_TGC
float GetARFIFocalPointDepth(int index)
float m_SpatialCompoundAngle
void SetBRFEnabled(bool value)
static const char * SET_B_TRANSMIT_FNUMBER
int32_t focalCountFromDepthsArray(float *depths, unsigned arraySize)
uint16_t GetBTransmitCycleCount()
int32_t m_ARFIStartSample
PlusStatus SetARFILineTimer(uint16_t propertyValue)
static const char * GET_ARFI_PRE_PUSH_LINE_REPEAT_COUNT
vtkStandardNewMacro(vtkPlusWinProbeVideoSource)
static const char * SET_DECIMATION
static const char * GET_ARFI_ENABLED
static const char * GET_ARFI_FOCAL_DEPTH
void SetBBubbleContrastEnabled(bool value)
static const char * SET_M_REVOLVING_ENABLED
static const char * GET_ARFI_INTER_SET_DELAY
int32_t m_ARFIPrePushLineRepeatCount
uint8_t m_ARFITxTxCycleWidth
double GetTimeGainCompensation(int index)
std::string GetARFIPushConfigurationString()
uint8_t m_ARFITxCycleWidth
void SetBBubbleDestructionEnabled(bool value)
void SetMLineIndex(int32_t value)
std::string GetTransducerID()
int32_t m_BFrameRateLimit
static const char * GET_ARFI_TX_TX_CYCLE_COUNT
int32_t m_SpatialCompoundCount
double m_BApodizationFNumber
static const char * SET_B_APODIZATION_FNUMBER
Interface to a 3D positioning tool, video source, or generalized data stream.
uint16_t GetARFILineTimer()
static const char * GET_TRANSDUCER_INTERNAL_ID