Feature: Added Documentation in

This commit is contained in:
2024-03-01 10:44:15 +01:00
parent 2ee2b10c40
commit 16b9105873
51 changed files with 783 additions and 1187 deletions

View File

@@ -1,186 +0,0 @@
<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>

117
uml/classes.svg Normal file
View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 10.0.1 (0)
-->
<!-- Title: classes Pages: 1 -->
<svg width="3058pt" height="348pt"
viewBox="0.00 0.00 3057.50 348.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 344)">
<title>classes</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-344 3053.5,-344 3053.5,4 -4,4"/>
<!-- fn_gen.enums.comm_method.CommMethod -->
<g id="node1" class="node">
<title>fn_gen.enums.comm_method.CommMethod</title>
<polygon fill="#99ddff" stroke="#99ddff" points="0,-134.38 0,-205.62 97,-205.62 97,-134.38 0,-134.38"/>
<text text-anchor="start" x="8" y="-188.32" font-family="Times,serif" font-size="14.00">CommMethod</text>
<polyline fill="none" stroke="#99ddff" points="0,-181.88 97,-181.88"/>
<text text-anchor="start" x="33.88" y="-164.57" font-family="Times,serif" font-size="14.00">name</text>
<polyline fill="none" stroke="#99ddff" points="0,-158.12 97,-158.12"/>
<text text-anchor="start" x="46.62" y="-140.82" font-family="Times,serif" font-size="14.00"> </text>
</g>
<!-- fn_gen.dg2052.DG2052 -->
<g id="node2" class="node">
<title>fn_gen.dg2052.DG2052</title>
<polygon fill="#77aadd" stroke="#77aadd" points="115,-0.5 115,-339.5 1946,-339.5 1946,-0.5 115,-0.5"/>
<text text-anchor="start" x="1007.25" y="-322.2" font-family="Times,serif" font-size="14.00">DG2052</text>
<polyline fill="none" stroke="#77aadd" points="115,-315.75 1946,-315.75"/>
<text text-anchor="start" x="967.88" y="-298.45" font-family="Times,serif" font-size="14.00">comm</text>
<text text-anchor="start" x="967.88" y="-282.7" font-family="Times,serif" font-size="14.00">port : str</text>
<text text-anchor="start" x="967.88" y="-266.95" font-family="Times,serif" font-size="14.00">rm : ResourceManager</text>
<polyline fill="none" stroke="#77aadd" points="115,-260.5 1946,-260.5"/>
<text text-anchor="start" x="123" y="-243.2" font-family="Times,serif" font-size="14.00">get_output_impedance(channel: Literal[1, 2]): float</text>
<text text-anchor="start" x="123" y="-227.45" font-family="Times,serif" font-size="14.00">get_output_load(channel: Literal[1, 2]): float</text>
<text text-anchor="start" x="123" y="-211.7" font-family="Times,serif" font-size="14.00">get_output_signal(channel: Literal[1, 2]): str</text>
<text text-anchor="start" x="123" y="-195.95" font-family="Times,serif" font-size="14.00">get_output_state(channel: Literal[1, 2]): str</text>
<text text-anchor="start" x="123" y="-180.2" font-family="Times,serif" font-size="14.00">get_output_volt_limits(channel: Literal[1, 2]): tuple[float, float]</text>
<text text-anchor="start" x="123" y="-164.45" font-family="Times,serif" font-size="14.00">is_output_on(channel: Literal[1, 2]): bool</text>
<text text-anchor="start" x="123" y="-148.7" font-family="Times,serif" font-size="14.00">set_dc(channel: Literal[1, 2], offset: float)</text>
<text text-anchor="start" x="123" y="-132.95" font-family="Times,serif" font-size="14.00">set_frequency(channel: Literal[1, 2], freq)</text>
<text text-anchor="start" x="123" y="-117.2" font-family="Times,serif" font-size="14.00">set_output(channel: Literal[1, 2], state: bool)</text>
<text text-anchor="start" x="123" y="-101.45" font-family="Times,serif" font-size="14.00">set_ramp(channel: Literal[1, 2], freq: float, amp: float, offset: float, phase: int)</text>
<text text-anchor="start" x="123" y="-85.7" font-family="Times,serif" font-size="14.00">set_sine_wave(channel: Literal[1, 2], freq: float, amp: float, offset: float, phase: int)</text>
<text text-anchor="start" x="123" y="-69.95" font-family="Times,serif" font-size="14.00">set_square_wave(channel: Literal[1, 2], freq: float, amp: float, offset: float, phase: int)</text>
<text text-anchor="start" x="123" y="-54.2" font-family="Times,serif" font-size="14.00">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)</text>
<text text-anchor="start" x="123" y="-38.45" font-family="Times,serif" font-size="14.00">toggle_output(channel: Literal[1, 2])</text>
<text text-anchor="start" x="123" y="-22.7" font-family="Times,serif" font-size="14.00">trigger_sweep(channel: Literal[1, 2])</text>
<text text-anchor="start" x="123" y="-6.95" font-family="Times,serif" font-size="14.00">whoami(): str</text>
</g>
<!-- fn_gen.enums.sweep_signal_type.SweepSignalType -->
<g id="node3" class="node">
<title>fn_gen.enums.sweep_signal_type.SweepSignalType</title>
<polygon fill="#99ddff" stroke="#99ddff" points="1963.75,-134.38 1963.75,-205.62 2077.25,-205.62 2077.25,-134.38 1963.75,-134.38"/>
<text text-anchor="start" x="1971.75" y="-188.32" font-family="Times,serif" font-size="14.00">SweepSignalType</text>
<polyline fill="none" stroke="#99ddff" points="1963.75,-181.88 2077.25,-181.88"/>
<text text-anchor="start" x="2005.88" y="-164.57" font-family="Times,serif" font-size="14.00">name</text>
<polyline fill="none" stroke="#99ddff" points="1963.75,-158.12 2077.25,-158.12"/>
<text text-anchor="start" x="2018.62" y="-140.82" font-family="Times,serif" font-size="14.00"> </text>
</g>
<!-- fn_gen.enums.sweep_spacing.SweepSpacing -->
<g id="node4" class="node">
<title>fn_gen.enums.sweep_spacing.SweepSpacing</title>
<polygon fill="#99ddff" stroke="#99ddff" points="2095.12,-134.38 2095.12,-205.62 2189.88,-205.62 2189.88,-134.38 2095.12,-134.38"/>
<text text-anchor="start" x="2103.12" y="-188.32" font-family="Times,serif" font-size="14.00">SweepSpacing</text>
<polyline fill="none" stroke="#99ddff" points="2095.12,-181.88 2189.88,-181.88"/>
<text text-anchor="start" x="2127.88" y="-164.57" font-family="Times,serif" font-size="14.00">name</text>
<polyline fill="none" stroke="#99ddff" points="2095.12,-158.12 2189.88,-158.12"/>
<text text-anchor="start" x="2140.62" y="-140.82" font-family="Times,serif" font-size="14.00"> </text>
</g>
<!-- fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope -->
<g id="node5" class="node">
<title>fn_gen.enums.sweep_trigger_slope.SweepTriggerSlope</title>
<polygon fill="#99ddff" stroke="#99ddff" points="2208.25,-134.38 2208.25,-205.62 2330.75,-205.62 2330.75,-134.38 2208.25,-134.38"/>
<text text-anchor="start" x="2216.25" y="-188.32" font-family="Times,serif" font-size="14.00">SweepTriggerSlope</text>
<polyline fill="none" stroke="#99ddff" points="2208.25,-181.88 2330.75,-181.88"/>
<text text-anchor="start" x="2254.88" y="-164.57" font-family="Times,serif" font-size="14.00">name</text>
<polyline fill="none" stroke="#99ddff" points="2208.25,-158.12 2330.75,-158.12"/>
<text text-anchor="start" x="2267.62" y="-140.82" font-family="Times,serif" font-size="14.00"> </text>
</g>
<!-- fn_gen.enums.sweep_trigger_source.SweepTriggerSource -->
<g id="node6" class="node">
<title>fn_gen.enums.sweep_trigger_source.SweepTriggerSource</title>
<polygon fill="#99ddff" stroke="#99ddff" points="2348.88,-134.38 2348.88,-205.62 2478.12,-205.62 2478.12,-134.38 2348.88,-134.38"/>
<text text-anchor="start" x="2356.88" y="-188.32" font-family="Times,serif" font-size="14.00">SweepTriggerSource</text>
<polyline fill="none" stroke="#99ddff" points="2348.88,-181.88 2478.12,-181.88"/>
<text text-anchor="start" x="2398.88" y="-164.57" font-family="Times,serif" font-size="14.00">name</text>
<polyline fill="none" stroke="#99ddff" points="2348.88,-158.12 2478.12,-158.12"/>
<text text-anchor="start" x="2411.62" y="-140.82" font-family="Times,serif" font-size="14.00"> </text>
</g>
<!-- fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError -->
<g id="node7" class="node">
<title>fn_gen.errors.undefined_communication_method_error.UndefinedCommunicationMethodError</title>
<polygon fill="#44bb99" stroke="#44bb99" points="2495.88,-146.25 2495.88,-193.75 2727.12,-193.75 2727.12,-146.25 2495.88,-146.25"/>
<text text-anchor="start" x="2503.88" y="-176.45" font-family="Times,serif" font-size="14.00" fill="red">UndefinedCommunicationMethodError</text>
<polyline fill="none" stroke="#44bb99" points="2495.88,-170 2727.12,-170"/>
<polyline fill="none" stroke="#44bb99" points="2495.88,-170 2727.12,-170"/>
<text text-anchor="start" x="2609.62" y="-152.7" font-family="Times,serif" font-size="14.00" fill="red"> </text>
</g>
<!-- fn_gen.errors.undefined_value_error.UndefinedValueError -->
<g id="node8" class="node">
<title>fn_gen.errors.undefined_value_error.UndefinedValueError</title>
<polygon fill="#44bb99" stroke="#44bb99" points="2745.38,-146.25 2745.38,-193.75 2877.62,-193.75 2877.62,-146.25 2745.38,-146.25"/>
<text text-anchor="start" x="2753.38" y="-176.45" font-family="Times,serif" font-size="14.00" fill="red">UndefinedValueError</text>
<polyline fill="none" stroke="#44bb99" points="2745.38,-170 2877.62,-170"/>
<polyline fill="none" stroke="#44bb99" points="2745.38,-170 2877.62,-170"/>
<text text-anchor="start" x="2809.62" y="-152.7" font-family="Times,serif" font-size="14.00" fill="red"> </text>
</g>
<!-- fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError -->
<g id="node9" class="node">
<title>fn_gen.errors.value_out_of_bounds_error.ValueOutOfBoundsError</title>
<polygon fill="#44bb99" stroke="#44bb99" points="2895.5,-146.25 2895.5,-193.75 3049.5,-193.75 3049.5,-146.25 2895.5,-146.25"/>
<text text-anchor="start" x="2903.5" y="-176.45" font-family="Times,serif" font-size="14.00" fill="red">ValueOutOfBoundsError</text>
<polyline fill="none" stroke="#44bb99" points="2895.5,-170 3049.5,-170"/>
<polyline fill="none" stroke="#44bb99" points="2895.5,-170 3049.5,-170"/>
<text text-anchor="start" x="2970.62" y="-152.7" font-family="Times,serif" font-size="14.00" fill="red"> </text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@@ -1,54 +0,0 @@
<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>

181
uml/packages.svg Normal file
View File

@@ -0,0 +1,181 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 10.0.1 (0)
-->
<!-- Title: packages Pages: 1 -->
<svg width="1557pt" height="332pt"
viewBox="0.00 0.00 1557.12 332.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 328)">
<title>packages</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-328 1553.12,-328 1553.12,4 -4,4"/>
<!-- fn_gen -->
<g id="node1" class="node">
<title>fn_gen</title>
<polygon fill="#77aadd" stroke="#77aadd" points="588.75,-36 534.75,-36 534.75,0 588.75,0 588.75,-36"/>
<text text-anchor="middle" x="561.75" y="-12.57" font-family="Times,serif" font-size="14.00">fn_gen</text>
</g>
<!-- fn_gen.dg2052 -->
<g id="node3" class="node">
<title>fn_gen.dg2052</title>
<polygon fill="#77aadd" stroke="#77aadd" points="610.62,-108 512.88,-108 512.88,-72 610.62,-72 610.62,-108"/>
<text text-anchor="middle" x="561.75" y="-84.58" font-family="Times,serif" font-size="14.00">fn_gen.dg2052</text>
</g>
<!-- fn_gen&#45;&gt;fn_gen.dg2052 -->
<g id="edge1" class="edge">
<title>fn_gen&#45;&gt;fn_gen.dg2052</title>
<path fill="none" stroke="black" d="M561.75,-36.3C561.75,-43.68 561.75,-52.48 561.75,-60.75"/>
<polygon fill="black" stroke="black" points="561.75,-70.68 557.25,-60.68 561.75,-66.9 561.75,-60.68 561.75,-60.68 561.75,-60.68 561.75,-66.9 566.25,-60.68 561.75,-70.68"/>
</g>
<!-- fn_gen.enums -->
<g id="node4" class="node">
<title>fn_gen.enums</title>
<polygon fill="#99ddff" stroke="#99ddff" points="855,-180 762.5,-180 762.5,-144 855,-144 855,-180"/>
<text text-anchor="middle" x="808.75" y="-156.57" font-family="Times,serif" font-size="14.00">fn_gen.enums</text>
</g>
<!-- fn_gen&#45;&gt;fn_gen.enums -->
<g id="edge2" class="edge">
<title>fn_gen&#45;&gt;fn_gen.enums</title>
<path fill="none" stroke="black" d="M589.13,-34.74C632.81,-59.85 718.5,-109.11 768.96,-138.12"/>
<polygon fill="black" stroke="black" points="777.5,-143.04 766.59,-141.95 774.22,-141.15 768.83,-138.05 768.83,-138.05 768.83,-138.05 774.22,-141.15 771.07,-134.15 777.5,-143.04"/>
</g>
<!-- fn_gen.errors -->
<g id="node10" class="node">
<title>fn_gen.errors</title>
<polygon fill="#44bb99" stroke="#44bb99" points="487.12,-252 398.38,-252 398.38,-216 487.12,-216 487.12,-252"/>
<text text-anchor="middle" x="442.75" y="-228.57" font-family="Times,serif" font-size="14.00">fn_gen.errors</text>
</g>
<!-- fn_gen&#45;&gt;fn_gen.errors -->
<g id="edge3" class="edge">
<title>fn_gen&#45;&gt;fn_gen.errors</title>
<path fill="none" stroke="black" d="M538.77,-36.31C527.19,-45.89 513.56,-58.55 503.75,-72 473.69,-113.23 456.59,-171.06 448.54,-205.02"/>
<polygon fill="black" stroke="black" points="446.42,-214.38 444.24,-203.63 447.26,-210.69 448.63,-204.62 448.63,-204.62 448.63,-204.62 447.26,-210.69 453.02,-205.62 446.42,-214.38"/>
</g>
<!-- fn_gen.common -->
<g id="node2" class="node">
<title>fn_gen.common</title>
<polygon fill="#77aadd" stroke="#77aadd" points="614.38,-180 509.12,-180 509.12,-144 614.38,-144 614.38,-180"/>
<text text-anchor="middle" x="561.75" y="-156.57" font-family="Times,serif" font-size="14.00">fn_gen.common</text>
</g>
<!-- fn_gen.common&#45;&gt;fn_gen.errors -->
<g id="edge4" class="edge">
<title>fn_gen.common&#45;&gt;fn_gen.errors</title>
<path fill="none" stroke="black" d="M532.03,-180.48C516.72,-189.49 497.87,-200.58 481.44,-210.24"/>
<polygon fill="black" stroke="black" points="473.14,-215.12 479.48,-206.17 476.4,-213.2 481.76,-210.05 481.76,-210.05 481.76,-210.05 476.4,-213.2 484.04,-213.93 473.14,-215.12"/>
</g>
<!-- fn_gen.dg2052&#45;&gt;fn_gen.common -->
<g id="edge5" class="edge">
<title>fn_gen.dg2052&#45;&gt;fn_gen.common</title>
<path fill="none" stroke="black" d="M561.75,-108.3C561.75,-115.68 561.75,-124.48 561.75,-132.75"/>
<polygon fill="black" stroke="black" points="561.75,-142.68 557.25,-132.68 561.75,-138.9 561.75,-132.68 561.75,-132.68 561.75,-132.68 561.75,-138.9 566.25,-132.68 561.75,-142.68"/>
</g>
<!-- fn_gen.dg2052&#45;&gt;fn_gen.enums -->
<g id="edge6" class="edge">
<title>fn_gen.dg2052&#45;&gt;fn_gen.enums</title>
<path fill="none" stroke="black" d="M610.84,-104.91C651.35,-116.39 708.89,-132.7 751.49,-144.77"/>
<polygon fill="black" stroke="black" points="761.08,-147.49 750.24,-149.09 757.45,-146.46 751.46,-144.76 751.46,-144.76 751.46,-144.76 757.45,-146.46 752.69,-140.44 761.08,-147.49"/>
</g>
<!-- fn_gen.dg2052&#45;&gt;fn_gen.errors -->
<g id="edge7" class="edge">
<title>fn_gen.dg2052&#45;&gt;fn_gen.errors</title>
<path fill="none" stroke="black" d="M538.2,-108.42C525.95,-118.12 511.19,-130.87 499.75,-144 483.07,-163.15 467.77,-187.6 457.23,-206.02"/>
<polygon fill="black" stroke="black" points="452.48,-214.51 453.44,-203.58 454.33,-211.21 457.37,-205.78 457.37,-205.78 457.37,-205.78 454.33,-211.21 461.29,-207.98 452.48,-214.51"/>
</g>
<!-- fn_gen.enums.comm_method -->
<g id="node5" class="node">
<title>fn_gen.enums.comm_method</title>
<polygon fill="#99ddff" stroke="#99ddff" points="1549.12,-252 1370.38,-252 1370.38,-216 1549.12,-216 1549.12,-252"/>
<text text-anchor="middle" x="1459.75" y="-228.57" font-family="Times,serif" font-size="14.00">fn_gen.enums.comm_method</text>
</g>
<!-- fn_gen.enums&#45;&gt;fn_gen.enums.comm_method -->
<g id="edge8" class="edge">
<title>fn_gen.enums&#45;&gt;fn_gen.enums.comm_method</title>
<path fill="none" stroke="black" d="M855.5,-166.27C949.15,-173.09 1166.61,-190.22 1359.18,-215.71"/>
<polygon fill="black" stroke="black" points="1368.86,-217 1358.36,-220.14 1365.11,-216.5 1358.95,-215.68 1358.95,-215.68 1358.95,-215.68 1365.11,-216.5 1359.55,-211.22 1368.86,-217"/>
</g>
<!-- fn_gen.enums.sweep_signal_type -->
<g id="node6" class="node">
<title>fn_gen.enums.sweep_signal_type</title>
<polygon fill="#99ddff" stroke="#99ddff" points="702.5,-252 505,-252 505,-216 702.5,-216 702.5,-252"/>
<text text-anchor="middle" x="603.75" y="-228.57" font-family="Times,serif" font-size="14.00">fn_gen.enums.sweep_signal_type</text>
</g>
<!-- fn_gen.enums&#45;&gt;fn_gen.enums.sweep_signal_type -->
<g id="edge9" class="edge">
<title>fn_gen.enums&#45;&gt;fn_gen.enums.sweep_signal_type</title>
<path fill="none" stroke="black" d="M762.23,-178.88C733.47,-188.71 696.22,-201.42 665.07,-212.06"/>
<polygon fill="black" stroke="black" points="655.91,-215.19 663.92,-207.7 659.49,-213.97 665.37,-211.96 665.37,-211.96 665.37,-211.96 659.49,-213.97 666.83,-216.22 655.91,-215.19"/>
</g>
<!-- fn_gen.enums.sweep_spacing -->
<g id="node7" class="node">
<title>fn_gen.enums.sweep_spacing</title>
<polygon fill="#99ddff" stroke="#99ddff" points="896.62,-252 720.88,-252 720.88,-216 896.62,-216 896.62,-252"/>
<text text-anchor="middle" x="808.75" y="-228.57" font-family="Times,serif" font-size="14.00">fn_gen.enums.sweep_spacing</text>
</g>
<!-- fn_gen.enums&#45;&gt;fn_gen.enums.sweep_spacing -->
<g id="edge10" class="edge">
<title>fn_gen.enums&#45;&gt;fn_gen.enums.sweep_spacing</title>
<path fill="none" stroke="black" d="M808.75,-180.3C808.75,-187.68 808.75,-196.48 808.75,-204.75"/>
<polygon fill="black" stroke="black" points="808.75,-214.68 804.25,-204.68 808.75,-210.9 808.75,-204.68 808.75,-204.68 808.75,-204.68 808.75,-210.9 813.25,-204.68 808.75,-214.68"/>
</g>
<!-- fn_gen.enums.sweep_trigger_slope -->
<g id="node8" class="node">
<title>fn_gen.enums.sweep_trigger_slope</title>
<polygon fill="#99ddff" stroke="#99ddff" points="1120.62,-252 914.88,-252 914.88,-216 1120.62,-216 1120.62,-252"/>
<text text-anchor="middle" x="1017.75" y="-228.57" font-family="Times,serif" font-size="14.00">fn_gen.enums.sweep_trigger_slope</text>
</g>
<!-- fn_gen.enums&#45;&gt;fn_gen.enums.sweep_trigger_slope -->
<g id="edge11" class="edge">
<title>fn_gen.enums&#45;&gt;fn_gen.enums.sweep_trigger_slope</title>
<path fill="none" stroke="black" d="M855.39,-178.62C884.79,-188.47 923.12,-201.3 955.14,-212.03"/>
<polygon fill="black" stroke="black" points="964.59,-215.19 953.68,-216.29 961,-213.99 955.11,-212.02 955.11,-212.02 955.11,-212.02 961,-213.99 956.53,-207.75 964.59,-215.19"/>
</g>
<!-- fn_gen.enums.sweep_trigger_source -->
<g id="node9" class="node">
<title>fn_gen.enums.sweep_trigger_source</title>
<polygon fill="#99ddff" stroke="#99ddff" points="1352.38,-252 1139.12,-252 1139.12,-216 1352.38,-216 1352.38,-252"/>
<text text-anchor="middle" x="1245.75" y="-228.57" font-family="Times,serif" font-size="14.00">fn_gen.enums.sweep_trigger_source</text>
</g>
<!-- fn_gen.enums&#45;&gt;fn_gen.enums.sweep_trigger_source -->
<g id="edge12" class="edge">
<title>fn_gen.enums&#45;&gt;fn_gen.enums.sweep_trigger_source</title>
<path fill="none" stroke="black" d="M855.1,-170.42C919.42,-180.73 1037.92,-199.71 1127.61,-214.08"/>
<polygon fill="black" stroke="black" points="1137.47,-215.66 1126.89,-218.52 1133.74,-215.06 1127.6,-214.07 1127.6,-214.07 1127.6,-214.07 1133.74,-215.06 1128.31,-209.63 1137.47,-215.66"/>
</g>
<!-- fn_gen.errors.undefined_communication_method_error -->
<g id="node11" class="node">
<title>fn_gen.errors.undefined_communication_method_error</title>
<polygon fill="#44bb99" stroke="#44bb99" points="317.5,-324 0,-324 0,-288 317.5,-288 317.5,-324"/>
<text text-anchor="middle" x="158.75" y="-300.57" font-family="Times,serif" font-size="14.00">fn_gen.errors.undefined_communication_method_error</text>
</g>
<!-- fn_gen.errors&#45;&gt;fn_gen.errors.undefined_communication_method_error -->
<g id="edge13" class="edge">
<title>fn_gen.errors&#45;&gt;fn_gen.errors.undefined_communication_method_error</title>
<path fill="none" stroke="black" d="M398.06,-246.01C355.92,-256.4 291.73,-272.22 240.44,-284.86"/>
<polygon fill="black" stroke="black" points="230.89,-287.22 239.52,-280.46 234.56,-286.31 240.6,-284.83 240.6,-284.83 240.6,-284.83 234.56,-286.31 241.68,-289.2 230.89,-287.22"/>
</g>
<!-- fn_gen.errors.undefined_value_error -->
<g id="node12" class="node">
<title>fn_gen.errors.undefined_value_error</title>
<polygon fill="#44bb99" stroke="#44bb99" points="549.75,-324 335.75,-324 335.75,-288 549.75,-288 549.75,-324"/>
<text text-anchor="middle" x="442.75" y="-300.57" font-family="Times,serif" font-size="14.00">fn_gen.errors.undefined_value_error</text>
</g>
<!-- fn_gen.errors&#45;&gt;fn_gen.errors.undefined_value_error -->
<g id="edge14" class="edge">
<title>fn_gen.errors&#45;&gt;fn_gen.errors.undefined_value_error</title>
<path fill="none" stroke="black" d="M442.75,-252.3C442.75,-259.68 442.75,-268.48 442.75,-276.75"/>
<polygon fill="black" stroke="black" points="442.75,-286.68 438.25,-276.68 442.75,-282.9 442.75,-276.68 442.75,-276.68 442.75,-276.68 442.75,-282.9 447.25,-276.68 442.75,-286.68"/>
</g>
<!-- fn_gen.errors.value_out_of_bounds_error -->
<g id="node13" class="node">
<title>fn_gen.errors.value_out_of_bounds_error</title>
<polygon fill="#44bb99" stroke="#44bb99" points="810,-324 567.5,-324 567.5,-288 810,-288 810,-324"/>
<text text-anchor="middle" x="688.75" y="-300.57" font-family="Times,serif" font-size="14.00">fn_gen.errors.value_out_of_bounds_error</text>
</g>
<!-- fn_gen.errors&#45;&gt;fn_gen.errors.value_out_of_bounds_error -->
<g id="edge15" class="edge">
<title>fn_gen.errors&#45;&gt;fn_gen.errors.value_out_of_bounds_error</title>
<path fill="none" stroke="black" d="M487.53,-249.51C490.31,-250.36 493.06,-251.2 495.75,-252 533.78,-263.32 576.28,-275.08 611.7,-284.64"/>
<polygon fill="black" stroke="black" points="621.28,-287.22 610.45,-288.97 617.62,-286.24 611.62,-284.62 611.62,-284.62 611.62,-284.62 617.62,-286.24 612.79,-280.28 621.28,-287.22"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB