Better documentation + examples

This commit is contained in:
Ali Nwegy 2024-02-28 12:04:31 +01:00
parent a3b100b419
commit 2ee2b10c40
67 changed files with 17311 additions and 37 deletions

View File

@ -3,43 +3,22 @@
__\[fn_gen\]__ The Function Generator SCPI library in Python
### Description: A library for usage with SCPI compliant function generators (for now the DG2000 series from rigol)
### Usage:
#### Linux
### Installation:
```bash
# Clone Repository and change to repo directory
git clone https://collaborating.tuhh.de/m-4/imek-public/python-libs/rigol-dg2052-python-library.git && cd rigol-dg2052-python-library
# Install virtualenv for python virtual enviroment management
pip install virtualenv # Can be skipped if already installed
# Create a virutal enviroment in repo folder called 'venv'
python -m venv venv
# Activate virtual enviroment
source venv/bin/activate
# Install python build package to build library
pip install build
# Build library
python -m build
# Deactivate virtual enviroment
deactivate
```
#### Windows
```powershell
# Clone Repository and change to repo directory
git clone https://collaborating.tuhh.de/m-4/imek-public/python-libs/rigol-dg2052-python-library.git
cd rigol-dg2052-python-library
# Install virtualenv for python virtual enviroment management
pip install virtualenv # Can be skipped if already installed
# Create a virutal enviroment in repo folder called 'venv'
python -m venv venv
# Activate virtual enviroment
venv\Scripts\Activate.ps1
# Install python build package to build library
pip install build
# Build library
python -m build
# Deactivate virtual enviroment
deactivate
pip install dist/fn_gen-0.0.2-py3-none-any.whl
```
The library will be then available in `dist` as a `.whl` file.
### Usage:
```python
from fn_gen import DG2052
if __name__ == "__main__":
fg = DG2052("TCPIP::192.168.1.11::INSTR")
print(fg.whoami())
```
other examples are available in the [examples](./examples) folder.

50
docs/ajax.js Normal file
View File

@ -0,0 +1,50 @@
// Implement simple cached AJAX functions.
var _cache = {};
/*
* Get a promise for the HTTP get responseText.
*/
function httpGetPromise(url) {
const promise = new Promise((_resolve, _reject) => {
httpGet(url, (responseText) => {
_resolve(responseText);
},
(error) => {
_reject(error);
});
});
return promise
}
function httpGet(url, onload, onerror) {
if (_cache[url]) {
_cachedHttpGet(url, onload, onerror);
}
else{
_httpGet(url, onload, onerror);
}
}
function _cachedHttpGet(url, onload, onerror) {
setTimeout(() => { onload(_cache[url]) }, 0);
}
function _httpGet(url, onload, onerror) {
var xobj = new XMLHttpRequest();
xobj.open('GET', url, true); // Asynchronous
xobj.onload = function () {
// add document to cache.
_cache[url] = xobj.responseText;
onload(xobj.responseText);
};
xobj.onerror = function (error) {
console.log(error)
onerror(error)
};
xobj.send(null);
}

611
docs/all-documents.html Normal file
View File

@ -0,0 +1,611 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>All Documents</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
<div class="container">
<h1>All Documents</h1>
<ul>
<li id="fn_gen">
<div class="fullName">fn<wbr></wbr>_gen</div>
<div class="url">index.html</div>
<div class="type">Package</div>
<div class="kind">Package</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.common">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.common</div>
<div class="url">fn_gen.common.html</div>
<div class="type">Module</div>
<div class="kind">Module</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.dg2052">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052</div>
<div class="url">fn_gen.dg2052.html</div>
<div class="type">Module</div>
<div class="kind">Module</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">No module docstring; 1/1 class documented</span></div>
</li><li id="fn_gen.enums">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums</div>
<div class="url">fn_gen.enums.html</div>
<div class="type">Package</div>
<div class="kind">Package</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.enums.comm_method">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.comm<wbr></wbr>_method</div>
<div class="url">fn_gen.enums.comm_method.html</div>
<div class="type">Module</div>
<div class="kind">Module</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">No module docstring; 1/1 class documented</span></div>
</li><li id="fn_gen.enums.sweep_signal_type">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_signal<wbr></wbr>_type</div>
<div class="url">fn_gen.enums.sweep_signal_type.html</div>
<div class="type">Module</div>
<div class="kind">Module</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">No module docstring; 1/1 class documented</span></div>
</li><li id="fn_gen.enums.sweep_spacing">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_spacing</div>
<div class="url">fn_gen.enums.sweep_spacing.html</div>
<div class="type">Module</div>
<div class="kind">Module</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">No module docstring; 1/1 class documented</span></div>
</li><li id="fn_gen.enums.sweep_trigger_slope">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_trigger<wbr></wbr>_slope</div>
<div class="url">fn_gen.enums.sweep_trigger_slope.html</div>
<div class="type">Module</div>
<div class="kind">Module</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">No module docstring; 1/1 class documented</span></div>
</li><li id="fn_gen.enums.sweep_trigger_source">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_trigger<wbr></wbr>_source</div>
<div class="url">fn_gen.enums.sweep_trigger_source.html</div>
<div class="type">Module</div>
<div class="kind">Module</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">No module docstring; 1/1 class documented</span></div>
</li><li id="fn_gen.errors">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.errors</div>
<div class="url">fn_gen.errors.html</div>
<div class="type">Package</div>
<div class="kind">Package</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.errors.undefined_communication_method_error">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.errors<wbr></wbr>.undefined<wbr></wbr>_communication<wbr></wbr>_method<wbr></wbr>_error</div>
<div class="url">fn_gen.errors.undefined_communication_method_error.html</div>
<div class="type">Module</div>
<div class="kind">Module</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.errors.undefined_value_error">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.errors<wbr></wbr>.undefined<wbr></wbr>_value<wbr></wbr>_error</div>
<div class="url">fn_gen.errors.undefined_value_error.html</div>
<div class="type">Module</div>
<div class="kind">Module</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.errors.value_out_of_bounds_error">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.errors<wbr></wbr>.value<wbr></wbr>_out<wbr></wbr>_of<wbr></wbr>_bounds<wbr></wbr>_error</div>
<div class="url">fn_gen.errors.value_out_of_bounds_error.html</div>
<div class="type">Module</div>
<div class="kind">Module</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.errors<wbr></wbr>.undefined<wbr></wbr>_communication<wbr></wbr>_method<wbr></wbr>_error<wbr></wbr>.<wbr></wbr>Undefined<wbr></wbr>Communication<wbr></wbr>Method<wbr></wbr>Error</div>
<div class="url">fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.html</div>
<div class="type">Class</div>
<div class="kind">Exception</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.__init__">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.errors<wbr></wbr>.undefined<wbr></wbr>_communication<wbr></wbr>_method<wbr></wbr>_error<wbr></wbr>.<wbr></wbr>Undefined<wbr></wbr>Communication<wbr></wbr>Method<wbr></wbr>Error<wbr></wbr>.__init__</div>
<div class="url">fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.html#__init__</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.errors<wbr></wbr>.value<wbr></wbr>_out<wbr></wbr>_of<wbr></wbr>_bounds<wbr></wbr>_error<wbr></wbr>.<wbr></wbr>Value<wbr></wbr>Out<wbr></wbr>Of<wbr></wbr>Bounds<wbr></wbr>Error</div>
<div class="url">fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.html</div>
<div class="type">Class</div>
<div class="kind">Exception</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.__init__">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.errors<wbr></wbr>.value<wbr></wbr>_out<wbr></wbr>_of<wbr></wbr>_bounds<wbr></wbr>_error<wbr></wbr>.<wbr></wbr>Value<wbr></wbr>Out<wbr></wbr>Of<wbr></wbr>Bounds<wbr></wbr>Error<wbr></wbr>.__init__</div>
<div class="url">fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.html#__init__</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.errors.undefined_value_error.UndefinedValueError">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.errors<wbr></wbr>.undefined<wbr></wbr>_value<wbr></wbr>_error<wbr></wbr>.<wbr></wbr>Undefined<wbr></wbr>Value<wbr></wbr>Error</div>
<div class="url">fn_gen.errors.undefined_value_error.UndefinedValueError.html</div>
<div class="type">Class</div>
<div class="kind">Exception</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.errors.undefined_value_error.UndefinedValueError.__init__">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.errors<wbr></wbr>.undefined<wbr></wbr>_value<wbr></wbr>_error<wbr></wbr>.<wbr></wbr>Undefined<wbr></wbr>Value<wbr></wbr>Error<wbr></wbr>.__init__</div>
<div class="url">fn_gen.errors.undefined_value_error.UndefinedValueError.html#__init__</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.common.check_bounds">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.common<wbr></wbr>.check<wbr></wbr>_bounds</div>
<div class="url">fn_gen.common.html#check_bounds</div>
<div class="type">Function</div>
<div class="kind">Function</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.enums.comm_method.CommMethod">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.comm<wbr></wbr>_method<wbr></wbr>.<wbr></wbr>Comm<wbr></wbr>Method</div>
<div class="url">fn_gen.enums.comm_method.CommMethod.html</div>
<div class="type">Class</div>
<div class="kind">Class</div>
<div class="privacy">PUBLIC</div>
<div class="summary">The communication method accepted by the function generator</div>
</li><li id="fn_gen.enums.comm_method.CommMethod.USB">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.comm<wbr></wbr>_method<wbr></wbr>.<wbr></wbr>Comm<wbr></wbr>Method<wbr></wbr>.USB</div>
<div class="url">fn_gen.enums.comm_method.CommMethod.html#USB</div>
<div class="type">Attribute</div>
<div class="kind">Constant</div>
<div class="privacy">PUBLIC</div>
<div class="summary">For USB devices</div>
</li><li id="fn_gen.enums.comm_method.CommMethod.LAN">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.comm<wbr></wbr>_method<wbr></wbr>.<wbr></wbr>Comm<wbr></wbr>Method<wbr></wbr>.LAN</div>
<div class="url">fn_gen.enums.comm_method.CommMethod.html#LAN</div>
<div class="type">Attribute</div>
<div class="kind">Constant</div>
<div class="privacy">PUBLIC</div>
<div class="summary">For LAN devices</div>
</li><li id="fn_gen.enums.sweep_spacing.SweepSpacing">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_spacing<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Spacing</div>
<div class="url">fn_gen.enums.sweep_spacing.SweepSpacing.html</div>
<div class="type">Class</div>
<div class="kind">Class</div>
<div class="privacy">PUBLIC</div>
<div class="summary">The spacing used in the sweep function</div>
</li><li id="fn_gen.enums.sweep_spacing.SweepSpacing.LIN">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_spacing<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Spacing<wbr></wbr>.LIN</div>
<div class="url">fn_gen.enums.sweep_spacing.SweepSpacing.html#LIN</div>
<div class="type">Attribute</div>
<div class="kind">Constant</div>
<div class="privacy">PUBLIC</div>
<div class="summary">A linear sweep</div>
</li><li id="fn_gen.enums.sweep_spacing.SweepSpacing.LOG">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_spacing<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Spacing<wbr></wbr>.LOG</div>
<div class="url">fn_gen.enums.sweep_spacing.SweepSpacing.html#LOG</div>
<div class="type">Attribute</div>
<div class="kind">Constant</div>
<div class="privacy">PUBLIC</div>
<div class="summary">A logarithmic sweep</div>
</li><li id="fn_gen.enums.sweep_spacing.SweepSpacing.STEP">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_spacing<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Spacing<wbr></wbr>.STEP</div>
<div class="url">fn_gen.enums.sweep_spacing.SweepSpacing.html#STEP</div>
<div class="type">Attribute</div>
<div class="kind">Constant</div>
<div class="privacy">PUBLIC</div>
<div class="summary">A stepwise sweep</div>
</li><li id="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_trigger<wbr></wbr>_slope<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Slope</div>
<div class="url">fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.html</div>
<div class="type">Class</div>
<div class="kind">Class</div>
<div class="privacy">PUBLIC</div>
<div class="summary">The type of slope used for the external sweep trigger</div>
</li><li id="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.POSITIVE">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_trigger<wbr></wbr>_slope<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Slope<wbr></wbr>.POSITIVE</div>
<div class="url">fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.html#POSITIVE</div>
<div class="type">Attribute</div>
<div class="kind">Constant</div>
<div class="privacy">PUBLIC</div>
<div class="summary">This option triggers the sweep on the positive edge</div>
</li><li id="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.NEGATIVE">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_trigger<wbr></wbr>_slope<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Slope<wbr></wbr>.NEGATIVE</div>
<div class="url">fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.html#NEGATIVE</div>
<div class="type">Attribute</div>
<div class="kind">Constant</div>
<div class="privacy">PUBLIC</div>
<div class="summary">Ths option triggers the sweep on the negative edge</div>
</li><li id="fn_gen.enums.sweep_trigger_source.SweepTriggerSource">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_trigger<wbr></wbr>_source<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Source</div>
<div class="url">fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html</div>
<div class="type">Class</div>
<div class="kind">Class</div>
<div class="privacy">PUBLIC</div>
<div class="summary">The Source of the trigger for the sweep</div>
</li><li id="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.INTERNAL">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_trigger<wbr></wbr>_source<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Source<wbr></wbr>.INTERNAL</div>
<div class="url">fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html#INTERNAL</div>
<div class="type">Attribute</div>
<div class="kind">Constant</div>
<div class="privacy">PUBLIC</div>
<div class="summary">An Internal trigger signal, defined by htime_start, htime_stop</div>
</li><li id="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.EXTERNAL">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_trigger<wbr></wbr>_source<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Source<wbr></wbr>.EXTERNAL</div>
<div class="url">fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html#EXTERNAL</div>
<div class="type">Attribute</div>
<div class="kind">Constant</div>
<div class="privacy">PUBLIC</div>
<div class="summary">An external trigger signal</div>
</li><li id="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.MANUAL">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_trigger<wbr></wbr>_source<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Source<wbr></wbr>.MANUAL</div>
<div class="url">fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html#MANUAL</div>
<div class="type">Attribute</div>
<div class="kind">Constant</div>
<div class="privacy">PUBLIC</div>
<div class="summary">A manual trigger set in code by the trigger function</div>
</li><li id="fn_gen.enums.sweep_signal_type.SweepSignalType">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_signal<wbr></wbr>_type<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Signal<wbr></wbr>Type</div>
<div class="url">fn_gen.enums.sweep_signal_type.SweepSignalType.html</div>
<div class="type">Class</div>
<div class="kind">Class</div>
<div class="privacy">PUBLIC</div>
<div class="summary">The type of signal used in the sweep function</div>
</li><li id="fn_gen.enums.sweep_signal_type.SweepSignalType.SINE">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_signal<wbr></wbr>_type<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Signal<wbr></wbr>Type<wbr></wbr>.SINE</div>
<div class="url">fn_gen.enums.sweep_signal_type.SweepSignalType.html#SINE</div>
<div class="type">Attribute</div>
<div class="kind">Constant</div>
<div class="privacy">PUBLIC</div>
<div class="summary">The Sine function sweep</div>
</li><li id="fn_gen.enums.sweep_signal_type.SweepSignalType.SQUARE">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_signal<wbr></wbr>_type<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Signal<wbr></wbr>Type<wbr></wbr>.SQUARE</div>
<div class="url">fn_gen.enums.sweep_signal_type.SweepSignalType.html#SQUARE</div>
<div class="type">Attribute</div>
<div class="kind">Constant</div>
<div class="privacy">PUBLIC</div>
<div class="summary">The Square function sweep</div>
</li><li id="fn_gen.enums.sweep_signal_type.SweepSignalType.RAMP">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.enums<wbr></wbr>.sweep<wbr></wbr>_signal<wbr></wbr>_type<wbr></wbr>.<wbr></wbr>Sweep<wbr></wbr>Signal<wbr></wbr>Type<wbr></wbr>.RAMP</div>
<div class="url">fn_gen.enums.sweep_signal_type.SweepSignalType.html#RAMP</div>
<div class="type">Attribute</div>
<div class="kind">Constant</div>
<div class="privacy">PUBLIC</div>
<div class="summary">The Ramp function sweep</div>
</li><li id="fn_gen.dg2052.DG2052">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052</div>
<div class="url">fn_gen.dg2052.DG2052.html</div>
<div class="type">Class</div>
<div class="kind">Class</div>
<div class="privacy">PUBLIC</div>
<div class="summary">This is an object representing the Rigol DG2052 function generator. This object uses the SCPI protocol for communicating with the Rigol DG2052 function generator.</div>
</li><li id="fn_gen.dg2052.DG2052.port">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.port</div>
<div class="url">fn_gen.dg2052.DG2052.html#port</div>
<div class="type">Attribute</div>
<div class="kind">Instance Variable</div>
<div class="privacy">PUBLIC</div>
<div class="summary">The SCPI port describing the device, consists of a communication method and device port followed by the "::INSTR" keyword. communication method: can be either USB or TCPIP (other communication methods are not supported for this device) device port: either COMM4 or /dev/USB0 for USB in windows and posix systems respectively or the IP Address for TCPIP...</div>
</li><li id="fn_gen.dg2052.DG2052.rm">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.rm</div>
<div class="url">fn_gen.dg2052.DG2052.html#rm</div>
<div class="type">Attribute</div>
<div class="kind">Instance Variable</div>
<div class="privacy">PUBLIC</div>
<div class="summary">The resource manager object for pyvisa (for future use)</div>
</li><li id="fn_gen.dg2052.DG2052.comm">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.comm</div>
<div class="url">fn_gen.dg2052.DG2052.html#comm</div>
<div class="type">Attribute</div>
<div class="kind">Instance Variable</div>
<div class="privacy">PUBLIC</div>
<div class="summary">The communication method used (either TCPIP or USB)</div>
</li><li id="fn_gen.dg2052.DG2052.__init__">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.__init__</div>
<div class="url">fn_gen.dg2052.DG2052.html#__init__</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary">Initializes the DG2052 object</div>
</li><li id="fn_gen.dg2052.DG2052.whoami">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.whoami</div>
<div class="url">fn_gen.dg2052.DG2052.html#whoami</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary">shows the identification of the connected instrument</div>
</li><li id="fn_gen.dg2052.DG2052.set_output">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.set<wbr></wbr>_output</div>
<div class="url">fn_gen.dg2052.DG2052.html#set_output</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary">Sets the output channel ON or OFF</div>
</li><li id="fn_gen.dg2052.DG2052.toggle_output">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.toggle<wbr></wbr>_output</div>
<div class="url">fn_gen.dg2052.DG2052.html#toggle_output</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.dg2052.DG2052.get_output_volt_limits">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.get<wbr></wbr>_output<wbr></wbr>_volt<wbr></wbr>_limits</div>
<div class="url">fn_gen.dg2052.DG2052.html#get_output_volt_limits</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary">Gets the output volt limits of the specified channel</div>
</li><li id="fn_gen.dg2052.DG2052.get_output_impedance">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.get<wbr></wbr>_output<wbr></wbr>_impedance</div>
<div class="url">fn_gen.dg2052.DG2052.html#get_output_impedance</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.dg2052.DG2052.get_output_load">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.get<wbr></wbr>_output<wbr></wbr>_load</div>
<div class="url">fn_gen.dg2052.DG2052.html#get_output_load</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.dg2052.DG2052.get_output_signal">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.get<wbr></wbr>_output<wbr></wbr>_signal</div>
<div class="url">fn_gen.dg2052.DG2052.html#get_output_signal</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.dg2052.DG2052.get_output_state">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.get<wbr></wbr>_output<wbr></wbr>_state</div>
<div class="url">fn_gen.dg2052.DG2052.html#get_output_state</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.dg2052.DG2052.is_output_on">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.is<wbr></wbr>_output<wbr></wbr>_on</div>
<div class="url">fn_gen.dg2052.DG2052.html#is_output_on</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.dg2052.DG2052.set_dc">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.set<wbr></wbr>_dc</div>
<div class="url">fn_gen.dg2052.DG2052.html#set_dc</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.dg2052.DG2052.set_sine_wave">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.set<wbr></wbr>_sine<wbr></wbr>_wave</div>
<div class="url">fn_gen.dg2052.DG2052.html#set_sine_wave</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.dg2052.DG2052.set_frequency">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.set<wbr></wbr>_frequency</div>
<div class="url">fn_gen.dg2052.DG2052.html#set_frequency</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.dg2052.DG2052.set_square_wave">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.set<wbr></wbr>_square<wbr></wbr>_wave</div>
<div class="url">fn_gen.dg2052.DG2052.html#set_square_wave</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.dg2052.DG2052.set_ramp">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.set<wbr></wbr>_ramp</div>
<div class="url">fn_gen.dg2052.DG2052.html#set_ramp</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.dg2052.DG2052.set_sweep">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.set<wbr></wbr>_sweep</div>
<div class="url">fn_gen.dg2052.DG2052.html#set_sweep</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li><li id="fn_gen.dg2052.DG2052.trigger_sweep">
<div class="fullName">fn<wbr></wbr>_gen<wbr></wbr>.dg2052<wbr></wbr>.DG2052<wbr></wbr>.trigger<wbr></wbr>_sweep</div>
<div class="url">fn_gen.dg2052.DG2052.html#trigger_sweep</div>
<div class="type">Function</div>
<div class="kind">Method</div>
<div class="privacy">PUBLIC</div>
<div class="summary"><span class="undocumented">Undocumented</span></div>
</li>
</ul>
</div>
</body>
</html>

1162
docs/apidocs.css Normal file

File diff suppressed because it is too large Load Diff

5
docs/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

167
docs/classIndex.html Normal file
View File

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Class Hierarchy</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<div class="page-header">
<h1>Class Hierarchy</h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<ul id="summaryTree">
<li><code><a href="https://docs.python.org/3/library/enum.html#enum.Enum" class="intersphinx-link">enum.Enum</a></code><ul><li><a name="fn_gen.enums.comm_method.CommMethod"></a><div><code><a href="fn_gen.enums.comm_method.CommMethod.html" class="internal-link">fn_gen.enums.comm_method.CommMethod</a></code> - The communication method accepted by the function generator</div></li><li><a name="fn_gen.enums.sweep_signal_type.SweepSignalType"></a><div><code><a href="fn_gen.enums.sweep_signal_type.SweepSignalType.html" class="internal-link">fn_gen.enums.sweep_signal_type.SweepSignalType</a></code> - The type of signal used in the sweep function</div></li><li><a name="fn_gen.enums.sweep_spacing.SweepSpacing"></a><div><code><a href="fn_gen.enums.sweep_spacing.SweepSpacing.html" class="internal-link">fn_gen.enums.sweep_spacing.SweepSpacing</a></code> - The spacing used in the sweep function</div></li><li><a name="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope"></a><div><code><a href="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.html" class="internal-link">fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope</a></code> - The type of slope used for the external sweep trigger</div></li><li><a name="fn_gen.enums.sweep_trigger_source.SweepTriggerSource"></a><div><code><a href="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html" class="internal-link">fn_gen.enums.sweep_trigger_source.SweepTriggerSource</a></code> - The Source of the trigger for the sweep</div></li></ul></li><li><code><a href="https://docs.python.org/3/library/exceptions.html#Exception" class="intersphinx-link">Exception</a></code><ul><li><a name="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError"></a><div><code><a href="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.html" class="internal-link">fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError</a></code> - <span class="undocumented">Undocumented</span></div></li><li><a name="fn_gen.errors.undefined_value_error.UndefinedValueError"></a><div><code><a href="fn_gen.errors.undefined_value_error.UndefinedValueError.html" class="internal-link">fn_gen.errors.undefined_value_error.UndefinedValueError</a></code> - <span class="undocumented">Undocumented</span></div></li><li><a name="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError"></a><div><code><a href="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.html" class="internal-link">fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError</a></code> - <span class="undocumented">Undocumented</span></div></li></ul></li><li><code>pyvisa.resources.MessageBasedResource</code><ul><li><a name="fn_gen.dg2052.DG2052"></a><div><code><a href="fn_gen.dg2052.DG2052.html" class="internal-link">fn_gen.dg2052.DG2052</a></code> - This is an object representing the Rigol DG2052 function generator. This object uses the SCPI protocol for communicating with the Rigol DG2052 function generator.</div></li></ul></li></ul>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

0
docs/extra.css Normal file
View File

359
docs/fn_gen.common.html Normal file
View File

@ -0,0 +1,359 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.common</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Module</span>
<code class="thisobject"><a href="fn_gen.common.html" class="internal-link" title="This module">common</a></code>
</div>
<div>
<div class="childrenKindTitle">Functions</div>
<ul>
<li class="">
<div class="itemName"><code><a href="#check_bounds" class="internal-link" title="fn_gen.common.check_bounds">check<wbr></wbr>_bounds</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Package</span>
<code><a href="index.html" class="internal-link" title="The parent of this module">fn<wbr></wbr>_gen</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code>
</div>
</li><li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.common.html" class="internal-link" title="fn_gen.common">common</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.dg2052.html" class="internal-link" title="fn_gen.dg2052">dg2052</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="module"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.common.html" class="internal-link" title="fn_gen.common">common</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
module documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id2">
<tr class="function">
<td>Function</td>
<td><code><a href="#check_bounds" class="internal-link" title="fn_gen.common.check_bounds">check<wbr></wbr>_bounds</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr>
</table>
</div>
<div id="childList">
<div class="basefunction">
<a name="fn_gen.common.check_bounds">
</a>
<a name="check_bounds">
</a>
<div class="functionHeader">
<span class="py-keyword">def</span> <span class="py-defname">check_bounds</span><span class="function-signature">(bounds: <code><a href="https://docs.python.org/3/library/stdtypes.html#tuple" class="intersphinx-link">tuple</a>[<wbr></wbr><a href="https://docs.python.org/3/library/functions.html#float" class="intersphinx-link">float</a>, <wbr></wbr><a href="https://docs.python.org/3/library/functions.html#float" class="intersphinx-link">float</a>]|<a href="https://docs.python.org/3/library/stdtypes.html#tuple" class="intersphinx-link">tuple</a>[<wbr></wbr><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a>, <wbr></wbr><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a>]</code>, value: <code><a href="https://docs.python.org/3/library/functions.html#float" class="intersphinx-link">float</a>|<a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code>)</span>:
<a class="headerLink" href="#check_bounds" title="fn_gen.common.check_bounds">
</a>
</div>
<div class="docstring functionBody">
<div><p class="undocumented">Undocumented</p></div>
</div>
</div>
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

File diff suppressed because it is too large Load Diff

335
docs/fn_gen.dg2052.html Normal file
View File

@ -0,0 +1,335 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.dg2052</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Module</span>
<code class="thisobject"><a href="fn_gen.dg2052.html" class="internal-link" title="This module">dg2052</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.dg2052.DG2052.html" class="internal-link" title="fn_gen.dg2052.DG2052">DG2052</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Package</span>
<code><a href="index.html" class="internal-link" title="The parent of this module">fn<wbr></wbr>_gen</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.common.html" class="internal-link" title="fn_gen.common">common</a></code>
</div>
</li><li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.dg2052.html" class="internal-link" title="fn_gen.dg2052">dg2052</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="module"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.dg2052.html" class="internal-link" title="fn_gen.dg2052">dg2052</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
module documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id3">
<tr class="class">
<td>Class</td>
<td><code><a href="fn_gen.dg2052.DG2052.html" class="internal-link" title="fn_gen.dg2052.DG2052">DG2052</a></code></td>
<td>This is an object representing the Rigol DG2052 function generator. This object uses the SCPI protocol for communicating with the Rigol DG2052 function generator.</td>
</tr>
</table>
</div>
<div id="childList">
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,368 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.enums.comm_method.CommMethod</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Class</span>
<code class="thisobject"><a href="fn_gen.enums.comm_method.CommMethod.html" class="internal-link" title="This class"><wbr></wbr>Comm<wbr></wbr>Method</a></code>
</div>
<div>
<div class="childrenKindTitle">Attributes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="#LAN" class="internal-link" title="fn_gen.enums.comm_method.CommMethod.LAN">LAN</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="#USB" class="internal-link" title="fn_gen.enums.comm_method.CommMethod.USB">USB</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Module</span>
<code><a href="fn_gen.enums.comm_method.html" class="internal-link" title="The parent of this class">comm<wbr></wbr>_method</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.enums.comm_method.CommMethod.html" class="internal-link" title="fn_gen.enums.comm_method.CommMethod"><wbr></wbr>Comm<wbr></wbr>Method</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="class"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code><wbr></wbr>.<code><a href="fn_gen.enums.comm_method.html" class="internal-link" title="fn_gen.enums.comm_method">comm_method</a></code><wbr></wbr>.<code><a href="fn_gen.enums.comm_method.CommMethod.html" class="internal-link" title="fn_gen.enums.comm_method.CommMethod">CommMethod</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
class documentation
</div>
<div class="extrasDocstring">
<p class="class-signature"><code><span class="py-keyword">class</span> <span class="py-defname">CommMethod</span>(<a href="https://docs.python.org/3/library/enum.html#enum.Enum" class="intersphinx-link">Enum</a>):</code></p>
<p><a href="classIndex.html#fn_gen.enums.comm_method.CommMethod">View In Hierarchy</a></p>
</div>
<div class="moduleDocstring">
<div><p>The communication method accepted by the function generator</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id7">
<tr class="constant">
<td>Constant</td>
<td><code><a href="#LAN" class="internal-link" title="fn_gen.enums.comm_method.CommMethod.LAN">LAN</a></code></td>
<td>For LAN devices</td>
</tr><tr class="constant">
<td>Constant</td>
<td><code><a href="#USB" class="internal-link" title="fn_gen.enums.comm_method.CommMethod.USB">USB</a></code></td>
<td>For USB devices</td>
</tr>
</table>
</div>
<div id="childList">
<div class="baseconstant">
<a name="fn_gen.enums.comm_method.CommMethod.LAN">
</a>
<a name="LAN">
</a>
<div class="functionHeader">
<span class="py-defname">LAN</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#LAN" title="fn_gen.enums.comm_method.CommMethod.LAN">
</a>
</div>
<div class="functionBody">
<div><p>For LAN devices</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>1</code></pre></td></tr></table>
</div>
</div><div class="baseconstant">
<a name="fn_gen.enums.comm_method.CommMethod.USB">
</a>
<a name="USB">
</a>
<div class="functionHeader">
<span class="py-defname">USB</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#USB" title="fn_gen.enums.comm_method.CommMethod.USB">
</a>
</div>
<div class="functionBody">
<div><p>For USB devices</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>0</code></pre></td></tr></table>
</div>
</div>
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,345 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.enums.comm_method</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Module</span>
<code class="thisobject"><a href="fn_gen.enums.comm_method.html" class="internal-link" title="This module">comm<wbr></wbr>_method</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.comm_method.CommMethod.html" class="internal-link" title="fn_gen.enums.comm_method.CommMethod"><wbr></wbr>Comm<wbr></wbr>Method</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Package</span>
<code><a href="fn_gen.enums.html" class="internal-link" title="The parent of this module">enums</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.enums.comm_method.html" class="internal-link" title="fn_gen.enums.comm_method">comm<wbr></wbr>_method</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link" title="fn_gen.enums.sweep_signal_type">sweep<wbr></wbr>_signal<wbr></wbr>_type</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_spacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing">sweep<wbr></wbr>_spacing</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope">sweep<wbr></wbr>_trigger<wbr></wbr>_slope</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source">sweep<wbr></wbr>_trigger<wbr></wbr>_source</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="module"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code><wbr></wbr>.<code><a href="fn_gen.enums.comm_method.html" class="internal-link" title="fn_gen.enums.comm_method">comm_method</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
module documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id6">
<tr class="class">
<td>Class</td>
<td><code><a href="fn_gen.enums.comm_method.CommMethod.html" class="internal-link" title="fn_gen.enums.comm_method.CommMethod"><wbr></wbr>Comm<wbr></wbr>Method</a></code></td>
<td>The communication method accepted by the function generator</td>
</tr>
</table>
</div>
<div id="childList">
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

395
docs/fn_gen.enums.html Normal file
View File

@ -0,0 +1,395 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.enums</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Package</span>
<code class="thisobject"><a href="fn_gen.enums.html" class="internal-link" title="This package">enums</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.comm_method.html" class="internal-link" title="fn_gen.enums.comm_method">comm<wbr></wbr>_method</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link" title="fn_gen.enums.sweep_signal_type">sweep<wbr></wbr>_signal<wbr></wbr>_type</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_spacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing">sweep<wbr></wbr>_spacing</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope">sweep<wbr></wbr>_trigger<wbr></wbr>_slope</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source">sweep<wbr></wbr>_trigger<wbr></wbr>_source</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Package</span>
<code><a href="index.html" class="internal-link" title="The parent of this package">fn<wbr></wbr>_gen</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.common.html" class="internal-link" title="fn_gen.common">common</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.dg2052.html" class="internal-link" title="fn_gen.dg2052">dg2052</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="package"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
package documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id5">
<tr class="module">
<td>Module</td>
<td><code><a href="fn_gen.enums.comm_method.html" class="internal-link" title="fn_gen.enums.comm_method">comm<wbr></wbr>_method</a></code></td>
<td><span class="undocumented">No module docstring; 1/1 class documented</span></td>
</tr><tr class="module">
<td>Module</td>
<td><code><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link" title="fn_gen.enums.sweep_signal_type">sweep<wbr></wbr>_signal<wbr></wbr>_type</a></code></td>
<td><span class="undocumented">No module docstring; 1/1 class documented</span></td>
</tr><tr class="module">
<td>Module</td>
<td><code><a href="fn_gen.enums.sweep_spacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing">sweep<wbr></wbr>_spacing</a></code></td>
<td><span class="undocumented">No module docstring; 1/1 class documented</span></td>
</tr><tr class="module">
<td>Module</td>
<td><code><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope">sweep<wbr></wbr>_trigger<wbr></wbr>_slope</a></code></td>
<td><span class="undocumented">No module docstring; 1/1 class documented</span></td>
</tr><tr class="module">
<td>Module</td>
<td><code><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source">sweep<wbr></wbr>_trigger<wbr></wbr>_source</a></code></td>
<td><span class="undocumented">No module docstring; 1/1 class documented</span></td>
</tr>
</table>
</div>
<div id="childList">
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,368 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.enums.output_channel.OutputChannel</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Class</span>
<code class="thisobject"><a href="fn_gen.enums.output_channel.OutputChannel.html" class="internal-link" title="This class"><wbr></wbr>Output<wbr></wbr>Channel</a></code>
</div>
<div>
<div class="childrenKindTitle">Attributes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="#ONE" class="internal-link" title="fn_gen.enums.output_channel.OutputChannel.ONE">ONE</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="#TWO" class="internal-link" title="fn_gen.enums.output_channel.OutputChannel.TWO">TWO</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Module</span>
<code><a href="fn_gen.enums.output_channel.html" class="internal-link" title="The parent of this class">output<wbr></wbr>_channel</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.enums.output_channel.OutputChannel.html" class="internal-link" title="fn_gen.enums.output_channel.OutputChannel"><wbr></wbr>Output<wbr></wbr>Channel</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="class"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code><wbr></wbr>.<code><a href="fn_gen.enums.output_channel.html" class="internal-link" title="fn_gen.enums.output_channel">output_channel</a></code><wbr></wbr>.<code><a href="fn_gen.enums.output_channel.OutputChannel.html" class="internal-link" title="fn_gen.enums.output_channel.OutputChannel">OutputChannel</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
class documentation
</div>
<div class="extrasDocstring">
<p class="class-signature"><code><span class="py-keyword">class</span> <span class="py-defname">OutputChannel</span>(<a href="https://docs.python.org/3/library/enum.html#enum.Enum" class="intersphinx-link">Enum</a>):</code></p>
<p><a href="classIndex.html#fn_gen.enums.output_channel.OutputChannel">View In Hierarchy</a></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id9">
<tr class="constant">
<td>Constant</td>
<td><code><a href="#ONE" class="internal-link" title="fn_gen.enums.output_channel.OutputChannel.ONE">ONE</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr><tr class="constant">
<td>Constant</td>
<td><code><a href="#TWO" class="internal-link" title="fn_gen.enums.output_channel.OutputChannel.TWO">TWO</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr>
</table>
</div>
<div id="childList">
<div class="baseconstant">
<a name="fn_gen.enums.output_channel.OutputChannel.ONE">
</a>
<a name="ONE">
</a>
<div class="functionHeader">
<span class="py-defname">ONE</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#ONE" title="fn_gen.enums.output_channel.OutputChannel.ONE">
</a>
</div>
<div class="functionBody">
<div><p class="undocumented">Undocumented</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>1</code></pre></td></tr></table>
</div>
</div><div class="baseconstant">
<a name="fn_gen.enums.output_channel.OutputChannel.TWO">
</a>
<a name="TWO">
</a>
<div class="functionHeader">
<span class="py-defname">TWO</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#TWO" title="fn_gen.enums.output_channel.OutputChannel.TWO">
</a>
</div>
<div class="functionBody">
<div><p class="undocumented">Undocumented</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>2</code></pre></td></tr></table>
</div>
</div>
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:13:16.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,355 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.enums.output_channel</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Module</span>
<code class="thisobject"><a href="fn_gen.enums.output_channel.html" class="internal-link" title="This module">output<wbr></wbr>_channel</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.output_channel.OutputChannel.html" class="internal-link" title="fn_gen.enums.output_channel.OutputChannel"><wbr></wbr>Output<wbr></wbr>Channel</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Package</span>
<code><a href="fn_gen.enums.html" class="internal-link" title="The parent of this module">enums</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.comm_method.html" class="internal-link" title="fn_gen.enums.comm_method">comm<wbr></wbr>_method</a></code>
</div>
</li><li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.enums.output_channel.html" class="internal-link" title="fn_gen.enums.output_channel">output<wbr></wbr>_channel</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link" title="fn_gen.enums.sweep_signal_type">sweep<wbr></wbr>_signal<wbr></wbr>_type</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_spacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing">sweep<wbr></wbr>_spacing</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope">sweep<wbr></wbr>_trigger<wbr></wbr>_slope</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source">sweep<wbr></wbr>_trigger<wbr></wbr>_source</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="module"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code><wbr></wbr>.<code><a href="fn_gen.enums.output_channel.html" class="internal-link" title="fn_gen.enums.output_channel">output_channel</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
module documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id8">
<tr class="class">
<td>Class</td>
<td><code><a href="fn_gen.enums.output_channel.OutputChannel.html" class="internal-link" title="fn_gen.enums.output_channel.OutputChannel"><wbr></wbr>Output<wbr></wbr>Channel</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr>
</table>
</div>
<div id="childList">
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:13:16.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,407 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.enums.sweep_signal_type.SweepSignalType</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Class</span>
<code class="thisobject"><a href="fn_gen.enums.sweep_signal_type.SweepSignalType.html" class="internal-link" title="This class"><wbr></wbr>Sweep<wbr></wbr>Signal<wbr></wbr>Type</a></code>
</div>
<div>
<div class="childrenKindTitle">Attributes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="#RAMP" class="internal-link" title="fn_gen.enums.sweep_signal_type.SweepSignalType.RAMP">RAMP</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="#SINE" class="internal-link" title="fn_gen.enums.sweep_signal_type.SweepSignalType.SINE">SINE</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="#SQUARE" class="internal-link" title="fn_gen.enums.sweep_signal_type.SweepSignalType.SQUARE">SQUARE</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Module</span>
<code><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link" title="The parent of this class">sweep<wbr></wbr>_signal<wbr></wbr>_type</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.enums.sweep_signal_type.SweepSignalType.html" class="internal-link" title="fn_gen.enums.sweep_signal_type.SweepSignalType"><wbr></wbr>Sweep<wbr></wbr>Signal<wbr></wbr>Type</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="class"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code><wbr></wbr>.<code><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link" title="fn_gen.enums.sweep_signal_type">sweep_signal_type</a></code><wbr></wbr>.<code><a href="fn_gen.enums.sweep_signal_type.SweepSignalType.html" class="internal-link" title="fn_gen.enums.sweep_signal_type.SweepSignalType">SweepSignalType</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
class documentation
</div>
<div class="extrasDocstring">
<p class="class-signature"><code><span class="py-keyword">class</span> <span class="py-defname">SweepSignalType</span>(<a href="https://docs.python.org/3/library/enum.html#enum.Enum" class="intersphinx-link">Enum</a>):</code></p>
<p><a href="classIndex.html#fn_gen.enums.sweep_signal_type.SweepSignalType">View In Hierarchy</a></p>
</div>
<div class="moduleDocstring">
<div><p>The type of signal used in the sweep function</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id9">
<tr class="constant">
<td>Constant</td>
<td><code><a href="#RAMP" class="internal-link" title="fn_gen.enums.sweep_signal_type.SweepSignalType.RAMP">RAMP</a></code></td>
<td>The Ramp function sweep</td>
</tr><tr class="constant">
<td>Constant</td>
<td><code><a href="#SINE" class="internal-link" title="fn_gen.enums.sweep_signal_type.SweepSignalType.SINE">SINE</a></code></td>
<td>The Sine function sweep</td>
</tr><tr class="constant">
<td>Constant</td>
<td><code><a href="#SQUARE" class="internal-link" title="fn_gen.enums.sweep_signal_type.SweepSignalType.SQUARE">SQUARE</a></code></td>
<td>The Square function sweep</td>
</tr>
</table>
</div>
<div id="childList">
<div class="baseconstant">
<a name="fn_gen.enums.sweep_signal_type.SweepSignalType.RAMP">
</a>
<a name="RAMP">
</a>
<div class="functionHeader">
<span class="py-defname">RAMP</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#RAMP" title="fn_gen.enums.sweep_signal_type.SweepSignalType.RAMP">
</a>
</div>
<div class="functionBody">
<div><p>The Ramp function sweep</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>3</code></pre></td></tr></table>
</div>
</div><div class="baseconstant">
<a name="fn_gen.enums.sweep_signal_type.SweepSignalType.SINE">
</a>
<a name="SINE">
</a>
<div class="functionHeader">
<span class="py-defname">SINE</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#SINE" title="fn_gen.enums.sweep_signal_type.SweepSignalType.SINE">
</a>
</div>
<div class="functionBody">
<div><p>The Sine function sweep</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>1</code></pre></td></tr></table>
</div>
</div><div class="baseconstant">
<a name="fn_gen.enums.sweep_signal_type.SweepSignalType.SQUARE">
</a>
<a name="SQUARE">
</a>
<div class="functionHeader">
<span class="py-defname">SQUARE</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#SQUARE" title="fn_gen.enums.sweep_signal_type.SweepSignalType.SQUARE">
</a>
</div>
<div class="functionBody">
<div><p>The Square function sweep</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>2</code></pre></td></tr></table>
</div>
</div>
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,345 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.enums.sweep_signal_type</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Module</span>
<code class="thisobject"><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link" title="This module">sweep<wbr></wbr>_signal<wbr></wbr>_type</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_signal_type.SweepSignalType.html" class="internal-link" title="fn_gen.enums.sweep_signal_type.SweepSignalType"><wbr></wbr>Sweep<wbr></wbr>Signal<wbr></wbr>Type</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Package</span>
<code><a href="fn_gen.enums.html" class="internal-link" title="The parent of this module">enums</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.comm_method.html" class="internal-link" title="fn_gen.enums.comm_method">comm<wbr></wbr>_method</a></code>
</div>
</li><li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link" title="fn_gen.enums.sweep_signal_type">sweep<wbr></wbr>_signal<wbr></wbr>_type</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_spacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing">sweep<wbr></wbr>_spacing</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope">sweep<wbr></wbr>_trigger<wbr></wbr>_slope</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source">sweep<wbr></wbr>_trigger<wbr></wbr>_source</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="module"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code><wbr></wbr>.<code><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link" title="fn_gen.enums.sweep_signal_type">sweep_signal_type</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
module documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id8">
<tr class="class">
<td>Class</td>
<td><code><a href="fn_gen.enums.sweep_signal_type.SweepSignalType.html" class="internal-link" title="fn_gen.enums.sweep_signal_type.SweepSignalType"><wbr></wbr>Sweep<wbr></wbr>Signal<wbr></wbr>Type</a></code></td>
<td>The type of signal used in the sweep function</td>
</tr>
</table>
</div>
<div id="childList">
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,407 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.enums.sweep_spacing.SweepSpacing</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Class</span>
<code class="thisobject"><a href="fn_gen.enums.sweep_spacing.SweepSpacing.html" class="internal-link" title="This class"><wbr></wbr>Sweep<wbr></wbr>Spacing</a></code>
</div>
<div>
<div class="childrenKindTitle">Attributes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="#LIN" class="internal-link" title="fn_gen.enums.sweep_spacing.SweepSpacing.LIN">LIN</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="#LOG" class="internal-link" title="fn_gen.enums.sweep_spacing.SweepSpacing.LOG">LOG</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="#STEP" class="internal-link" title="fn_gen.enums.sweep_spacing.SweepSpacing.STEP">STEP</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Module</span>
<code><a href="fn_gen.enums.sweep_spacing.html" class="internal-link" title="The parent of this class">sweep<wbr></wbr>_spacing</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.enums.sweep_spacing.SweepSpacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing.SweepSpacing"><wbr></wbr>Sweep<wbr></wbr>Spacing</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="class"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code><wbr></wbr>.<code><a href="fn_gen.enums.sweep_spacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing">sweep_spacing</a></code><wbr></wbr>.<code><a href="fn_gen.enums.sweep_spacing.SweepSpacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing.SweepSpacing">SweepSpacing</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
class documentation
</div>
<div class="extrasDocstring">
<p class="class-signature"><code><span class="py-keyword">class</span> <span class="py-defname">SweepSpacing</span>(<a href="https://docs.python.org/3/library/enum.html#enum.Enum" class="intersphinx-link">Enum</a>):</code></p>
<p><a href="classIndex.html#fn_gen.enums.sweep_spacing.SweepSpacing">View In Hierarchy</a></p>
</div>
<div class="moduleDocstring">
<div><p>The spacing used in the sweep function</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id11">
<tr class="constant">
<td>Constant</td>
<td><code><a href="#LIN" class="internal-link" title="fn_gen.enums.sweep_spacing.SweepSpacing.LIN">LIN</a></code></td>
<td>A linear sweep</td>
</tr><tr class="constant">
<td>Constant</td>
<td><code><a href="#LOG" class="internal-link" title="fn_gen.enums.sweep_spacing.SweepSpacing.LOG">LOG</a></code></td>
<td>A logarithmic sweep</td>
</tr><tr class="constant">
<td>Constant</td>
<td><code><a href="#STEP" class="internal-link" title="fn_gen.enums.sweep_spacing.SweepSpacing.STEP">STEP</a></code></td>
<td>A stepwise sweep</td>
</tr>
</table>
</div>
<div id="childList">
<div class="baseconstant">
<a name="fn_gen.enums.sweep_spacing.SweepSpacing.LIN">
</a>
<a name="LIN">
</a>
<div class="functionHeader">
<span class="py-defname">LIN</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#LIN" title="fn_gen.enums.sweep_spacing.SweepSpacing.LIN">
</a>
</div>
<div class="functionBody">
<div><p>A linear sweep</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>1</code></pre></td></tr></table>
</div>
</div><div class="baseconstant">
<a name="fn_gen.enums.sweep_spacing.SweepSpacing.LOG">
</a>
<a name="LOG">
</a>
<div class="functionHeader">
<span class="py-defname">LOG</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#LOG" title="fn_gen.enums.sweep_spacing.SweepSpacing.LOG">
</a>
</div>
<div class="functionBody">
<div><p>A logarithmic sweep</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>2</code></pre></td></tr></table>
</div>
</div><div class="baseconstant">
<a name="fn_gen.enums.sweep_spacing.SweepSpacing.STEP">
</a>
<a name="STEP">
</a>
<div class="functionHeader">
<span class="py-defname">STEP</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#STEP" title="fn_gen.enums.sweep_spacing.SweepSpacing.STEP">
</a>
</div>
<div class="functionBody">
<div><p>A stepwise sweep</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>3</code></pre></td></tr></table>
</div>
</div>
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,345 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.enums.sweep_spacing</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Module</span>
<code class="thisobject"><a href="fn_gen.enums.sweep_spacing.html" class="internal-link" title="This module">sweep<wbr></wbr>_spacing</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_spacing.SweepSpacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing.SweepSpacing"><wbr></wbr>Sweep<wbr></wbr>Spacing</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Package</span>
<code><a href="fn_gen.enums.html" class="internal-link" title="The parent of this module">enums</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.comm_method.html" class="internal-link" title="fn_gen.enums.comm_method">comm<wbr></wbr>_method</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link" title="fn_gen.enums.sweep_signal_type">sweep<wbr></wbr>_signal<wbr></wbr>_type</a></code>
</div>
</li><li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.enums.sweep_spacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing">sweep<wbr></wbr>_spacing</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope">sweep<wbr></wbr>_trigger<wbr></wbr>_slope</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source">sweep<wbr></wbr>_trigger<wbr></wbr>_source</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="module"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code><wbr></wbr>.<code><a href="fn_gen.enums.sweep_spacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing">sweep_spacing</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
module documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id10">
<tr class="class">
<td>Class</td>
<td><code><a href="fn_gen.enums.sweep_spacing.SweepSpacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing.SweepSpacing"><wbr></wbr>Sweep<wbr></wbr>Spacing</a></code></td>
<td>The spacing used in the sweep function</td>
</tr>
</table>
</div>
<div id="childList">
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,368 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Class</span>
<code class="thisobject"><a href="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.html" class="internal-link" title="This class"><wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Slope</a></code>
</div>
<div>
<div class="childrenKindTitle">Attributes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="#NEGATIVE" class="internal-link" title="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.NEGATIVE">NEGATIVE</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="#POSITIVE" class="internal-link" title="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.POSITIVE">POSITIVE</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Module</span>
<code><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link" title="The parent of this class">sweep<wbr></wbr>_trigger<wbr></wbr>_slope</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope"><wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Slope</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="class"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code><wbr></wbr>.<code><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope">sweep_trigger_slope</a></code><wbr></wbr>.<code><a href="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope">SweepTriggerSlope</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
class documentation
</div>
<div class="extrasDocstring">
<p class="class-signature"><code><span class="py-keyword">class</span> <span class="py-defname">SweepTriggerSlope</span>(<a href="https://docs.python.org/3/library/enum.html#enum.Enum" class="intersphinx-link">Enum</a>):</code></p>
<p><a href="classIndex.html#fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope">View In Hierarchy</a></p>
</div>
<div class="moduleDocstring">
<div><p>The type of slope used for the external sweep trigger</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id13">
<tr class="constant">
<td>Constant</td>
<td><code><a href="#NEGATIVE" class="internal-link" title="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.NEGATIVE">NEGATIVE</a></code></td>
<td>Ths option triggers the sweep on the negative edge</td>
</tr><tr class="constant">
<td>Constant</td>
<td><code><a href="#POSITIVE" class="internal-link" title="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.POSITIVE">POSITIVE</a></code></td>
<td>This option triggers the sweep on the positive edge</td>
</tr>
</table>
</div>
<div id="childList">
<div class="baseconstant">
<a name="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.NEGATIVE">
</a>
<a name="NEGATIVE">
</a>
<div class="functionHeader">
<span class="py-defname">NEGATIVE</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#NEGATIVE" title="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.NEGATIVE">
</a>
</div>
<div class="functionBody">
<div><p>Ths option triggers the sweep on the negative edge</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>2</code></pre></td></tr></table>
</div>
</div><div class="baseconstant">
<a name="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.POSITIVE">
</a>
<a name="POSITIVE">
</a>
<div class="functionHeader">
<span class="py-defname">POSITIVE</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#POSITIVE" title="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.POSITIVE">
</a>
</div>
<div class="functionBody">
<div><p>This option triggers the sweep on the positive edge</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>1</code></pre></td></tr></table>
</div>
</div>
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,345 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.enums.sweep_trigger_slope</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Module</span>
<code class="thisobject"><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link" title="This module">sweep<wbr></wbr>_trigger<wbr></wbr>_slope</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope"><wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Slope</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Package</span>
<code><a href="fn_gen.enums.html" class="internal-link" title="The parent of this module">enums</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.comm_method.html" class="internal-link" title="fn_gen.enums.comm_method">comm<wbr></wbr>_method</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link" title="fn_gen.enums.sweep_signal_type">sweep<wbr></wbr>_signal<wbr></wbr>_type</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_spacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing">sweep<wbr></wbr>_spacing</a></code>
</div>
</li><li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope">sweep<wbr></wbr>_trigger<wbr></wbr>_slope</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source">sweep<wbr></wbr>_trigger<wbr></wbr>_source</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="module"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code><wbr></wbr>.<code><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope">sweep_trigger_slope</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
module documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id12">
<tr class="class">
<td>Class</td>
<td><code><a href="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope"><wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Slope</a></code></td>
<td>The type of slope used for the external sweep trigger</td>
</tr>
</table>
</div>
<div id="childList">
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,407 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.enums.sweep_trigger_source.SweepTriggerSource</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Class</span>
<code class="thisobject"><a href="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html" class="internal-link" title="This class"><wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Source</a></code>
</div>
<div>
<div class="childrenKindTitle">Attributes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="#EXTERNAL" class="internal-link" title="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.EXTERNAL">EXTERNAL</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="#INTERNAL" class="internal-link" title="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.INTERNAL">INTERNAL</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="#MANUAL" class="internal-link" title="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.MANUAL">MANUAL</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Module</span>
<code><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link" title="The parent of this class">sweep<wbr></wbr>_trigger<wbr></wbr>_source</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source.SweepTriggerSource"><wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Source</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="class"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code><wbr></wbr>.<code><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source">sweep_trigger_source</a></code><wbr></wbr>.<code><a href="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source.SweepTriggerSource">SweepTriggerSource</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
class documentation
</div>
<div class="extrasDocstring">
<p class="class-signature"><code><span class="py-keyword">class</span> <span class="py-defname">SweepTriggerSource</span>(<a href="https://docs.python.org/3/library/enum.html#enum.Enum" class="intersphinx-link">Enum</a>):</code></p>
<p><a href="classIndex.html#fn_gen.enums.sweep_trigger_source.SweepTriggerSource">View In Hierarchy</a></p>
</div>
<div class="moduleDocstring">
<div><p>The Source of the trigger for the sweep</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id15">
<tr class="constant">
<td>Constant</td>
<td><code><a href="#EXTERNAL" class="internal-link" title="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.EXTERNAL">EXTERNAL</a></code></td>
<td>An external trigger signal</td>
</tr><tr class="constant">
<td>Constant</td>
<td><code><a href="#INTERNAL" class="internal-link" title="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.INTERNAL">INTERNAL</a></code></td>
<td>An Internal trigger signal, defined by htime_start, htime_stop</td>
</tr><tr class="constant">
<td>Constant</td>
<td><code><a href="#MANUAL" class="internal-link" title="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.MANUAL">MANUAL</a></code></td>
<td>A manual trigger set in code by the trigger function</td>
</tr>
</table>
</div>
<div id="childList">
<div class="baseconstant">
<a name="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.EXTERNAL">
</a>
<a name="EXTERNAL">
</a>
<div class="functionHeader">
<span class="py-defname">EXTERNAL</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#EXTERNAL" title="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.EXTERNAL">
</a>
</div>
<div class="functionBody">
<div><p>An external trigger signal</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>2</code></pre></td></tr></table>
</div>
</div><div class="baseconstant">
<a name="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.INTERNAL">
</a>
<a name="INTERNAL">
</a>
<div class="functionHeader">
<span class="py-defname">INTERNAL</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#INTERNAL" title="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.INTERNAL">
</a>
</div>
<div class="functionBody">
<div><p>An Internal trigger signal, defined by htime_start, htime_stop</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>1</code></pre></td></tr></table>
</div>
</div><div class="baseconstant">
<a name="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.MANUAL">
</a>
<a name="MANUAL">
</a>
<div class="functionHeader">
<span class="py-defname">MANUAL</span>: <code><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code> =
<a class="headerLink" href="#MANUAL" title="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.MANUAL">
</a>
</div>
<div class="functionBody">
<div><p>A manual trigger set in code by the trigger function</p></div>
<table class="valueTable"><tr class="fieldStart"><td class="fieldName">Value</td></tr><tr><td><pre class="constant-value"><code>3</code></pre></td></tr></table>
</div>
</div>
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,345 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.enums.sweep_trigger_source</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Module</span>
<code class="thisobject"><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link" title="This module">sweep<wbr></wbr>_trigger<wbr></wbr>_source</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source.SweepTriggerSource"><wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Source</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Package</span>
<code><a href="fn_gen.enums.html" class="internal-link" title="The parent of this module">enums</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.comm_method.html" class="internal-link" title="fn_gen.enums.comm_method">comm<wbr></wbr>_method</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link" title="fn_gen.enums.sweep_signal_type">sweep<wbr></wbr>_signal<wbr></wbr>_type</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_spacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing">sweep<wbr></wbr>_spacing</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope">sweep<wbr></wbr>_trigger<wbr></wbr>_slope</a></code>
</div>
</li><li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source">sweep<wbr></wbr>_trigger<wbr></wbr>_source</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="module"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code><wbr></wbr>.<code><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source">sweep_trigger_source</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
module documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id14">
<tr class="class">
<td>Class</td>
<td><code><a href="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source.SweepTriggerSource"><wbr></wbr>Sweep<wbr></wbr>Trigger<wbr></wbr>Source</a></code></td>
<td>The Source of the trigger for the sweep</td>
</tr>
</table>
</div>
<div id="childList">
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

365
docs/fn_gen.errors.html Normal file
View File

@ -0,0 +1,365 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.errors</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Package</span>
<code class="thisobject"><a href="fn_gen.errors.html" class="internal-link" title="This package">errors</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.errors.undefined_communication_method_error.html" class="internal-link" title="fn_gen.errors.undefined_communication_method_error">undefined<wbr></wbr>_communication<wbr></wbr>_method<wbr></wbr>_error</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.errors.undefined_value_error.html" class="internal-link" title="fn_gen.errors.undefined_value_error">undefined<wbr></wbr>_value<wbr></wbr>_error</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.errors.value_out_of_bounds_error.html" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error">value<wbr></wbr>_out<wbr></wbr>_of<wbr></wbr>_bounds<wbr></wbr>_error</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Package</span>
<code><a href="index.html" class="internal-link" title="The parent of this package">fn<wbr></wbr>_gen</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code>
</div>
</li><li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.common.html" class="internal-link" title="fn_gen.common">common</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.dg2052.html" class="internal-link" title="fn_gen.dg2052">dg2052</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="package"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
package documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id16">
<tr class="module">
<td>Module</td>
<td><code><a href="fn_gen.errors.undefined_communication_method_error.html" class="internal-link" title="fn_gen.errors.undefined_communication_method_error">undefined<wbr></wbr>_communication<wbr></wbr>_method<wbr></wbr>_error</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr><tr class="module">
<td>Module</td>
<td><code><a href="fn_gen.errors.undefined_value_error.html" class="internal-link" title="fn_gen.errors.undefined_value_error">undefined<wbr></wbr>_value<wbr></wbr>_error</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr><tr class="module">
<td>Module</td>
<td><code><a href="fn_gen.errors.value_out_of_bounds_error.html" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error">value<wbr></wbr>_out<wbr></wbr>_of<wbr></wbr>_bounds<wbr></wbr>_error</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr>
</table>
</div>
<div id="childList">
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,329 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Exception</span>
<code class="thisobject"><a href="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.html" class="internal-link" title="This exception"><wbr></wbr>Undefined<wbr></wbr>Communication<wbr></wbr>Method<wbr></wbr>Error</a></code>
</div>
<div>
<div class="childrenKindTitle">Methods</div>
<ul>
<li class="">
<div class="itemName"><code><a href="#__init__" class="internal-link" title="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.__init__">__init__</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Module</span>
<code><a href="fn_gen.errors.undefined_communication_method_error.html" class="internal-link" title="The parent of this exception">undefined<wbr></wbr>_communication<wbr></wbr>_method<wbr></wbr>_error</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.html" class="internal-link" title="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError"><wbr></wbr>Undefined<wbr></wbr>Communication<wbr></wbr>Method<wbr></wbr>Error</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="exception"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code><wbr></wbr>.<code><a href="fn_gen.errors.undefined_communication_method_error.html" class="internal-link" title="fn_gen.errors.undefined_communication_method_error">undefined_communication_method_error</a></code><wbr></wbr>.<code><a href="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.html" class="internal-link" title="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError">UndefinedCommunicationMethodError</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
exception documentation
</div>
<div class="extrasDocstring">
<p class="class-signature"><code><span class="py-keyword">class</span> <span class="py-defname">UndefinedCommunicationMethodError</span>(<a href="https://docs.python.org/3/library/exceptions.html#Exception" class="intersphinx-link">Exception</a>):</code></p><p>Constructor: <code><a href="#__init__" class="internal-link" title="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.__init__">UndefinedCommunicationMethodError(port)</a></code></p>
<p><a href="classIndex.html#fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError">View In Hierarchy</a></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id18">
<tr class="method">
<td>Method</td>
<td><code><a href="#__init__" class="internal-link" title="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.__init__">__init__</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr>
</table>
</div>
<div id="childList">
<div class="basemethod">
<a name="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.__init__">
</a>
<a name="__init__">
</a>
<div class="functionHeader">
<span class="py-keyword">def</span> <span class="py-defname">__init__</span><span class="function-signature">(self, port: <code><a href="https://docs.python.org/3/library/stdtypes.html#str" class="intersphinx-link">str</a></code>)</span>:
<a class="headerLink" href="#__init__" title="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.__init__">
</a>
</div>
<div class="docstring functionBody">
<div><p class="undocumented">Undocumented</p></div>
</div>
</div>
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,325 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.errors.undefined_communication_method_error</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Module</span>
<code class="thisobject"><a href="fn_gen.errors.undefined_communication_method_error.html" class="internal-link" title="This module">undefined<wbr></wbr>_communication<wbr></wbr>_method<wbr></wbr>_error</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.html" class="internal-link" title="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError"><wbr></wbr>Undefined<wbr></wbr>Communication<wbr></wbr>Method<wbr></wbr>Error</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Package</span>
<code><a href="fn_gen.errors.html" class="internal-link" title="The parent of this module">errors</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.errors.undefined_communication_method_error.html" class="internal-link" title="fn_gen.errors.undefined_communication_method_error">undefined<wbr></wbr>_communication<wbr></wbr>_method<wbr></wbr>_error</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.errors.undefined_value_error.html" class="internal-link" title="fn_gen.errors.undefined_value_error">undefined<wbr></wbr>_value<wbr></wbr>_error</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.errors.value_out_of_bounds_error.html" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error">value<wbr></wbr>_out<wbr></wbr>_of<wbr></wbr>_bounds<wbr></wbr>_error</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="module"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code><wbr></wbr>.<code><a href="fn_gen.errors.undefined_communication_method_error.html" class="internal-link" title="fn_gen.errors.undefined_communication_method_error">undefined_communication_method_error</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
module documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id17">
<tr class="exception">
<td>Exception</td>
<td><code><a href="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.html" class="internal-link" title="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError"><wbr></wbr>Undefined<wbr></wbr>Communication<wbr></wbr>Method<wbr></wbr>Error</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr>
</table>
</div>
<div id="childList">
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,329 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.errors.undefined_value_error.UndefinedValueError</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Exception</span>
<code class="thisobject"><a href="fn_gen.errors.undefined_value_error.UndefinedValueError.html" class="internal-link" title="This exception"><wbr></wbr>Undefined<wbr></wbr>Value<wbr></wbr>Error</a></code>
</div>
<div>
<div class="childrenKindTitle">Methods</div>
<ul>
<li class="">
<div class="itemName"><code><a href="#__init__" class="internal-link" title="fn_gen.errors.undefined_value_error.UndefinedValueError.__init__">__init__</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Module</span>
<code><a href="fn_gen.errors.undefined_value_error.html" class="internal-link" title="The parent of this exception">undefined<wbr></wbr>_value<wbr></wbr>_error</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.errors.undefined_value_error.UndefinedValueError.html" class="internal-link" title="fn_gen.errors.undefined_value_error.UndefinedValueError"><wbr></wbr>Undefined<wbr></wbr>Value<wbr></wbr>Error</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="exception"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code><wbr></wbr>.<code><a href="fn_gen.errors.undefined_value_error.html" class="internal-link" title="fn_gen.errors.undefined_value_error">undefined_value_error</a></code><wbr></wbr>.<code><a href="fn_gen.errors.undefined_value_error.UndefinedValueError.html" class="internal-link" title="fn_gen.errors.undefined_value_error.UndefinedValueError">UndefinedValueError</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
exception documentation
</div>
<div class="extrasDocstring">
<p class="class-signature"><code><span class="py-keyword">class</span> <span class="py-defname">UndefinedValueError</span>(<a href="https://docs.python.org/3/library/exceptions.html#Exception" class="intersphinx-link">Exception</a>):</code></p><p>Constructor: <code><a href="#__init__" class="internal-link" title="fn_gen.errors.undefined_value_error.UndefinedValueError.__init__">UndefinedValueError(value, expected)</a></code></p>
<p><a href="classIndex.html#fn_gen.errors.undefined_value_error.UndefinedValueError">View In Hierarchy</a></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id20">
<tr class="method">
<td>Method</td>
<td><code><a href="#__init__" class="internal-link" title="fn_gen.errors.undefined_value_error.UndefinedValueError.__init__">__init__</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr>
</table>
</div>
<div id="childList">
<div class="basemethod">
<a name="fn_gen.errors.undefined_value_error.UndefinedValueError.__init__">
</a>
<a name="__init__">
</a>
<div class="functionHeader">
<span class="py-keyword">def</span> <span class="py-defname">__init__</span><span class="function-signature">(self, value: <code><a href="https://docs.python.org/3/library/stdtypes.html#str" class="intersphinx-link">str</a></code>, expected: <code><a href="https://docs.python.org/3/library/stdtypes.html#str" class="intersphinx-link">str</a></code>)</span>:
<a class="headerLink" href="#__init__" title="fn_gen.errors.undefined_value_error.UndefinedValueError.__init__">
</a>
</div>
<div class="docstring functionBody">
<div><p class="undocumented">Undocumented</p></div>
</div>
</div>
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,325 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.errors.undefined_value_error</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Module</span>
<code class="thisobject"><a href="fn_gen.errors.undefined_value_error.html" class="internal-link" title="This module">undefined<wbr></wbr>_value<wbr></wbr>_error</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.errors.undefined_value_error.UndefinedValueError.html" class="internal-link" title="fn_gen.errors.undefined_value_error.UndefinedValueError"><wbr></wbr>Undefined<wbr></wbr>Value<wbr></wbr>Error</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Package</span>
<code><a href="fn_gen.errors.html" class="internal-link" title="The parent of this module">errors</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.errors.undefined_communication_method_error.html" class="internal-link" title="fn_gen.errors.undefined_communication_method_error">undefined<wbr></wbr>_communication<wbr></wbr>_method<wbr></wbr>_error</a></code>
</div>
</li><li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.errors.undefined_value_error.html" class="internal-link" title="fn_gen.errors.undefined_value_error">undefined<wbr></wbr>_value<wbr></wbr>_error</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.errors.value_out_of_bounds_error.html" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error">value<wbr></wbr>_out<wbr></wbr>_of<wbr></wbr>_bounds<wbr></wbr>_error</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="module"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code><wbr></wbr>.<code><a href="fn_gen.errors.undefined_value_error.html" class="internal-link" title="fn_gen.errors.undefined_value_error">undefined_value_error</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
module documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id19">
<tr class="exception">
<td>Exception</td>
<td><code><a href="fn_gen.errors.undefined_value_error.UndefinedValueError.html" class="internal-link" title="fn_gen.errors.undefined_value_error.UndefinedValueError"><wbr></wbr>Undefined<wbr></wbr>Value<wbr></wbr>Error</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr>
</table>
</div>
<div id="childList">
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,329 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Exception</span>
<code class="thisobject"><a href="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.html" class="internal-link" title="This exception"><wbr></wbr>Value<wbr></wbr>Out<wbr></wbr>Of<wbr></wbr>Bounds<wbr></wbr>Error</a></code>
</div>
<div>
<div class="childrenKindTitle">Methods</div>
<ul>
<li class="">
<div class="itemName"><code><a href="#__init__" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.__init__">__init__</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Module</span>
<code><a href="fn_gen.errors.value_out_of_bounds_error.html" class="internal-link" title="The parent of this exception">value<wbr></wbr>_out<wbr></wbr>_of<wbr></wbr>_bounds<wbr></wbr>_error</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.html" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError"><wbr></wbr>Value<wbr></wbr>Out<wbr></wbr>Of<wbr></wbr>Bounds<wbr></wbr>Error</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="exception"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code><wbr></wbr>.<code><a href="fn_gen.errors.value_out_of_bounds_error.html" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error">value_out_of_bounds_error</a></code><wbr></wbr>.<code><a href="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.html" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError">ValueOutOfBoundsError</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
exception documentation
</div>
<div class="extrasDocstring">
<p class="class-signature"><code><span class="py-keyword">class</span> <span class="py-defname">ValueOutOfBoundsError</span>(<a href="https://docs.python.org/3/library/exceptions.html#Exception" class="intersphinx-link">Exception</a>):</code></p><p>Constructor: <code><a href="#__init__" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.__init__">ValueOutOfBoundsError(bounds, value)</a></code></p>
<p><a href="classIndex.html#fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError">View In Hierarchy</a></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id22">
<tr class="method">
<td>Method</td>
<td><code><a href="#__init__" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.__init__">__init__</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr>
</table>
</div>
<div id="childList">
<div class="basemethod">
<a name="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.__init__">
</a>
<a name="__init__">
</a>
<div class="functionHeader">
<span class="py-keyword">def</span> <span class="py-defname">__init__</span><span class="function-signature">(self, bounds: <code><a href="https://docs.python.org/3/library/stdtypes.html#tuple" class="intersphinx-link">tuple</a>[<wbr></wbr><a href="https://docs.python.org/3/library/functions.html#float" class="intersphinx-link">float</a>, <wbr></wbr><a href="https://docs.python.org/3/library/functions.html#float" class="intersphinx-link">float</a>]|<a href="https://docs.python.org/3/library/stdtypes.html#tuple" class="intersphinx-link">tuple</a>[<wbr></wbr><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a>, <wbr></wbr><a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a>]</code>, value: <code><a href="https://docs.python.org/3/library/functions.html#float" class="intersphinx-link">float</a>|<a href="https://docs.python.org/3/library/functions.html#int" class="intersphinx-link">int</a></code>)</span>:
<a class="headerLink" href="#__init__" title="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.__init__">
</a>
</div>
<div class="docstring functionBody">
<div><p class="undocumented">Undocumented</p></div>
</div>
</div>
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,325 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen.errors.value_out_of_bounds_error</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Module</span>
<code class="thisobject"><a href="fn_gen.errors.value_out_of_bounds_error.html" class="internal-link" title="This module">value<wbr></wbr>_out<wbr></wbr>_of<wbr></wbr>_bounds<wbr></wbr>_error</a></code>
</div>
<div>
<div class="childrenKindTitle">Classes</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.html" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError"><wbr></wbr>Value<wbr></wbr>Out<wbr></wbr>Of<wbr></wbr>Bounds<wbr></wbr>Error</a></code>
</div>
</li>
</ul>
</div>
</div><div>
<div class="thingTitle">
<span>Package</span>
<code><a href="fn_gen.errors.html" class="internal-link" title="The parent of this module">errors</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.errors.undefined_communication_method_error.html" class="internal-link" title="fn_gen.errors.undefined_communication_method_error">undefined<wbr></wbr>_communication<wbr></wbr>_method<wbr></wbr>_error</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.errors.undefined_value_error.html" class="internal-link" title="fn_gen.errors.undefined_value_error">undefined<wbr></wbr>_value<wbr></wbr>_error</a></code>
</div>
</li><li class=" thisobject">
<div class="itemName"><code><a href="fn_gen.errors.value_out_of_bounds_error.html" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error">value<wbr></wbr>_out<wbr></wbr>_of<wbr></wbr>_bounds<wbr></wbr>_error</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="module"><code><code><a href="index.html" class="internal-link">fn_gen</a></code><wbr></wbr>.<code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code><wbr></wbr>.<code><a href="fn_gen.errors.value_out_of_bounds_error.html" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error">value_out_of_bounds_error</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
module documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id21">
<tr class="exception">
<td>Exception</td>
<td><code><a href="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.html" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError"><wbr></wbr>Value<wbr></wbr>Out<wbr></wbr>Of<wbr></wbr>Bounds<wbr></wbr>Error</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr>
</table>
</div>
<div id="childList">
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

1
docs/fn_gen.html Symbolic link
View File

@ -0,0 +1 @@
index.html

4
docs/fonts/info.svg Normal file
View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-info-circle" viewBox="0 0 16 16">
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/>
<path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0z"/>
</svg>

After

Width:  |  Height:  |  Size: 474 B

4
docs/fonts/x-circle.svg Normal file
View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x-circle" viewBox="0 0 16 16">
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/>
<path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/>
</svg>

After

Width:  |  Height:  |  Size: 423 B

File diff suppressed because one or more lines are too long

308
docs/index.html Normal file
View File

@ -0,0 +1,308 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>fn_gen</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<!-- Side navigation -->
<div class="sidebarcontainer" style="display: none;">
<div class="sidebar"><nav class="sidebar">
<div>
<div class="thingTitle">
<span>Package</span>
<code class="thisobject"><a href="index.html" class="internal-link" title="This package">fn<wbr></wbr>_gen</a></code>
</div>
<div>
<div class="childrenKindTitle">Modules</div>
<ul>
<li class="">
<div class="itemName"><code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.common.html" class="internal-link" title="fn_gen.common">common</a></code>
</div>
</li><li class="">
<div class="itemName"><code><a href="fn_gen.dg2052.html" class="internal-link" title="fn_gen.dg2052">dg2052</a></code>
</div>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div id="collapseSideBar">
<a class="btn btn-link" onclick="toggleSideBarCollapse()" title="Toggle Sidebar Collapse">
</a>
</div>
<script src="sidebartoggle.js" type="text/javascript"></script>
</div>
<div id="main" class="">
<div class="page-header">
<h1 class="package"><code><code><a href="index.html" class="internal-link">fn_gen</a></code></code></h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<div class="categoryHeader">
package documentation
</div>
<div class="extrasDocstring">
<p></p>
</div>
<div class="moduleDocstring">
<div><p class="undocumented">Undocumented</p></div>
</div>
<div id="splitTables">
<table class="children sortable" id="id1">
<tr class="module">
<td>Module</td>
<td><code><a href="fn_gen.common.html" class="internal-link" title="fn_gen.common">common</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr><tr class="module">
<td>Module</td>
<td><code><a href="fn_gen.dg2052.html" class="internal-link" title="fn_gen.dg2052">dg2052</a></code></td>
<td><span class="undocumented">No module docstring; 1/1 class documented</span></td>
</tr><tr class="package">
<td>Package</td>
<td><code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr><tr class="package">
<td>Package</td>
<td><code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code></td>
<td><span class="undocumented">Undocumented</span></td>
</tr>
</table>
</div>
<div id="childList">
</div>
</div>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

3475
docs/lunr.js Normal file

File diff suppressed because it is too large Load Diff

166
docs/moduleIndex.html Normal file
View File

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Module Index</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<div class="page-header">
<h1>Module Index</h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<ul id="summaryTree"><li><code><a href="index.html" class="internal-link">fn_gen</a></code> - <span class="undocumented">Undocumented</span><ul><li><code><a href="fn_gen.common.html" class="internal-link" title="fn_gen.common">common</a></code> - <span class="undocumented">Undocumented</span></li><li><code><a href="fn_gen.dg2052.html" class="internal-link" title="fn_gen.dg2052">dg2052</a></code> - <span class="undocumented">No module docstring; 1/1 class documented</span></li><li><code><a href="fn_gen.enums.html" class="internal-link" title="fn_gen.enums">enums</a></code> - <span class="undocumented">Undocumented</span><ul><li><code><a href="fn_gen.enums.comm_method.html" class="internal-link" title="fn_gen.enums.comm_method">comm_method</a></code> - <span class="undocumented">No module docstring; 1/1 class documented</span></li><li><code><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link" title="fn_gen.enums.sweep_signal_type">sweep_signal_type</a></code> - <span class="undocumented">No module docstring; 1/1 class documented</span></li><li><code><a href="fn_gen.enums.sweep_spacing.html" class="internal-link" title="fn_gen.enums.sweep_spacing">sweep_spacing</a></code> - <span class="undocumented">No module docstring; 1/1 class documented</span></li><li><code><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link" title="fn_gen.enums.sweep_trigger_slope">sweep_trigger_slope</a></code> - <span class="undocumented">No module docstring; 1/1 class documented</span></li><li><code><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link" title="fn_gen.enums.sweep_trigger_source">sweep_trigger_source</a></code> - <span class="undocumented">No module docstring; 1/1 class documented</span></li></ul></li><li><code><a href="fn_gen.errors.html" class="internal-link" title="fn_gen.errors">errors</a></code> - <span class="undocumented">Undocumented</span><ul><li><code><a href="fn_gen.errors.undefined_communication_method_error.html" class="internal-link" title="fn_gen.errors.undefined_communication_method_error">undefined_communication_method_error</a></code> - <span class="undocumented">Undocumented</span></li><li><code><a href="fn_gen.errors.undefined_value_error.html" class="internal-link" title="fn_gen.errors.undefined_value_error">undefined_value_error</a></code> - <span class="undocumented">Undocumented</span></li><li><code><a href="fn_gen.errors.value_out_of_bounds_error.html" class="internal-link" title="fn_gen.errors.value_out_of_bounds_error">value_out_of_bounds_error</a></code> - <span class="undocumented">Undocumented</span></li></ul></li></ul></li></ul>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

320
docs/nameIndex.html Normal file
View File

@ -0,0 +1,320 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html lang="EN">
<head>
<title>Index of Names</title>
<meta name="generator" content="pydoctor 23.9.1">
</meta>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="apidocs.css" />
<link rel="stylesheet" type="text/css" href="extra.css" />
</head>
<body>
<nav class="navbar navbar-default mainnavbar">
<div class="container-fluid">
<div class="navbar-header">
<div class="navlinks">
<span class="navbar-brand">
fn_gen <a href="index.html">API Documentation</a>
</span>
<a href="moduleIndex.html">
Modules
</a>
<a href="classIndex.html">
Classes
</a>
<a href="nameIndex.html">
Names
</a>
<div id="search-box-container">
<div class="input-group">
<input id="search-box" type="search" name="search-query" placeholder="Search..." aria-label="Search" minlength="2" class="form-control" autocomplete="off" />
<span class="input-group-btn">
<a style="display: none;" class="btn btn-default" id="search-clear-button" title="Clear" onclick="clearSearch()"><img src="fonts/x-circle.svg" alt="Clear" /></a>
<a class="btn btn-default" id="search-help-button" title="Help" onclick="toggleSearchHelpText()"><img src="fonts/info.svg" alt="Help" /></a>
</span>
</div>
</div>
</div>
<div id="search-results-container" style="display: none;">
<div id="search-buttons">
<span class="label label-default" id="search-docstrings-button">
<label class="checkbox-inline">
<input type="checkbox" id="toggle-search-in-docstrings-checkbox" value="false" onclick="toggleSearchInDocstrings()">
search in docstrings
</input>
</label>
</span>
</div>
<noscript>
<h1>Cannot search: JavaScript is not supported/enabled in your browser.</h1>
</noscript>
<div class="hint" id="search-help-box">
<p class="rst-last">
Search bar offers the following options:
<ul>
<li>
<strong>Term presence.</strong> The below example searches for documents that
must contain “foo”, might contain “bar” and must not contain “baz”: <code>+foo bar -baz</code>
</li>
<li>
<strong>Wildcards.</strong> The below example searches for documents with words beginning with “foo”: <code>foo*</code>
</li>
<li>
<strong>Search in specific fields.</strong> The following search matches all objects
in "twisted.mail" that matches “search”: <code>+qname:twisted.mail.* +search</code>
<p>
Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'.
Last two fields are only applicable if "search in docstrings" is enabled.
</p>
</li>
<li>
<strong>Fuzzy matches.</strong> The following search matches all documents
that have a word within 1 edit distance of “foo”: <code>foo~1</code>
</li>
</ul>
</p>
</div>
<div id="search-status"> </div>
<div class="warning" id="search-warn-box" style="display: none;">
<p class="rst-last"><span id="search-warn"></span></p>
</div>
<table id="search-results">
<!-- Filled dynamically by JS -->
</table>
<div style="margin-top: 8px;">
<p>Results provided by <a href="https://lunrjs.com">Lunr.js</a></p>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<div class="page-header">
<h1>Index of Names</h1>
<div id="showPrivate">
<button class="btn btn-link" onclick="togglePrivate()">Toggle Private API</button>
</div>
</div>
<a name="C">
</a>
<h2>C</h2>
<p class="letterlinks">C - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>check_bounds - <code data-type="Function"><a href="fn_gen.common.html#check_bounds" class="internal-link">fn_gen.common.check_bounds</a></code></li><li>comm - <code data-type="Instance Variable"><a href="fn_gen.dg2052.DG2052.html#comm" class="internal-link">fn_gen.dg2052.DG2052.comm</a></code></li><li>comm_method - <code data-type="Module"><a href="fn_gen.enums.comm_method.html" class="internal-link">fn_gen.enums.comm_method</a></code></li><li>CommMethod - <code data-type="Class"><a href="fn_gen.enums.comm_method.CommMethod.html" class="internal-link">fn_gen.enums.comm_method.CommMethod</a></code></li><li>common - <code data-type="Module"><a href="fn_gen.common.html" class="internal-link">fn_gen.common</a></code></li>
</ul>
<a name="D">
</a>
<h2>D</h2>
<p class="letterlinks"><a href="#C">C</a> - D - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>DG2052 - <code data-type="Class"><a href="fn_gen.dg2052.DG2052.html" class="internal-link">fn_gen.dg2052.DG2052</a></code></li><li>dg2052 - <code data-type="Module"><a href="fn_gen.dg2052.html" class="internal-link">fn_gen.dg2052</a></code></li>
</ul>
<a name="E">
</a>
<h2>E</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - E - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>enums - <code data-type="Package"><a href="fn_gen.enums.html" class="internal-link">fn_gen.enums</a></code></li><li>errors - <code data-type="Package"><a href="fn_gen.errors.html" class="internal-link">fn_gen.errors</a></code></li><li>EXTERNAL - <code data-type="Constant"><a href="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html#EXTERNAL" class="internal-link">fn_gen.enums.sweep_trigger_source.SweepTriggerSource.EXTERNAL</a></code></li>
</ul>
<a name="F">
</a>
<h2>F</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - F - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>fn_gen - <code data-type="Package"><a href="index.html" class="internal-link">fn_gen</a></code></li>
</ul>
<a name="G">
</a>
<h2>G</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - G - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>get_output_impedance - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#get_output_impedance" class="internal-link">fn_gen.dg2052.DG2052.get_output_impedance</a></code></li><li>get_output_load - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#get_output_load" class="internal-link">fn_gen.dg2052.DG2052.get_output_load</a></code></li><li>get_output_signal - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#get_output_signal" class="internal-link">fn_gen.dg2052.DG2052.get_output_signal</a></code></li><li>get_output_state - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#get_output_state" class="internal-link">fn_gen.dg2052.DG2052.get_output_state</a></code></li><li>get_output_volt_limits - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#get_output_volt_limits" class="internal-link">fn_gen.dg2052.DG2052.get_output_volt_limits</a></code></li>
</ul>
<a name="I">
</a>
<h2>I</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - I - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>INTERNAL - <code data-type="Constant"><a href="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html#INTERNAL" class="internal-link">fn_gen.enums.sweep_trigger_source.SweepTriggerSource.INTERNAL</a></code></li><li>is_output_on - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#is_output_on" class="internal-link">fn_gen.dg2052.DG2052.is_output_on</a></code></li>
</ul>
<a name="L">
</a>
<h2>L</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - L - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>LAN - <code data-type="Constant"><a href="fn_gen.enums.comm_method.CommMethod.html#LAN" class="internal-link">fn_gen.enums.comm_method.CommMethod.LAN</a></code></li><li>LIN - <code data-type="Constant"><a href="fn_gen.enums.sweep_spacing.SweepSpacing.html#LIN" class="internal-link">fn_gen.enums.sweep_spacing.SweepSpacing.LIN</a></code></li><li>LOG - <code data-type="Constant"><a href="fn_gen.enums.sweep_spacing.SweepSpacing.html#LOG" class="internal-link">fn_gen.enums.sweep_spacing.SweepSpacing.LOG</a></code></li>
</ul>
<a name="M">
</a>
<h2>M</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - M - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>MANUAL - <code data-type="Constant"><a href="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html#MANUAL" class="internal-link">fn_gen.enums.sweep_trigger_source.SweepTriggerSource.MANUAL</a></code></li>
</ul>
<a name="N">
</a>
<h2>N</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - N - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>NEGATIVE - <code data-type="Constant"><a href="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.html#NEGATIVE" class="internal-link">fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.NEGATIVE</a></code></li>
</ul>
<a name="P">
</a>
<h2>P</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - P - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>port - <code data-type="Instance Variable"><a href="fn_gen.dg2052.DG2052.html#port" class="internal-link">fn_gen.dg2052.DG2052.port</a></code></li><li>POSITIVE - <code data-type="Constant"><a href="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.html#POSITIVE" class="internal-link">fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.POSITIVE</a></code></li>
</ul>
<a name="R">
</a>
<h2>R</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - R - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>RAMP - <code data-type="Constant"><a href="fn_gen.enums.sweep_signal_type.SweepSignalType.html#RAMP" class="internal-link">fn_gen.enums.sweep_signal_type.SweepSignalType.RAMP</a></code></li><li>rm - <code data-type="Instance Variable"><a href="fn_gen.dg2052.DG2052.html#rm" class="internal-link">fn_gen.dg2052.DG2052.rm</a></code></li>
</ul>
<a name="S">
</a>
<h2>S</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - S - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>set_dc - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#set_dc" class="internal-link">fn_gen.dg2052.DG2052.set_dc</a></code></li><li>set_frequency - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#set_frequency" class="internal-link">fn_gen.dg2052.DG2052.set_frequency</a></code></li><li>set_output - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#set_output" class="internal-link">fn_gen.dg2052.DG2052.set_output</a></code></li><li>set_ramp - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#set_ramp" class="internal-link">fn_gen.dg2052.DG2052.set_ramp</a></code></li><li>set_sine_wave - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#set_sine_wave" class="internal-link">fn_gen.dg2052.DG2052.set_sine_wave</a></code></li><li>set_square_wave - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#set_square_wave" class="internal-link">fn_gen.dg2052.DG2052.set_square_wave</a></code></li><li>set_sweep - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#set_sweep" class="internal-link">fn_gen.dg2052.DG2052.set_sweep</a></code></li><li>SINE - <code data-type="Constant"><a href="fn_gen.enums.sweep_signal_type.SweepSignalType.html#SINE" class="internal-link">fn_gen.enums.sweep_signal_type.SweepSignalType.SINE</a></code></li><li>SQUARE - <code data-type="Constant"><a href="fn_gen.enums.sweep_signal_type.SweepSignalType.html#SQUARE" class="internal-link">fn_gen.enums.sweep_signal_type.SweepSignalType.SQUARE</a></code></li><li>STEP - <code data-type="Constant"><a href="fn_gen.enums.sweep_spacing.SweepSpacing.html#STEP" class="internal-link">fn_gen.enums.sweep_spacing.SweepSpacing.STEP</a></code></li><li>sweep_signal_type - <code data-type="Module"><a href="fn_gen.enums.sweep_signal_type.html" class="internal-link">fn_gen.enums.sweep_signal_type</a></code></li><li>sweep_spacing - <code data-type="Module"><a href="fn_gen.enums.sweep_spacing.html" class="internal-link">fn_gen.enums.sweep_spacing</a></code></li><li>sweep_trigger_slope - <code data-type="Module"><a href="fn_gen.enums.sweep_trigger_slope.html" class="internal-link">fn_gen.enums.sweep_trigger_slope</a></code></li><li>sweep_trigger_source - <code data-type="Module"><a href="fn_gen.enums.sweep_trigger_source.html" class="internal-link">fn_gen.enums.sweep_trigger_source</a></code></li><li>SweepSignalType - <code data-type="Class"><a href="fn_gen.enums.sweep_signal_type.SweepSignalType.html" class="internal-link">fn_gen.enums.sweep_signal_type.SweepSignalType</a></code></li><li>SweepSpacing - <code data-type="Class"><a href="fn_gen.enums.sweep_spacing.SweepSpacing.html" class="internal-link">fn_gen.enums.sweep_spacing.SweepSpacing</a></code></li><li>SweepTriggerSlope - <code data-type="Class"><a href="fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope.html" class="internal-link">fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope</a></code></li><li>SweepTriggerSource - <code data-type="Class"><a href="fn_gen.enums.sweep_trigger_source.SweepTriggerSource.html" class="internal-link">fn_gen.enums.sweep_trigger_source.SweepTriggerSource</a></code></li>
</ul>
<a name="T">
</a>
<h2>T</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - T - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>toggle_output - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#toggle_output" class="internal-link">fn_gen.dg2052.DG2052.toggle_output</a></code></li><li>trigger_sweep - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#trigger_sweep" class="internal-link">fn_gen.dg2052.DG2052.trigger_sweep</a></code></li>
</ul>
<a name="U">
</a>
<h2>U</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - U - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>undefined_communication_method_error - <code data-type="Module"><a href="fn_gen.errors.undefined_communication_method_error.html" class="internal-link">fn_gen.errors.undefined_communication_method_error</a></code></li><li>undefined_value_error - <code data-type="Module"><a href="fn_gen.errors.undefined_value_error.html" class="internal-link">fn_gen.errors.undefined_value_error</a></code></li><li>UndefinedCommunicationMethodError - <code data-type="Exception"><a href="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.html" class="internal-link">fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError</a></code></li><li>UndefinedValueError - <code data-type="Exception"><a href="fn_gen.errors.undefined_value_error.UndefinedValueError.html" class="internal-link">fn_gen.errors.undefined_value_error.UndefinedValueError</a></code></li><li>USB - <code data-type="Constant"><a href="fn_gen.enums.comm_method.CommMethod.html#USB" class="internal-link">fn_gen.enums.comm_method.CommMethod.USB</a></code></li>
</ul>
<a name="V">
</a>
<h2>V</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - V - <a href="#W">W</a> - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>value_out_of_bounds_error - <code data-type="Module"><a href="fn_gen.errors.value_out_of_bounds_error.html" class="internal-link">fn_gen.errors.value_out_of_bounds_error</a></code></li><li>ValueOutOfBoundsError - <code data-type="Exception"><a href="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.html" class="internal-link">fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError</a></code></li>
</ul>
<a name="W">
</a>
<h2>W</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - W - <a href="#_">_</a></p>
<ul id="summaryTree">
<li>whoami - <code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#whoami" class="internal-link">fn_gen.dg2052.DG2052.whoami</a></code></li>
</ul>
<a name="_">
</a>
<h2>_</h2>
<p class="letterlinks"><a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#I">I</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#P">P</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - _</p>
<ul id="summaryTree">
<li>__init__<ul><li><code data-type="Method"><a href="fn_gen.dg2052.DG2052.html#__init__" class="internal-link">fn_gen.dg2052.DG2052.__init__</a></code></li><li><code data-type="Method"><a href="fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.html#__init__" class="internal-link">fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError.__init__</a></code></li><li><code data-type="Method"><a href="fn_gen.errors.undefined_value_error.UndefinedValueError.html#__init__" class="internal-link">fn_gen.errors.undefined_value_error.UndefinedValueError.__init__</a></code></li><li><code data-type="Method"><a href="fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.html#__init__" class="internal-link">fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError.__init__</a></code></li></ul></li>
</ul>
</div>
<footer class="navbar navbar-default">
<div class="container">
<a href="index.html">API Documentation</a> for fn_gen,
generated by <a href="https://github.com/twisted/pydoctor/">pydoctor</a>
23.9.1 at 2024-02-06 18:56:15.
</div>
<!-- Search related scripts needs to be loaded at the end of HTML
parsing not to introduce overhead and display HTML data asap -->
<script src="ajax.js" type="text/javascript"></script>
<script src="searchlib.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
</footer>
<script src="pydoctor.js" type="text/javascript"></script>
</body>
</html>

BIN
docs/objects.inv Normal file

Binary file not shown.

35
docs/pydoctor.js Normal file
View File

@ -0,0 +1,35 @@
// Toogle private view
function initPrivate() {
var params = (new URL(document.location)).searchParams;
if (!params || !parseInt(params.get('private'))) {
var show = false;
var hash = document.location.hash;
if (hash != '') {
var anchor = document.querySelector('a[name="' + hash.substring(1) + '"]');
show = anchor && anchor.parentNode.classList.contains('private');
}
if (!show) {
document.body.classList.add("private-hidden");
}
}
updatePrivate();
}
function togglePrivate() {
document.body.classList.toggle("private-hidden");
updatePrivate();
}
function updatePrivate() {
var hidden = document.body.classList.contains('private-hidden');
document.querySelector('#showPrivate button').innerText =
hidden ? 'Show Private API' : 'Hide Private API';
if (history) {
var search = hidden ? document.location.pathname : '?private=1';
history.replaceState(null, '', search + document.location.hash);
}
}
initPrivate();

478
docs/search.js Normal file
View File

@ -0,0 +1,478 @@
// This file contains the code that drives the search system UX.
// It's included in every HTML file.
// Depends on library files searchlib.js and ajax.js (and of course lunr.js)
// Ideas for improvments:
// - Include filtering buttons:
// - search only in the current module
// - have a query frontend that helps build complex queries
// - Filter out results that have score > 0.001 by default and show them on demand.
// - Should we change the default term presence to be MUST and not SHOULD ?
// -> Hack something like 'name index -value' -> '+name +index -value'
// -> 'name ?index -value' -> '+name index -value'
// - Highlight can use https://github.com/bep/docuapi/blob/5bfdc7d366ef2de58dc4e52106ad474d06410907/assets/js/helpers/highlight.js#L1
// Better: Add support for AND and OR with parenthesis, ajust this code https://stackoverflow.com/a/20374128
//////// GLOBAL VARS /////////
let input = document.getElementById('search-box');
let results_container = document.getElementById('search-results-container');
let results_list = document.getElementById('search-results');
let searchInDocstringsButton = document.getElementById('search-docstrings-button');
let searchInDocstringsCheckbox = document.getElementById('toggle-search-in-docstrings-checkbox');
var isSearchReadyPromise = null;
// setTimeout variable to warn when a search takes too long
var _setLongSearchInfosTimeout = null;
//////// UI META INFORMATIONS FUNCTIONS /////////
// Taken from https://stackoverflow.com/a/14130005
// For security.
function htmlEncode(str) {
return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
}
function _setInfos(message, box_id, text_id) {
document.getElementById(text_id).textContent = message;
if (message.length>0){
document.getElementById(box_id).style.display = 'block';
}
else{
document.getElementById(box_id).style.display = 'none';
}
}
/**
* Set the search status.
*/
function setStatus(message) {
document.getElementById('search-status').textContent = message;
}
/**
* Show a warning, hide warning box if empty string.
*/
function setWarning(message) {
_setInfos(message, 'search-warn-box', 'search-warn');
}
/**
* Say that Something went wrong.
*/
function setErrorStatus() {
resetLongSearchTimerInfo()
setStatus("Something went wrong.");
setErrorInfos();
}
/**
* Show additional error infos (used to show query parser errors infos) or tell to go check the console.
* @param message: (optional) string
*/
function setErrorInfos(message) {
if (message != undefined){
setWarning(message);
}
else{
setWarning("Error: See development console for details.");
}
}
/**
* Reset the long search timer warning.
*/
function resetLongSearchTimerInfo(){
if (_setLongSearchInfosTimeout){
clearTimeout(_setLongSearchInfosTimeout);
}
}
function launchLongSearchTimerInfo(){
// After 10 seconds of searching, warn that this is taking more time than usual.
_setLongSearchInfosTimeout = setTimeout(setLongSearchInfos, 10000);
}
/**
* Say that this search is taking longer than usual.
*/
function setLongSearchInfos(){
setWarning("This is taking longer than usual... You can keep waiting for the search to complete, or retry the search with other terms.");
}
//////// UI SHOW/HIDE FUNCTIONS /////////
function hideResultContainer(){
results_container.style.display = 'none';
if (!document.body.classList.contains("search-help-hidden")){
document.body.classList.add("search-help-hidden");
}
}
function showResultContainer(){
results_container.style.display = 'block';
updateClearSearchBtn();
}
function toggleSearchHelpText() {
document.body.classList.toggle("search-help-hidden");
if (document.body.classList.contains("search-help-hidden") && input.value.length==0){
hideResultContainer();
}
else{
showResultContainer();
}
}
function resetResultList(){
resetLongSearchTimerInfo();
results_list.innerHTML = '';
setWarning('');
setStatus('');
}
function clearSearch(){
stopSearching();
input.value = '';
updateClearSearchBtn();
}
function stopSearching(){
// UI
hideResultContainer();
resetResultList();
// NOT UI
_stopSearchingProcess();
}
function _stopSearchingProcess(){
abortSearch();
restartSearchWorker();
}
/**
* Show and hide the (X) button depending on the current search input.
* We do not show the (X) button when there is no search going on.
*/
function updateClearSearchBtn(){
if (input.value.length>0){
document.getElementById('search-clear-button').style.display = 'inline-block';
}
else{
document.getElementById('search-clear-button').style.display = 'none';
}
}
//////// SEARCH WARPPER FUNCTIONS /////////
// Values configuring the search-as-you-type feature.
var SEARCH_DEFAULT_DELAY = 100; // in miliseconds
var SEARCH_INCREASED_DELAY = 200;
var SEARCH_INDEX_SIZE_TRESH_INCREASE_DELAY = 10; // in MB
var SEARCH_INDEX_SIZE_TRESH_DISABLE_SEARCH_AS_YOU_TYPE = 20;
var SEARCH_AUTO_WILDCARD = true;
// Search delay depends on index size.
function _getIndexSizePromise(indexURL){
return httpGetPromise(indexURL).then((responseText) => {
if (responseText==null){
return 0;
}
let indexSizeApprox = responseText.length / 1000000; // in MB
return indexSizeApprox;
});
}
function _getSearchDelayPromise(indexURL){ // -> Promise of a Search delay number.
return _getIndexSizePromise(indexURL).then((size) => {
var searchDelay = SEARCH_DEFAULT_DELAY;
if (size===0){
return searchDelay;
}
if (size>SEARCH_INDEX_SIZE_TRESH_INCREASE_DELAY){
// For better UX
searchDelay = SEARCH_INCREASED_DELAY; // in miliseconds, this avoids searching several times when typing several leters very rapidly
}
return searchDelay;
});
}
function _getIsSearchReadyPromise(){
return Promise.all([
httpGetPromise("all-documents.html"),
httpGetPromise("searchindex.json"),
httpGetPromise("fullsearchindex.json"),
httpGetPromise("lunr.js"),
]);
}
// Launch search as user types if the size of the index is small enought,
// else say "Press 'Enter' to search".
function searchAsYouType(){
if (input.value.length>0){
showResultContainer();
}
_getIndexSizePromise("searchindex.json").then((indexSizeApprox) => {
if (indexSizeApprox > SEARCH_INDEX_SIZE_TRESH_DISABLE_SEARCH_AS_YOU_TYPE){
// Not searching as we type if "default" index size if greater than 20MB.
if (input.value.length===0){ // No actual query, this only resets some UI components.
launchSearch();
}
else{
setTimeout(() => {
_stopSearchingProcess();
resetResultList();
setStatus("Press 'Enter' to search.");
});
}
}
else{
launchSearch();
}
});
}
searchEventsEnv.addEventListener("searchStarted", (ev) => {
setStatus("Searching...");
});
var _lastSearchStartTime = null;
var _lastSearchInput = null;
/**
* Do the actual searching business
* Main entrypoint to [re]launch the search.
* Called everytime the search bar is edited.
*/
function launchSearch(noDelay){
let _searchStartTime = performance.now();
// Get the query terms
let _query = input.value;
// In chrome, two events are triggered simultaneously for the input event.
// So we discard consecutive (within the same 0.001s) requests that have the same search query.
if ((
(_searchStartTime-_lastSearchStartTime) < (0.001*1000)
) && (_query === _lastSearchInput) ){
return;
}
updateClearSearchBtn();
// Setup query meta infos.
_lastSearchStartTime = _searchStartTime
_lastSearchInput = _query;
if (_query.length===0){
stopSearching();
return;
}
if (!window.Worker) {
setStatus("Cannot search: JavaScript Worker API is not supported in your browser. ");
return;
}
resetResultList();
showResultContainer();
setStatus("...");
// Determine indexURL
let indexURL = _isSearchInDocstringsEnabled() ? "fullsearchindex.json" : "searchindex.json";
// If search in docstring is enabled:
// -> customize query function to include docstring for clauses applicable for all fields
let _fields = _isSearchInDocstringsEnabled() ? ["name", "names", "qname", "docstring"] : ["name", "names", "qname"];
resetLongSearchTimerInfo();
launchLongSearchTimerInfo();
// Get search delay, wait the all search resources to be cached and actually launch the search
return _getSearchDelayPromise(indexURL).then((searchDelay) => {
if (isSearchReadyPromise==null){
isSearchReadyPromise = _getIsSearchReadyPromise()
}
return isSearchReadyPromise.then((r)=>{
return lunrSearch(_query, indexURL, _fields, "lunr.js", !noDelay?searchDelay:0, SEARCH_AUTO_WILDCARD).then((lunrResults) => {
// outdated query results
if (_searchStartTime != _lastSearchStartTime){return;}
if (!lunrResults){
setErrorStatus();
throw new Error("No data to show");
}
if (lunrResults.length == 0){
setStatus('No results matches "' + htmlEncode(_query) + '"');
resetLongSearchTimerInfo();
return;
}
setStatus("One sec...");
// Get result data
return fetchResultsData(lunrResults, "all-documents.html").then((documentResults) => {
// outdated query results
if (_searchStartTime != _lastSearchStartTime){return;}
// Edit DOM
resetLongSearchTimerInfo();
displaySearchResults(_query, documentResults, lunrResults)
// Log stats
console.log('Search for "' + _query + '" took ' +
((performance.now() - _searchStartTime)/1000).toString() + ' seconds.')
// End
})
}); // lunrResults promise resolved
});
}).catch((err) => {_handleErr(err);});
} // end search() function
function _handleErr(err){
console.dir(err);
setStatus('')
if (err.message){
resetLongSearchTimerInfo();
setWarning(err.message) // Here we show the error because it's likely a query parser error.
}
else{
setErrorStatus();
}
}
/**
* Given the query string, documentResults and lunrResults as used in search(),
* edit the DOM to add them in the search results list.
*/
function displaySearchResults(_query, documentResults, lunrResults){
resetResultList();
documentResults.forEach((dobj) => {
results_list.appendChild(buildSearchResult(dobj));
});
if (lunrResults.length > 500){
setWarning("Your search yielded a lot of results! Maybe try with other terms?");
}
let publicResults = documentResults.filter(function(value){
return !value.querySelector('.privacy').innerHTML.includes("PRIVATE");
})
if (publicResults.length==0){
setStatus('No results matches "' + htmlEncode(_query) + '". Some private objects matches your search though.');
}
else{
setStatus(
'Search for "' + htmlEncode(_query) + '" yielded ' + publicResults.length + ' ' +
(publicResults.length === 1 ? 'result' : 'results') + '.');
}
}
function _isSearchInDocstringsEnabled() {
return searchInDocstringsCheckbox.checked;
}
function toggleSearchInDocstrings() {
if (searchInDocstringsCheckbox.checked){
searchInDocstringsButton.classList.add('label-success')
}
else{
if (searchInDocstringsButton.classList.contains('label-success')){
searchInDocstringsButton.classList.remove('label-success')
}
}
if (input.value.length>0){
launchSearch(true)
}
}
////// SETUP //////
// Attach launchSearch() to search text field update events.
input.oninput = (event) => {
setTimeout(() =>{
searchAsYouType();
}, 0);
};
input.onkeyup = (event) => {
if (event.key === 'Enter') {
launchSearch(true);
}
};
input.onfocus = (event) => {
// Ensure the search bar is set-up.
// Load fullsearchindex.json, searchindex.json and all-documents.html to have them in the cache asap.
isSearchReadyPromise = _getIsSearchReadyPromise();
}
document.onload = (event) => {
// Set-up search bar.
setTimeout(() =>{
isSearchReadyPromise = _getIsSearchReadyPromise();
}, 500);
}
// Close the dropdown if the user clicks on echap key
document.addEventListener('keyup', (evt) => {
evt = evt || window.event;
if (evt.key === "Escape" || evt.key === "Esc") {
hideResultContainer();
}
});
// Init search and help text.
// search box is not visible by default because
// we don't want to show it if the browser do not support JS.
window.addEventListener('load', (event) => {
document.getElementById('search-box-container').style.display = 'block';
document.getElementById('search-help-box').style.display = 'block';
hideResultContainer();
});
// This listener does 3 things.
window.addEventListener("click", (event) => {
if (event){
// 1. Hide the dropdown if the user clicks outside of it
if (!event.target.closest('#search-results-container')
&& !event.target.closest('#search-box')
&& !event.target.closest('#search-help-button')){
hideResultContainer();
return;
}
// 2. Show the dropdown if the user clicks inside the search box
if (event.target.closest('#search-box')){
if (input.value.length>0){
showResultContainer();
return;
}
}
// 3.Hide the dropdown if the user clicks on a link that brings them to the same page.
// This includes links in summaries.
link = event.target.closest('#search-results a')
if (link){
page_parts = document.location.pathname.split('/')
current_page = page_parts[page_parts.length-1]
href = link.getAttribute("href");
if (!href.startsWith(current_page)){
// The link points to something not in the same page, so don't hide the dropdown.
// The page will be reloaded anyway, but this ensure that if we go back, the dropdown will
// still be expanded.
return;
}
if (event.ctrlKey || event.shiftKey || event.metaKey){
// The link is openned in a new window/tab so don't hide the dropdown.
return;
}
hideResultContainer();
}
}
});

1
docs/searchindex.json Normal file

File diff suppressed because one or more lines are too long

370
docs/searchlib.js Normal file
View File

@ -0,0 +1,370 @@
// Wrapper around lunr index searching system for pydoctor API objects
// and function to format search results items into rederable HTML elements.
// This file is meant to be used as a library for the pydoctor search bar (search.js) as well as
// provide a hackable inferface to integrate API docs searching into other platforms, i.e. provide a
// "Search in API docs" option from Read The Docs search page.
// Depends on ajax.js, bundled with pydoctor.
// Other required ressources like lunr.js, searchindex.json and all-documents.html are passed as URL
// to functions. This makes the code reusable outside of pydoctor build directory.
// Implementation note: Searches are designed to be launched synchronously, if lunrSearch() is called sucessively (while already running),
// old promise will never resolves and the searhc worker will be restarted.
// Hacky way to make the worker code inline with the rest of the source file handling the search.
// Worker message params are the following:
// - query: string
// - indexJSONData: dict
// - defaultFields: list of strings
// - autoWildcard: boolean
let _lunrWorkerCode = `
// The lunr.js code will be inserted here.
onmessage = (message) => {
if (!message.data.query) {
throw new Error('No search query provided.');
}
if (!message.data.indexJSONData) {
throw new Error('No index data provided.');
}
if (!message.data.defaultFields) {
throw new Error('No default fields provided.');
}
if (!message.data.hasOwnProperty('autoWildcard')){
throw new Error('No value for auto wildcard provided.');
}
// Create index
let index = lunr.Index.load(message.data.indexJSONData);
// Declare query function building
function _queryfn(_query){ // _query is the Query object
// Edit the parsed query clauses that are applicable for all fields (default) in order
// to remove the field 'kind' from the clause since this it's only useful when specifically requested.
var parser = new lunr.QueryParser(message.data.query, _query)
parser.parse()
var hasTraillingWildcard = false;
_query.clauses.forEach(clause => {
if (clause.fields == _query.allFields){
// we change the query fields when they are applicable to all fields
// to a list of predefined fields because we might include additional filters (like kind:)
// which should not be matched by default.
clause.fields = message.data.defaultFields;
}
// clause.wildcard is actually always NONE due to https://github.com/olivernn/lunr.js/issues/495
// But this works...
if (clause.term.slice(-1) == '*'){
// we want to avoid the auto wildcard system only if a trailling wildcard is already added
// not if a leading wildcard exists
hasTraillingWildcard = true
}
});
// Auto wilcard feature, see issue https://github.com/twisted/pydoctor/issues/648
var new_clauses = [];
if ((message.data.autoWildcard == true) && (hasTraillingWildcard == false)){
_query.clauses.forEach(clause => {
// Setting clause.wildcard is useless.
// But this works...
let new_clause = {...clause}
new_clause.term = new_clause.term + '*'
clause.boost = 2
new_clause.boost = 0
new_clauses.push(new_clause)
});
}
new_clauses.forEach(clause => {
_query.clauses.push(clause)
});
console.log('Parsed query:')
console.dir(_query.clauses)
}
// Launch the search
let results = index.query(_queryfn)
// Post message with results
postMessage({'results':results});
};
`;
// Adapted from https://stackoverflow.com/a/44137284
// Override worker methods to detect termination and count message posting and restart() method.
// This allows some optimizations since the worker doesn't need to be restarted when it hasn't been used.
function _makeWorkerSmart(workerURL) {
// make normal worker
var worker = new Worker(workerURL);
// assume that it's running from the start
worker.terminated = false;
worker.postMessageCount = 0;
// count the number of times postMessage() is called
worker.postMessage = function() {
this.postMessageCount = this.postMessageCount + 1;
// normal post message
return Worker.prototype.postMessage.apply(this, arguments);
}
// sets terminated to true
worker.terminate = function() {
if (this.terminated===true){return;}
this.terminated = true;
// normal terminate
return Worker.prototype.terminate.apply(this, arguments);
}
// creates NEW WORKER with the same URL as itself, terminate worker first.
worker.restart = function() {
this.terminate();
return _makeWorkerSmart(workerURL);
}
return worker;
}
var _searchWorker = null
/**
* The searchEventsEnv Document variable let's let caller register a event listener "searchStarted" for sending
* a signal when the search actually starts, could be up to 0.2 or 0.3 secs ater user finished typing.
*/
let searchEventsEnv = document.implementation.createHTMLDocument(
'This is a document to popagate search related events, we avoid using "document" for performance reasons.');
// there is a difference in abortSearch() vs restartSearchWorker().
// abortSearch() triggers a abortSearch event, which have a effect on searches that are not yet running in workers.
// whereas restartSearchWorker() which kills the worker if it's in use, but does not abort search that is not yet posted to the worker.
function abortSearch(){
searchEventsEnv.dispatchEvent(new CustomEvent('abortSearch', {}));
}
// Kills and restarts search worker (if needed).
function restartSearchWorker() {
var w = _searchWorker;
if (w!=null){
if (w.postMessageCount>0){
// the worker has been used, it has to be restarted
// TODO: Actually it needs to be restarted only if it's running a search right now.
// Otherwise we can reuse the same worker, but that's not a very big deal in this context.
w = w.restart();
}
// Else, the worker has never been used, it can be returned as is.
// This can happens when typing fast with a very large index JSON to load.
}
_searchWorker = w;
}
function _getWorkerPromise(lunJsSourceCode){ // -> Promise of a fresh worker to run a query.
let promise = new Promise((resolve, reject) => {
// Do the search business, wrap the process inside an inline Worker.
// This is a hack such that the UI can refresh during the search.
if (_searchWorker===null){
// Create only one blob and URL.
let lunrWorkerCode = lunJsSourceCode + _lunrWorkerCode;
let _workerBlob = new Blob([lunrWorkerCode], {type: 'text/javascript'});
let _workerObjectURL = window.URL.createObjectURL(_workerBlob);
_searchWorker = _makeWorkerSmart(_workerObjectURL)
}
else{
restartSearchWorker();
}
resolve(_searchWorker);
});
return promise
}
/**
* Launch a search and get a promise of results. One search can be lauch at a time only.
* Old promise never resolves if calling lunrSearch() again while already running.
* @param query: Query string.
* @param indexURL: URL pointing to the Lunr search index, generated by pydoctor.
* @param defaultFields: List of strings: default fields to apply to query clauses when none is specified. ["name", "names", "qname"] for instance.
* @param lunrJsURL: URL pointing to a copy of lunr.js.
* @param searchDelay: Number of miliseconds to wait before actually launching the query. This is useful to set for "search as you type" kind of search box
* because it let a chance to users to continue typing without triggering useless searches (because previous search is aborted on launching a new one).
* @param autoWildcard: Whether to automatically append wildcards to all query clauses when no wildcard is already specified. boolean.
*/
function lunrSearch(query, indexURL, defaultFields, lunrJsURL, searchDelay, autoWildcard){
// Abort ongoing search
abortSearch();
// Register abort procedure.
var _aborted = false;
searchEventsEnv.addEventListener('abortSearch', (ev) => {
_aborted = true;
searchEventsEnv.removeEventListener('abortSearch', this);
});
// Pref:
// Because this function can be called a lot of times in a very few moments,
// Actually launch search after a delay to let a chance to users to continue typing,
// which would trigger a search abort event, which would avoid wasting a worker
// for a search that is not wanted anymore.
return new Promise((_resolve, _reject) => {
setTimeout(() => {
_resolve(
_getIndexDataPromise(indexURL).then((lunrIndexData) => {
// Include lunr.js source inside the worker such that it has no dependencies.
return httpGetPromise(lunrJsURL).then((responseText) => {
// Do the search business, wrap the process inside an inline Worker.
// This is a hack such that the UI can refresh during the search.
return _getWorkerPromise(responseText).then((worker) => {
let promise = new Promise((resolve, reject) => {
worker.onmessage = (message) => {
if (!message.data.results){
reject("No data received from worker");
}
else{
console.log("Got result from worker:")
console.dir(message.data.results)
resolve(message.data.results)
}
}
worker.onerror = function(error) {
reject(error);
};
});
let _msgData = {
'query': query,
'indexJSONData': lunrIndexData,
'defaultFields': defaultFields,
'autoWildcard': autoWildcard,
}
if (!_aborted){
console.log(`Posting query "${query}" to worker:`)
console.dir(_msgData)
worker.postMessage(_msgData);
searchEventsEnv.dispatchEvent(
new CustomEvent("searchStarted", {'query':query})
);
}
return promise
});
});
})
);}, searchDelay);
});
}
/**
* @param results: list of lunr.Index~Result.
* @param allDocumentsURL: URL pointing to all-documents.html, generated by pydoctor.
* @returns: Promise of a list of HTMLElement corresponding to the all-documents.html
* list elements matching your search results.
*/
function fetchResultsData(results, allDocumentsURL){
return _getAllDocumentsPromise(allDocumentsURL).then((allDocuments) => {
// Look for results data in parsed all-documents.html
return _asyncFor(results, (result) => {
// Find the result model row data.
var dobj = allDocuments.getElementById(result.ref);
if (!dobj){
throw new Error("Cannot find document ID: " + result.ref);
}
// Return result data
return dobj;
})
})
}
/**
* Transform list item as in all-documents.html into a formatted search result row.
*/
function buildSearchResult(dobj) {
// Build one result item
var tr = document.createElement('tr'),
kindtd = document.createElement('td'),
contenttd = document.createElement('td'),
article = document.createElement('article'),
header = document.createElement('header'),
section = document.createElement('section'),
code = document.createElement('code'),
a = document.createElement('a'),
p = document.createElement('p');
p.innerHTML = dobj.querySelector('.summary').innerHTML;
a.setAttribute('href', dobj.querySelector('.url').innerHTML);
a.setAttribute('class', 'internal-link');
a.innerHTML = dobj.querySelector('.fullName').innerHTML;
let kind_value = dobj.querySelector('.kind').innerHTML;
let type_value = dobj.querySelector('.type').innerHTML;
// Adding '()' on functions and methods
if (type_value.endsWith("Function")){
a.innerHTML = a.innerHTML + '()';
}
kindtd.innerHTML = kind_value;
// Putting everything together
tr.appendChild(kindtd);
tr.appendChild(contenttd);
contenttd.appendChild(article);
article.appendChild(header);
article.appendChild(section);
header.appendChild(code);
code.appendChild(a);
section.appendChild(p);
// Set kind as the CSS class of the kind td tag
let ob_css_class = dobj.querySelector('.kind').innerHTML.toLowerCase().replace(' ', '');
kindtd.setAttribute('class', ob_css_class);
// Set private
if (dobj.querySelector('.privacy').innerHTML.includes('PRIVATE')){
tr.setAttribute('class', 'private');
}
return tr;
}
// This gives the UI the opportunity to refresh while we're iterating over a large list.
function _asyncFor(iterable, callback) { // -> Promise of List of results returned by callback
const promise_global = new Promise((resolve_global, reject_global) => {
let promises = [];
iterable.forEach((element) => {
promises.push(new Promise((resolve, _reject) => {
setTimeout(() => {
try{ resolve(callback(element)); }
catch (error){ _reject(error); }
}, 0);
}));
});
Promise.all(promises).then((results) =>{
resolve_global(results);
}).catch((err) => {
reject_global(err);
});
});
return promise_global;
}
// Cache indexes JSON data since it takes a little bit of time to load JSON into stuctured data
var _indexDataCache = {};
function _getIndexDataPromise(indexURL) { // -> Promise of a structured data for the lunr Index.
if (!_indexDataCache[indexURL]){
return httpGetPromise(indexURL).then((responseText) => {
_indexDataCache[indexURL] = JSON.parse(responseText)
return (_indexDataCache[indexURL]);
});
}
else{
return new Promise((_resolve, _reject) => {
_resolve(_indexDataCache[indexURL]);
});
}
}
// Cache Document object
var _allDocumentsCache = {};
function _getAllDocumentsPromise(allDocumentsURL) { // -> Promise of the all-documents.html Document object.
if (!_allDocumentsCache[allDocumentsURL]){
return httpGetPromise(allDocumentsURL).then((responseText) => {
let _parser = new self.DOMParser();
_allDocumentsCache[allDocumentsURL] = _parser.parseFromString(responseText, "text/html");
return (_allDocumentsCache[allDocumentsURL]);
});
}
else{
return new Promise((_resolve, _reject) => {
_resolve(_allDocumentsCache[allDocumentsURL]);
});
}
}

69
docs/sidebartoggle.js Normal file
View File

@ -0,0 +1,69 @@
// Cookie manipulation functions, from https://www.w3schools.com/js/js_cookies.asp
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
// Toogle sidebar collapse
function initSideBarCollapse() {
var collapsed = getCookie("pydoctor-sidebar-collapsed");
if (collapsed == "yes") {
document.body.classList.add("sidebar-collapsed");
}
if (collapsed == ""){
setCookie("pydoctor-sidebar-collapsed", "no", 365);
}
updateSideBarCollapse();
}
function toggleSideBarCollapse() {
if (document.body.classList.contains('sidebar-collapsed')){
document.body.classList.remove('sidebar-collapsed');
setCookie("pydoctor-sidebar-collapsed", "no", 365);
}
else {
document.body.classList.add("sidebar-collapsed");
setCookie("pydoctor-sidebar-collapsed", "yes", 365);
}
updateSideBarCollapse();
}
function updateSideBarCollapse() {
let link = document.querySelector('#collapseSideBar a')
// Since this script is called before the page finishes the parsing,
// link is undefined when it's first called.
if (link!=undefined){
var collapsed = document.body.classList.contains('sidebar-collapsed');
link.innerText = collapsed ? '»' : '«';
}
// Fixes renderring issue with safari.
// https://stackoverflow.com/a/8840703
var sidebarcontainer = document.querySelector('.sidebarcontainer');
sidebarcontainer.style.display='none';
sidebarcontainer.offsetHeight; // no need to store this anywhere, the reference is enough
// Set the sidebar display on load to avoid showing it for few miliseconds when loading..
sidebarcontainer.style.display='flex';
}
initSideBarCollapse();

167
docs/undoccedSummary.html Normal file

File diff suppressed because one or more lines are too long

43
examples/common.py Normal file
View File

@ -0,0 +1,43 @@
import math
import sys
from typing import Literal
from fn_gen import DG2052
N_CYCLES = 500 # Cycles
AMPLIFICATION = 13/2 # dB
V_STEPS = 10 # steps
F_STEPS = 30 # steps
FREQ_START = 10 # Hz
FREQ_STOP = 1000 # Hz
STEP_DURATION = 10 # sec
def abs(x) -> float:
"""
Gets the absolute value of the input.
"""
return math.sqrt(x * x)
def close_output(fg: DG2052, channel: Literal[1, 2]):
"""
Closes the output channel of the function generator.
"""
fg.set_output(channel, False)
fg.close()
sys.exit(0)
def get_preamplified(amplification: float, post: float) -> float:
"""
Calculates the pre amplification value from the amplification and the post amplification value.
"""
return post / (10 ** (amplification / 20))
def get_postamplified(amplification: float, pre: float) -> float:
"""
Calculates the pre amplification value from the amplification and the post amplification value.
"""
return pre * (10 ** (amplification / 20))

137
examples/discrete_sweep.py Normal file
View File

@ -0,0 +1,137 @@
import time
import argparse
import fn_gen.errors as fg_err
from common import (
close_output,
get_preamplified,
get_postamplified,
AMPLIFICATION,
N_CYCLES,
V_STEPS,
F_STEPS,
FREQ_START,
FREQ_STOP,
STEP_DURATION,
)
from fn_gen import DG2052
import numpy as np
def calculate_n_samples(freq: float, ts: float, n_cycles: int) -> int:
"""
Calculates the number of samples based on the frequency of the signal, the sampling time and the number of cycles within one step.
Parameters
---------
freq: int
The frequency of the signal
ts: float
The sampling time
n_cycles: int
The number of cycles within a step
Returns
------
n_samples: int
The number of samples (can be multiplied by the sampling time (ts) to get the total duration)
"""
return int(round(n_cycles / (ts * freq)))
def discrete_sweep(
v_min: float,
v_max: float,
v_steps: int,
adaptive: bool,
step_duration: int,
freq_start: int,
freq_stop: int,
f_steps: int,
):
##################### PROGRAM START ###########
freqs = np.logspace(np.log10(freq_start), np.log10(freq_stop), f_steps)
v_min = get_preamplified(AMPLIFICATION, v_min)
v_max = get_preamplified(AMPLIFICATION, v_max)
volts = np.linspace(v_min, v_max, v_steps)
print(freqs)
fg = DG2052("TCPIP::192.168.1.11::INSTR")
channel = 2
try:
print(fg.whoami())
print("")
print(f"Output{channel} Impedance: {fg.get_output_impedance(channel)} Ohm")
print(f"Output{channel} Load: {fg.get_output_load(channel)} Ohm")
print(f"Output{channel} Voltage Limits: {fg.get_output_volt_limits(channel)} V")
for v in volts:
for freq in freqs:
sampling_rate = 10 * freq
n_samples = calculate_n_samples(freq, 1 / sampling_rate, N_CYCLES)
if adaptive:
step_duration = n_samples * (1 / sampling_rate)
print(f"V: {get_postamplified(AMPLIFICATION, v)} V")
print(f"Freq: {freq} Hz")
print(f"Duration: {step_duration} s")
print(f"N_Samples: {n_samples} samples")
fg.set_output(channel, False)
fg.set_sine_wave(channel, freq, v, 0, 0)
fg.set_output(channel, True)
print(
f"Output{channel}: {fg.get_output_signal(channel)} | {fg.get_output_state(channel)}"
)
time.sleep(step_duration)
# fg.set_output(channel, False)
print(f"Output{channel} State: {fg.get_output_state(channel)}")
except fg_err.ValueOutOfBoundsError as err:
print(err)
except fg_err.UndefinedValueError as err:
print(err)
except KeyboardInterrupt:
close_output(fg, channel)
finally:
close_output(fg, channel)
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description="This program is for testing the DG2052 function genrator library. It does a discrete sweep with the supplied parameters."
)
parser.add_argument(
"--vmin", type=float, required=True, help="The minimum voltage supplied"
)
parser.add_argument(
"--vmax", type=float, required=True, help="The maximum voltage supplied"
)
parser.add_argument(
"--v-steps", type=int, default=V_STEPS, help="The number of voltage steps"
)
parser.add_argument(
"--freq-start", type=int, default=FREQ_START, help="The starting frequency"
)
parser.add_argument(
"--freq-stop", type=int, default=FREQ_STOP, help="The stop frequency"
)
parser.add_argument(
"--f-steps", type=int, default=F_STEPS, help="The number of steps"
)
parser.add_argument(
"--step-duration",
type=int,
default=STEP_DURATION,
help="The duration of each step",
)
parser.add_argument(
"--adaptive-step",
action="store_true",
help="Adapts the step duration to the frequency of the step",
)
args = parser.parse_args()
discrete_sweep(
v_min=args.vmin,
v_max=args.vmax,
v_steps=args.v_steps,
adaptive=args.adaptive_step,
step_duration=args.step_duration,
freq_start=args.freq_start,
freq_stop=args.freq_stop,
f_steps=args.f_steps,
)

View File

@ -12,13 +12,12 @@ def generate_sine_wave(v: float, freq: int, phase: int):
try:
print(fg.whoami())
print("")
# input("Press Enter to start...")
fg.set_sine_wave(channel, freq, v, 0, phase)
print(
f"Output{channel}: {fg.get_output_signal(channel)} | {fg.get_output_state(channel)}"
)
fg.set_output(channel, True)
print(f"Voltage: {get_postamplified(AMPLIFICATION, v):.2f} V")
print(f"Voltage: {get_postamplified(AMPLIFICATION, v):.2f} V | Pre_amplified: {v} V")
print(f"Frequency: {freq} Hz")
print(f"Output{channel} State: {fg.get_output_state(channel)}")
while True:

View File

@ -0,0 +1,6 @@
from fn_gen import DG2052
if __name__ == "__main__":
fg = DG2052("TCPIP::192.168.1.11::INSTR")
for channel in [1, 2]:
fg.set_output(channel, False)

135
examples/sweep_2.py Normal file
View File

@ -0,0 +1,135 @@
import time
import argparse
import fn_gen.errors as fg_err
from common import close_output, abs, get_preamplified
from fn_gen import DG2052
from fn_gen.enums import SweepSignalType, SweepSpacing, SweepTriggerSource
def sweep_over_signal(
signal: str,
v_min: float,
v_max: float,
delay: int,
duration: int,
freq_start: int,
freq_stop: int,
phase: int,
spacing: str,
):
fg = DG2052("TCPIP::192.168.1.11::INSTR")
v_min = get_preamplified(13.0, v_min)
v_max = get_preamplified(13.0, v_max)
v = (v_max - v_min)/2
channel = 2
# signal_type = SweepSignalType.SINE
match signal:
case "sine":
fg.set_sine_wave(channel, freq_start, v, 0, 0)
case "square":
fg.set_square_wave(channel, freq_start, v, 0, 0)
case "ramp":
fg.set_ramp(channel, freq_start, v, 0, 0)
spacing_type = SweepSpacing.LOG
match spacing:
case "lin":
spacing_type = SweepSpacing.LIN
case "log":
spacing_type = SweepSpacing.LOG
try:
print(fg.whoami())
print(f"\nOutput{channel} Impedance: {fg.get_output_impedance(channel)} Ohm")
print(f"Output{channel} Load: {fg.get_output_load(channel)} Ohm")
print(f"Output{channel} Voltage Limits: {fg.get_output_volt_limits(channel)} V")
print(
f"Output{channel}: {fg.get_output_signal(channel)} | {fg.get_output_state(channel)}"
)
fg.set_output(channel, True)
time.sleep(delay)
# fg.trigger_sweep(channel)
t0 = time.time()
t1 = time.time()
freq = freq_start
freq_delta = (freq_stop - freq_start) / (duration*10_000)
while (t1 - t0) < duration:
print(f"Current Frequency: {fg.get_output_signal(channel)}")
if spacing_type == SweepSpacing.LIN:
freq = freq + freq_delta
match signal:
case "sine":
fg.set_sine_wave(channel, freq, v, 0, 0)
case "square":
fg.set_square_wave(channel, freq, v, 0, 0)
case "ramp":
fg.set_ramp(channel, freq, v, 0, 0)
time.sleep(0.0001)
t1 = time.time()
print(f"Output{channel} State: {fg.get_output_state(channel)}")
except fg_err.ValueOutOfBoundsError as err:
print(err)
except fg_err.UndefinedValueError as err:
print(err)
except KeyboardInterrupt:
pass
finally:
close_output(fg, channel)
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description="This program is for testing the DG2052 function genrator library. It sweeps over a signal with the supplied parameters."
)
parser.add_argument(
"-s",
"--signal",
type=str,
choices=["sine", "square", "ramp"],
default="sine",
help='The type of signal being sweeped',
)
parser.add_argument(
"--vmin", type=float, default=0, help="The minimum voltage supplied"
)
parser.add_argument(
"--vmax", type=float, default=1, help="The maximum voltage supplied"
)
parser.add_argument(
"-d",
"--delay",
type=int,
default=0,
help="The buffer time before the sweep starts",
)
parser.add_argument(
"--duration", type=int, default=5 * 60, help="The duration of the sweep"
)
parser.add_argument(
"--freq-start", type=int, default=10, help="The start frequency of the sweep"
)
parser.add_argument(
"--freq-stop", type=int, default=1000, help="The stop frequency of the sweep"
)
parser.add_argument(
"-p",
"--phase",
type=int,
default=0,
help="The phase shift of the signal generated (must be between 0 and 360)",
)
parser.add_argument(
"--spacing",
type=str,
choices=["lin", "log"],
default="log",
help='The spacing of the sweep',
)
args = parser.parse_args()
if (
args.phase not in range(0, 360)
or args.spacing not in ["lin", "log"]
or args.signal not in ["sine", "square", "ramp"]
):
parser.print_help()
exit(1)
sweep_over_signal(args.signal, args.vmin, args.vmax, args.delay, args.duration, args.freq_start, args.freq_stop, args.phase, args.spacing)

View File

@ -20,6 +20,8 @@ authors = [
]
license = {text = "MIT"}
[tool.setuptools_scm]
[tool.pdm]
distribution = true

3
src/fn_gen/__init__.py Normal file
View File

@ -0,0 +1,3 @@
from .dg2052 import DG2052
from .enums import *
from .errors import *

5
src/fn_gen/common.py Normal file
View File

@ -0,0 +1,5 @@
from .errors import ValueOutOfBoundsError
def check_bounds(bounds: tuple[float, float] | tuple[int, int], value: float | int):
if value < bounds[0] or value > bounds[1]:
raise ValueOutOfBoundsError(bounds, value)

View File

@ -0,0 +1,10 @@
SIN_RANGE = (1e-6, 50e6)
SQU_RANGE = (1e-6, 15e6)
RAMP_RANGE = (1e-6, 1.5e6)
PULSE_RANGE = (1e-6, 20e6)
HARM_RANGE = (1e-6, 20e6)
NOISE_BANDWIDTH = 100e6
USER_RANGE = (1e-6, 15e6)
DUALT_RANGE = (1e-6, 20e6)
PRBS_RANGE = (2e3, 40e6)
SEQ_RANGE = (2e3, 60e6)

336
src/fn_gen/dg2052.py Normal file
View File

@ -0,0 +1,336 @@
### PLEASE DO NOT MIND THE FORMATTING, IT IS DONE AUTOMATICALLY BY 'BLACK' THE PYTHON FORMATTER
import logging
from typing import Literal
import pyvisa
from pyvisa import ResourceManager
from .common import check_bounds
from .constants.dg2052 import (SIN_RANGE, SQU_RANGE, RAMP_RANGE)
from .enums import CommMethod, SweepSpacing, SweepTriggerSlope, SweepTriggerSource, SweepSignalType
from .errors import UndefinedValueError, UndefinedCommunicationMethodError, ValueOutOfBoundsError
class DG2052(pyvisa.resources.MessageBasedResource):
"""
This is an object representing the Rigol DG2052 function generator. This object uses the SCPI protocol for communicating with the Rigol DG2052 function generator.
Attributes
----------
port : str
The SCPI port describing the device, consists of a communication method and device port followed by the "::INSTR" keyword.
communication method: can be either USB or TCPIP (other communication methods are not supported for this device)
device port: either COMM4 or /dev/USB0 for USB in windows and posix systems respectively or the IP Address for TCPIP
format: "<communication method>::<device port>::INSTR"
example: "TCPI::192.168.1.11::INSTR" or "USB::COMM4::INSTR"
rm : ResourceManager
The resource manager object for pyvisa (for future use)
comm : CommMethod
The communication method used (either TCPIP or USB)
"""
comm: CommMethod # The communication method used (either TCPIP or USB)
rm: ResourceManager # The resource manager object for pyvisa (for future use)
port: str # The str used for the port
def __init__(self, port: str): # Class initialization method
"""
Initializes the DG2052 object
Parameters
--------
port : str
The SCPI port describing the device, consists of a communication method and device port followed by the "::INSTR" keyword.
communication method: can be either `USB` or `TCPIP` (other communication methods are not supported for this device)
device port: either `COMM4` or `/dev/USB0` for USB in windows and posix systems respectively or the IP Address for TCPIP
format: "`communication method`::`device port`::INSTR"
example: "`TCPI`::`192.168.1.11`::INSTR" or "`USB`::`COMM4`::INSTR"
"""
if "TCPIP" in port: # Check if port starts with TCPIP
logging.debug("(PROG) detected TCPIP port")
self.comm = CommMethod.LAN # Set comm to LAN
elif "USB" in port: # Check if port starts with USB
logging.debug("(PROG) detected USB port")
self.comm = CommMethod.USB # Set comm to USB
else: # Rause Undefined Communication Method Error
raise UndefinedCommunicationMethodError(port)
rm = ResourceManager() # Create a pyvisa.ResourceManager object
self.rm = rm # Save that object as rm
self.port = port # Save the port string as port
super().__init__(rm, port) # create tne instrument object
logging.debug("(PROG) created dg2052 instance")
self.open() # connect to the instrument object (for ease of use)
logging.debug("(PROG) connected to dg2052 device")
def whoami(self) -> str:
"""
shows the identification of the connected instrument
Returns
-------
str
The identification of the connected instrument
"""
match (
self.comm
): # Return an Identification string depending on the communication method
# Here a match case is used to make it easy to extend the communication methods to other methods
case CommMethod.LAN: # if the communication method is LAN
logging.debug("(PROG) communication method: LAN")
(
manufacturer,
model,
serial,
software_ver,
) = tuple( # Acquire the data for the manufacturer, model, serial and software version from the '*IDN?' SCPI query
self.query("*IDN?").strip().split(",")
)
ipaddr = self.query(
":SYST:COMM:LAN:IPAD?"
).strip() # Get the IPAddress of the device
mac = self.query(
":SYST:COMM:LAN:MAC?"
).strip() # Get the MAC address of the device
out = (
f"{manufacturer} {model}:\n\tSerial Nr.:"
+ f" {serial}\n\tSoftware Ver.:"
+ f" {software_ver}\n\tPort:"
+ f" {self.port}\n\tIPADDRESS: {ipaddr}\n\tMAC: {mac}"
)
return out # return the formatted string
case CommMethod.USB: # if the communication method is USB
logging.debug("(PROG) communication method USB")
(
manufacturer,
model,
serial,
software_ver,
) = tuple( # Acquire the data for the manufacturer, model, serial and software version from the '*IDN?' SCPI query
self.query("*IDN?").strip().split(",")
)
# info = self.system.communicate.usb.information().strip()
info = self.query(
":SYST:COMM:USB:INF?"
).strip() # Get the USB info of the device
out = (
f"{manufacturer} {model}:\n\tSerial Nr.:"
+ f" {serial}\n\tSoftware Ver.:"
+ f" {software_ver}\n\tPort:"
+ f" {self.port}\n\tINFORMATION: {info}"
)
return out # return the formatted string
case _: # default case raise Undefined Communication Method Error
raise UndefinedCommunicationMethodError(self.port)
def set_output(self, channel: Literal[1, 2], state: bool):
"""
Sets the output channel ON or OFF
Parameters
----------
channel : Literal[1, 2]
The output channel of the device (either 1 or 2)
state : bool
The state of the output channel
"""
if state:
logging.debug(f"(PROG) :OUTP{channel} ON")
self.write(f":OUTP{channel} ON")
else:
logging.debug(f"(PROG) :OUTP{channel} OFF")
self.write(f":OUTP{channel} OFF")
def toggle_output(self, channel: Literal[1, 2]):
state = self.query(f":OUT{channel}?").strip()
logging.debug(f"(PROG) output {channel} state: {state}")
match (state):
case "ON":
self.set_output(channel, False)
case "OFF":
self.set_output(channel, True)
case _:
raise UndefinedValueError(state, "ON or OFF")
def get_output_volt_limits(self, channel: Literal[1, 2]) -> tuple[float, float]:
"""
Gets the output volt limits of the specified channel
Parameters
-------
channel: Literal[1, 2]
The output channel of the device (either 1 or 2)
Returns
-------
tuple[float, float]
The low voltage limit and the hight voltage limit
"""
low: float = float(self.query(f":OUTP{channel}:VOLL:LOW?"))
high: float = float(self.query(f":OUTP{channel}:VOLL:HIGH?"))
logging.debug(f"(PROG) output {channel} limits: {low}, {high}")
return low, high
def get_output_impedance(self, channel: Literal[1, 2]) -> float:
impedance = float(self.query(f":OUTP{channel}:IMP?"))
logging.debug(f"(PROG) output {channel} impedance: {impedance}")
return impedance
def get_output_load(self, channel: Literal[1, 2]) -> float:
load = float(self.query(f":OUTP{channel}:LOAD?"))
logging.debug(f"(PROG) output {channel} load: {load}")
return load
def get_output_signal(self, channel: Literal[1, 2]) -> str:
signal = self.query(f":SOUR{channel}:APPL?").strip()
logging.debug(f"(PROG) output {channel} signal: {signal}")
return signal
def get_output_state(self, channel: Literal[1, 2]) -> str:
state = self.query(f":OUTP{channel}?").strip()
logging.debug(f"(PROG) output {channel} state: {state}")
return state
def is_output_on(self, channel: Literal[1, 2]) -> bool:
channel_state = self.get_output_state(channel)
match channel_state:
case "ON":
return True
case "OFF":
return False
case _:
raise UndefinedValueError(channel_state, "ON or OFF")
def set_dc(self, channel: Literal[1, 2], offset: float):
logging.debug(f"(PROG) set dc signal with offset: {offset}")
self.write(f":SOUR{channel}:APPL:DC 1,1,{offset}")
def set_sine_wave(
self,
channel: Literal[1, 2],
freq: float = 1e3,
amp: float = 5.0,
offset: float = 0.0,
phase: int = 0,
):
if freq < SIN_RANGE[0] and freq > SIN_RANGE[1]:
raise ValueOutOfBoundsError(SIN_RANGE, freq)
if phase < 0 and phase > 360:
raise ValueOutOfBoundsError((0, 360), phase)
logging.debug(
f"(PROG) set sine signal with freq: {freq}, amp: {amp}, offset: {offset}, phase: {phase}"
)
self.write(f":SOUR{channel}:APPL:SIN {freq},{amp},{offset},{phase}")
def set_frequency(self, channel: Literal[1, 2], freq):
logging.debug(
f"(PROG) set wave frequency to {freq} Hz."
)
self.write(f":SOUR:FREQ {freq}")
def set_square_wave(
self,
channel: Literal[1, 2], # Sets the output channel of the ramp function
freq: float = 1e3, # Sets the frequency
amp: float = 5.0, # Sets the amplitude
offset: float = 0.0, # Sets the amplitude offset
phase: int = 0, # Sets the phase shift
):
check_bounds(SQU_RANGE, freq)
check_bounds((0, 360), phase)
logging.debug(
f"(PROG) set square signal with freq: {freq}, amp: {amp}, offset: {offset}, phase: {phase}"
)
self.write(f":SOUR{channel}:APPL:SQU {freq},{amp},{offset},{phase}")
def set_ramp(
self,
channel: Literal[1, 2], # Sets the output channel of the ramp function
freq: float = 1e3, # Sets the frequency
amp: float = 5, # Sets the amplitude
offset: float = 0, # Sets the amplitude offset
phase: int = 0, # Sets the phase shift
):
check_bounds(RAMP_RANGE, freq)
check_bounds((0, 360), phase)
logging.debug(
f"(PROG) set ramp signal with freq: {freq}, amp: {amp}, offset: {offset}, phase: {phase}"
)
self.write(f":SOUR{channel}:APPL:RAMP {freq},{amp},{offset},{phase}")
def set_sweep(
self,
channel: Literal[1, 2], # Sets the output channel of the sweep function
amp: float = 5, # Sets the amplitude of the sweeped signal
offset: float = 0, # Sets the offset voltage of the sweeped signal
phase: int = 0, # Sets the phase shift of the sweeped signal
signal_type: SweepSignalType = SweepSignalType.SINE, # Sets the type of signal being sweeped
htime_start: float = 0, # Sets the start hold time of the sweep function
htime_stop: float = 0, # Sets the stop hold time of the sweep function
freq_start: float = 100, # Sets the sweep starting frequency
freq_stop: float = 1e3, # Sets the sweep stopping frequency
marker: bool = False, # Enables/Disables setting the marker frequency manually
freq_marker: float = 550, # Sets the marker frequency at whic the Sync signal changes from high to low
rtime: float = 0, # Sets the return time of the sweep function
time: float = 1, # Sets the sweep time
spacing: SweepSpacing = SweepSpacing.LIN, # Sets the sweep type
step: int = 2, # Sets the number of steps of the sweep function
trigger_slope: SweepTriggerSlope = SweepTriggerSlope.POSITIVE, # Sets the edge type of the trigger input signal (for external trigger only)
trigger_source: SweepTriggerSource = SweepTriggerSource.INTERNAL, # Sets the sweep trigger source
):
time_bounds: tuple[float, float] = (0, 500)
command_header = f":SOUR{channel}:SWE"
check_bounds(time_bounds, htime_start)
check_bounds(time_bounds, htime_stop)
check_bounds(time_bounds, rtime)
check_bounds((2, 1024), step)
check_bounds((1e-3, 599.0), time)
match signal_type:
case SweepSignalType.SINE:
self.set_sine_wave(channel, amp=amp, offset=offset, phase=phase)
case SweepSignalType.SQUARE:
self.set_square_wave(channel, amp=amp, offset=offset, phase=phase)
case SweepSignalType.RAMP:
self.set_ramp(channel, amp=amp, offset=offset, phase=phase)
self.write(f":SOUR:FREQ:STAR {freq_start}")
self.write(f":SOUR:FREQ:STOP {freq_stop}")
if marker:
self.write(":SOUR:MARK ON")
self.write(f":SOUR:MARK:FREQ {freq_marker}")
else:
self.write(":SOUR:MARK OFF")
self.write(f"{command_header}:SPAC {spacing}")
self.write(f"{command_header}:STEP {step}")
match trigger_source:
case SweepTriggerSource.INTERNAL:
self.write(f"{command_header}:TRIG:SOUR INT")
self.write(f"{command_header}:HTIM:STAR {htime_start}")
self.write(f"{command_header}:HTIM {htime_stop}")
self.write(f"{command_header}:RTIM {rtime}")
self.write(f"{command_header}:TIME {time}")
case SweepTriggerSource.EXTERNAL:
self.write(f"{command_header}:TRIG:SOUR EXT")
if trigger_slope == SweepTriggerSlope.POSITIVE:
self.write(f"{command_header}:TRIG:SLOP POS")
elif trigger_slope == SweepTriggerSlope.NEGATIVE:
self.write(f"{command_header}:TRIG:SLOP NEG")
else:
UndefinedValueError(
trigger_slope,
"SweepTriggerSlope.Positive or SweepTriggerSlope.Negative",
)
case SweepTriggerSource.MANUAL:
self.write(f"{command_header}:TRIG:SOUR MAN")
case _:
UndefinedValueError(
trigger_source, "SweepTriggerSource.[INTERNAL | EXTERNAL | MANUAL]"
)
self.write(f"{command_header}:STAT ON")
def trigger_sweep(self, channel: Literal[1, 2]):
self.write(f":SOUR{channel}:SWE:TRIG:IMM")

View File

@ -0,0 +1,5 @@
from .comm_method import CommMethod
from .sweep_spacing import SweepSpacing
from .sweep_trigger_slope import SweepTriggerSlope
from .sweep_trigger_source import SweepTriggerSource
from .sweep_signal_type import SweepSignalType

View File

@ -0,0 +1,11 @@
from enum import Enum
class CommMethod(Enum):
"""The communication method accepted by the function generator
"""
USB = 0
"""For USB devices
"""
LAN = 1
"""For LAN devices
"""

View File

@ -0,0 +1,14 @@
from enum import Enum
class SweepSignalType(Enum):
"""The type of signal used in the sweep function
"""
SINE = 1
"""The Sine function sweep
"""
SQUARE = 2
"""The Square function sweep
"""
RAMP = 3
"""The Ramp function sweep
"""

View File

@ -0,0 +1,14 @@
from enum import Enum
class SweepSpacing(Enum):
"""The spacing used in the sweep function
"""
LIN = 1
"""A linear sweep
"""
LOG = 2
"""A logarithmic sweep
"""
STEP = 3
"""A stepwise sweep
"""

View File

@ -0,0 +1,11 @@
from enum import Enum
class SweepTriggerSlope(Enum):
"""The type of slope used for the external sweep trigger
"""
POSITIVE = 1
"""This option triggers the sweep on the positive edge
"""
NEGATIVE = 2
"""Ths option triggers the sweep on the negative edge
"""

View File

@ -0,0 +1,10 @@
from enum import Enum
class SweepTriggerSource(Enum):
"""The Source of the trigger for the sweep"""
INTERNAL = 1
"""An Internal trigger signal, defined by htime_start, htime_stop"""
EXTERNAL = 2
"""An external trigger signal"""
MANUAL = 3
"""A manual trigger set in code by the trigger function"""

View File

@ -0,0 +1,3 @@
from .undefined_communication_method_error import UndefinedCommunicationMethodError
from .value_out_of_bounds_error import ValueOutOfBoundsError
from .undefined_value_error import UndefinedValueError

View File

@ -0,0 +1,5 @@
class UndefinedCommunicationMethodError(Exception):
def __init__(self, port: str):
method = port.split( "::" )[0]
super().__init__( f"ERROR: Undefined Communication Exception, Method \"{method}\" is not recognized in Port \"{port}\"." )

View File

@ -0,0 +1,4 @@
class UndefinedValueError(Exception):
def __init__(self, value: str, expected: str):
super().__init__( f"ERROR: Undefined Value, expected: {expected}, value: {value}." )

View File

@ -0,0 +1,4 @@
class ValueOutOfBoundsError(Exception):
def __init__(self, bounds: tuple[float, float] | tuple[int, int], value: float | int):
super().__init__( f"ERROR: Value out of expected bounds, Min: {bounds[0]}, Max: {bounds[1]}, Value: {value}." )

186
uml/classes.html Normal file
View File

@ -0,0 +1,186 @@
<html>
<body>
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
<div class="mermaid">
classDiagram
class CommMethod {
name
}
class DG2052 {
comm
port : str
rm
get_output_impedance(channel: Literal[1, 2]) float
get_output_load(channel: Literal[1, 2]) float
get_output_signal(channel: Literal[1, 2]) str
get_output_state(channel: Literal[1, 2]) str
get_output_volt_limits(channel: Literal[1, 2]) tuple[float, float]
is_output_on(channel: Literal[1, 2]) bool
set_dc(channel: Literal[1, 2], offset: float)
set_frequency(channel: Literal[1, 2], freq)
set_output(channel: Literal[1, 2], state: bool)
set_ramp(channel: Literal[1, 2], freq: float, amp: float, offset: float, phase: int)
set_sine_wave(channel: Literal[1, 2], freq: float, amp: float, offset: float, phase: int)
set_square_wave(channel: Literal[1, 2], freq: float, amp: float, offset: float, phase: int)
set_sweep(channel: Literal[1, 2], amp: float, offset: float, phase: int, signal_type: SweepSignalType, htime_start: float, htime_stop: float, freq_start: float, freq_stop: float, marker: bool, freq_marker: float, rtime: float, time: float, spacing: SweepSpacing, step: int, trigger_slope: SweepTriggerSlope, trigger_source: SweepTriggerSource)
toggle_output(channel: Literal[1, 2])
trigger_sweep(channel: Literal[1, 2])
whoami() str
}
class LAN {
name
value
}
class LibraryPath {
arch
found_by : str
path : str
}
class OutputChannel {
name
}
class ResourceManager {
last_status
session
visalib
close() None
ignore_warning() ContextManager
list_opened_resources() List['Resource']
list_resources(query: str) Tuple[str, ...]
list_resources_info(query: str) Dict[str, ResourceInfo]
open_bare_resource(resource_name: str, access_mode: constants.AccessModes, open_timeout: int) Tuple[VISASession, StatusCode]
open_resource(resource_name: str, access_mode: constants.AccessModes, open_timeout: int, resource_pyclass: Optional[Type['Resource']]) 'Resource'
register_resource_class(interface_type: constants.InterfaceType, resource_class: str, python_class: Type['Resource']) None
resource_info(resource_name: str, extended: bool) ResourceInfo
}
class StatusCode {
name
}
class SweepSignalType {
name
}
class SweepSpacing {
name
}
class SweepTriggerSlope {
name
}
class SweepTriggerSource {
name
}
class USB {
name
value
}
class UndefinedCommunicationMethodError {
}
class UndefinedValueError {
}
class ValueOutOfBoundsError {
}
class VisaLibraryBase {
handlers : DefaultDict[VISASession, List[Tuple[VISAHandler, Any, Any, Any]]]
issue_warning_on : Set[StatusCode]
last_status
library_path
resource_manager : Optional['ResourceManager']
assert_interrupt_signal(session: VISASession, mode: constants.AssertSignalInterrupt, status_id: int)* StatusCode
assert_trigger(session: VISASession, protocol: constants.TriggerProtocol)* StatusCode
assert_utility_signal(session: VISASession, line: constants.UtilityBusSignal)* StatusCode
buffer_read(session: VISASession, count: int)* Tuple[bytes, StatusCode]
buffer_write(session: VISASession, data: bytes)* Tuple[int, StatusCode]
clear(session: VISASession)* StatusCode
close(session: Union[VISASession, VISAEventContext, VISARMSession])* StatusCode
disable_event(session: VISASession, event_type: constants.EventType, mechanism: constants.EventMechanism)* StatusCode
discard_events(session: VISASession, event_type: constants.EventType, mechanism: constants.EventMechanism)* StatusCode
enable_event(session: VISASession, event_type: constants.EventType, mechanism: constants.EventMechanism, context: None)* StatusCode
flush(session: VISASession, mask: constants.BufferOperation)* StatusCode
get_attribute(session: Union[VISASession, VISAEventContext, VISARMSession], attribute: Union[constants.ResourceAttribute, constants.EventAttribute])* Tuple[Any, StatusCode]
get_buffer_from_id(job_id: VISAJobID)* Optional[SupportsBytes]
get_debug_info() DebugInfo
get_last_status_in_session(session: Union[VISASession, VISARMSession]) StatusCode
get_library_paths() Iterable[LibraryPath]
gpib_command(session: VISASession, data: bytes)* Tuple[int, StatusCode]
gpib_control_atn(session: VISASession, mode: constants.ATNLineOperation)* StatusCode
gpib_control_ren(session: VISASession, mode: constants.RENLineOperation)* StatusCode
gpib_pass_control(session: VISASession, primary_address: int, secondary_address: int)* StatusCode
gpib_send_ifc(session: VISASession)* StatusCode
handle_return_value(session: Optional[Union[VISAEventContext, VISARMSession, VISASession]], status_code: int) StatusCode
ignore_warning(session: Union[VISASession, VISARMSession]) Iterator
in_16(session: VISASession, space: constants.AddressSpace, offset: int, extended: bool)* Tuple[int, StatusCode]
in_32(session: VISASession, space: constants.AddressSpace, offset: int, extended: bool)* Tuple[int, StatusCode]
in_64(session: VISASession, space: constants.AddressSpace, offset: int, extended: bool)* Tuple[int, StatusCode]
in_8(session: VISASession, space: constants.AddressSpace, offset: int, extended: bool)* Tuple[int, StatusCode]
install_handler(session: VISASession, event_type: constants.EventType, handler: VISAHandler, user_handle: Any)* Tuple[VISAHandler, Any, Any, StatusCode]
install_visa_handler(session: VISASession, event_type: constants.EventType, handler: VISAHandler, user_handle: Any) Any
list_resources(session: VISARMSession, query: str)* Tuple[str, ...]
lock(session: VISASession, lock_type: constants.Lock, timeout: int, requested_key: Optional[str])* Tuple[str, StatusCode]
map_address(session: VISASession, map_space: constants.AddressSpace, map_base: int, map_size: int, access: Literal[False], suggested: Optional[int])* Tuple[int, StatusCode]
map_trigger(session: VISASession, trigger_source: constants.InputTriggerLine, trigger_destination: constants.OutputTriggerLine, mode: None)* StatusCode
memory_allocation(session: VISASession, size: int, extended: bool)* Tuple[int, StatusCode]
memory_free(session: VISASession, offset: int, extended: bool)* StatusCode
move(session: VISASession, source_space: constants.AddressSpace, source_offset: int, source_width: constants.DataWidth, destination_space: constants.AddressSpace, destination_offset: int, destination_width: constants.DataWidth, length: int)* StatusCode
move_asynchronously(session: VISASession, source_space: constants.AddressSpace, source_offset: int, source_width: constants.DataWidth, destination_space: constants.AddressSpace, destination_offset: int, destination_width: constants.DataWidth, length: int)* Tuple[VISAJobID, StatusCode]
move_in(session: VISASession, space: constants.AddressSpace, offset: int, length: int, width: Union[Literal[8, 16, 32, 64], constants.DataWidth], extended: bool) Tuple[List[int], StatusCode]
move_in_16(session: VISASession, space: constants.AddressSpace, offset: int, length: int, extended: bool)* Tuple[List[int], StatusCode]
move_in_32(session: VISASession, space: constants.AddressSpace, offset: int, length: int, extended: bool)* Tuple[List]
move_in_64(session: VISASession, space: constants.AddressSpace, offset: int, length: int, extended: bool)* Tuple[List[int], StatusCode]
move_in_8(session: VISASession, space: constants.AddressSpace, offset: int, length: int, extended: bool)* Tuple[List[int], StatusCode]
move_out(session: VISASession, space: constants.AddressSpace, offset: int, length: int, data: Iterable[int], width: Union[Literal[8, 16, 32, 64], constants.DataWidth], extended: bool) StatusCode
move_out_16(session: VISASession, space: constants.AddressSpace, offset: int, length: int, data: Iterable[int], extended: bool)* StatusCode
move_out_32(session: VISASession, space: constants.AddressSpace, offset: int, length: int, data: Iterable[int], extended: bool)* StatusCode
move_out_64(session: VISASession, space: constants.AddressSpace, offset: int, length: int, data: Iterable[int], extended: bool)* StatusCode
move_out_8(session: VISASession, space: constants.AddressSpace, offset: int, length: int, data: Iterable[int], extended: bool)* StatusCode
open(session: VISARMSession, resource_name: str, access_mode: constants.AccessModes, open_timeout: int)* Tuple[VISASession, StatusCode]
open_default_resource_manager()* Tuple[VISARMSession, StatusCode]
out_16(session: VISASession, space: constants.AddressSpace, offset: int, data: int, extended: bool)* StatusCode
out_32(session: VISASession, space: constants.AddressSpace, offset: int, data: Iterable[int], extended: bool)* StatusCode
out_64(session: VISASession, space: constants.AddressSpace, offset: int, data: Iterable[int], extended: bool)* StatusCode
out_8(session: VISASession, space: constants.AddressSpace, offset: int, data: int, extended: bool)* StatusCode
parse_resource(session: VISARMSession, resource_name: str) Tuple[ResourceInfo, StatusCode]
parse_resource_extended(session: VISARMSession, resource_name: str) Tuple[ResourceInfo, StatusCode]
peek(session: VISASession, address: VISAMemoryAddress, width: Union[Literal[8, 16, 32, 64], constants.DataWidth]) Tuple[int, StatusCode]
peek_16(session: VISASession, address: VISAMemoryAddress)* Tuple[int, StatusCode]
peek_32(session: VISASession, address: VISAMemoryAddress)* Tuple[int, StatusCode]
peek_64(session: VISASession, address: VISAMemoryAddress)* Tuple[int, StatusCode]
peek_8(session: VISASession, address: VISAMemoryAddress)* Tuple[int, StatusCode]
poke(session: VISASession, address: VISAMemoryAddress, width: Union[Literal[8, 16, 32, 64], constants.DataWidth], data: int) StatusCode
poke_16(session: VISASession, address: VISAMemoryAddress, data: int)* StatusCode
poke_32(session: VISASession, address: VISAMemoryAddress, data: int)* StatusCode
poke_64(session: VISASession, address: VISAMemoryAddress, data: int)* StatusCode
poke_8(session: VISASession, address: VISAMemoryAddress, data: int)* StatusCode
read(session: VISASession, count: int)* Tuple[bytes, StatusCode]
read_asynchronously(session: VISASession, count: int)* Tuple[SupportsBytes, VISAJobID, StatusCode]
read_memory(session: VISASession, space: constants.AddressSpace, offset: int, width: Union[Literal[8, 16, 32, 64], constants.DataWidth], extended: bool) Tuple[int, StatusCode]
read_stb(session: VISASession)* Tuple[int, StatusCode]
read_to_file(session: VISASession, filename: str, count: int)* Tuple[int, StatusCode]
set_attribute(session: VISASession, attribute: constants.ResourceAttribute, attribute_state: Any)* StatusCode
set_buffer(session: VISASession, mask: constants.BufferType, size: int)* StatusCode
status_description(session: VISASession, status: StatusCode)* Tuple[str, StatusCode]
terminate(session: VISASession, degree: None, job_id: VISAJobID)* StatusCode
uninstall_all_visa_handlers(session: Optional[VISASession]) None
uninstall_handler(session: VISASession, event_type: constants.EventType, handler: VISAHandler, user_handle: Any)* StatusCode
uninstall_visa_handler(session: VISASession, event_type: constants.EventType, handler: VISAHandler, user_handle: Any) None
unlock(session: VISASession)* StatusCode
unmap_address(session: VISASession)* StatusCode
unmap_trigger(session: VISASession, trigger_source: constants.InputTriggerLine, trigger_destination: constants.OutputTriggerLine)* StatusCode
usb_control_in(session: VISASession, request_type_bitmap_field: int, request_id: int, request_value: int, index: int, length: int)* Tuple[bytes, StatusCode]
usb_control_out(session: VISASession, request_type_bitmap_field: int, request_id: int, request_value: int, index: int, data: bytes)* StatusCode
vxi_command_query(session: VISASession, mode: constants.VXICommands, command: int)* Tuple[int, StatusCode]
wait_on_event(session: VISASession, in_event_type: constants.EventType, timeout: int)* Tuple[constants.EventType, VISAEventContext, StatusCode]
write(session: VISASession, data: bytes)* Tuple[int, StatusCode]
write_asynchronously(session: VISASession, data: bytes)* Tuple[VISAJobID, StatusCode]
write_from_file(session: VISASession, filename: str, count: int)* Tuple[int, StatusCode]
write_memory(session: VISASession, space: constants.AddressSpace, offset: int, data: int, width: Union[Literal[8, 16, 32, 64], constants.DataWidth], extended: bool) StatusCode
}
LAN --* DG2052 : comm
USB --* DG2052 : comm
StatusCode --* VisaLibraryBase : _last_status
ResourceManager --* DG2052 : rm
VisaLibraryBase --* ResourceManager : visalib
LibraryPath --* VisaLibraryBase : library_path
</div>
</body>
</html>

54
uml/packages.html Normal file
View File

@ -0,0 +1,54 @@
<html>
<body>
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
<div class="mermaid">
classDiagram
class fn_gen {
}
class common {
}
class dg2052 {
}
class enums {
}
class comm_method {
}
class output_channel {
}
class sweep_signal_type {
}
class sweep_spacing {
}
class sweep_trigger_slope {
}
class sweep_trigger_source {
}
class errors {
}
class undefined_communication_method_error {
}
class undefined_value_error {
}
class value_out_of_bounds_error {
}
fn_gen --> dg2052
fn_gen --> enums
fn_gen --> errors
common --> errors
dg2052 --> common
dg2052 --> enums
dg2052 --> errors
enums --> comm_method
enums --> output_channel
enums --> sweep_signal_type
enums --> sweep_spacing
enums --> sweep_trigger_slope
enums --> sweep_trigger_source
errors --> undefined_communication_method_error
errors --> undefined_value_error
errors --> value_out_of_bounds_error
</div>
</body>
</html>