ngscopeclient v0.1
|
Implementation of global functions. More...
#include "scopehal.h"
#include "scopehal-version.h"
#include <libgen.h>
#include <filesystem>
#include "AgilentOscilloscope.h"
#include "AlientekPowerSupply.h"
#include "HP662xAPowerSupply.h"
#include "AntikernelLabsOscilloscope.h"
#include "AntikernelLogicAnalyzer.h"
#include "DemoOscilloscope.h"
#include "DemoPowerSupply.h"
#include "DigilentOscilloscope.h"
#include "DSLabsOscilloscope.h"
#include "KeysightDCA.h"
#include "LeCroyOscilloscope.h"
#include "LeCroyFWPOscilloscope.h"
#include "PicoOscilloscope.h"
#include "RigolOscilloscope.h"
#include "RohdeSchwarzOscilloscope.h"
#include "RSRTO6Oscilloscope.h"
#include "SCPIPowerSupply.h"
#include "SiglentSCPIOscilloscope.h"
#include "TektronixOscilloscope.h"
#include "TektronixHSIOscilloscope.h"
#include "ThunderScopeOscilloscope.h"
#include "HaasoscopePro.h"
#include "TinySA.h"
#include "AntikernelLabsTriggerCrossbar.h"
#include "MultiLaneBERT.h"
#include "CSVStreamInstrument.h"
#include "SocketCANAnalyzer.h"
#include "OwonXDMMultimeter.h"
#include "RohdeSchwarzHMC8012Multimeter.h"
#include "OwonXDGFunctionGenerator.h"
#include "SiglentFunctionGenerator.h"
#include "RigolFunctionGenerator.h"
#include "GWInstekGPDX303SPowerSupply.h"
#include "RigolDP8xxPowerSupply.h"
#include "RohdeSchwarzHMC804xPowerSupply.h"
#include "SiglentPowerSupply.h"
#include "RidenPowerSupply.h"
#include "KuaiquPowerSupply.h"
#include "SiglentLoad.h"
#include "AseqSpectrometer.h"
#include "UHDBridgeSDR.h"
#include "CopperMountainVNA.h"
#include "NanoVNA.h"
#include "PicoVNA.h"
#include "SiglentVectorSignalGenerator.h"
#include "CDR8B10BTrigger.h"
#include "CDRNRZPatternTrigger.h"
#include "DCAEdgeTrigger.h"
#include "DropoutTrigger.h"
#include "EdgeTrigger.h"
#include "GlitchTrigger.h"
#include "NthEdgeBurstTrigger.h"
#include "PulseWidthTrigger.h"
#include "RuntTrigger.h"
#include "SlewRateTrigger.h"
#include "UartTrigger.h"
#include "WindowTrigger.h"
#include <dlfcn.h>
#include <sys/stat.h>
#include <wordexp.h>
#include <dirent.h>
Functions | |
void | VulkanCleanup () |
Free all global Vulkan resources in the correct order. | |
void | TransportStaticInit () |
Static initialization for SCPI transports. | |
void | DetectCPUFeatures () |
Static initialization for CPU feature flags. | |
void | ScopehalStaticCleanup () |
void | DriverStaticInit () |
Static initialization for instrument drivers. | |
string | GetDefaultChannelColor (int i) |
uint64_t | ConvertVectorSignalToScalar (const vector< bool > &bits) |
Converts a vector bus signal into a scalar (up to 64 bits wide) | |
void | InitializePlugins () |
Initialize all plugins. | |
string | Trim (const string &str) |
Removes whitespace from the start and end of a string. | |
string | TrimQuotes (const string &str) |
Removes quotes from the start and end of a string. | |
string | BaseName (const string &path) |
float | FreqToPhase (float hz) |
Converts a frequency in Hz to a phase velocity in rad/sec. | |
string | to_string_sci (double d) |
Like std::to_string, but output in scientific notation. | |
string | to_string_hex (uint64_t n, bool zeropad, int len) |
Like std::to_string, but output in hex. | |
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. | |
string | ReadFile (const string &path) |
Returns the contents of a file. | |
string | GetDirOfCurrentExecutable () |
Gets the path to the directory containing the current executable. | |
void | InitializeSearchPaths () |
string | ReadDataFile (const string &relpath) |
Locates and returns the contents of a data file as a std::string. | |
vector< uint32_t > | ReadDataFileUint32 (const string &relpath) |
Locates and returns the contents of a data file as a std::vector<uint32_t> | |
string | FindDataFile (const string &relpath) |
Locates a data file. | |
void | GetTimestampOfFile (string path, time_t ×tamp, int64_t &fs) |
vector< string > | explode (const string &str, char separator) |
Splits a string up into an array separated by delimiters. | |
string | strtolower (const string &s) |
Converts a string to lower case. | |
string | str_replace (const string &search, const string &replace, const string &subject) |
Replaces all occurrences of the search string with "replace" in the given string. | |
uint32_t | GetComputeBlockCount (size_t numGlobal, size_t blockSize) |
string | ExpandPath (const string &in) |
void | CreateDirectory (const 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 vector< uint8_t > &bytes) |
const char * | ScopehalGetVersion () |
Returns the library version string (Semantic Version formatted) | |
bool | OnMemoryPressure (MemoryPressureLevel level, MemoryPressureType type, size_t requestedSize) |
Called when we run low on memory. More... | |
Variables | |
bool | g_gpuFilterEnabled = false |
True if filters can use GPU acceleration. More... | |
vector< string > | g_searchPaths |
set< MemoryPressureHandler > | g_memoryPressureHandlers |
List of handlers for low memory registered by various subsystems. | |
shared_mutex | g_vulkanActivityMutex |
Mutex for controlling access to background Vulkan activity. More... | |
Implementation of global functions.
bool OnMemoryPressure | ( | MemoryPressureLevel | level, |
MemoryPressureType | type, | ||
size_t | requestedSize | ||
) |
Called when we run low on memory.
level | Indicates if this is a soft or hard memory exhaustion condition |
type | Indicates if we are low on CPU or GPU memory |
requestedSize | For hard memory exhaustion, the size of the failing allocation. For soft exhaustion, ignored and set to zero |
bool g_gpuFilterEnabled = false |
True if filters can use GPU acceleration.
Will be deprecated soon since Vulkan is now a mandatory core part of the application
shared_mutex g_vulkanActivityMutex |
Mutex for controlling access to background Vulkan activity.
Arbitrarily many threads can own this mutex at once, but it must be held when calling vkDeviceWaitIdle.