ngscopeclient 0.1-dev+51fbda87c
Classes | Macros | Functions | Variables
scopehal.h File Reference

Main library include file. More...

#include <deque>
#include <vector>
#include <string>
#include <map>
#include <stdint.h>
#include <chrono>
#include <thread>
#include <memory>
#include <climits>
#include <cinttypes>
#include <set>
#include <float.h>
#include <sigc++/sigc++.h>
#include <yaml-cpp/yaml.h>
#include "../log/log.h"
#include "../xptools/TimeUtil.h"
#include "config.h"
#include <vulkan/vulkan_raii.hpp>
#include "Unit.h"
#include "Bijection.h"
#include "IDTable.h"
#include "AcceleratorBuffer.h"
#include "ComputePipeline.h"
#include "SCPITransport.h"
#include "SCPISocketTransport.h"
#include "SCPITwinLanTransport.h"
#include "SCPILinuxGPIBTransport.h"
#include "SCPILxiTransport.h"
#include "SCPINullTransport.h"
#include "SCPIUARTTransport.h"
#include "SCPIHIDTransport.h"
#include "VICPSocketTransport.h"
#include "SCPIDevice.h"
#include "SCPITMCTransport.h"
#include "FlowGraphNode.h"
#include "Instrument.h"
#include "StreamDescriptor.h"
#include "OscilloscopeChannel.h"
#include "StreamDescriptor_inlines.h"
#include "FlowGraphNode_inlines.h"
#include "Trigger.h"
#include "BERT.h"
#include "BinaryDriver.h"
#include "CommandLineDriver.h"
#include "DigitalIOChannel.h"
#include "DigitalInputChannel.h"
#include "DigitalOutputChannel.h"
#include "FunctionGenerator.h"
#include "FunctionGeneratorChannel.h"
#include "Load.h"
#include "CANChannel.h"
#include "Multimeter.h"
#include "MultimeterChannel.h"
#include "Oscilloscope.h"
#include "SParameterChannel.h"
#include "PowerSupply.h"
#include "PowerSupplyChannel.h"
#include "RFSignalGenerator.h"
#include "RFSignalGeneratorChannel.h"
#include "SCPIInstrument.h"
#include "HIDInstrument.h"
#include "ModbusInstrument.h"
#include "SCPIBERT.h"
#include "SCPIFunctionGenerator.h"
#include "SCPILoad.h"
#include "SCPIMiscInstrument.h"
#include "SCPIMultimeter.h"
#include "SCPIOscilloscope.h"
#include "SCPIPowerSupply.h"
#include "SCPIRFSignalGenerator.h"
#include "SpectrometerDarkFrameChannel.h"
#include "SCPISA.h"
#include "SCPISDR.h"
#include "SCPISpectrometer.h"
#include "SCPIVNA.h"
#include "SwitchMatrix.h"
#include "SParameters.h"
#include "TouchstoneParser.h"
#include "IBISParser.h"
#include "FilterParameter.h"
#include "Filter.h"
#include "ImportFilter.h"
#include "PeakDetectionFilter.h"
#include "SpectrumChannel.h"
#include "SParameterSourceFilter.h"
#include "SParameterFilter.h"
#include "FilterGraphExecutor.h"
#include "QueueManager.h"

Go to the source code of this file.

Classes

struct  ConvertRawSamplesShaderArgs
 
class  CompileTimeAssert< true >
 

Macros

#define FS_PER_PICOSECOND   1e3
 
#define FS_PER_NANOSECOND   1e6
 
#define FS_PER_MICROSECOND   1e9
 
#define FS_PER_SECOND   1e15
 
#define SECONDS_PER_FS   1e-15
 
#define stos(str)   static_cast<size_t>(stol(str))
 

Functions

uint64_t ConvertVectorSignalToScalar (const std::vector< bool > &bits)
 
std::string GetDefaultChannelColor (int i)
 
std::string Trim (const std::string &str)
 
std::string TrimQuotes (const std::string &str)
 
std::string BaseName (const std::string &path)
 
std::string ReadFile (const std::string &path)
 
std::string ReadDataFile (const std::string &relpath)
 
std::vector< uint32_t > ReadDataFileUint32 (const std::string &relpath)
 
std::string FindDataFile (const std::string &relpath)
 
void GetTimestampOfFile (std::string path, time_t &timestamp, int64_t &fs)
 
std::string to_string_sci (double d)
 Like std::to_string, but output in scientific notation.
 
std::string to_string_hex (uint64_t n, bool zeropad=false, int len=0)
 Like std::to_string, but output in hex.
 
void TransportStaticInit ()
 Static initialization for SCPI transports.
 
void DriverStaticInit ()
 Static initialization for instrument drivers.
 
bool VulkanInit (bool skipGLFW=false)
 Initialize a Vulkan context for compute. More...
 
void InitializeSearchPaths ()
 
void InitializePlugins ()
 Initialize all plugins.
 
void DetectCPUFeatures ()
 Static initialization for CPU feature flags.
 
std::string GetDirOfCurrentExecutable ()
 Gets the path to the directory containing the current executable.
 
void ScopehalStaticCleanup ()
 
float FreqToPhase (float hz)
 Converts a frequency in Hz to a phase velocity in rad/sec.
 
uint64_t next_pow2 (uint64_t v)
 Rounds a 64-bit integer up to the next power of 2.
 
uint64_t prev_pow2 (uint64_t v)
 Rounds a 64-bit integer down to the next power of 2.
 
std::vector< std::string > explode (const std::string &str, char separator)
 
std::string str_replace (const std::string &search, const std::string &replace, const std::string &subject)
 
std::string strtolower (const std::string &s)
 
uint32_t GetComputeBlockCount (size_t numGlobal, size_t blockSize)
 
std::string ExpandPath (const std::string &in)
 
void CreateDirectory (const std::string &path)
 
uint32_t CRC32 (const uint8_t *bytes, size_t start, size_t end)
 Calculates a CRC32 checksum using the standard Ethernet polynomial.
 
uint32_t CRC32 (const std::vector< uint8_t > &bytes)
 
uint32_t ColorFromString (const std::string &str, unsigned int alpha=255)
 
const char * ScopehalGetVersion ()
 Returns the library version string (Semantic Version formatted)
 

Variables

bool g_gpuFilterEnabled
 True if filters can use GPU acceleration.
 
bool g_gpuScopeDriverEnabled
 True if scope drivers can use GPU acceleration.
 
bool g_hasShaderFloat64
 Indicates whether the float64 type is available for use in shaders and SSBOs.
 
bool g_hasShaderInt64
 Indicates whether the int64 type is available for use in shaders and SSBOs.
 
bool g_hasShaderInt16
 Indicates whether the int16 type is available for use in shaders and SSBOs.
 
bool g_hasShaderInt8
 Indicates whether the int8 type is available for use in shaders and SSBOs.
 
bool g_hasShaderAtomicFloat
 Indicates whether atomic operations on the float type are available in shaders.
 
bool g_hasDebugUtils
 Indicates whether the VK_EXT_debug_utils extension is available.
 
bool g_hasMemoryBudget
 Indicates whether the VK_EXT_memory_budget extension is available.
 
bool g_hasPushDescriptor
 Indicates whether the VK_KHR_push_descriptor extension is available.
 
size_t g_maxComputeGroupCount [3]
 Maximum size of a Vulkan dispatch group for compute shaders, in each axis.
 
std::vector< std::string > g_searchPaths
 
vk::raii::Context g_vkContext
 Global Vulkan context.
 
std::unique_ptr< vk::raii::Instance > g_vkInstance
 Global Vulkan instance.
 
uint8_t g_vkComputeDeviceUuid [16]
 UUID of g_vkComputeDevice.
 
uint32_t g_vkComputeDeviceDriverVer
 Driver version of g_vkComputeDevice.
 
vk::raii::PhysicalDevice * g_vkComputePhysicalDevice
 Physical device for g_vkComputeDevice.
 
std::unique_ptr< QueueManagerg_vkQueueManager
 Allocates QueueHandle objects. More...
 
bool g_vulkanDeviceIsIntelMesa
 Indicates that the Vulkan driver is Mesa on an Intel GPU.
 
bool g_vulkanDeviceIsAnyMesa
 Indicates that the Vulkan driver is Mesa on any GPU.
 
bool g_vulkanDeviceIsMoltenVK
 Indicates that the Vulkan driver is MoltenVK.
 
uint32_t g_vkPinnedMemoryHeap
 Heap from which g_vkPinnedMemoryType is allocated.
 
uint32_t g_vkLocalMemoryHeap
 Heap from which g_vkLocalMemoryType is allocated.
 
bool g_vulkanDeviceHasUnifiedMemory
 Indicates whether the Vulkan device is unified memory. More...
 

Detailed Description

Main library include file.

Author
Andrew D. Zonenberg