Skip to content

Commit

Permalink
build based on addef85
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Dec 13, 2024
1 parent dd35fa5 commit 8c641fc
Show file tree
Hide file tree
Showing 57 changed files with 2,801 additions and 2 deletions.
2 changes: 1 addition & 1 deletion stable
1 change: 1 addition & 0 deletions v0.10
1 change: 1 addition & 0 deletions v0.10.0/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"documenter":{"julia_version":"1.11.2","generation_timestamp":"2024-12-13T15:13:24","documenter_version":"1.8.0"}}
2 changes: 2 additions & 0 deletions v0.10.0/acquisition.html

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions v0.10.0/architecture.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Architecture · RP DAQ Server</title><meta name="title" content="Architecture · RP DAQ Server"/><meta property="og:title" content="Architecture · RP DAQ Server"/><meta property="twitter:title" content="Architecture · RP DAQ Server"/><meta name="description" content="Documentation for RP DAQ Server."/><meta property="og:description" content="Documentation for RP DAQ Server."/><meta property="twitter:description" content="Documentation for RP DAQ Server."/><script data-outdated-warner src="assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="assets/documenter.js"></script><script src="search_index.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="index.html"><img src="assets/logo.png" alt="RP DAQ Server logo"/></a><div class="docs-package-name"><span class="docs-autofit"><a href="index.html">RP DAQ Server</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="index.html">Home</a></li><li class="is-active"><a class="tocitem" href="architecture.html">Architecture</a><ul class="internal"><li class="toplevel"><a class="tocitem" href="#Communication"><span>Communication</span></a></li><li><a class="tocitem" href="#FPGA-and-CPU"><span>FPGA and CPU</span></a></li><li><a class="tocitem" href="#Client-and-Server"><span>Client and Server</span></a></li></ul></li><li><a class="tocitem" href="installation.html">Installation</a></li><li><a class="tocitem" href="cluster.html">Cluster</a></li><li><a class="tocitem" href="connections.html">Connections</a></li><li><a class="tocitem" href="acquisition.html">Data Acquisition</a></li><li><a class="tocitem" href="generation.html">Signal Generation</a></li><li><a class="tocitem" href="scpi.html">SCPI Interface</a></li><li><a class="tocitem" href="client.html">Client Library</a></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="examples/simple.html">Simple</a></li><li><a class="tocitem" href="examples/waveforms.html">Waveforms</a></li><li><a class="tocitem" href="examples/ramping.html">Ramping</a></li><li><a class="tocitem" href="examples/sequence.html">Sequence</a></li><li><a class="tocitem" href="examples/sequenceMultiChannel.html">Sequence Multi-Channel and Waveform Enable</a></li><li><a class="tocitem" href="examples/seqRamping.html">Sequence Ramping</a></li><li><a class="tocitem" href="examples/cluster.html">Cluster</a></li><li><a class="tocitem" href="examples/batch.html">Batch</a></li><li><a class="tocitem" href="examples/producerConsumer.html">Continous Signal Acquisition</a></li><li><a class="tocitem" href="examples/resync.html">Resync</a></li></ul></li><li><a class="tocitem" href="fpga.html">FPGA Development</a></li><li><a class="tocitem" href="devtips.html">Development Tips</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href="architecture.html">Architecture</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href="architecture.html">Architecture</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/tknopp/RedPitayaDAQServer" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/tknopp/RedPitayaDAQServer/blob/master/docs/src/architecture.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Architecture"><a class="docs-heading-anchor" href="#Architecture">Architecture</a><a id="Architecture-1"></a><a class="docs-heading-anchor-permalink" href="#Architecture" title="Permalink"></a></h1><p>The RedPitayaDAQServer project is implemented as a distributed system in which one client connects to a cluster of RedPitaya boards. The project has four software components:</p><ul><li>FPGA image running on the RedPitayas FPGA</li><li>C library encapsulating access to the FPGA image</li><li>Server running on the CPU of the RedPitayas</li><li><a href="client.html">Client</a> Julia reference library </li></ul><p>The FPGA image is responsible for <a href="generation.html">generating</a> and <a href="acquisition.html">acquiring</a> synchronized out- and input signals. The server acts as an intermediary to the FPGA over a TCP/IP connection, which allows remote clients to configure the FPGA image and retrieve samples. Furthermore, the server also maintains a thread that takes part in signal generation.</p><p>The Julia client library can be used to implement a data acquisition client application, which controls a (cluster of) RedPitaya(s). This Julia library acts as a reference, but in principle it is possible to write clients in any programming language, as the communication is language agnostic. In the <a href="https://github.com/tknopp/RedPitayaDAQServer/tree/master/src/examples/python">example directory</a> we provide a rudimentary Python client that allows to perform a simple data acquisition experiment.</p><h1 id="Communication"><a class="docs-heading-anchor" href="#Communication">Communication</a><a id="Communication-1"></a><a class="docs-heading-anchor-permalink" href="#Communication" title="Permalink"></a></h1><p>The various components of the distributed system communicate over different interfaces. Communication within a RedPitaya is based on memory-mapped I/O, while communication between the server and a client is based on SCPI commands over a TCP/IP connection, usually over Ethernet. Lastly communication between RedPitayas is limited to signals distributed over cables as described in <a href="cluster.html">Cluster</a>.</p><h2 id="FPGA-and-CPU"><a class="docs-heading-anchor" href="#FPGA-and-CPU">FPGA and CPU</a><a id="FPGA-and-CPU-1"></a><a class="docs-heading-anchor-permalink" href="#FPGA-and-CPU" title="Permalink"></a></h2><p>The FPGA image is directly connected to certain memory regions that can be memory mapped on the CPU side of the RedPitaya. Both the CPU and the FPGA image access the reserved main memory region as a sample buffer. The C library <code>rp-daq-lib</code>, which is located under <code>src/lib/</code> in the project repository, encapsulates these memory accesses into a convenient C library. It is possible to use this C library directly on the RedPitaya when no communication with the host system is required, i.e. if one wants to write the acquired data into a file. When making changes to the FPGA image one may need to adapt the <code>rp-daq-lib</code> C library.</p><p>The server itself uses the <code>rp-daq-lib</code> library to interface with the FPGA image.</p><h2 id="Client-and-Server"><a class="docs-heading-anchor" href="#Client-and-Server">Client and Server</a><a id="Client-and-Server-1"></a><a class="docs-heading-anchor-permalink" href="#Client-and-Server" title="Permalink"></a></h2><p>The server on each RedPitaya has two TCP sockets to which a client needs to connect. The first is the command socket on port 5025 and the second is the data socket on port 5026. Over the former, a client can send SCPI commands to the server and receive replies, while the latter is used for sending binary data such as the samples acquired by the ADCs.</p><p>SCPI commands are ASCII strings, such as <code>RP:ADC:DECimation</code>, which the server translates into C function calls. As an example these calls could invoke a function of the <code>rp-daq-lib</code> library to set the decimation of the sampling rate or instruct the server to transmit data over the data socket. A list of the available SCPI commands can be found <a href="scpi.html">here</a>.</p><p>At any point a server is only connected to one client and establishing a new connection stops any current signal generation and acquisition.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="index.html">« Home</a><a class="docs-footer-nextpage" href="installation.html">Installation »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Friday 13 December 2024 15:13">Friday 13 December 2024</span>. Using Julia version 1.11.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Binary file added v0.10.0/assets/Extension_connector.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added v0.10.0/assets/asyncRamping.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added v0.10.0/assets/cluster.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
177 changes: 177 additions & 0 deletions v0.10.0/assets/cluster.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added v0.10.0/assets/clusterExample.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
150 changes: 150 additions & 0 deletions v0.10.0/assets/clusterExample.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 8c641fc

Please sign in to comment.