Skip to content

Commit 598432c

Browse files
authored
Merge pull request #5 from harp-tech/protocol
Add protocol documentation pages
2 parents 7b55957 + f73c452 commit 598432c

6 files changed

Lines changed: 50 additions & 1 deletion

File tree

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,6 @@
3131
[submodule "src/device.outputexpander"]
3232
path = src/device.outputexpander
3333
url = https://github.com/harp-tech/device.outputexpander.git
34+
[submodule "protocol"]
35+
path = protocol
36+
url = https://github.com/harp-tech/protocol.git

articles/about.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# What is Harp
2+
3+
Harp describes a communication protocol and architecture, as well as specific devices that implement these structures.
4+
5+
## Why Harp was developed
6+
7+
Current Neuroscience experiments rely on multiple parallel streams of data, acquired from different devices, to examine how neural circuit activity relates to animal behaviours. This requires precise timestamping of experimental events, so that neural and behavioural data can be accurately ordered in time. Temporally aligning different streams of data, often acquired at different frequencies, rapidly becomes more difficult as setups increase in complexity.
8+
9+
Harp is a family of high-performance devices that make it easy for scientists to synchronize and extend the functionality of their setups. Harp devices can configure, control, & track a wide range of peripheral devices such as cameras, LEDs, nosepokes, & motors. Connecting an extra Harp device is a straightforward way to add extra functionality to a setup. All Harp devices can be connected to a shared clock line, self-synchronizing to a precision of tens of microseconds. This means that all experimental events are timestamped on the same clock and no post-hoc alignment of timing is necessary.
10+
11+
From an engineering perspective, extending the functionality of a setup can also be difficult, if this requires developing a new device, including how this device will communicates with a computer, and how users will interact with the device. By agreeing beforehand how the entire family of devices will communicate, engineers do not have to reinvent or attune protocols each time they wish to develop a new device. This leads to faster, cheaper, and more robust development.

articles/toc.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1-
- name: Getting Started
1+
- name: About
2+
items:
3+
- name: What is Harp
4+
href: about.md
5+
- name: Protocol
6+
items:
7+
- name: Binary Protocol
8+
href: ~/protocol/BinaryProtocol-8bit.md
9+
- name: Common Registers
10+
href: ~/protocol/Device.md
11+
- name: Synchronization Clock
12+
href: ~/protocol/SynchronizationClock.md
13+
- name: Interface
214
items:
315
- name: Quickstart
416
href: intro.md

docfx.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,12 @@
3434
"articles/**/toc.yml",
3535
"tutorials/**.md",
3636
"tutorials/**/toc.yml",
37+
"protocol/**.md",
3738
"toc.yml",
3839
"*.md"
40+
],
41+
"exclude": [
42+
"protocol/README.md"
3943
]
4044
}
4145
],
@@ -46,6 +50,9 @@
4650
"favicon.ico",
4751
"src/device.*/Assets/*.png",
4852
"src/device.*/Assets/*.jpg",
53+
"protocol/Assets/**",
54+
"protocol/Logo/*.svg",
55+
"protocol/*.pdf",
4956
"images/**",
5057
"workflows/**"
5158
]

protocol

Submodule protocol added at ff59b64
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!-- Mermaid -->
2+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css" />
3+
<script type="text/javascript" src="{{_rel}}styles/docfx.vendor.min.js"></script>
4+
<script type="text/javascript" src="{{_rel}}styles/docfx.js"></script>
5+
<script type="text/javascript" src="{{_rel}}styles/main.js"></script>
6+
<script type="text/javascript" src="https://unpkg.com/mermaid@10.3.1/dist/mermaid.min.js"
7+
integrity="sha384-58cFgoKnTNsiRsIGipaj7SlPrj6T0tkDXKnAqT3uZMRaNnGXX/ORrpCSMzznqldk"
8+
crossorigin="anonymous"></script>
9+
<!-- Initialize Mermaid -->
10+
<script>
11+
mermaid.initialize({
12+
startOnLoad: false
13+
});
14+
mermaid.init(undefined, ".lang-mermaid");
15+
</script>

0 commit comments

Comments
 (0)